P_RESTRICTIONS
**************


NAME
====

   P_RESTRICTIONS                                "restrictions"


DEFINIERT IN
============

   /sys/combat.h
   (Die SR_*-Parameter sind in /sys/new_skills.h definiert.)


BESCHREIBUNG
============

   Enthaelt ein Mapping mit den zu pruefenden Einschraenkungen.

   In dieser Property lassen sich Restriktionen setzen, die vor dem
   Zuecken einer Waffe / Anziehen einer Ruestung oder Kleidung geprueft
   werden und dies gegebenfalls verhindern, ohne gleich auf eine evtl.
   vorhandene WieldFunc / WearFunc zuzugreifen.

   Die Auswertung erfolgt ueber den Aufruf von check_restrictions()
   in /std/restriction_checker.c per call_other().

   Die im Mapping verwendbaren Eintraege finden sich in der Manpage
   zu check_restrictions().

   Die Funktionalitaet ist identisch mit Ausnahme von SR_FUN. Bei
   Verwendung von SR_FUN im Mapping wird die Funktion, wenn sie als
   Funktionsname angegeben wird, immer am aufrufenden Objekt gerufen.
   Soll die Funktion an einem anderen Objekt gerufen werden, ist eine
   der beiden alternativen Formen (Closure oder Array) zu verwenden,
   um den Funktionsnamen anzugeben.


BEMERKUNGEN
===========

   Diese Property eignet sich hervorragend dafuer, einige Grundbedingungen
   fuer das Nutzen der Waffe / Ruestung / Kleidung zu stellen, ohne gleich
   eine Wield- oder WearFunc setzen und auswerten zu muessen.

   Denkbar waere der Einsatz bei hochwertigen Waffen / Ruestungen / Kleidung,
   z.B. aus der Para-Welt oder solchen, die sich nah am Limit der geltenden
   Grenzwerte fuer P_WC / P_AC bewegen oder sogar (nach Genehmigung durch
   die Balance) darueber.


BEISPIEL
========

   Mindeststufe 25: SetProp(P_RESTRICTIONS,([P_LEVEL:25]));
   Keine Menschen:  SetProp(P_RESTRICTIONS,([SR_EXCLUDE_RACE:({"Mensch"})]));
   Alignment >499:  SetProp(P_RESTRICTIONS,([SR_GOOD:500]));

   Komplexeres Beispiel

   Quest "Diamond Club" bestanden, magiereigene Property P_AUSGANG_GEFUNDEN
   muss gesetzt sein, Stufe 10, nicht taub, max. 45 Food:
   SetProp(P_RESTRICTIONS, ([ P_LEVEL: 10, P_DEAF: 1, P_FOOD: 45,
     SR_PROP: ([P_AUSGANG_GEFUNDEN:1]), SR_QUEST:({"Diamond Club"}) ]));


SIEHE AUCH
==========

   check_restrictions(L), execute_anything(L)
   WieldFunc(L), WearFunc(L), RemoveFunc(L), UnwieldFunc(L),
   P_WIELD_FUNC, P_WEAR_FUNC, P_REMOVE_FUNC, P_UNWIELD_FUNC
   /std/armour/wear.c, /std/weapon/combat.c, clothing, armours, weapon


LETZTE AeNDERUNG
================

   03. Januar 2014, Arathorn
