NAME:
     P_RESISTANCE_STRENGTHS     "resistance_strengths"

DEFINIERT IN:
     /sys/living/combat.h

BESCHREIBUNG:
     Lebewesen:

     Mapping mit Schadensarten, gegen die das Lebewesen resistent oder
     anfaellig ist. Durch eine _query_method werden alle existierenden
     Resistenzen hier zusammengefasst.

     Die Staerke der Resistenz oder Anfaelligkeit wird numerisch aus-
     gedrueckt:
     - Resistenzen gehen bis von 0 bis -1.0 (absolute Resistenz)
       - -0.5 == halbierter Schaden, -0.75 == geviertelter Schaden
       -> in % des "aufgehaltenen" Schadens interpretierbar
     - Empfindlichkeiten gehen von 0 bis MAX_INT
       -  1.0 == verdoppelter Schaden, 3.0 == vervierfachter Schaden
       -> als Faktor (x+1.0) interpretierbar

     Ruestungen:

     Mapping mit Prozentwerten der Maximalwerte fuer Ruestungen des
     entsprechenden Typs. Dabei sind positive Werte Resistenzen und
     negative Empfindlichkeiten. Dabei duerfen die Prozentwerte nur
     im Bereich von +100 bis -800 (-1000 ?!) liegen.

     Bei Ruestungen ist es damit unnoetig, Resistenzen mittels
     AddResistanceModifier() im Traeger zu setzen, da dies bereits
     in /std/armour automatisch gemacht wird. Der Schluessel fuer
     den Eintrag ist dabei P_ARMOUR_TYPE.

     Die Maximalwerte sind derzeit:
      AT_CLOAK, AT_RING, AT_AMULET: max 10% Resistenz
      AT_SHIELD, AT_ARMOUR:  max 15% Resistenz
      alle anderen:   max 5% Resistenz

BEMERKUNGEN:
     Ruestungen:
     * die Property muss _nach_ P_ARMOUR_TYPE gesetzt werden (_set-Method)

     Lebewesen:
     * -1.0 bedeutet bereits absolute Resistenz, bei kleineren Werten werden
       die anderen Schadensanteile im Kampf u.U. nicht mehr wie gewuenscht
       bilanziert. Bitte daher drauf verzichten. ;-)
     * Aenderungen an P_RESISTANCE und P_VULNERABILITY werden direkt in 
       P_RESISTANCE_STRENGTHS gespeichert:
       -> daher niemals im Nachhinein bei fremden NPCs P_RESISTANCE_STRENGTHS
          manipulieren, dafuer gibt es AddResistanceModifier
     * QueryProp(P_RESISTANCE_STRENGTHS) enthaelt die gesamten Resistenzen
       P_RESISTANCE, P_VULNERABILITY, P_RESISTANCE_MODIFIER (_query-Method)

     Die Werte in P_RESISTANCE_STRENGTHS sollten nur in Ausnahmefaellen oder
     gut begruendet den Hoechstwert haben. Ein Eiswesen kann zwar sehr
     resistent gegen Kaelteschaden sein, sollte aber zu gleichem Teil auch
     anfaellig auf Feuerschaden sein.

     Auf dieser Property liegt eine Querymethode, welche eine Kopie der
     Daten zurueckliefert.

BEISPIELE:
     // ein Eistroll
     SetProp(P_RESISTANCE_STRENGTHS,([DT_FIRE:0.5,DT_COLD:-0.5,
                                      DT_MAGIC:0.1]));

     Feuerangriffe werden mit 1.5 multipliziert, magische mit 1.1 und
     der Schadenswert von Kaelteangriffen wird halbiert. Zum Beispiel
     wuerde
     Defend(100, ({DT_FIRE,DT_MAGIC}), ...)
     einen Schaden von 130 statt den normalen 100 verursachen.


     // eine Eisruestung
     SetProp(P_RESISTANCE_STRENGTHS, ([DT_COLD:50, DT_FIRE:-100]));

     Dieses Kettenhemd schuetzt nun mit 50% des Maximalwertes gegen
     Kaelte (also 0.5*15%=7,5% Resistenz) und macht mit dem Maximal-
     wert anfaellig gegen Feuer (1*15%=15% Empfindlichkeit).

     ! der Code spricht zusaetzlich von
       Empfindlichkeit=(Empfindlichkeit/4)*5 -> 15/4*5=18.75% !

SIEHE AUCH:
     simple Resistenz: P_RESISTANCE, P_VULNERABILITY
     Modifikatoren: AddResistanceModifier, RemoveResistanceModifier(),
     P_RESISTANCE_MODIFIER
     Berechnung: CheckResistance(), UpdateResistanceStrengths()
     anderes:  balance, /std/armour/combat.c, /std/living/combat.c

6.Feb 2016 Gloinson
