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
