QueryDefend()

FUNKTION:
     int QueryDefend(string|string* dtyp, int|mapping spell, object enemy);

DEFINIERT IN:
     /std/armour/combat.c

ARGUMENTE:
     dtyp  - Schadenstypen der Angriffsart
     spell - 0       bei konventionellem Angriff,
             != 0    bei Angriff mit einem nichtphysischen Spell,
             mapping bei genaueren Angaben zur Wirkung
     enemy - Der angreifende Gegner

BESCHREIBUNG:
     Dies ist die zentrale Funktion einer Ruestung. Sie wird in jeder
     Kampfrunde aus /std/living/combat::Defend() fuer jede Ruestung aufgerufen,
     die der Spieler angezogen hat.

     Der Schutzwert von P_AC entfaltet seine Wirkung nur bei konventionellen
     Angriffen:
     * wenn 'spell' 0 ist (bei Aufruf aus der Defend heraus ausgeschlossen)
     * wenn 'spell' ein Mapping mit dem Flag SP_PHYSICAL_ATTACK != 0 UND
                    in 'dtyp' mindestens ein physischer Schaden enthalten ist

RUeCKGABEWERT:
     Die Ruestungsstaerke in dieser Kampfrunde. Sie ermittelt sich als
     Zufallszahl zwischen 0 und P_AC, zuzueglich des Ergebnisses des
     DefendFunc()-Aufrufs.

BEMERKUNGEN:
     Auch wenn man eine DefendFunc() benutzt, darf der Rueckgabewert
     insgesamt nicht groesser werden als der fuer den Ruestungstyp
     maximal zulaessige!

SIEHE AUCH:
     Ruestungen: P_ARMOUR_TYPE, P_NR_HANDS, P_ARMOURS, P_WORN
     Schutz:     P_AC, Defend(), DefendFunc
     Sonstiges:  P_EQUIP_TIME, P_LAST_USE, P_DAM_TYPE
     Verwandt:   QueryArmourByType(L), P_WEAPON, FilterClothing(),
                 FilterArmours()
     Resistenz:  P_RESISTANCE_STRENGTHS, CheckResistance(L)

28.Jul 2014 Gloinson
