P_M_ATTR_MOD
************


NAME
====

   P_M_ATTR_MOD                  "magic_attributes_modifier"


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

   /sys/living/attributes.h


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

   Mapping, das die Attribute des Spielers veraendert, der diese Ruestung
   bzw. Waffe traegt bzw. benutzt.

   Zu beachten:
   P_M_ATTR_MOD kann problemlos durch ein SetProp() gesetzt werden. Es wird
   nur dann beruecksichtigt, wenn die Ruestung/Waffe getragen/benutzt wird.
   Beim Tragen/Ausziehen/Zuecken/Wegstecken wird im Spieler automatisch
   UpdateAttributes() aufgerufen.

   Fuer Krankheiten etc. oder Objekte, deren *Besitz* allein schon die
   Attribute veraendern sollen, verwendet man besser P_X_ATTR_MOD.

   P_X_ATTR_MOD und P_M_ATTR_MOD duerfen einen gemeinsamen kumulierten
   positiven Grenzwert nicht ueberschreiten. Dieser Grenzwert,
   CUMULATIVE_ATTR_LIMIT, ist in /sys/living/attributes.h definiert.


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

   Die Werte sollten moeglichst nicht dynamisch geaendert werden.
   Wenn doch, muss mit TestLimitViolation() am Spieler auf Validitaet
   geprueft und ggf. mit UpdateAttributes() an ihm upgedatet werden.


BEISPIELE
=========

   // Dem Spieler, der das Objekt benutzt, wird 2 von A_INT abgezogen und
   // dafuer 1 auf A_STR aufaddiert.
   SetProp(P_M_ATTR_MOD, ([A_INT:-2, A_STR:1]) );


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

   QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
   SetAttribute(), SetRealAttribute(), UpdateAttributes(),
   SetTimedAttrModifier(), QueryTimedAttrModifier(),
   DeleteTimedAttrModifier(),
   P_X_HEALTH_MOD, P_M_HEALTH_MOD, P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS,
   P_TIMED_ATTR_MOD, P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c

02.02.2016, Gloinson
