| |
| Kaempferboni und deren Implementation |
| ------------------------------------- |
| ------------------------------------- |
| |
| Bei den Kaempfern gibt es einige Properties, die, in Waffen oder Ruestungen |
| gesetzt, der Kampfverlauf eines Spielers erheblich beeinflussen koennen. |
| |
| Zu beachten ist, dass die Abnahme von Waffen oder Ruestungen mit Kaempferboni |
| allein der Balance obliegt. Der Gildenmagier der Kaempfer steht aber gerne |
| mit Rat und Tat zur Seite. |
| |
| |
| Abschnitt A |
| ----------- |
| |
| In Waffen koennen nachfolgende, in /p/kaempfer/kaempfer.h definierten, |
| Properties gesetzt werden. Die meisten davon fungieren als 'Boni' und werden |
| dem Spieler auch mittels 'schaetz <waffe>' angezeigt: |
| |
| |
| 1 Waffenschlagbonus - K_BRAWLING_WC (INT) - "k_brawling_wc" |
| |
| Wenn die Waffe eine zusaetzlich gefaehrliche Stelle besitzt - z.B. einen |
| harten Dorn am Stielende, eine Spitze am Ruecken einer Axtklinge, Zacken |
| am Dolchgriff - kann man der Waffe einen Waffenschlagbonus geben. |
| Dies bedeutet, dass der Waffenschlag um ein paar Prozente verstaerkt wird, |
| da der Spieler natuerlich versucht, immer genau mit diesem 'feature' |
| den Waffenschlag auszufuehren (der Waffenschlag ist kurz gesagt ein |
| unerwarteter Schlag, der nicht mit dem 'normalen' Waffenende ausgefuehrt |
| wird, der Gegner wird dadurch ueberrascht -> mehr Schaden). |
| Da solch ein 'feature' doch recht auffaellig ist, sollte es in der |
| Langbeschreibung der Waffe auf jeden Fall erwaehnt werden. |
| |
| Interessant zu wissen waere noch, dass Zweihandwaffen einen generellen |
| zusaetzlichen Bonus auf den Waffenschlag bekommen und dass es eine |
| Abstufung gibt, nach der die Waffengattungen die Hoehe des Basiswertes |
| gesetzt bekommen, wobei Speere den hoechsten und Messer den niedrigsten |
| besitzen: |
| |
| Speere - Kampfstaebe - Aexte - Keulen - Schwerter - Messer |
| |
| Der max. Bonus fuer diese Property betraegt 30, wobei 1-10 -> geringer |
| Bonus, 11-20 -> guter Bonus, 21-30 -> sehr guter Bonus. |
| |
| Bitte beachten: ein Zweihand-Speer mit max. P_WC und max. K_BRAWLING_WC |
| haut entsprechend gut rein und sollte nur schwer zu ergattern sein, bzw. |
| noch andere Auflagen haben (ggf. unique, personalisiert, etc.) |
| |
| |
| 2 Waffenschlagschaden - K_BRAWLING_DT (STRING) - "k_brawling_dt" |
| |
| Wenn die Waffe, mit der der Kaempfer einen Waffenschlag ausfuehrt, ein |
| 'feature' hat, mit dem er diesen Schlag ausfuehrt, kann dieses 'feature' |
| einen anderen Waffenschlagschaden besitzen. Z.B. kann ein Schwert, welches |
| normalerweise DT_SLASH macht, besonders lange und spitze Parierstangen |
| besitzen, die vielleicht auch noch vergiftet sind. Dann kann der Magier |
| ({DT_PIERCE,DT_POISON}) setzen, so dass beim Waffenschlag immer ein |
| Mischschaden aus Stiche und Gift erfolgt. |
| |
| |
| 3 Waffenschlagsmeldung - K_BRAWLING_MSG (STRING/STRING*) - k_brawling_msg" |
| |
| In diese Property kann man hineinschreiben, mit welchem Teil der Waffe |
| der Waffenschlag ausgefuehrt wird. Angenommen, es bietet sich an, mit |
| einer Waffe stets den Waffenschlag mit einem grossen Knauf am Griff |
| auszufuehren, wird schlicht und einfach "mit einem grossen Knauf am |
| Griff der Schlachtaxt" in die Property gesetzt. |
| Sollte sich bei der Programmierung ergeben, dass es sich anbietet, der |
| Waffe mehr als nur eine guenstige Stelle anzudichten mit der man den |
| Waffenschlag ausfuehren kann, so setzt man ein Array, z.B. ({"mit einem |
| grossen Knauf am Griff der Schlachtaxt","mit der breiten Seite der " |
| "Schlachtaxtklinge"}). Insgesamt ist darauf zu achten, dass die Meldungen |
| 'vollstandig' sind. Das Array kann beliebige Groesse annehmen, es wird |
| dann zufaellig eine Meldung beim Schlag ausgesucht. |
| |
| Es empfiehlt sich, jede Waffe mit dieser Property zu schmuecken, die |
| K_BRAWLING_WC gesetzt haben, da die Waffenschlagmeldungen damit im Kampf |
| 'individualisiert' werden. In der Praxis wird es jedoch daran scheitern, |
| dass es viel zu viele alte Waffen gibt, die keiner mehr anfassen moechte. |
| Daher wird auf Standardmeldungen zurueckgegriffen, sollte diese Property |
| nicht gesetzt sein. |
| |
| |
| 4 Waffenbruchbonus - K_WEAPON_SHATTER (INT) - "k_weapon_shatter" |
| |
| Waffen, die besonders fuer den Waffenbruch konstruiert wurden, koennen |
| einen Bonus einbringen, der in dieser Property angegeben wird. Natuerlich |
| eignen sich die verschiedenen Waffentypen wieder unterschiedlich gut fuer |
| einen Waffenbruch: Keulen (meist aufgrund ihres Gewichts) am besten, Messer |
| am schlechtesten, alle anderen dazwischen (Axt - Schwert - Stab - Speer). |
| Dabei kriegen alle Waffen, die u.a. Schlagschaden verursachen, nochmal |
| einen kleinen Bonus obendrauf. |
| |
| Der max. Bonus fuer diese Property betraegt 50, wobei 1-10 -> geringer |
| Bonus, 11-30 -> guter Bonus, 31-50 -> sehr guter Bonus. |
| |
| Bei gut gelungenem Waffenbruch wird die Waffe des Gegners beschaedigt, wenn |
| die Technik sehr gut gelingt, kann es auch sein, dass dem Gegner die Waffe |
| aus der Hand geschlagen wird (der Spieler kann sie allerdings nicht |
| aufheben und der NPC zueckt sie nach ein paar Kampfrunden wieder). |
| |
| |
| 5 Bonus fuer Finte/Waffentrick - K_DISTRACTING_WEAPON (INT) - |
| "k_distracting_weapon" |
| |
| Waffen, die fuer den Gegner aufgrund ihrer Bauweise besonders irritierend |
| sein koennen, koennen einen Bonus fuer Finte und Waffentrick haben. Dabei |
| wird der Gegner bei einer Finte bzw. einem Waffentrick NOCH mehr verwirrt, |
| als er es ohnehin schon nur durch die angewandte Technik wird. |
| Ein gutes Beispiel hierfuer ist z.B. der Kriegshamster: ein Hamster, der |
| auf einem Holzstab aufgespiesst ist, sollte fuer den Gegner schon SEHR |
| irritierend sein ;). |
| Die Waffengattung hat nur wenig Einfluss auf Finte/Waffentrick. |
| |
| Der max. Bonus fuer diese Property betraegt 50, wobei 1-10 -> geringer |
| Bonus, 11-30 -> guter Bonus, 31-50 -> sehr guter Bonus. |
| |
| |
| 6 Todesstossbonus - K_CRITICAL_HIT (INT) - "k_critical_hit" |
| |
| Man stelle sich eine Waffe mit besonders spitzer, langer Klinge vor oder |
| eine magische Waffe, die dem geschwaechten Gegner die Seele entreisst. |
| Diese Eigenschaften verleihen dem Spieler beim Todesstoss einen |
| entsprechenden Bonus von bis zu 100%. |
| |
| Es ist moeglich, dass ein und dasselbe 'feature' sowohl dem Waffenschlag |
| als auch dem Todesstoss den Bonus stellt, z.B. zwei Hiebklingen auf dem |
| Klingenruecken einer grossen Axt. Auch dies sollte man deutlich aus der |
| Langbeschreibung herauslesen koennen. |
| |
| Der max. Bonus fuer diese Property betraegt 100, wobei 100 eine Verdopplung |
| der P_WC beim Todesstoss bedeutet! |
| Ansonsten bedeutet 1-20 -> geringer Bonus, 21-60 -> guter Bonus, |
| 61-100 -> sehr guter Bonus. |
| |
| |
| 7 Waffenwurfbonus - K_THROWING_WEAPON (INT) - "k_throwing_weapon" |
| |
| Wenn eine Waffe besonders gut zum Werfen geeignet ist, z.B. ein Wurfdolch, |
| dann kann diese Property gesetzt werden. Natuerlich ist der Grundwert wieder |
| von der Waffengattung abhaengig. Es gilt, dass man Messer und Speere |
| grundsaetzlich am besten werfen - und dabei gut Schaden machen - kann, am |
| schlechtesten schneiden Keulen und Kampfstaebe ab. |
| |
| Der max. Bonus fuer diese Property betraegt 50, wobei 1-20 -> geringer |
| Bonus, 21-40 -> guter Bonus, 31-50 -> sehr guter Bonus. |
| |
| Zu beachten ist hierbei, dass ein sehr hoher Bonus nur bei Waffen mit etwas |
| geringerer P_WC vergeben werden sollte. Ein reines Wurfmesser ist nunmal im |
| normalen Kampf nicht die gefaehrlichste aller Waffen (speziell |
| ausbalanciert, keinen richtigen Griff, etc.). |
| Natuerlich kann es einen Wurfspeer mit max. P_WC und sehr hohem |
| Waffenwurfbonus geben, allerdings mit den ueblich hohen Restriktionen. |
| |
| |
| 8 KO-Schlag-Bonus - K_KO (INT) - "k_ko" |
| |
| Waffen, die besonders fuer einen KO-Schlag geeignet sind, koennen einen |
| Bonus mit dieser Property bekommen. Eine entsprechende Waffe koennte z.B. |
| ein lederumwickelter Pruegel sein, denn man will den Gegner ja nur KO |
| schlagen und nicht gleich toeten. |
| |
| Der max. Bonus fuer diese Property betraegt 50, wobei 1-20 -> geringer |
| Bonus, 21-30 -> guter Bonus, 31-50 -> sehr guter Bonus. |
| |
| |
| 9 Kein Waffenschaerfen - K_NO_HONING (INT) - "k_no_honing" |
| |
| Wenn eine Waffe aus irgendeinem Grund nicht geschaerft werden kann oder |
| darf, muss man diese Property auf 1 setzen. |
| Eine Erklaerung dafuer sollte in der P_LONG bzw. P_INFO erfolgen. |
| |
| |
| Abschnitt B |
| ----------- |
| |
| Die beiden Properties, P_EFFECTIVE_AC und P_EFFECTIVE_WC, welche in |
| <combat.h> definiert sind, sind eigentlich nur dazu da, um Ruestungen und |
| Waffen, die eine DefendFunc() bzw. HitFunc() besitzen, korrekt vom Spieler |
| einschaetzen lassen zu koennnen. |
| |
| Das Kaempferspellbook verwendet diese Properties darueberhinaus wie folgt: |
| |
| |
| 1 Schutzboni in Waffen - P_EFFECTIVE_AC (INT) - "effective_ac" |
| |
| Ist diese Property in einer Waffe gesetzt, geht das Kaempferspellbook |
| davon aus, dass diese Waffe mehr oder weniger die Faehigkeit besitzt, |
| auch wie eine Ruestung schuetzen zu koennen. Da man eine Waffe aber nicht |
| anziehen, sondern nur vor sich hertragen kann, kann auch der max. |
| Ruestungsschutz einer Waffe nur gleich dem max. Ruestungsschutz eines |
| Schildes entsprechen. |
| Eine gesetzte P_EFFECTIVE_AC in einer Waffe wird dem Spieler als mehr |
| oder weniger gute 'Paradewaffe' im 'schaetz' angezeigt und geht sowohl bei |
| der Waffenparade als auch beim Block als Bonus mit ein. |
| |
| Z.B. koennte ein leichtes Schwert, was aufgrund seiner Bauweise mehr fuer |
| den defensiven Kampf ausgelegt ist (extralange Parierstangen, verstaerkter |
| Handschutz im Griffbereich, ...) wie ein maessiges Schild wirken. Die |
| Vorteile liegen auf der Hand: der Spieler bekommt verstaerkten Schutz, |
| kann aber weiterhin eine Zweihandwaffe fuehren. |
| |
| Der max. Bonus fuer diese Property betraegt 40, wobei 1-20 -> geringer |
| Bonus, 21-30 -> guter Bonus, 31-40 -> sehr guter Bonus. |
| |
| Zu beachten ist hier, dass sehr gute Parierwaffen mit P_EFFECTIVE_AC > 30 |
| moeglichst deutlich unter der max. WC liegen sollten. |
| |
| Anmerkungen: |
| Eine gesetzte P_EFFECTIVE_AC in einem Schild kann den Bonus fuer die |
| Schildparade nach oben oder unten beeinflussen. Moechte man ein Schild |
| herstellen, welches speziell bei der Schildparade der Kaempfer besser |
| als 'normal' schuetzt, sollte man hier einen Wert eintragen, der deutlich |
| groesser als die P_AC des Schildes ist. |
| |
| Eine gesetzte P_EFFECTIVE_AC in einer anderen Ruestung hat nur den Nutzen, |
| auf deren erhoehten (und nicht sofort sichtbaren) Verteidigungswert |
| hinzuweisen, der durch eine DefendFunc() realisiert wird. |
| |
| |
| 2 Angriffsboni in Ruestungen - P_EFFECTIVE_WC (INT) - "effective_wc" |
| |
| Fuer die Kaempfer koennen folgende Ruestungstypen modifiziert werden: |
| AT_TROUSERS (Hosen), AT_HELMET (Kopfbedeckung), AT_BOOT (Fusskleidung), |
| AT_ARMOUR (Koerperruestung), AT_SHIELD (Schilde). |
| Ist in einer dieser Typen P_EFFECTIVE_WC gesetzt, so macht diese Ruestung |
| bei einem Angriff mit einer Spezialattacke (Kniestoss, Kopfstoss, Fusstritt, |
| Ellbogenschlag und Schildstoss) entsprechend mehr bzw. weniger Schaden als |
| ohne diese Property. Eine entsprechende Begruendung fuer eine Verstaerkung |
| oder Schwaechung sollte auch hier fuer den Spieler offensichtlich sein |
| (Dornen am Schild, verstaerkter Kniebereich, Zacken am Helm, etc.). |
| |
| Wenn man der Ruestung einen Bonus geben moechte, muss man darauf achten, |
| dass P_EFFECTIVE_WC hoeher ist als die P_AC der Ruestung! Sollte |
| P_EFFECTIVE_WC niedriger als P_AC sein, wird dennoch P_EFFECTIVE_WC als |
| Angriffswert genommen. Dies stellt natuerlich eine Schwaechung der |
| Spezialattacke dar. Moeglicherweise ist aber genau das gewollt, wenn eine |
| Ruestung, die sehr gut schuetzt, nur geringen Kaempferbonus aufweisen soll. |
| |
| Beispiel: ein Schild aus Hartgummi kann recht gut Schlaege aller Art |
| abfangen (-> P_AC 35). Will der Kaempfer jedoch einen Schildstoss damit |
| machen, fehlt ihm aufgrund der Beschaffenheit die Wucht, eher daempft es |
| den Schildstoss noch ein wenig (-> P_EFFECTIVE_WC 25). |
| |
| Der Maximalwert fuer die P_EFFECTIVE_WC bei Kaempfern ist der jeweils |
| doppelte maximale P_AC-Wert (s. 'man ruestungen'). |
| |
| Die Angabe eines Schadenstyps (P_DAM_TYPE) in einer Ruestung kann dann |
| sinnvoll sein, wenn bei der Spezialattacke ein spezieller Schaden gemacht |
| werden soll. Beispielsweise sollten Flammenstiefel logischerweise DT_FIRE |
| und DT_BLUDGEON oder DT_PIERCE bei einem Kampftritt verursachen. Es MUSS |
| (logischerweise) mindestens ein physikalischer Schadenstyp enthalten sein. |
| Wird kein Schadenstyp angegeben, wird auf Standardtypen zurueckgegriffen. |
| |
| |
| SIEHE AUCH: |
| Waffen: P_WC, P_TOTAL_WC, P_EFFECTIVE_WC, HitFunc() |
| Ruestungen: P_AC, P_TOTAL_AC, P_EFFECTIVE_AC, DefendFunc() |
| Files: /std/weapon.c, /std/weapon/combat.c |
| Balance: waffen, ruestungen, properties |
| |
| ----------------------------------------------------------------------------- |
| 26.10.2012, Gabylon |