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