kaempferboni
============

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

