| |
| P_EFFECTIVE_WC |
| ************** |
| |
| |
| NAME |
| ==== |
| |
| P_EFFECTIVE_WC "effective_wc" |
| |
| |
| DEFINIERT IN |
| ============ |
| |
| <combat.h> |
| |
| |
| BESCHREIBUNG |
| ============ |
| |
| Diese Property kommt sowohl in Waffen als auch Ruestungen, die Schaden |
| machen sollen, zum Einsatz. |
| |
| Falls die Staerke einer Waffe noch durch eine HitFunc() modifiziert |
| wird, sollte hier der Effektivwert der Waffenklasse vermerkt werden, |
| soweit er sich angeben laesst. |
| Diese Property dient vor allem dazu, eine Waffe mit HitFunc() korrekt |
| einzuschaetzen. |
| |
| In einigen Gilden koennen Ruestungen auch als Waffen eingesetzt werden |
| (z.B. ein Paar Schuhe zum Treten). In dieser Property kann man die |
| Waffenklasse eintragen, die die Ruestung bei solchen Aktionen aufweisen |
| soll. Dabei ist man an die ueblichen Beschraenkungen der Waffenklasse |
| gebunden! (s. /sys/combat.h) |
| Der Ruestung kann man dann auch einen Schadenstyp mit auf den Weg |
| geben. |
| |
| |
| BEMERKUNGEN |
| =========== |
| |
| Das Kaempferspellbook verwendet bei Ruestungen P_AC, wenn |
| P_EFFECTIVE_WC nicht gesetzt ist. |
| |
| |
| BEISPIELE |
| ========= |
| |
| * HitFuncs: |
| Der doppelte Mittelwert der HitFunc wird zur Basis-WC dazuaddiert, |
| da sich der 'Angriffswert = random(Basis-WC) + absolut(HitFunc-Wert)' |
| berechnet. |
| |
| // #1 Waffe mit Basis-WC 120 und randomisierter HitFunc |
| SetProp(P_WC, 120); |
| SetProp(P_HIT_FUNC, this_object()); |
| |
| |
| |
| int HitFunc(...) { |
| return random(30); // Mittelwert: 15 |
| } |
| -> SetProp(P_EFFECTIVE_WC, 150); // 120 + 2*15 = 150 |
| |
| |
| |
| // #2 Waffe mit Basis-WC 120 und teilweise absoluter HitFunc |
| SetProp(P_WC, 120); |
| SetProp(P_HIT_FUNC, this_object()); |
| |
| |
| |
| int HitFunc(...) { |
| return 30 + random(10); // Mittelwert: 30 + 5 |
| } |
| -> SetProp(P_EFFECTIVE_WC, 190); // 120 + 2*(30+5) = 190 |
| |
| * Ruestungen (zB Gildennutzung): |
| Der Maximalwert fuer die P_EFFECTIVE_WC bei Kaempfern ist der jeweils |
| doppelte maximale P_AC-Wert. Angabe eines Schadenstyps ist sinnvoll. |
| |
| // #3 Ein paar Schuhe, mit maximalem Schlag-/Saeureschaden. |
| SetProp(P_ARMOUR_TYPE, AT_BOOT); |
| SetProp(P_AC, 2); |
| SetProp(P_DAM_TYPE, ({DT_BLUDGEON,DT_ACID})); |
| -> SetProp(P_EFFECTIVE_WC, 12); // hoechstmoeglicher Wert bei |
| // Schuhen, da deren max. P_AC = 6 |
| // aequivalent und zukunftssicher: |
| -> SetProp(P_EFFECTIVE_WC, 2 * VALID_ARMOUR_CLASS[AT_BOOT]); |
| |
| // #4 Ein Schild mit spitzem Dorn. (Stichschaden beim Schildstoss.) |
| SetProp(P_ARMOUR_TYPE, AT_SHIELD); |
| SetProp(P_AC, 5); |
| SetProp(P_DAM_TYPE, ({DT_PIERCE})); |
| SetProp(P_EFFECTIVE_WC, 55); |
| |
| // #5 Ein Gummischild ist schlecht fuer Angriffe. BOING! |
| SetProp(P_ARMOUR_TYPE, AT_SHIELD); |
| SetProp(P_AC, 30); |
| SetProp(P_DAM_TYPE, ({DT_BLUDGEON})); |
| SetProp(P_EFFECTIVE_WC, 10); |
| |
| |
| SIEHE AUCH |
| ========== |
| |
| Waffen: P_WC, P_TOTAL_WC, HitFunc() |
| Ruestungen: P_AC, P_TOTAL_AC, P_EFFECTIVE_AC, DefendFunc() |
| Files: /std/weapon.c, /std/weapon/combat.c |
| Balance: waffen, ruestungen, properties, kaempferboni |
| |
| 6. Nov 2011 Gloinson |