QueryDamage()
*************


FUNKTION
========

   int QueryDamage(object enemy);


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

   /std/weapon/combat.c


ARGUMENTE
=========

   enemy
        Der Gegner, gegen den die Waffe eingesetzt wird.


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

   Dies ist die zentrale Funktion der Waffe. Sie wird in jeder Kampfrunde
   von Attack() aus aufgerufen und gibt den Schaden zurueck, den der
   Gegner abwehren muss.

   In den Schaden gehen sowohl die Staerke der Waffe als auch die Staerke
   des Traegers der Waffe ein.

   Wurde eine HitFunc() angegeben, so wird diese mit den gleichen
   Parametern wie QueryDamage() aufgerufen.


RUeCKGABEWERT
=============

   Die Staerke des Schlages fuer diese Kampfrunde. Sie ermittelt sich als
   Zufallszahl zwischen 0 und einem Wert, der sich aus der Staerke der
   Waffe und der Staerke ihres Traegers ergibt. Das Ergebnis des
   HitFunc()-Aufrufs wird zu dieser Zahl hinzugezaehlt.


BEMERKUNGEN
===========

   Auch wenn man eine HitFunc() verwendet, darf der Rueckgabewert
   insgesamt nicht groesser als 200 werden. Im Zweifelsfall sollte
   man sich mit der zustaendigen Balance besprechen!


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

   HitFunc(), Attack(), /std/weapon.c, grenzwerte

Last modified: Fre Feb 16.02.01 12:58:00 von Tilly
