
U_REQ
*****


NAME
====

   U_REQ                         "u_req"


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

   /sys/unit.h


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

   Die Prop kann in Unitobjekten gesetzt werden.
   Sie gibt die Anzahl der Einheiten an, die an der Unit manipuliert werden
   sollen, falls mit weniger als P_AMOUNT umgegegangen werden soll.



   Die Prop wird automatisch gesetzt, wenn id() an einem Unitobjekt gerufen
   wird und die ID grundsaetzlich zutreffend ist, die aus der ID ermittelte
   Zahl aber kleiner als P_AMOUNT ist.
   Sie kann auch manuell mittel SetProp() (aber nicht Set()) gesetzt werden.

   U_REQ wird beim Bewegen und Zerstoeren, bei Ermittlung von Wert und
   Gewicht beruecksichtigt.

   U_REQ wird vom Unitobjekt automatisch wieder auf P_AMOUNT gesetzt, wenn
   sich query_verb() oder debug_info(DINFO_EVAL_NUMBER) veraendert haben.
   (DINFO_EVAL_NUMBER ist eine Zahl, die sich jedesmal erhoeht, wenn der
    Driver eine neue Berechnung/Ausfuehrung beginnt. Diese Nummer wird fuer
    jeden vom driver initiierten Aufruf von LPC-Code erhoeht, z.B. bei jedem
    Kommando, call_out, heart_beat etc. Details s. debug_info().)

   Ebenso wird U_REQ bei der Vereinigung mit einem anderen (gleichen)
   Objekt auf P_AMOUNT des vereinigten Objektes gesetzt.


BUGS
====

   Viele. Dies ist ein uebler Hack. Geht aber nicht ohne.
   Diese Prop war endlos lang gar nicht dokumentiert. Hier beschrieben ist
   das Verhalten, was zur Zeit vorliegt. Dies mag unterschiedlich zu dem
   irgendwann intendierten sein.


BEISPIELE
=========

   object o = clone_object("unitobjekt");
   o->SetProp(P_AMOUNT, 100);   // ab jetzt hat o 100 Einheiten.
   o->move(npc, M_GET);         // ob mit 100 Einheiten wird bewegt
   o->SetProp(U_REQ, 50);
   o->move(anderernpc, M_GIVE); // 50 Einheiten werden bewegt, 50 verbleiben
   (Technisch: das Objekt wird auf 50 Einheiten geaendert, bewegt und in der
    alten Umgebung wird ein neues Objekt mit 50 Einheiten erzeugt.)

   o->SetProp(U_REQ, 42);
   o->remove(1);               // 42 Einheiten von den 50 werden zerstoert.
   (Technisch: P_AMOUNT wird einfach um U_REQ reduziert.)

   # gib 18 muenzen an blupp
   Hierbei wird ob->id("18 muenzen") gerufen, was U_REQ im Geldobjekt auf 18
   setzt. Bei der Bewegung bekommt blupp daher das Objekt mit P_AMOUNT==18
   und der Rest wird im Abgebenden neu erzeugt.
   # gib geld an flubbel
   Das U_REQ aus dem verherigen Kommando ist jetzt nicht mehr gueltig. Zwar
   ist es das gleiche Kommandoverb, aber DINFO_EVAL_NUMBER ist jetzt
   anders.


ZULETZT GEAeNDERT
=================

16.01.2015, Zesstra
