blob: ff7dd53482e806291d9acc963f07f3b4255ec4b0 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001P_EFFECTIVE_AC
2
3NAME:
4 P_EFFECTIVE_AC "effective_ac"
5
6DEFINIERT IN:
7 <combat.h>
8
9BESCHREIBUNG:
10 Diese Property kommt sowohl in Ruestungen als auch in Waffen, die
11 schuetzen sollen, zum Einsatz.
12
13 In Ruestungen kann hier der Effektivwert der Ruestungsklasse vermerkt
14 werden, wenn diese noch durch eine DefendFunc() modifiziert wird
15 (soweit sich ein solcher Effektivwert angeben laesst).
16
17 In einigen Gilden koennen Waffen auch als Ruestung eingesetzt werden
18 (z.B. beim Parieren eines Angriffs). In dieser Property kann man die
19 Ruestungsklasse eintragen, die die Waffe bei solchen Aktionen aufweisen
20 soll. Dabei ist man an die ueblichen Beschraenkungen der
21 Ruestungsklasse gebunden! (s. /sys/combat.h)
22
23BERMERKUNGEN:
24 Das Kaempferspellbook verwendet fuer Paraden etc. P_EFFECTIVE_AC anstatt
25 P_AC, wenn verfuegbar.
26
27BEISPIELE:
28 * DefendFuncs:
29 Der doppelte Mittelwert der DefendFunc wird zur Basis-AC dazuaddiert,
30 da sich der 'Schutzwert = random(Basis-AC) + absolut(DefendFunc-Wert)'
31 berechnet.
32
33 // #1 Eine Ruestung mit P_AC von 35 und randomisierter DefendFunc
34 SetProp(P_AC, 35);
35 SetProp(P_DEFEND_FUNC, this_object());
36
37 int DefendFunc(...) {
38 return random(20); // Mittelwert: 10
39 }
40 -> SetProp(P_EFFECTIVE_AC, 55); // 35 + 2*10 = 55
41
42 // #2 Eine Ruestung mit P_AC von 35 und teilrandomisierter DefendFunc
43 SetProp(P_AC, 35);
44 SetProp(P_DEFEND_FUNC, this_object());
45
46 int DefendFunc(...) {
47 return 20 + random(10); // Mittelwert: 20 + 5
48 }
49 -> SetProp(P_EFFECTIVE_AC, 85); // 35 + 2*(20+5) = 85
50
51 * Sonderfunktion im Kontext der Kaempfergilde:
52 Auch wenn der eigentliche AC-Wert durch keine DefendFunc oAe
53 modifiziert wird, sind abweichende Werte in P_EFFECTIVE_AC zB in der
54 Kaempfergilde fuer Paraden oder aehnliches sinnvoll. Maximalwert ist
55 dafuer der doppelte Wert des Basis-AC-Wertes.
56
57 // #3 Ein schon sehr gutes Schild, welches bei der Schildparade aber
58 // noch besser schuetzen soll.
59 SetProp(P_ARMOUR_TYPE, AT_SHIELD);
60 SetProp(P_AC, 38);
61 SetProp(P_EFFECTIVE_AC, 55);
62
63 // #4 Ein sehr labbriges Schild schuetzt zwar gegen normale Schlaege,
64 // ist zum Parieren aber irgendwie ungeeignet weil unkontrollierbar.
65 SetProp(P_ARMOUR_TYPE, AT_SHIELD);
66 SetProp(P_AC, 38);
67 SetProp(P_EFFECTIVE_AC, 20);
68
69 * Waffen:
70 P_EFFECTIVE_AC wird im Kaempferspellbook als Bonus dazugezaehlt! Daher
71 sollten gute Parierwaffen auch einen niedrigeren P_WC-Wert haben.
72 Reine Parierwaffen duerfen den maximalen AC-Wert von Schilden als
73 Maximum gesetzt haben - die Balance klaert ggf, ob das auch auf den
74 Gildenparierwert anwendbar ist.
75
76 // #5 Eine maessige Hellebarde/Axtwaffe mit Parierhaken.
77 SetProp(P_WEAPON_TYPE, WT_AXE);
78 SetProp(P_WC, 100);
79 SetProp(P_EFFECTIVE_AC, 25);
80
81SIEHE AUCH:
82 Waffen: P_WC, P_TOTAL_WC, P_EFFECTIVE_WC, HitFunc()
83 Ruestungen: P_AC, P_TOTAL_AC, DefendFunc()
84 Files: /std/weapon.c, /std/weapon/combat.c
85 Balance: waffen, ruestungen, properties, kaempferboni
86
876. Nov 2011 Gloinson