trigger_sensitive_attack()

FUNKTION:
     varargs void trigger_sensitive_attack(object enemy, string key, int
     dam, mixed spell, mixed *options);

DEFINIERT IN:
     eigenen sensitiven Objekten, wird aufgerufen von
     /std/living/inventory.c

ARGUMENTE:
     enemy
          Der Gegner, der die Aktion ausgeloest hat.
     key
          Der ausloesende Schadenstyp.
     dam
          Der angerichtete Schaden.
     spell
          Wie bei Defend().
     options
          Array mit den in P_SENSITIVE angegebenen Optionen fuer diese
          Aktion.

BESCHREIBUNG:
     Wenn der bei einem Angriff zugefuegte Schaden den in P_SENSITIVE
     angegebenen Grenzwert uebersteigt sowie der als Schluessel angegebene
     Schadenstyp in den Schaedenstypen des Angriffes vorkommt, wird diese
     Funktion aufgerufen und kann entsprechend reagieren.

RUeCKGABEWERT:
     keiner

BEISPIELE:
     Eine Fackel, die sich bei Feuerattacken selbst entzuendet und bei
     Wasserattacken verloescht, koennte man wie folgt implementieren:

     inherit "/std/lightsource.c"

     #include <properties.h>
     #include <sensitive.h>
     #include <combat.h>

     create()
     {
       ::create();

       SetProp(...); // die ueblichen Eigenschaften definieren

       SetProp(P_SENSITIVE,
           //  Ereignis          Key       Grenze (keine Optionen)
         ({ ({ SENSITIVE_ATTACK, DT_FIRE,  100 }),
            ({ SENSITIVE_ATTACK, DT_WATER, 100 }) }) );
     }

     varargs void
     trigger_sensitive_attack(object enemy, string key,
                              int dam, mixed spell)
     {
       // Es soll nicht verschwiegen werden, dass das Entzuenden und
       // Loeschen einer Lichtquelle so leider nicht funktioniert...
       if (key == DT_FIRE && !QueryProp(P_LIGHTED)) {
         SetProp(P_LIGHTED, 1);
         tell_object(environment(), "Die Fackel faengt Feuer.\n");
       }
       else if (key == DT_WATER && QueryProp(P_LIGHTED)) {
         SetProp(P_LIGHTED, 0);
         tell_object(environment(), "Die Fackel verlischt.\n");
       }
     }

SIEHE AUCH:
     trigger_sensitive_inv(), sensitive Objekte

----------------------------------------------------------------------------
Last modified: Sun May 19 15:56:25 1996 by Wargon
