InternalModifyDefend()
**********************


InternalModifyDefend(L)
=======================


FUNKTION
========

   protected void InternalModifyDefend(int dam, string* dam_types,
      mapping si_spell, object enemy)


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

   /std/living/combat


ARGUMENTE
=========

   int dam
      Staerke des abzuwehrenden Angriffs (in HP/10)

   string* dam_types
      Art(en) des Schadens, der angerichtet werden soll

   mapping si_spell
      Mapping mit zusaetzlichen Informationen ueber den Angriff

   object enemy
      der Feind/Schadenverursacher


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

   Dient dazu noch Aenderungen am Verhalten der Defend() vornehmen zu
   koennen. Die Parameter werden alle per Referenz uebergeben,
   Aenderungen wirken also direkt im Defend()!

   Einfach ueberschreiben, aber ::InternalModifyDefend(&..., &....)
   nicht vergessen!


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

   InternalModifyAttack() Defend()
