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
