P_TARGET_AREA
=============

NAME
----
::

    P_TARGET_AREA     "target_area"

DEFINIERT IN
------------
::

    <combat.h>

BESCHREIBUNG
------------
::

    Kann in einem Raum gesetzt werden, um einen anderen, von dort aus mit
    Fernkampfwaffen beschiessbaren Raum als Objekt oder Objektnamen (zu
    einem geladenen Objekt) festzulegen.

BEMERKUNGEN
-----------
::

    Ein Schuetze kann nur in den anderen Raum schiessen, wenn die P_RANGE
    seiner Waffe mindest gleich der P_SHOOTING_AREA des Raums (nicht des
    Zielraums) ist.

    Idealerweise sollte in mit P_TARGET_AREA angegebenen Raeumen auch
    P_NEVER_CLEAN gesetzt sein.

BEISPIELE
---------
::

    // #1 Ein Baum-Raum (/std/room)
    void create() {
      ::create();
      SetProp(P_INT_SHORT, "Auf einem Baum");
      SetProp(P_INT_LONG, break_string("Du hockst auf einem Baum und kannst "
        "auf die Lichtung unter Dir sehen.\n");

      AddExit("unten", RAEUME("lichtung"));

      SetProp(P_TARGET_AREA, RAEUME("lichtung"));  // Lichtung beschiessbar
      SetProp(P_SHOOTING_AREA, 15);                // 15 Entfernung
    }

    // #2 Ein Elefanten-Transporter (/std/transport)
    // Er trampelt durch mehrere Raeume durch und der Schuetze kann vom
    // Ruecken des Elefanten aus auf Gegner draussen schiessen.
    void create() {
      ::create();
      SetProp(P_NAME, "Kampfelefant");
      AddId(({"elefant", "kampfelefant")});
      SetProp(P_GENDER, MALE);
      SetProp(P_SHORT, "Ein Kampfelefant");
      SetProp(P_INT_SHORT, "Auf einem Kampfelefanten");
      // P_LONG, P_INT_LONG

      SetProp(P_ENTERCMDS, ({"kletter", "erkletter"}));
      SetProp(P_LEAVECMDS, ({"verlass", "verlasse"}));

      SetProp(P_ARRIVEMSG, ({"Der Elefant trampelt in einen Raum.\n",
                             "Ein Kampfelefant trampelt herein.\n"}));
      SetProp(P_DEPARTMSG, ({"Der Elefant trampelt weiter.\n",
                             "Der Kampfelefant trampelt weiter.\n"}));

      SetProp(P_SHOOTING_AREA, 8); // weiter als 8 sollte man schiessen

      AddRoute(RAEUME("schlachtfeld"), 20+random(10), 6, "Schlachtfeld");
      AddRoute(RAEUME("burgtor"), 20+random(10), 6, "Burgtor");
      AddRoute(RAEUME("burghof"), 20+random(10), 6, "Burghof");
      AddRoute(RAEUME("halle"), 20+random(10), 6, "Halle");
      AddRoute(RAEUME("bresche"), 20+random(10), 6, "Bresche");
      // ...

      Start();
    }

SIEHE AUCH
----------
::

    Generell:  P_AMMUNITION, P_SHOOTING_WC, P_STRETCH_TIME
    Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
    Gebiet:    P_RANGE, P_SHOOTING_AREA
    Raeume:    P_NEVER_CLEAN
    Sonstiges: fernwaffen

29.Jul 2014 Gloinson