SubFromProp()
*************


FUNKTION
========

public varargs int SubFromProp(string propname,
<int|float|string|mixed*|mapping|bytes> subtrahend)


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

   /std/thing/properties.c /sys/thing/properties.h (Prototyp)


ARGUMENTE
=========

   * propname: Die Property, die veraendert wird

   * subtrahend: Was auf den aktuellen Wert "substrahiert" werden soll


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

   Die Funktion ruft den aktuellen Wert der Property mittels
   QueryProp() ab, "subtrahiert" <subtrahend> davon und setzt den
   neuen Wert mit SetProp() wieder. Damit ist sie einfach eine
   Abkuerzung fuer SetProp(pname, QueryProp(pname) - subtrahend).

   Erlaubte Typen fuer <subtrahend> sind nur solche, mit denen +-
   etwas anfangen kann und welche zum aktuellen Wert der Property
   passen. Alles andere loest ggf. einen (Laufzeit-)Fehler auf.


RUeCKGABEWERT
=============

   Der Wert der Property nach der Aenderung.


BEISPIELE
=========

   // einen Int subtrahieren SubFromProp(P_WC, 42); // alle
   entsprechenden Elemente aus einem Array in der Property loeschen //
   Achtung: erzeugt ein neues Array! SubFromProp(P_WAITFOR,
   ({"zesstra"})); // Ein Mappingkey aus einem Mapping in einer
   Property loeschen SubFromProp(P_M_HEALTH_MOD, ([P_HP]))


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

   QueryProp(), *AddProp* Konzept: properties, /std/thing/properties.c

19.06.2025, Zesstra
