NAME:
    P_ATTACK_BUSY                 "attack_busy"                 

DEFINIERT IN:
    /sys/living/combat.h

BESCHREIBUNG:
    Ueber diese Property kann festgestellt werden, ob ein Spieler noch 
    Spezialwaffen (zB Flammenkugel) einsetzen kann.
    
    Ist der Wert bei Abfrage ungleich 0, dann darf der Spieler in dieser
    Runde keine Aktion mehr durchfuehren. Mit SetProp(P_ATTACK_BUSY, 1)
    wird eine Aktion verbraucht.

    Intern wird relativ fein gerechnet, ein SetProp(P_ATTACK_BUSY, x)
    wird in das Abziehen von x*100 Punkten umgerechnet. Der Wert freier
    Aktionen pro Runde berechnet sich wie folgt:
    
    Spieler: 100 + QuerySkillAttribute(SA_SPEED)
    Seher:   Spieler + 200 + QueryProp(P_LEVEL)

    Das Maximum liegt bei 500.
    Damit betraegt die Anzahl der moeglichen Aktionen pro Runde: Wert/100,
    also maximal 5 Aktionen pro Runde.

    Zaubersprueche zaehlen im Normalfall auch als eine Aktion.

BEMERKUNGEN:
    Benutzt man P_ATTACK_BUSY fuer eine sich nicht sofort verbrauchende
    Sache, kann ein Seher dieses Objekt im Normalfall dreimal pro Runde
    benutzen. Wenn ungewollt, muss das ueber einen Zeitmarker selbst
    verhindert werden.
    
BEISPIELE:
    (Code eines Objektes ist in
     /doc/beispiele/testobjekte/attack_busy_sensitive_testobj.c)
    // einfacher Test auf ATTACK_BUSY und anschliessendes Setzen
    if (this_player()->QueryProp(P_ATTACK_BUSY)) {
      write("Du hast dafuer momentan einfach nicht mehr die Puste.\n");
      return 1;
    }
    this_player()->SetProp(P_ATTACK_BUSY, 1);

7. Mar 2011 Gloinson
