blob: 91c6bc82ee084818d09b7745a90525bdca9c61e4 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
2do_damage()
3***********
4
5do_damage(L)
6
7
8FUNKTION
9========
10
11 int do_damage(int dam,mixed enemy);
12
13
14DEFINIERT IN
15============
16
17 /std/living/life.c
18
19
20ARGUMENTE
21=========
22
23 int dam
24 Die abzuziehenden Lebenspunkte (HP).
25 object enemy
26 Das Objekt, welches den Schaden zufuegt.
27
28
29BESCHREIBUNG
30============
31
32 Dem Lebewesen werden <dam> HP abgezogen. Falls weniger als 0 HP uebrig
33 bleiben, so stirbt es automatisch mittels die().
34 Ein Lebewesen, welches sich bewegt hat, trifft die ersten Kampfrunden
35 sehr viel schlechter, um Rein-Raus-Attacken zu verhindern. Dieses
36 Vorgehen kann man mittels P_ENABLE_IN_ATTACK_OUT deaktivieren.
37 Lebewesen, welche P_NO_ATTACK gesetzt haben, kann man mit dieser
38 Funktion nicht schaden.
39
40
41RUeCKGABEWERT
42=============
43
44 Der tatsaechlich verursachte Schaden.
45
46
47BEMERKUNGEN
48===========
49
50 Beim Gegner <enemy>, falls vorhanden, werden XP und ALIGN entsprechend
51 angepasst, im Opfer wird der Gegner in P_KILLER vermerkt, der Kampf wird
52 beendet.
53 Diese Funktion sollte nur selten direkt verwendet werden. Meist ist der
54 uebliche Weg ueber Defend() -> do_damage() -> die() die logisch bessere
55 und balancetechnisch guenstigere Loesung, da Defend() magische
56 Verteidigungen, die der Spieler bei sich hat beruecksichtigt.
57 Es sollte also allein schon aus Fairness gegenueber den Objekten
58 anderer Magier Defend() immer dem direkten reduce_hit_points() oder
59 do_damage() vorgezogen werden. Mittels der Flags in 'spell' kann man
60 sehr viele Parameter beeinflussen.
61
62
63SIEHE AUCH
64==========
65
66 Verwandt: Defend(L), reduce_hit_points(L), die(L)
67 Props: P_NO_ATTACK, P_ENABLE_IN_ATTACK_OUT, P_KILLER
68 P_XP, P_ALIGN
69
7023.Feb.2004 Gloinson