
P_FISH
******


NAME
====

   P_FISH                        "fish"


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

   /sys/fishing.h


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

   Enthaelt Einstellungen zu allem, was mit Fischen zu tun hat.
   Kann in Fischen, Raeumen und Koedern gesetzt werden. Die verfuegbaren
   Optionen und Funktionsweisen sind in den nachfolgenden Abschnitten
   aufgefuehrt.

   Fische:
   *******
   Die Property legt zusaetzliche Eigenschaften fest:

     F_NOROTTEN
       Fisch fault nicht; ggf. sollte hier auch gleich F_NOHEAL gesetzt
       werden, weil sonst eine unverderbliche tragbare Tanke erzeugt wuerde.
     F_NOTHUNGRY
       Fisch frisst Koeder nur, wenn er auch wirklich nachher an der Angel
       haengt. Ist er zu schwer fuer die Angel und reisst ab, bleibt der
       Koeder erhalten.
     F_REPLACE
       Fisch soll sich beim Entfernen von der Angel verwandeln. Hierzu ist
       die Funktion ReplaceFish() im Fisch zu definieren, die sich um die
       Verwandlung kuemmert (z.B. Monster clonen und Fisch zerstoeren; ein
       Beispiel findet sich in /d/ebene/fraggle/angel2/obj/saegefisch.c).
     F_NOHEAL
       Fisch heilt nicht bei Verzehr

   Raum (OPTIONAL):
   ****************
   Legt die Fischdichte des Gewaessers fest. Der eingestellte Wert wirkt
   sich auf die Wartezeit aus, die der Angler verbringen muss, bis ein
   Fisch anbeisst. Berechnung im Detail (alle Zahlenwerte in Sekunden):
   - Basis-Wartezeit: delay = 80
   - Die Werte von P_FISH von Raum und Koeder werden addiert:
     summe = raum->QueryProp(P_FISH) + koeder->QueryProp(P_FISH)
     -> positive Werte (Bonus) werden auf 60 begrenzt und mit Zufalls-
        komponente von <delay> abgezogen:
        delay -= random(summe)
     -> negative Werte (Malus) werden auf -300 begrenzt und mit Zufalls-
        komponente auf <delay> aufgeschlagen:
        delay += random(-summe)

   Zusaetzlich wird ein weiterer Malus auf die Wartezeit faellig, falls
   P_WATER in der Angel und/oder P_WATER im Koeder nicht zum aktuellen
   Gewaesser passen. Der Malus betraegt jeweils 60+random(60) Sekunden.



   Der Standardwert fuer P_FISH im Raum ist 0 und bedeutet 100 % Bestand.
   Positive Werte erhoehen die Dichte, negative senken sie. Positive Werte
   sollten nicht >100 sein.

   Sofern sich die Werte fuer P_FISH in den empfohlenen Grenzen bewegen,
   koennen Abzuege fuer falsches Gewaesser ueblicherweise kaum durch
   Boni auf Angel oder Koeder kompensiert werden. Ausserdem ist zu
   bedenken, dass es keine Boni fuer richtige Gewaesserwahl gibt.



   Koeder (OPTIONAL):
   ******************
   Ein Koeder kann mittels P_FISH die Fischdichte modifizieren, um hierueber
   ein besseres Beissen der Fische zu simulieren (reduziert die Wartezeit
   beim Angeln, siehe oben unter "Raum"). Wenn also der Raum einen Wert
   von -100 gesetzt hat und der Koeder +100, entspricht die Fischdichte im
   Gewaesser wieder dem Normalwert.


SIEHE AUCH
==========

   Properties: P_WATER
   Methoden:   GetAquarium(L)

Zuletzt geaendert: 2014-Aug-21, Arathorn
