blob: 6064049cbe2f718d5feaafc7f7b2b4013874ffe3 [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001P_EFFECTIVE_WC
2==============
3
4NAME
5----
6::
7
8 P_EFFECTIVE_WC "effective_wc"
9
10DEFINIERT IN
11------------
12::
13
14 <combat.h>
15
16BESCHREIBUNG
17------------
18::
19
20 Diese Property kommt sowohl in Waffen als auch Ruestungen, die Schaden
21 machen sollen, zum Einsatz.
22
23 Falls die Staerke einer Waffe noch durch eine HitFunc() modifiziert
24 wird, sollte hier der Effektivwert der Waffenklasse vermerkt werden,
25 soweit er sich angeben laesst.
26 Diese Property dient vor allem dazu, eine Waffe mit HitFunc() korrekt
27 einzuschaetzen.
28
29 In einigen Gilden koennen Ruestungen auch als Waffen eingesetzt werden
30 (z.B. ein Paar Schuhe zum Treten). In dieser Property kann man die
31 Waffenklasse eintragen, die die Ruestung bei solchen Aktionen aufweisen
32 soll. Dabei ist man an die ueblichen Beschraenkungen der Waffenklasse
33 gebunden! (s. /sys/combat.h)
34 Der Ruestung kann man dann auch einen Schadenstyp mit auf den Weg
35 geben.
36
37BEMERKUNGEN
38-----------
39::
40
41 Das Kaempferspellbook verwendet bei Ruestungen P_AC, wenn
42 P_EFFECTIVE_WC nicht gesetzt ist.
43
44BEISPIELE
45---------
46::
47
48 * HitFuncs:
49 Der doppelte Mittelwert der HitFunc wird zur Basis-WC dazuaddiert,
50 da sich der 'Angriffswert = random(Basis-WC) + absolut(HitFunc-Wert)'
51 berechnet.
52
53 // #1 Waffe mit Basis-WC 120 und randomisierter HitFunc
54 SetProp(P_WC, 120);
55 SetProp(P_HIT_FUNC, this_object());
56
57
58
59 int HitFunc(...) {
60 return random(30); // Mittelwert: 15
61 }
62 -> SetProp(P_EFFECTIVE_WC, 150); // 120 + 2*15 = 150
63
64
65
66 // #2 Waffe mit Basis-WC 120 und teilweise absoluter HitFunc
67 SetProp(P_WC, 120);
68 SetProp(P_HIT_FUNC, this_object());
69
70
71
72 int HitFunc(...) {
73 return 30 + random(10); // Mittelwert: 30 + 5
74 }
75 -> SetProp(P_EFFECTIVE_WC, 190); // 120 + 2*(30+5) = 190
76
77 * Ruestungen (zB Gildennutzung):
78 Der Maximalwert fuer die P_EFFECTIVE_WC bei Kaempfern ist der jeweils
79 doppelte maximale P_AC-Wert. Angabe eines Schadenstyps ist sinnvoll.
80
81 // #3 Ein paar Schuhe, mit maximalem Schlag-/Saeureschaden.
82 SetProp(P_ARMOUR_TYPE, AT_BOOT);
83 SetProp(P_AC, 2);
84 SetProp(P_DAM_TYPE, ({DT_BLUDGEON,DT_ACID}));
85 -> SetProp(P_EFFECTIVE_WC, 12); // hoechstmoeglicher Wert bei
86 // Schuhen, da deren max. P_AC = 6
87 // aequivalent und zukunftssicher:
88 -> SetProp(P_EFFECTIVE_WC, 2 * VALID_ARMOUR_CLASS[AT_BOOT]);
89
90 // #4 Ein Schild mit spitzem Dorn. (Stichschaden beim Schildstoss.)
91 SetProp(P_ARMOUR_TYPE, AT_SHIELD);
92 SetProp(P_AC, 5);
93 SetProp(P_DAM_TYPE, ({DT_PIERCE}));
94 SetProp(P_EFFECTIVE_WC, 55);
95
96 // #5 Ein Gummischild ist schlecht fuer Angriffe. BOING!
97 SetProp(P_ARMOUR_TYPE, AT_SHIELD);
98 SetProp(P_AC, 30);
99 SetProp(P_DAM_TYPE, ({DT_BLUDGEON}));
100 SetProp(P_EFFECTIVE_WC, 10);
101
102SIEHE AUCH
103----------
104::
105
106 Waffen: P_WC, P_TOTAL_WC, HitFunc()
107 Ruestungen: P_AC, P_TOTAL_AC, P_EFFECTIVE_AC, DefendFunc()
108 Files: /std/weapon.c, /std/weapon/combat.c
109 Balance: waffen, ruestungen, properties, kaempferboni
110
1116. Nov 2011 Gloinson
112