P_NEXT_DEATH_SEQUENCE

NAME:
     P_NEXT_DEATH_SEQUENCE         "p_lib_next_death_sequence"

DEFINIERT IN:
     /sys/living/combat.h

BESCHREIBUNG:
     Im Spieler kann damit dessen eigene Todessequenz fuer den naechsten
     Tod festgelegt werden. Nach einem Tod (egal welche Todessequenz
     gewaehlt wurde) wird die Property geloescht und muesste neu gesetzt
     werden.

     Es gibt folgende gueltige Werte:
     - string: Pfad zu einer eigenen Todessequenz im gueltigen Format
     - mixed*  Eine Todessequenz im Format des Todesraumes:
               ({<int gesamtlaenge>,
                 ([<int index1>: <string umgebrochene Meldung1>,
                   <int index2>: <string umgebrochene Meldung2>,
                   ...])
               })
     - mapping In die Standard-Lars-Todessequenz einzufuegende Zeilen:
               ([<int zeitindex>: <string umgebrochener Text>])

BEMERKUNGEN:
     Eine Todessequenz eines Gegners, festgelegt ueber
     P_ENEMY_DEATH_SEQUENCE hat Vorrang vor dieser Property.

BEISPIELE:
     // Pfad zu einer eigenen DSQ
     SetProp(P_NEXT_DEATH_SEQUENCE,  ".../passende_dsq.txt");

     // eigene DSQ im Todesraumformat:
     SetProp(P_NEXT_DEATH_SEQUENCE,
             ({ 2, ([1: "Der Tod entlaesst dich eilig.\n"])}));

     // Einfuegen einer Meldung in die Standard-Todessequenz
     SetProp(P_NEXT_DEATH_SEQUENCE,
             ([5: "Du fuehlst dich etwas daemlich.\n"]));

SIEHE AUCH:
     Tod:            die(L)
     Todesmeldungen: P_KILL_NAME, P_KILL_MSG, P_DIE_MSG, P_MURDER_MSG
                     P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
     Sonstiges:      P_CORPSE, P_NOCORPSE, /room/death/death_room.c

10. Nov 2011 Gloinson