Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/balance/artillerie b/doc/balance/artillerie
new file mode 100644
index 0000000..914278d
--- /dev/null
+++ b/doc/balance/artillerie
@@ -0,0 +1,63 @@
+Regeln fuer Artillerie-Objekte
+==============================
+
+1. Definition von Artillerie
+----------------------------
+
+Unter dem Begriff "Artillerie" fasst man alle Objekte zusammen, die
+zusaetzlich zu den vorhandenen Gildenfaehigkeiten durch ein vom
+Spieler initiiertes Kommando direkt Schaden an einem oder mehreren
+Gegnern verursachen.
+
+Waffen und Ruestungen, welche per Kommando Schaden verursachen (z. B.
+Eisstab, Ring vom Schlammdrachen), fallen unter diese
+Definition. Waffen und Ruestungen, die "von sich aus" (ueblicherweise
+per Hit-/DefendFunc) Schaden verursachen (z. B. Todesdrachenpanzer,
+Goblinring), fallen nicht unter diese Definition, sind aber natuerlich
+nach wie vor genehmigungspflichtig.
+
+2. Basisanforderungen
+---------------------
+
+Solche Artillerie muss folgenden Anforderungen genuegen:
+
+ a. Artillerie _muss_ P_ATTACK_BUSY beachten (setzen/abfragen).
+ b. Artillerie _muss_ bei Verwendung Konzentrationspunkte
+ verbrauchen.
+ c. Artillerie darf nicht (bzw. nur begrenzt) gehortet werden
+ koennen.
+ d. Artillerie darf bei Paralyse nicht angewendet werden koennen
+ (P_DISABLE_ATTACK).
+ e. Artillerie muss durch Setzen der Property P_IS_ARTILLERY
+ gekennzeichnet sein.
+ f. Artillerie, die Munition benutzt oder selbst Munition ist (wie z.B.
+ Wurfsterne), muss das Unitobjekt und den dortigen Mechanismus zum
+ Zerfall von Objekten nutzen. Dabei sind P_UNIT_DECAY_INTERVAL und
+ P_UNIT_DECAY_QUOTA so zu setzen, dass die Munition eine Halbwertszeit
+ zwischen 5 und 10 Tagen hat, der ihrer Verfuegbarkeit angemessen
+ ist. Dies laesst sich durch geeignetes Einstellen des
+ Prozentsatzes und/oder der Resetzeit erreichen.
+
+ Beispiele:
+ Setzt man p=1% Zerfall pro Reset an, dann muss der Reset
+ fuer eine Halbwertszeit von 5 Tagen dann
+ t=ln(0.5)/ln(0,99)*5*24*3600 s dauern, das sind 6224 s.
+
+ Moechte man lieber den normalen Reset, der im Mittel 45 min, d.h. 160
+ Resets in 5 Tagen betraegt, so erhaelt man folgenden Prozentsatz:
+ p = 1-0,5^(1/160) d.h. ca. 0,43%.
+ g. Artillerie ist immer genehmigungspflichtig.
+
+Details werden fallweise entschieden.
+
+
+3. Inkraftreten
+---------------
+
+Diese Regeln treten am 5. August 2003 in Kraft.
+Revision am 5. April 2008
+Revision am 7. April 2011
+Revision am 24. August 2011
+
+--------------------------------------------------------------------------
+Letzte Aenderung: Mi, 24.8. 2011 von Humni
diff --git a/doc/balance/attribute b/doc/balance/attribute
new file mode 100644
index 0000000..c1b7f9b
--- /dev/null
+++ b/doc/balance/attribute
@@ -0,0 +1,45 @@
+
+ ATTRIBUTVERAENDERUNGEN
+
+ Positive Veraenderungen an Spielerattributen sind auf jeden Fall von
+ der Balance zu genehmigen. Dabei gelten folgende Regeln:
+
+ - Soll eine Attributveraenderung durch das Tragen/Zuecken von Ruestungen
+ oder Waffen ausgeloest werden, geschieht dies ueber das Setzen der
+ Property P_M_ATTR_MOD. Auch negative Veraenderungen sind von der Balance
+ zu genehmigen, da diese Property mit P_X_ATTR_MOD interagiert.
+ - Soll schon der Besitz eines Objektes die Attributveraenderung
+ ausloesen, muss P_X_ATTR_MOD gesetzt werden. Auch negative
+ Veraenderungen sind von der Balance zu genehmigen, da diese Property
+ mit P_M_ATTR_MOD interagiert.
+ - Soll eine Attributveraenderung ohne Beruecksichtigung der Properties
+ P_M_ATTR_MOD und P_X_ATTR_MOD verändert werden, geschieht das ueber die
+ Property P_TIMED_ATTR_MOD.
+
+
+ Attributveraenderungen sind mit der Balance abzuklaeren.
+
+ Als Regeln sieht die Balance vor:
+ - Bei Objekten mit einem einzelnen Bonus darf +10 nicht ueberschritten
+ werden.
+ - Bei Objekten mit einem einzigen Malus darf -4 nicht unterschritten
+ werden.
+ - Bei Objekten mit mehreren positiven oder negativen Veraenderungen
+ darf die Summe +4 bzw. -4 nicht ueber/unterschreiten.
+ - Es duerfen nicht mehr als 2 Attribute in einem Objekt geaendert
+ werden. Die Differenz darf 6 nicht ueberschreiten.
+ - Ja hoeher die Attributsveraenderung, um so schlechter sollte das
+ Objekt sonst sein (keine AC 50 mit Ausdauer +10 oder auch -4).
+ - Alle Objekte, die Attribute veraendern, muessen Ruestungs- oder
+ Waffenslots belegen. Ausnahme sind Krankheiten, die der Spieler
+ nicht steuern kann.
+
+ SIEHE AUCH
+
+ balance, ruestungen, waffen, fernwaffen, uniques, npcs,
+ resistenzen, kampfobjekte, grenzwerte
+
+
+------------------------------------------------------------------------------
+Last modified: Thu 2011-04-07 by Humni
+
diff --git a/doc/balance/attributsveraenderungen b/doc/balance/attributsveraenderungen
new file mode 100644
index 0000000..ddd6bf0
--- /dev/null
+++ b/doc/balance/attributsveraenderungen
@@ -0,0 +1,47 @@
+
+ ATTRIBUTVERAENDERUNGEN
+
+ Positive Veraenderungen an Spielerattributen sind auf jeden Fall von
+ der Balance zu genehmigen. Dabei gelten folgende Regeln:
+
+ - Soll eine Attributveraenderung durch das Tragen/Zuecken von Ruestungen
+ oder Waffen ausgeloest werden, geschieht dies ueber das Setzen der
+ Property P_M_ATTR_MOD. Auch negative Veraenderungen sind von der Balance
+ zu genehmigen, da diese Property mit P_X_ATTR_MOD interagiert.
+ - Soll schon der Besitz eines Objektes die Attributveraenderung
+ ausloesen, muss P_X_ATTR_MOD gesetzt werden. Auch negative
+ Veraenderungen sind von der Balance zu genehmigen, da diese Property
+ mit P_M_ATTR_MOD interagiert.
+ - Soll eine Attributveraenderung ohne Beruecksichtigung der Properties
+ P_M_ATTR_MOD und P_X_ATTR_MOD verändert werden, geschieht das ueber die
+ Property P_TIMED_ATTR_MOD.
+
+
+ Attributveraenderungen sind mit der Balance abzuklaeren.
+
+ Als Regeln sieht die Balance vor:
+ - Bei Objekten mit einem einzelnen Bonus darf +10 nicht ueberschritten
+ werden.
+ - Bei Objekten mit einem einzigen Malus darf -4 nicht unterschritten
+ werden.
+ - Bei Objekten mit mehreren positiven oder negativen Veraenderungen
+ darf die Summe +4 bzw. -4 nicht ueber/unterschreiten.
+ - Es duerfen nicht mehr als 2 Attribute in einem Objekt geaendert
+ werden. Die Differenz darf 6 nicht ueberschreiten.
+ - Ja hoeher die Attributsveraenderung, um so schlechter sollte das
+ Objekt sonst sein (keine AC 50 mit Ausdauer +10 oder auch -4).
+ - Alle Objekte, die Attribute veraendern, muessen Ruestungs- oder
+ Waffenslots belegen. Ausnahme sind Krankheiten, die der Spieler
+ nicht steuern kann und Aehnliches. Damit sind auch Stellen verboten,
+ an der Spieler derartige Krankheiten gezielt bekommen und loswerden
+ kann. Im Zweifel entscheidet die Balance.
+
+ SIEHE AUCH
+
+ balance, ruestungen, waffen, fernwaffen, uniques, npcs,
+ resistenzen, kampfobjekte, grenzwerte
+
+
+------------------------------------------------------------------------------
+Last modified: Thu 2011-06-10 by Humni
+
diff --git a/doc/balance/balance b/doc/balance/balance
new file mode 100644
index 0000000..658d8c5
--- /dev/null
+++ b/doc/balance/balance
@@ -0,0 +1,73 @@
+
+Kurzer Abriss unseres Aufgabenbereiches:
+---------------------------------------
+
+1) Was wird von uns begutachtet?
+
+ Alle Ruestungen und Waffen, die ueber eine DefendFunc
+ verfuegen, die fuer Spieler von Nutzen ist.
+
+ Alle Ruestungen und Waffen, die ueber eine HitFunc
+ verfuegen, die fuer Spieler von Nutzen ist.
+
+ Alle Ruestungen und Waffen, deren AC/WC die Genehmigungs-
+ grenze ueberschreitet. Auch solche, bei denen dies erst
+ in einer Hit- oder DefendFunc der Fall ist.
+
+ Alle Ruestungen und Waffen, die einen genehmigungs-
+ pflichtigen Schadenstyp enthalten.
+
+ Alle Objekte, die in irgendeiner Weise das Kampfgeschehen
+ beeinflussen.
+
+2) Was entscheiden wir fuer Gilden?
+
+ Nur Kaempfer-Boni in Waffen und Ruestungen (Waffenschlag, Finte).
+ Alle anderen Gilden, z.B. Unterstuetzungen fuer Zauberer-Sprueche,
+ Chaoskomponenten unterliegen dem zustaendigen GildenMagier und
+ der GildenBalance.
+
+ Selbst ueber Einschraenkungen fuer Gilden haben wir nicht zu
+ entscheiden. Wenn ein Magier sein Objekt nur fuer Chaoten nutz-
+ bar machen moechte, macht er das eben. Oder wenn er Tanjian aus-
+ schliessen moechte ebenfalls. Das nennt sich dann Programmier-
+ freiheit.
+
+3) Was ist mit Objekten, die keine Waffe/Ruestung sind?
+
+ Hier unterliegen alle Objekte unserer Begutachtung, die irgend-
+ wie eine kampfrelevante Bedeutung haben. Dazu zaehlt:
+
+ - Schaden verursachen koennen (Saeurekugeln)
+ - Paralysetools (graue Steine)
+ - Begleit-Npc (Einhorn, Feuerelementar)
+ - Informationen ueber eingehende Schadenstypen geben
+ - Waffen/Ruestungen manipulieren koennen (Geisterhauch, Blutstropfen)
+ - Informationen ueber Npc, Raeume, Reset-Zeiten usw. ausgeben
+ - Werte manipulieren (Attribute oder Geschwindigkeit erhoehen)
+
+ Ein Sonderfall stellen hier Objekte dar, die vom Typ AT_MISC oder
+ WT_MISC sind. Fuer diese gilt:
+
+ - Sie duerfen keinerlei positive Veraenderungen im Spieler vor-
+ nehmen
+ - Sie duerfen keinerlei kampfrelevante Bedeutung haben (im Sinne
+ von Spell-/Skill-/Gegner-Manipulation, Attributsveraenderungen,
+ Heilungen, Informationen u.a.) oder sonstwie einen Kampf be-
+ einflussen
+ - Sie duerfen ueber keine Hit- oder DefendFunc verfuegen. Die AC
+ bzw. WC solcher Objekte ist immer 0
+
+4) Worauf ist besonders zu achten?
+
+ Die Grenzwerte bei Waffen und Ruestungen sollen den fuer diesen
+ Typ geltenden Wert nur im seltensten Fall ueberschreiten. Dies
+ gilt auch fuer Werte einer Defend- oder HitFunc.
+
+ Boni aus einer Defend- oder HitFunc sind IMMER per random() zu
+ geben!
+
+ Besonders gute Objekte haben ueber Restriktionen zu verfuegen.
+
+ Besonders gute Objekte sollten auch Nachteile haben.
+
diff --git a/doc/balance/begleitnpcs b/doc/balance/begleitnpcs
new file mode 100644
index 0000000..d8554a5
--- /dev/null
+++ b/doc/balance/begleitnpcs
@@ -0,0 +1,22 @@
+BEGLEITNPCS
+-----------
+
+Manche NPCs unterstuetzen den Spieler im Kampf und laufen mit ihm mit.
+Als Regeln fuer diese NPCs hat die Balance folgende Regeln aufgestellt:
+
+a. NPCs _muessen_ sich im Spieler registrieren.
+b. Man darf nur einen Kampfhelfer zur gleichen Zeit beschwoeren, ausnahmen
+koennen statische NPCs nach Absprache sein.
+c. Kein Kampfhelfer darf eine staerkere Resistenz als -0.5 haben
+d. Ist ein Kampfhelfer in einer bestimmten Kathegorie (Angriff, verteidigung
+...) deutlich besser als Durchschnittliche Gilden-NPCs, muss er entsprechende
+Nachteile mitbringen. Denkbar waeren z.B.: Kurze Haltbarkeit, teuer in der
+Anschaffung, teuer im Unterhalt, kann nicht betankt/geheilt/bewegt werden, hat
+nur wenig LP, grosse Anfaelligkeiten usw.
+e. Im Normalfall sollten Begleit-NPCs nicht in Teams eintreten. Eine Ausnahme
+koennte z.B. ein Bogenschuetze, der sich in die zweite Reihe stellt oder etwas
+in der Art sein.
+
+Zum Registrieren der NPCs siehe RegisterHelperNPC und UnregisterHelperNPC.
+
+2011-02-22, Humni
diff --git a/doc/balance/fernwaffen b/doc/balance/fernwaffen
new file mode 100644
index 0000000..e070984
--- /dev/null
+++ b/doc/balance/fernwaffen
@@ -0,0 +1,94 @@
+Mit Fernwaffen sind uebrigens ausnahmslos Waffen gemeint, die Munition
+benoetigen, nicht etwa Speere oder dergleichen. Alle Fernwaffen sind
+ausnahmslos genehmigungspflichtig, das gilt auch fuer jegliche Munition.
+
+Properties in Fernwaffen und ihre Bedeutung:
+
+ P_WC
+ Vorsicht mit dieser Property. Bei Fernwaffen gibt sie _nur_ den
+ Schaden bei Zweckentfremdung der Waffe als Knueppel an.
+ Dementsprechend ist dieser Wert extrem niedrig zu halten.
+ Standardwert ist hier 30, der auch nur in Ausnahmefaellen
+ ueberschritten werden sollte. Kaum eine Armbrust oder ein Bogen
+ taugt nunmal als grossartige Nahkampfwaffe.
+
+ P_QUALITY
+ Wird nur beim Nahkampf mit der Waffe beachtet. Standardmaessig auf
+ 100 gesetzt, da Boegen und Armbrueste leicht beschaedigt werden,
+ wenn man damit auf jemanden einpruegelt.
+
+ P_HIT_FUNC
+ HitFunc fuer den _Nahkampf_. Hat beim Schuss mit der Waffe keinen
+ Einfluss.
+
+ P_NR_HANDS
+ Boegen und Armbrueste sind in jedem Fall zweihaendig. Einhaendige
+ Fernwaffen sind aber denkbar (Schlingen zum Schleudern kleiner
+ Steine z.B.)
+
+ P_SHOOTING_WC
+ Die Basis-Waffenklasse der Fernwaffe. Zu ihr wird die Waffenklasse
+ der Munition addiert, um den endgueltigen Angriffswert beim Schuss
+ zu berechnen.
+
+ P_RANGE
+ Reichweite der Waffe in Metern. Wichtig, wenn aus Containern
+ (Wachtuermen, Schiffen, etc.) nach aussen geschossen wird.
+ Damit das funktioniert, muss dieser Wert hoeher sein als der
+ im Container definierte (steht dort in der P_SHOOTING_AREA).
+
+ P_STRETCH_TIME
+ Anzahl der Runden, die zum Laden/Spannen der Waffe benoetigt
+ werden. 1 ist hier der Standardwert, das bedeutet, es kann jede
+ Runde geschossen werden.
+
+ P_AMMUNITION
+ Benoetigter Munitionstyp. Hier ist eine der moeglichen Konstanten
+ (MUN_*) einzusetzen (z.B. MUN_ARROW fuer Boegen).
+
+ P_NOGET
+ Hat bei Fernwaffen eine zusaetzliche Bedeutung. Wenn gesetzt, muss
+ die Waffen nicht gezueckt werden, um sie abfeuern zu koennen. Das
+ ist z.B. fuer Katapulte gedacht, die im Raum stehen.
+
+ Fuer die Munition gibt es kein Standardobjekt. Wichtig ist nur, dass
+ die entsprechenden Properties gesetzt sind. Normalerweise sollte die
+ Munition natuerlich eine Unit sein, aber auch Einzelobjekte (ein
+ besonderer Pfeil oder ein grosser Stein fuer ein Katapult) sind
+ moeglich.
+
+Properties fuer die Munition sind:
+
+ P_SHOOTING_WC
+ Die Waffenklasse der Munition. Wird zur WC der Waffe addiert.
+
+ P_DAM_TYPE
+ Schadenstyp der Munition. Sollte normalerweise DT_PIERCE fuer
+ Pfeile aller Art und DT_BLUDGEON fuer stumpfe Munition wie Steine
+ sein. Magische Schadensarten sind aber natuerlich moeglich.
+
+ P_HIT_FUNC
+ HitFunc, die beim Schuss mit der Munition benutzt wird.
+
+ Ausserdem muss in der Munition mittels AddId() der entsprechende
+ Munitionstyp gesetzt werden, z.B. MUN_ARROW.
+
+Genehmigungsgrenzen:
+-------------------
+ Alle Waffen dieser Art sind grundsaetzlich genehmigungspflichtig.
+ Folgende Werte sollten allerdings Obergrenzen darstellen, die
+ im Normalfall nicht zu Ueberschreiten sind:
+
+ Waffe kann jede Runde abgefeuert werden: P_SHOOTING_WC 100
+ Waffe braucht eine Ladezeit : P_SHOOTING_WC 130
+
+ Die Obergrenze fuer Munition liegt bei : P_SHOOTING_WC 60.
+
+ Vorsichtig mit P_SHOOTING_AREA in Raeumen/Containern.
+
+ Bisher ist dieses Schiessen von Raum zu Raum weitestgehend ungetestet,
+ und es ist nicht klar, welche Probleme das verursachen kann. Wenn
+ eventuelle Ziele keine Moeglichkeit haben, sich zu wehren oder
+ wegzulaufen, ist schnell jegliche Balance dahin. Die Regionsmagier
+ haben bei Abnahme von Gebieten darauf zu achten, dass diese Property
+ nur in wenigen, gut begruendeten Raeumen gesetzt wird.
diff --git a/doc/balance/grenzwerte b/doc/balance/grenzwerte
new file mode 100644
index 0000000..f2fc1a6
--- /dev/null
+++ b/doc/balance/grenzwerte
@@ -0,0 +1,58 @@
+ GRENZWERTE
+
+ Waffen:
+
+ Einhaendige Waffen : ab P_WC >= 140
+ Zweihaendige Waffen : ab P_WC >= 175
+
+ Fuer Waffen die einen nichtphysikalischen Schadenstyp enthalten:
+
+ Einhaendige Waffen : ab P_WC >= 120
+ Zweihaendige Waffen : ab P_WC >= 150
+
+ Genehmigungspflichtig sind auch generell Waffen, die als Schadens-
+ typ DT_TERROR, DT_SOUND, DT_AIR oder DT_SQUEEZE enthalten, unabhaengig
+ von der WC.
+
+ Der Schadenstyp DT_EXPLOSION wird nicht mehr genehmigt.
+
+ Alle Waffen mit HitFunc oder entsprechender Funktion muessen genehmigt
+ werden (Es sei denn diese wirken nur bei !interactive() oder erhoehen
+ den Schaden nicht).
+
+ Ruestungen:
+
+ +--------------+--------+----------------------------+
+ | Ruestungstyp | MAX_AC | Genehmigungsgrenze (inkl.) |
+ +--------------+--------+----------------------------+
+ | AT_AMULET | 2 | -- |
+ | AT_ARMOUR | 50 | 38 |
+ | AT_BELT | 2 | -- |
+ | AT_BOOT | 6 | 5 |
+ | AT_CLOAK | 10 | 8 |
+ | AT_GLOVE | 5 | 5 |
+ | AT_HELMET | 15 | 13 |
+ | AT_QUIVER | 0 | -- |
+ | AT_RING | 2 | -- |
+ | AT_SHIELD | 40 | 28 |
+ | AT_TROUSERS | 15 | 13 |
+ | AT_MISC | 0 | -- |
+ +--------------+--------+----------------------------+
+
+ Ruestungen mit DefendFunc o.ae. muessen generell genehmigt werden
+ (siehe Waffen).
+
+ Ruestungen und Waffen vom Typ AT_MISC oder WT_MISC duerfen keiner-
+ lei positive Veraenderungen im Spieler hervorrufen, keine Stats
+ veraendern oder sonstwie kampfrelevante Bedeutung haben. Die WC/AC
+ solcher Objekte ist immer 0 und wird auch nicht anders genehmigt.
+
+ SIEHE AUCH
+
+ balance, ruestungen, fernwaffen, uniques, npcs, schadenstypen
+ attributsveraenderungen, resistenzen, kampfobjekte
+
+
+------------------------------------------------------------------------------
+ LETZTE AeNDERUNG:
+ Don, 03.01.02, 12:00:00 von Tilly
diff --git a/doc/balance/kaempferproperties b/doc/balance/kaempferproperties
new file mode 100644
index 0000000..a7ed271
--- /dev/null
+++ b/doc/balance/kaempferproperties
@@ -0,0 +1,9 @@
+Properties in Waffen fuer Trves und ihre Hoechstwerte:
+-----------------------------------------------------
+
+K_THROWING_WEAPON Waffenwurf ==> Max: 50
+K_BRAWLING_WC Waffenschlag ==> Max: 30
+K_WEAPON_SHATTER Waffenbruch ==> Max: 50
+K_DISTRACTING_WEAPON Finte / Waffentrick ==> Max: 50
+K_CRITICAL_HIT Todesstoss ==> Max: 100
+
diff --git a/doc/balance/kaempferwaffen b/doc/balance/kaempferwaffen
new file mode 100644
index 0000000..0666316
--- /dev/null
+++ b/doc/balance/kaempferwaffen
@@ -0,0 +1,143 @@
+
+ Spezial-Waffen fuer die Kaempfergilde
+ -------------------------------------
+
+Fuer die Waffen bzw. Ruestungen muss /p/kaempfer/kampf.h includet werden.
+
+
+
+Zuerst einmal was ueber den Weapon-Type. Zum hundertesten male der Hinweis,
+dass es nicht nur Schwerter gibt! Obwohl die Kaempfer jede beliebige
+Waffe benutzen koennen, gibt es doch, je nach Rasse, sehr grosse Unter-
+schiede. Nur um ein Beispiel zu nenne:
+Ein Hobbit, der alle Werte auf 100% hat, hat mit dem Knochenschaelmesser
+(WC 145) einen hoeheren Angriffswert als mit einer Lanze (WC 200)!!!
+
+
+1) Parierwaffen
+
+ Parierwaffen eigenen sich vor allem zum Parieren, wie z.B. der Sai.
+ Da man mit solchen Waffen oft auch die gegnerische Waffe festhalten
+ kann, gilt der Bonus auch fuer den Block. Parierwaffen haben meistens
+ eine nicht so hohe WC.
+ Es wird die Property P_EFFECTIVE_AC gesetzt.
+ Normale Waffen, die zusaetzlich zum Parieren geeignet sind:
+ P_EFFECTIVE_AC: 1 - 15
+ Reine Parierwaffen mit niedriger WC:
+ P_EFFECTIVE_AC: 20 - 30
+
+2) Wurfwaffen
+
+ Wurfwaffen sind speciell ausbalanziert, besitzen meist keinen richtigen
+ Griff etc. Aus diesem Grunde sollte ihre WC nicht zu hoch sein.
+ Es wird K_THROWING_WEAPON gesetzt. Der Wert sollte zwischen 1-50
+ liegen, wobei wirklich nur sehr gute Wurfwaffen mit niedrigerer
+ WC Werte zwischen 35 - 50 haben sollten.
+
+3) Waffen mit ungewoehnichen Angriffsmoeglichkeiten
+
+ Man kann an Waffen auch an ungewoehnlicher Stelle zusaetzliche
+ Angriffsmoeglichkeiten anbauen. So koennte z.B. die Parierstange
+ bei einem Schwert aus Klingen bestehen, oder das Ende des Stiels
+ bei einer Axt in einem Dorn enden. Beim Waffenschlag wird mit
+ diesen Extrawaffen gearbeitet. Diese Besonderheiten (Klinge am
+ Pommel des Griffs, etc) sollten natuerlich auch in P_LONG
+ erwaehnt werden, schliesslich sind sie ja mit blossem Auge
+ zu erkennen.
+ Property: K_BRAWLING_WC mit Werten zwischen 1 - 30
+ Weiterhin besteht die Moeglichkeit dieser zusaetzlichen Angriffs-
+ moeglichkeit einen eigenen Schadenstyp zu geben. Dazu setzt man
+ die Property K_BRAWLING_DT (analog zu P_DAM_TYPE).
+
+4) Waffen, die andere Waffen zerstoeren sollen
+
+ Als Kaempfer kann man versuchen, die Waffe des Gegners zu beschaedigen.
+ Dafuer eignen sich natuerlich besonders schwere Waffen, vor allem
+ z.B. Haemmer. Man koennte natuerlich Waffen konstruieren, die besonders
+ dafuer geeignet sind. Dafuer wird K_WEAPON_SHATTER gesetzt.
+ Der Wert sollte zwischen 1 - 50 liegen.
+
+5) Waffen, die besonders gut fuer den KO-Schlag sind
+
+ Der Kaempfer kann versuchen einen Gegner zu betaeuben. Dies geschied
+ in der Regel durch einen Schlag auf den Kopf. Je hoeher das Gewicht
+ der Waffe, desto besser. Es gibt natuerlich Waffen, die dafuer besonders
+ geeignet sind (z.B Todstschlaeger). Dann wird K_KO als Property gesetzt.
+ Der Wert sollte zwischen 1 - 50 liegen.
+
+6) Waffen, die den Gegner besonders gut ablenken koennen
+
+ Es gibt natuerlich Waffen, die den Gegner leicht ablenken koennen.
+ Dies ist fuer Finten und den Waffentrick sehr nuetzlich. Eine solche
+ Waffe ist z.B. der singende Speer, der den Gegner (und den Traeger)
+ fuerchterlich nervt. Gesetzt wird K_DISTRACTING_WEAPON, wobei
+ der Wert zwischen 1 - 50 liegen sollte.
+
+7) Waffen, die beim Todesstoss besonders effektiv sind
+
+ Man kann sich Waffen vorstellen, die speziell fuer den Todesstoss
+ geeignet sind. Vor allem magische Waffen, die z.B. die Seele aus dem
+ geschwaechten Koerper des Gegners reissen, sind vorstellbar. Oder
+ Waffen mit besonders langen, spitzen und duennen Klingen, die sich
+ tief in den Gegner bohren. Es wird K_CRITICAL_HIT gesetzt, der
+ Wert liegt zwischen 1 und 100, wobei 100 eine Verdopplung des
+ Schadens ergibt!!! Also wirklich sehr vorsichtig verwenden!!!!!
+
+
+8) Schilde fuer den Schildstoss
+
+ Ist ein Schild extra fuer den Schildstoss angefertigt (hat es z.B. einen
+ Dorn montiert, mit dem man gefaehrlich den Gegner rammen kann) so
+ kann im Schild P_EFFECTIVE_WC gesetzt werden. Ausserdem ist es moeglich
+ einen bestimmten Schadenstyp mit P_DAM_TYPE anzugeben (Feuerschild).
+
+9) Special-Ruestungen
+
+ Folgende Ruestungstypen koennen fuer die Kaempfer modifiziert werden:
+ AT_TROUSERS; AT_HELMET; AT_ARMOUR; AT_BOOT. Dabei sind drei verschiedene
+ Sachen moeglich.
+ a) P_EFFECTIVE_AC wird gesetzt, wenn die Ruestung durch besondere
+ DefendFunc's einen hoeheren Schutz als die AC macht
+ b) Die Ruestung soll auch als Waffe zu verwenden sein (Stiefel beim
+ Kampftritt, Hose beim Kniestoss, Helm beim Kopfstoss und Ruestung
+ beim Ellbogenschlag). z.B. waeren Dornen an den Stiefeln denkbar.
+ Dadurch werden die Stiefel ja nicht als Schutz besser, aber als
+ Waffe. Deshalb P_EFFECTIVE_WC setzen. Den Wert nicht hoeher als
+ doppelte AC.
+ [Boing:]
+ Wenn man der Ruestung wirklich einen Attackebonus geben moechte,
+ dann muss P_EFFECTIVE_WC hoeher sein, als P_AC der Ruestung!
+ Da im Falle, wenn P_EFFECTIVE_WC nicht gesetzt ist, P_AC als
+ Angriffswert genommen wird, waere das ansonsten eine Schwaechung!
+ Das kann man natuerlich gezielt einsetzen, wenn man eine Ruestung
+ machen will, die sehr gut schuetzt, aber nur geringe Kaempferboni
+ aufweist.
+ Beispiel:
+ Ruestung mit ac 40 und keiner eff_wc: angriffswert ist 40
+ Ruestung mit ac 40 und eff_wc 20: angriffswert ist 20
+ Ruestung mit ac 40 und eff_wec 60: angriffswert ist 60
+ c) Die Ruestung macht einen besonderen Schadenstyp. z.B. Flammenstiefel,
+ die beim Kampftritt DT_FIRE und DT_BLUDGEON machen, oder Hosen
+ mit Spikes an den Knien -> DT_PIERCE. Es sollte immer ein
+ physikalischer Schaden vorhanden sein. Zusaetzlich waere jeder
+ magische Schaden denkbar, der Phantasie sind keine Grenzen gesetzt.
+ Natuerlich sollten solche Specialsachen auch in P_LONG der Ruestung
+ auftauchen. Die Kaempfer haben aber die Moeglichkeit Ruestungen
+ einzuschaetzen und sowas zu entdecken.
+
+
+
+ Bitte alle fuer die Kaempfer geaenderten Waffen und Ruestungen
+ bei mir absegnen lassen, ich moechte den Ueberblick nicht verlieren :))
+ Ausserdem sollten die Werte nicht gleich zu hoch gewaehlt werden.
+ Die Maximalwerte sollten so gut wie nie vergeben werden.
+ Vorsicht!!! Werden die Werte ueber die Grenzen erhoeht, wird ein
+ Kaempfer mit so einer Waffe viel zu stark. Bis jetzt hab ich noch keine
+ Sicherheitsfunktion eingebaut, was sich aber aendern wird, wenn
+ es jemand uebertreibt :))
+ [Boing:] Leider wurde es uebertrieben, also ist jetzt eine Sicherheits-
+ funktion drin.
+
+
+Ciao Zardoz
+
diff --git a/doc/balance/kampfobjekte b/doc/balance/kampfobjekte
new file mode 100644
index 0000000..e31793d
--- /dev/null
+++ b/doc/balance/kampfobjekte
@@ -0,0 +1,31 @@
+ Hierzu zaehlen alle Sachen, die irgendeinen Einfluss auf den Kampf nehmen
+ und weder `/std/weapon.c' noch `/std/armour.c' sind. Also die sogenannte
+ Artillerie, Eisstab und artverwandtes, Wurfsterne, Parasteine, Bumi und
+ unterstuetzende NPC.
+
+ Prinzipiell sind alle diese Sachen genehmigungspflichtig.
+
+ Auto-Selbstfahrer, also Sachen, die ohne Eingriff des Spielers agieren,
+ sind unerwuenscht und sollten vermieden werden. Sorry fuer die
+ Laggeplagten...
+
+ Kampfobjekte sollten P_ATTACK_BUSY setzen und auch vor der Anwendung
+ abfragen, damit sie nicht unbegrenzt hintereinander genutzt werden
+ koennen. Magische Sachen sollten entweder aufgeladen werden muessen oder
+ ihre magische Energie verlieren, damit sie nicht unendlich haltbar sind.
+ Ausserdem hat Magie normalerweise auch unerwuenschte Nebenwirkungen. Die
+ Spieler sollen die moeglichen Vorteile gegen Nachteile oder Nebenwirkungen
+ des Gegenstands abwaegen. Auch bei diesen Objekten *muss* P_INFO gesetzt
+ werden, um eine Begruendung fuer die besondere Wirkung und z.B. einen
+ Hinweis auf die Benutzung zu liefern.
+
+ Sie sollten keinesfalls kaeuflich erworben werden koennen.
+
+ Objekte, die Auskunft ueber ein- und/oder ausgehende Schaeden geben,
+ sind genehmigungspflichtig. Solche Objekte sollten nach Moeglichkeit
+ eine Waffe oder Kleidungsstueck - dies jedoch nicht AT_MISC - sein.
+ Dass solche Objekte auch ueber Luecken in der Angabe der Schaeden und
+ Nachteile verfuegen sollten, ist eigentlich klar.
+ Solche Nachteile liessen sich ueber eine Mindest-Schadenshoehe oder
+ random realisieren. Informationen ueber mehrere Schadenstypen durch
+ ein und das selbe Objekt sind nicht erwuenscht.
diff --git a/doc/balance/modifyskillattribute b/doc/balance/modifyskillattribute
new file mode 100644
index 0000000..e072791
--- /dev/null
+++ b/doc/balance/modifyskillattribute
@@ -0,0 +1,100 @@
+ModifySkillAttribute()
+
+FUNKTION:
+ public int ModifySkillAttribute(string atrname, mixed value,
+ int duration)
+
+DEFINIERT IN:
+ /std/living/skill_attributes.c
+
+ARGUMENTE:
+ <atrname> string
+ Name des zu veraendernden Attributes
+ (Definiert in /sys/living/skill_attributes.h)
+
+ <value> int oder closure
+ Wert des Modifikators
+ oder
+ eine Closure, welche bei Abfrage des betreffenden SAs
+ abgefragt um den Modifikator zu bestimmen.
+
+ <duration> int
+ Dauer in Sekunden
+
+BESCHREIBUNG:
+ Aendert temporaer, d.h. fuer eine bestimmte Zeit, ein Skill-Attribut eines
+ Lebewesen, indem ein Modifikator hinzugefuegt wird.
+
+ Der Standardwert eines SA wird von P_SKILL_ATTRIBUTE_OFFSETS festgelegt
+ oder ist 100, wenn besagte Property leer ist.
+ Alle Modifikatoren (negativ wie positiv) werden addiert und bilden
+ zusammen mit dem Standardwert eine Gesamtsumme.
+ Bei allen SAs ausser SA_QUALITY wird diese Gesamtsumme noch mit
+ SA_QUALITY (welches sich damit auf alle anderen Skill-Attribute auswirkt)
+ multipliziert und das Ergebnis stellt den Endwert des SA dar.
+ (Beispiel s.u.)
+
+ Der Wert eines Modifikators muss zwischen -1000 und 1000 liegen. Der
+ Gesamtwert eines SA kann 10 nicht unter- und 1000 nicht ueberschreiten.
+
+ Falle <value> eine Closure ist, wird diese Closure jedesmal ausgefuehrt,
+ wenn das entsprechende SA abgefragt wird. Der Rueckgabewert dieser Closure
+ stellt dann den Wert des Modifikators dar. Auch dieser muss zwischen -1000
+ und 1000 liegen. Gibt die Closure keinen int zurueck, wird der Modifikator
+ geloescht.
+
+ Gueltige Skill-Attribute sind momentan:
+ * SA_QUALITY: Allgemeine Qualitaet
+ * SA_DAMAGE: Schaden, den das Lebewesen macht
+ * SA_SPEED: Geschwindigkeit des Lebewesens
+ * SA_DURATION: Spell-/Skilldauer
+ * SA_ENEMY_SAVE: identisch zu SA_SPELL_PENETRATION (OBSOLET!)
+ * SA_SPELL_PENETRATION: Chance des _Casters_, einen Spell durch ein
+ P_NOMAGIC durchzukriegen.
+ * SA_RANGE: Reichweite des Lebewesens (eher unbenutzt)
+ * SA_EXTENSION: "Ausdehnung" (unbenutzt)
+
+RUECKGABEWERT:
+ SA_MOD_OK wenn der Modifikator gesetzt wurde
+ SA_TOO_MANY_MODS wenn die max. Anzahl an Mods schon erreicht ist.
+ SA_MOD_TOO_SMALL wenn der Mod zu klein ist
+ SA_MOD_TOO_BIG wenn der Mod zu gross ist
+ SA_MOD_INVALID_ATTR wenn das gewuenschte SA gar nicht existiert
+ SA_MOD_INVALID_OBJECT wenn das setzende Objekt ungueltig ist
+ Wenn man nur wissen will, ob die Operation erfolgreich war, empfiehlt es
+ sich, auf == SA_MOD_OK zu pruefen.
+
+BEMERKUNGEN:
+ Nachdem ein Objekt, welches Modifikatoren setzte, zerstoert wurde, werden
+ die Modifikatoren spaetestens ungueltig, sobald in dem manipulierten
+ Lebewesen erneut ModifySkillAttribute() gerufen wird! Bei Closures ist der
+ Mod sofort weg.
+
+BEISPIELE:
+ // sei PL ein Spieler, den mein NPC schwaechen will:
+ PL->ModifySkillAttribute(SA_QUALITY, -75, 13);
+ // Fuer 13s wird SA_QUALITY um 75 reduziert. Dies wirkt sich auf alle
+ // anderen SAs aus! (s. drittes Beispiel)
+
+ // sei PL ein Lebewesen, welchem ich fuer 11s 2 Schlaege pro Kampfrunde
+ // zusaetzlich geben moechte:
+ PL->ModifySkillAttribute(SA_SPEED, 200, 11);
+ // wenn keine weiteres Modifikatoren wirken, hat PL jetzt 3 Schlaege pro
+ // Kampfrunde (Basiswert 100 + 200 == 300 => 3).
+
+ Angenommen, ein Lebewesen hat einen Basiswert von 130 auf SA_SPEED und 100
+ auf SA_QUALITY (P_SKILL_ATTRIBUTE_OFFSETS) und nun 3 Modifikatoren
+ gesetzt: SA_SPEED +100, SA_SPEED -30 und SA_QUALITY von -10:
+ Zunaechst wird SA_QUALITY bestimmt: 100 - 10 = 90 => 0.9
+ Anschliessend wird SA_SPEED bestimmt: 130 + 100 - 30 = 200 => 2
+ Nun wird SA_SPEED noch mit SA_QUALITY multipliziert: 2 * 0.9 = 1.8
+ Das Lebewesen hat nun also im Endeffekt 1.8 Schlaege pro Kampfrunde.
+
+
+SIEHE AUCH:
+ P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS,
+ QuerySkillAttribute(), QuerySkillAttributeModifier(),
+ RemoveSkillAttributeModifier()
+
+-----------------------------------------------------------------------------
+07.08.2008, Zesstra
diff --git a/doc/balance/multiobjekte b/doc/balance/multiobjekte
new file mode 100644
index 0000000..46086a5
--- /dev/null
+++ b/doc/balance/multiobjekte
@@ -0,0 +1,47 @@
+MULTIOBJEKTE:
+
+ a. Was sind Multiobjekte?
+
+ Multiobjekte sind Multiwaffen oder Multiruestungen.
+
+ b. Multiwaffen
+
+ Multiwaffen sind Waffen, die mehrere Funktionen haben koennen. Das
+ klassische Beispiel sind Waffen, die mehrere Schadensarten verursachen
+ koennen, und diese z.B. auf Kommando wechseln koennen. Oder auch die
+ Waffengattung.
+
+ Ebenfalls als Multiwaffen werden Waffen behandelt, bei denen im
+ geringen Umkreis um eine Fundstelle viele aehnliche Waffen auffindbar
+ sind, die sich z.B. nur in der Gattung unterscheiden (ein
+ Quetschschwert, eine Quetschkeule, ein Quetschstab, ein Quetschspeer..
+ oder : Ein Feuerschwert, ein Eisschwert, ein Saeureschwert, ein
+ Blitzschwert, ein Wasserschwert...)
+
+ c. Multiruestungen
+
+ Multiruestungen sind analog Ruestugnen, die gegen bestimmte Schaeden
+ schuetzen und entweder selbst in Schadensart wandelbar sind, oder wo
+ es viele gleichartige in einem geringen Umkreis gibt. (Blitzhelm,
+ Blitzhose, Blitzpanzer, Blitzring... oder Feuerring, Wasserring,
+ Blitzring, Eisring...). Analoges gilt fuer die Schadensart der
+ Ruestung fuer die Kaempfergilde.
+
+ d. Regel
+
+ Multiobjekte duerfen in einem geringen Umkreis nur in maximal 4
+ Varianten vorkommen oder von/fuer Spieler herstellbar sein.
+
+ Diese Regelung ist schwammig, aber sie soll verhindern, dass es ein
+ universelles Ausruestungsgebiet gibt.
+
+ Was ein geringer Umkreis ist, ob Waffen oder Ruestungen als
+ Multiobjekte gelten, ob die Tatbestaende also fuer den konkreten
+ Programmierungssachverhalt gelten, entscheidet die Balance nach
+ Auslegung und evtl. Regelfortbildung dem Sinn bzw. der Historie
+ dieser Regel nach.
+
+ Als Ansprechpartner fuer diese Regel steht die Balance zur
+ Verfuegung.
+
+Letzte Aenderung: Humni, 2011-01-15
diff --git a/doc/balance/parierwaffen b/doc/balance/parierwaffen
new file mode 100644
index 0000000..d7e38b4
--- /dev/null
+++ b/doc/balance/parierwaffen
@@ -0,0 +1,7 @@
+Aktuelle Grenzwerte:
+====================
+
+ Parier-Typ Genehmigungsgrenze
+ ------------ --------------------
+ PARRY_ONLY Wie Ruestungen vom Typ AT_SHIELD
+ PARRY_TOO Generelle Genehmigungspflicht
diff --git a/doc/balance/properties b/doc/balance/properties
new file mode 100644
index 0000000..e849ab6
--- /dev/null
+++ b/doc/balance/properties
@@ -0,0 +1,194 @@
+P_AC : ArmourClass, Wert der den Schutz einer Ruestung
+ (P_ARMOURS,P_ARMOUR_TYPE) angibt
+
+P_ATTACK_BUSY : Anzahl der moeglichen Aktionen eines Lebewesens pro
+ Kampfrunde (1 HeartBeat). Bei Spielern ist dies 1,
+ bei Sehern max. 5. Wegen des hoeheren Wertes bei
+ Sehern ist darauf zu achten, das hier ADDIERT wird
+ und nicht einfach nur auf 1 gesetzt.
+ Siehe auch: bman kampfobjekte
+
+P_ATTRIBUTES : Attribute eines Spielers, koennen durch Objekte,
+ Flueche und/oder Krankheiten manipuliert werden.
+ Siehe auch: bman attribute
+
+P_ATTRIBUTES_MODIFIER : Hier werden Attribut-Modifier gespeichert, die
+ ueber einen laengeren Zeitraum wirken sollen.
+ Bekannteste Beispiele sind wohl der Todes-Malus
+ und der Frosch-Malus. Normale Aenderungen sollten
+ per P_X_ATTR_MOD oder P_M_ATTR_MOD realisiert
+ werden
+ Siehe auch: bman attribute
+
+P_COMBATCMDS : Beinhaltet Befehle, Schadenshoehe und -arten in
+ Kampfobjekten, damit diese auch von NPC benutzt
+ werden koennen.
+ Siehe auch: bman kampfobjekte
+
+P_CURSED : Objekte in denen hier ein String oder Int-Wert ge-
+ setzt ist, koennen nicht abgelegt werden. Kleriker
+ haben die Faehigkeit, zu entfluchen
+
+P_DAMAGED : Grad der Beschaedigung einer Waffe oder Ruestung.
+ Wird meistens per waffe->Damage(x) realisiert. Kann
+ bei div. Schmieden wieder auf 0 gesetzt werden, Trves
+ koennen es durch Waffenschaerfen sogar selbst
+
+P_DAM_TYPE : Schadenstyp, den eine Ruestung oder Waffe macht
+ Siehe auch: bman schadenstypen
+
+P_DEFEND_FUNC : Gesetzt wenn eine Ruestung eine DefendFunc definiert
+ hat. Werte einer DefendFunc sind IMMER per random
+ zu geben, Ausnahme: negativer Rueckgabewert. Auch
+ hier ist darauf zu achten, das P_WC + Rueckgabewert
+ nicht ueber den Grenzwert kommen
+ Siehe auch: bman grenzwerte, bman ruestungen
+
+P_DISABLE_ATTACK : Gesetzt wenn das Lebewesen ausnahmsweise mal nicht
+ angreifen kann. Es wird die Anzahl der Kampfrunden
+ (also HeartBeats) gesetzt, in denen die Paralyse
+ wirkt. Neue Paralyse-Tools sind nicht gern gesehen
+ und haben wenig Chancen auf Genehmigung
+
+P_EFFECTIVE_AC : Die effektive ArmourClass einer Ruestung. Ist in
+ einer Ruestung noch eine P_DEFEND_FUNC definiert,
+ so betraegt ist P_EFFECTIVE_AC = P_AC + 2 * Mittelwert
+ des dortigen Rueckgabewertes
+
+P_EFFECTIVE_WC : Die effektive WeaponClass einer Waffe oder Ruestung.
+ Ist in einer Waffe eine P_HIT_FUNC definiert, so be-
+ rechnet sich die P_EFFECTIVE aus der Summe von P_WC
+ und dem doppelten Mittelwert des dortigen Rueckgabe-
+ wertes
+
+P_HANDS : Enthaelt mehrere Eintraege, die Meldung, Staerke
+ eines Angriffes mit blossen Haenden und den oder
+ die dabei verursachten Schadenstypen beinhalten
+
+P_HIT_FUNC : Gesetzt, wenn eine Waffe oder Ruestung eine HitFunc
+ definiert hat. Die Werte muessen IMMER per random
+ gegeben werden. Auch hier sind einzig negative Rueck-
+ gabewerte die Ausnahme. Darauf zu achten ist, das
+ P_AC + Rueckgabewert nicht den Grenzwert ueber-
+ schreiten
+ Siehe auch: bman grenzwerte
+
+P_HP : Aktuelle Lebenspunkte (HealthPoints) eines Lebe-
+ wesens
+
+P_HP_DELAY : Numerischer Wert, der angibt, wieviele HeartBeats
+ notwendig sind, damit sich die P_HP um 1 regenieren
+
+P_HP_HOOKS : Was fuer Objekte sollen bei einer Aenderung der P_HP
+ benachrichtigt werden? Bekanntestes Beispiel ist
+ hier sicher der Teddy aus der Nibelungenquest
+
+P_LEP : LEvelPoints, absolute Stufenpunkte eines Spielers.
+ Ist manchmal sinnvoller, P_LEP abzufragen anstatt
+ P_LEVEL
+
+P_M_ATTR_MOD : Mapping mit Attributen die veraendert werden, wenn
+ das Lebewesen diese RUESTUNG oder WAFFE traegt oder
+ zueckt. Jedes Attribut kann nur durch einen Modifier
+ beeinflusst werden. Ist also ein Attribut blockiert,
+ kann die Ruestung/Waffe nicht angezogen/gezueckt
+ werden. Fuer Krankheiten usw. gibt es P_X_ATTR_MOD
+ Siehe auch: bman attribute
+
+P_M_HEALTH_MOD : Mapping mit dem die max. P_HP und max. P_SP eines
+ Lebewesens manipuliert werden koennen, wenn es diese
+ RUESTUNG oder WAFFE traegt oder zueckt. Es erfolgt
+ keinerlei Blockade. Fuer Krankheiten usw. gibt es
+ P_X_HEALTH_MOD
+
+P_NOMAGIC : Wert zwischen 0 (default) und 100, der den Grad an-
+ gibt, mit welcher Wahrscheinlichkeit Magie keine
+ Wirkung erzielt. Kann in Raeumen, Npc und Objekten
+ gesetzt werden. Von Spieler nicht gern gesehen :)
+
+P_NR_HANDS : Wieviel freie Haende sind notwendig, um diese Waffe
+ oder diesen Schild zu zuecken?
+
+P_PARRY_WEAPON : In Waffen gesetzt wenn es sich um eine Parierwaffe
+ handelt
+ Siehe auch: bman parierwaffen
+
+P_PURSUERS : Beinhaltet alle Objekte/Npc die den Spieler momentan
+ verfolgen
+
+P_QUALITY : Beliebiger Wert in Waffen. Setzt man ihn auf n, so wird
+ die Waffe bei jedem n-ten Schlag um 1 Punkt be-
+ beschaedigt (P_DAMAGED also um 1 erhoeht) und dieser
+ von der P_AC abgezogen, der Schaden laesst sich in
+ einer Schmiede reparieren.
+
+P_REMOVE_FUNC : Funktion die vor dem Ausziehen einer Ruestung auf-
+ gerufen wird
+ Siehe auch: bman ruestungen
+
+P_RESISTANCE : Was fuer Resistenzen sind gesetzt? Enthaelt ein
+ Array der Schadenstypen, gegen die das Lebewesen
+ resistent sein soll. P_RESISTANCE_STRENGHTS ist hier
+ viel genauer und sollte deswegen verwendet werden
+
+P_RESISTANCE_MODIFIER : Hier steht die Summe aller Modifikatoren, die
+ Resistenzen und Anfaelligkeiten betreffen. Diese
+ Propertie sollte NIE direkt manipuliert werden
+
+P_RESISTANCE_STRENGHTS: Huebscher Typo bei Realisierung von Anfaelligkeiten
+ und Resistenzen eines Lebenwesens :-)
+
+P_RESISTANCE_STRENGTHS: Was fuer Resistenzen oder Anfaelligkeiten hat das
+ Lebewesen? Gesetzt wird ein Mapping mit den
+ Schadenstypen und ein entsprechender numerischer
+ Wert. Dieser Wert geht von -1 .. 0 .. 1, ist er
+ negativ, so ist das Lebewesen resistent, ist er
+ positiv, so ist das Lebewesen anfaellig
+
+P_RESTRICTIONS : Wird vor dem Zuecken oder Anziehen einer Waffe oder
+ Ruestung geprueft. Hier lassen sich diverse Werte
+ abfragen, die das verhindern
+ Siehe auch: bman restriktionen
+
+P_SP : SpellPoints, aktuelle Konzentrationspunkte eines
+ Lebewesens
+
+P_SP_DELAY : Numerischer Wert, der angibt, wieviele HeartBeats
+ notwendig sind, damit sich die P_SP um 1 regenieren
+
+P_UNWIELD_FUNC : Funktion, die vor dem Wegstecken einer Waffe auf-
+ gerufen wird
+
+P_VULNERABILITY : Empfindlichkeiten eines Npc/Spielers, sollte ueber
+ P_RESISTANCE_STRENGTHS realisiert werden
+
+P_WC : WeaponClass, Wert der die Guete einer Waffe angibt.
+ Absoluter Oberwert ist 200
+ Siehe auch: bman grenzwerte
+
+P_WEAPON_TYPE : Um was fuer eine Waffe handelt es sich? Keule, Speer
+ oder Axt? Oder was anderes?
+ Siehe auch: bman waffen
+
+P_WEAR_FUNC : Funktion die vor dem Anziehen einer Ruestung auf-
+ gerufen wird. Sie kann das Anziehen verhindern, hier
+ ist oftmals ein Eintrag in P_RESTRICTIONS sinnvoller
+ Siehe auch: bman restriktionen
+
+P_WIELD_FUNC : Funktion, die vor dem Zuecken einer Waffe aufgerufen
+ wird. Sie kann das Zuecken verhindern. Oftmals ist
+ da ein Eintrag per P_RESTRICTIONS vorteilhafter
+ Siehe auch: bman restriktionen
+
+P_X_ATTR_MOD : Mapping mit Attributen die veraendert werden, wenn
+ das Lebewesen dieses OBJEKT bei sich hat. Ist fuer
+ Krankheiten u.ae. gedacht. Bekanntes Beispiel sind
+ die Flueche, die man sich auf Akhar Nth'tar weg-
+ holen kann
+ Siehe auch: bman attribute
+
+P_X_HEALTH_MOD : Mapping mit dem die max. P_HP und max. P_SP eines
+ Lebewesens veraendert werden, das dieses OBJEKT bei
+ sich traegt. Ohne nachgesehen zu haben sag ich mal,
+ das es so z.B. beim Rattenblut gemacht wird
+ Siehe auch: bman kampfobjekte
diff --git a/doc/balance/resistenzen b/doc/balance/resistenzen
new file mode 100644
index 0000000..f2b92a9
--- /dev/null
+++ b/doc/balance/resistenzen
@@ -0,0 +1,59 @@
+
+ RESISTANCE MODIFIER:
+ Soll ein Objekt in einem Spieler ResistanceModifier setzen, gelten
+ folgende Regeln:
+
+ a) Es muss sich um eine Ruestung handeln (in ganz seltenen Faellen
+ werden auch Waffen mit dieser Moeglichkeit erlaubt). Bei Ruestungen
+ muss _nicht_ AddResistanceModifier() benutzt werden, sondern es
+ genuegt, P_RESISTANCE_STRENGTH in der Ruestung zu setzen. Dabei
+ werden _anders_ als bei AddResistanceModifer() Prozentwerte der
+ maximal erlaubten Resistenz fuer den entsprechenden Ruestungstyp
+ angegeben. Diese werden beim Tragen der Ruestung automatisch
+ in tatsaechliche Resistenzen des Traegers umgerechnet.
+ (Beispiel siehe "man P_RESISTANCE_STRENGTHS").
+
+ b) Das Objekt muss natuerlich genehmigt werden.
+
+ c) Die Summe aller Resistenzen darf max. -0.15 betragen. Ausserdem
+ muessen zu jedem Schadenstyp gleichzeitig Empfindlichkeiten in
+ mindestens gleicher Staerke bei einem anderen Schadenstyp gesetzt
+ werden oder die Resistenzen muessen mit anderen Nachteilen (z.B.
+ Aufloesung des Objekte bei Angriff mit einem bestimmten Schadenstyp)
+ ausgeglichen werden.
+
+ Bei Ruestungen darf maximal eine relative Resistenz von
+ (logischerweise) 100% eingetragen werden. 100% in der Property
+ P_RESISTANCE_STRENGTH einer Ruestung bedeuten folgende Resistenzen
+ im Traeger:
+
+ AT_ARMOR,
+ AT_SHIELD : -0.15
+
+ AT_CLOAK,
+ AT_RING,
+ AT_AMULET : -0.10
+
+ AT_MISC : nicht gestattet!
+
+ andere : -0.05
+
+ d) Zur leichteren 'Identifizierbarkeit' sollten die ResistanceModifier
+ sollten die gesetzten Modifier auch in dem setzenden Objekt als
+ P_RESISTANCE_STRENGTHS gesetzt werden. Bei Ruestungen MUSS dies
+ geschehen (siehe a) ).
+
+ e) Es duerfen keine mechanischen Resistenzen gesetzt werden. Schutz
+ vor mechanischen Angriffen wird durch die Ruestungen sowieso
+ schon gewaehrt (im Gegensatz zu Schutz vor nichtmechanischen). Und
+ NEIN, da gibt es keine Ausnahmen!
+
+ SIEHE AUCH
+
+ balance, ruestungen, waffen, fernwaffen, uniques, npcs,
+ attributsveraenderungen, kampfobjekte, grenzwerte
+
+
+------------------------------------------------------------------------------
+ LETZTE AeNDERUNG:
+ 2003-08-29, Zook.
diff --git a/doc/balance/restriktionen b/doc/balance/restriktionen
new file mode 100644
index 0000000..838bb7d
--- /dev/null
+++ b/doc/balance/restriktionen
@@ -0,0 +1,30 @@
+Es ist moeglich, Waffen und Ruestungen zu beschraenken, so dass sie
+nur von Spielern benutzt werden koennen, die gewisse Kriterien erfuellen.
+Diese Pruefung wird allerdings _nur_ beim Zuecken oder Anziehen geprueft.
+Sollte sich die entsprechende Eigenschaft des Spielers waehrend der
+Benutzung aendern, kann er oder sie das entsprechende Teil weiter
+nutzen, bis es ausgezogen/weggesteckt wird.
+
+Um solche Restriktionen zu implementieren, muss ein Eintrag in die
+Property P_RESTRICTIONS erfolgen. Was kann dort alles eingetragen
+werden?
+
+- Mindestwerte fuer alle Attribute (Geschicklichkeit etc.)
+- Mindestwerte fuer - Questpunkte
+ - Spielerlevel
+ - Erfahrungspunkte
+- Spielerrasse oder eine Liste von ein- bzw. ausgeschlossenen Rassen
+- Gildenlevel (macht nur wenig Sinn)
+- Seherstatus
+- Maximalwerte fuer Alkohol, Essen, Trinken
+- Gesinnung (nach oben und unten)
+- Koerpergroesse (nach oben und unten)
+- Anzahl der freien Haende
+
+Die Bedingungen sind beliebig zu kombinieren, man kann also eine Waffe
+programmieren, die nur von ueber 2 Meter grossen satanischen Hobbits
+gezueckt werden kann, die einen leeren Magen haben. (Vermutlich eine
+riesige Fleischgabel...)
+Fuer gute Waffen und Ruestungen sind allerdings vermutlich in erster Linie
+die Restriktionen Spielerlevel, Seherstatus und vielleicht noch Attribute
+interessant. Vielleicht auch noch Erfahrungspunkte.
diff --git a/doc/balance/ruestungen b/doc/balance/ruestungen
new file mode 100644
index 0000000..a77a735
--- /dev/null
+++ b/doc/balance/ruestungen
@@ -0,0 +1,128 @@
+Allgemeines und generelles ueber Ruestungen:
+-------------------------------------------
+
+Properties:
+
+ P_WEIGHT
+ Bitte realistisch halten. Ringe mit weit ueber 100 Gramm sind
+ Schwachsinn, ebenso Hosen mit Gewichten unter 200 usw.
+ Orientierungen an mittelalten Ruestungen; bei neueren treten zum
+ Teil laecherliche Werte auf, die bei Gelegenheit angepasst werden
+ muessen.
+
+ P_VALUE
+ Wert der Ruestungen sollte auch nicht zu gross sein und sich ein
+ wenig an der AC orientieren. Ebenfalls: RMs, schaut genau hin.
+
+ P_ARMOUR_TYPE
+ Bitte sinnvoll benutzen! Kleider als Hosen definieren oder
+ aehnliches ist unsinnig und sollte nicht genehmigt werden. Sind mal
+ wieder die RMs fuer zustaendig. Bitte achtet drauf!
+
+ Folgende Ruestungstypen sind moeglich:
+
+ AT_ARMOUR
+ Alles was irgendwie den Torso schuetzt. Also vorn und hinten,
+ wie ein Pullover, ein Kettenhemd, ein Panzer etc.
+ AT_CLOAK
+ Umhaenge, auch im weiteren Sinn wie Decken und Schleier. Im
+ Prinzip das, was normalerweise nur den Ruecken schuetzt, bei
+ Bedarf aber auch vorn herum gewickelt werden koennte.
+ AT_HELMET
+ Kopfbedeckungen jeder Art, vom normalen Hut ueber Kronen bis
+ hin zu Stirnbaendern (wenn sie schuetzen sollen)
+ AT_TROUSERS
+ Hosen. Alles was zum ueberwiegenden Teil dazu gedacht ist, die
+ Beine und/oder den Popo zu schuetzen, also auch Schuerzen oder
+ Leggins. Natuerlich gehoeren auch Badehosen oder Lendenschuerze
+ hierher. AC dann selbstverstaendlich gering.
+ AT_BOOT
+ Schuhe, Stiefel und Fussbekleidungen jeder Art.
+ AT_GLOVE
+ Handschuhe oder alles, was man so zum Schutz der oberen
+ Extremitaeten benutzt, wie Armschoner, Glacehandschuhe,
+ Faeustlinge, Boxhandschuhe etc.
+ AT_QUIVER
+ Koecher und aehnliches, in denen man Munition fuer
+ Schusswaffen unterbringen kann. Schuetzen tut sowas
+ natuerlich nicht.
+ AT_SHIELD
+ Alles, was man so anstelle der eigenen Arme in einen
+ gegnerischen Schlag halten kann und das nicht offiziell als
+ Waffe deklariert ist. Es sollte nicht grade aus Papier
+ bestehen, und das Gewicht ist mit entscheidend fuer die Guete
+ des Schildes. Sie werden sehr wenig im MG genutzt, was
+ eigentlich seltsam ist. Schliesslich erreicht ein guter Schild
+ die Guete von Helm, Hose und Handschuhen zusammen oder 3/4 der
+ Qualitaet einer Ruestung. Andererseits: es gibt auch nicht sehr
+ viele Schilde. Da herrscht Bedarf!
+ AT_RING
+ Ringe. Prinzipiell sollte gelten, das Ringe praktisch keine
+ Schutzwirkung haben (also AC 1 oder max. 2). Nur, und dafuer
+ sind die Dinger da, wenn sie magisch sind koennen sie
+ zusaetzliche Funktionen haben.
+ AT_AMULET
+ Im Prinzip dasselbe wie bei AT_RING, nur werden die Dinger
+ meist an Kordeln um den Hals oder als Broschen an den Klamotten
+ getragen, koennten also je nach Groesse tatsaechlich mehr
+ Schutz bieten als ein Ring. Aber auch hier gilt: AC>2 schreit
+ nach Erklaerung und sollte magischen Dingern vorbehalten
+ bleiben.
+ AT_BELT
+ Guertel aller Art (z.B. Waffenguertel oder Magisterguertel
+ der Zauberer). Schutzwirkung hat sowas natuerlich kaum.
+ AT_MISC
+ Alles, was man sonst noch so anziehen kann, was aber eher als
+ Zierrat gedacht ist. AC immer 0. Bitte *keine*
+ Kleidungsstuecke, die in eine der anderen Kategorien passen,
+ als AT_MISC definieren. Dann lieber die AC sehr tief. Wenn es
+ eh als Gag gedacht ist koennen die Spieler sich auch bei Bedarf
+ umziehen.
+
+ P_EFFECTIVE_AC
+ Falls eine DefendFunc vorhanden ist und die regulaere AC
+ veraendert, sollte sie gesetzt werden. Es wird der
+ Durchschnittswert der AC incl. der DefendFunc gesetzt. Dient der
+ Kaempfergilde zur Einschaetzung, wird auch von Gilden evtl. zur
+ Berechnung von Zusatzschutz oder weiteren Effekten verwendet.
+
+ P_DAM_TYPE
+ Auch Ruestungen koennen einen Damage-Typ haben. Nutzen tut das
+ bisher nur die Kaempfergilde, aber schaden tut's keinem. Default
+ ist DT_BLUDGEON.
+
+ P_NOBUY
+ Alle Ruestungen ab 2/3 der maximal fuer den jeweiligen Ruestungstyp
+ zulaessigen AC werden beim Verkauf im Laden einbehalten. Dennoch
+ sollten besondere Ruestungen P_NOBUY gesetzt haben. Insbesondere
+ waere das fuer alles mit DefendFuncs zu wuenschen, aber auch
+ Sachen, die als Gag gedacht sind. Dafuer koennen sich die Spieler
+ ruhig etwas recken.
+
+ P_DAMAGED
+ Diese Property (sie gibt den Grad der Beschaedigung einer Waffe
+ oder Ruestung an) sollte man _nicht_ per Hand setzen. Stattdessen
+ ruft man in der Ruestung Damage(int) auf. Ein positiver Parameter
+ bedeutet eine Beschaedigung, ein negativer Reparatur um diesen
+ Wert. In der Funktion werden alle notwendigen Bedingungen
+ geprueft (maximale Ruestungsklasse etc).
+
+
+Spezialruestungen/Ruestungen mit Sonderfunktion:
+
+ Alle Ruestungen, die ueber eine DefendFunc oder aehnliches verfuegen
+ sind genehmigungspflichtig.
+
+ Prinzipiell sollten die geltenden Grenzwerte nicht ueberschritten
+ werden; Ausnahmen koennen unter Umstaenden genehmigt
+ werden. Immer ist der Return-Wert per random() zurueckzuliefern, da der
+ Wert ohne weiteres random() aufaddiert wird.
+
+ Saemtliche Sonderfunktionen, wie Heilungen, Sonderattacken auf Gegner,
+ Waffenbeschaedigungen etc. muessen genehmigt werden.
+
+ Die Properties, mit denen Handschuhe 'handfrei' bzw 'fingerfrei' gemacht
+ werden, duerfen nur vergeben werden, wenn die Handschuhe den Schaden der Hand
+ nicht veraendern und die Beschreibung der Handschuhe dazu passt.
+
+------------------- LETZTE AENDERUNG: Humni, 2011-10-13
diff --git a/doc/balance/schadenstypen b/doc/balance/schadenstypen
new file mode 100644
index 0000000..41896f2
--- /dev/null
+++ b/doc/balance/schadenstypen
@@ -0,0 +1,48 @@
+Schadenstypen:
+
+Es werden zwei Arten von Schadenstypen unterschieden:
+
+a) physikalische Schadenstypen
+
+ DT_BLUDGEON Schlagschaden, z.B. Keulen
+ DT_EXPLOSION Schaden durch eine Explosion
+ DT_PIERCE Stechschaden, z.B. Lanzen
+ DT_RIP Reissender Schade, z.B. Krallen
+ DT_SLASH Schnittschaden, z.B. Schwerter
+ DT_SQUEEZE Quetschschaden, z.B. Tentakel
+ DT_WHIP Peitschenschaden, z.B. Peitschen
+
+ Alle physikalischen Schadenstypen stehen auch in dem Mapping
+ PHYSICAL_DAMAGE_TYPES.
+
+b) magische Schadenstypen
+
+ DT_ACID Saeureschaden
+ DT_AIR Luft(mangel)schaden
+ DT_COLD Kaelteschaden
+ DT_FIRE Feuerschaden
+ DT_HOLY Heiliger Schaden
+ DT_LIGHTNING Blitzschaden
+ DT_MAGIC Genereller magischer Schaden
+ DT_POISON Giftschaden
+ DT_SOUND Laermschaden
+ DT_TERROR Angstschaden
+ DT_UNHOLY Unheiliger/daemonischer Schaden
+ DT_WATER Wasserschaden
+
+ Alle magischen Schadenstypen stehen auch in dem Mapping
+ MAGICAL_DAMAGE_TYPES.
+
+Waffen duerfen maximal 50% homogenen magischen Schaden machen.
+Die Summe der magischen Schaeden darf maximal 66% betragen.
+Es _muss_ immer mindestens ein physikalischer Schaden gesetzt
+sein. Der Anteil an physikalischem Schaden betraegt demzufolge
+immer mindestens 34%. Solche Waffen sind generell genehmigungs-
+pflichtig.
+
+Genehmigungspflichtig sind auch generell Waffen, die als Schadens-
+typ DT_TERROR, DT_SOUND, DT_AIR oder DT_SQUEEZE enthalten.
+
+Der Schadenstyp DT_EXPLOSION wird nicht mehr genehmigt.
+
+
diff --git a/doc/balance/techniken b/doc/balance/techniken
new file mode 100644
index 0000000..9c10eae
--- /dev/null
+++ b/doc/balance/techniken
@@ -0,0 +1,108 @@
+****************************************************************************
+* Dieser Text ist veraltet. Die Techniken werden von der Mudlib nicht *
+* ausgewertet und momentan auch von keiner Gilde (Ausnahme: die Tanjian *
+* zeigt sie an, tut aber nix damit. *
+****************************************************************************
+----------------------------------------------------------------------------
+ P_TECHNIQUE: Techniken, mit denen Waffen eingesetzt werden koennen
+----------------------------------------------------------------------------
+
+TQ_THRASH - "Schlagtechnik"
+
+ Die vom Verstaendnis her einfachste Technik: Man nehme sich einen
+ Gegenstand, der gross genug ist und halbwegs brauchbare Dichte
+ besitzt - also nicht gerade federleicht fuer seine Groesse ist -
+ und haue drauf. Egal ob Henkersaxt, Stock, Stuhl, Bierflasche
+ (ganz), Knueppel, Keule oder Bratpfanne, das und aehnliches sind
+ brauchbare 'Waffen', um mit dieser Technik Erfolg zu haben. Es
+ ist eine schlagende Bewegung, also das gewollte schwunghafte Zu-
+ sammenfuehren zweier Koerper, fuer gewoehnlich Waffe und Gegner.
+
+
+TQ_THRUST - "Stosstechnik"
+
+ Auch diese Technik erfreut sich zumindest in Kneipenschlaegereien
+ grosser Beliebtheit: Das Stossen. Mit einem vorzugsweise spitzen
+ Gegenstand wie Speer, Dolch, Bierflasche (zerbrochen) oder Helle-
+ barde wird dem Gegner ein Loch in den Leib gestossen, im Falle
+ eines stumpfen Gegenstandes wie z.B. einem Kampfstock oder dem
+ eigenen Zeigefinger oder Knoechel zielt man auf Vitalpunkte oder
+ Weichteile und erzielt auch damit beeindruckende Ergebnisse. Das
+ Gewicht der Waffe ist weniger von Bedeutung, da der Akteur bei
+ einem korrekt ausgefuehrtem seine eigene Masse mit einsetzt.
+
+
+TQ_STROKE - "Streichtechnik"
+
+ Ein etwas eigenwillig anmutender Begriff, aber bei genauerer Be-
+ trachtung hat diese Technik tatsaechlich etwas mit Streicheln zu
+ tun: Die wichtigste Komponente der Bewegung fuehrt mehr oder we-
+ niger am Gegner _entlang_ und nicht auf ihn zu. Man stelle sich
+ ein Schwert vor, das geschmeidig durch die Kehle eines Orks glei-
+ tet und eine Menge Blut freisetzt oder ein Pergamentblatt, das
+ man aus der Hand gezogen bekommt (und ebenfalls eine Menge Blut
+ freisetzt). In den allermeisten Faellen ist also eine moeglichst
+ scharfe Schneide im Spiel und, auch wenn schmerzhafte Erfahrungen
+ mit Pargamentkanten gelegentlich gegenteiliges vermuten lassen,
+ je schaerfer die Schneide, desto weniger Druck in Richtung feind-
+ lichen Zielkoerper muss fuer einen "durchschneidenden Erfolg"
+ ausgeuebt werden.
+
+
+TQ_WHIP - "Peitschtechnik"
+
+ Unter der Peitschtechnik wird nun alles zusammengefasst, was den
+ Umgang mit beweglichen Elementen an der Waffe betrifft. Egal, ob
+ Peitsche a la George Lucas, neunschwaenzige Katze, Manriki-Gusari
+ (eine halbmeter lange Kette mit Gewichten an den Enden), ein- bis
+ dreikoepfigem beketteten Morgenstern oder gar Dreschflegel, sie
+ sind zumindestteilweise sehr unterschiedlich konzipiert (so fehlt
+ der Peitsche am aeusseren Ende das Gewicht, so dass jenes durch
+ eine gegenlaeufige Bewegung beschleunigt werden muss), haben aber
+ eines gemeinsam: Der Schaden wird durch ein ueber die normale Be-
+ wegung des Kaempfers hinaus beschleunigtes Teil der Waffe verur-
+ sacht. Durch jene Beweglichkeit der Waffe wird ein sehr grosses
+ Mass an Koordinationsvermoegen vom Kaempfer abverlangt.
+
+----------------------------------------------------------------------------
+
+Vermischtes
+
+ - Waffen koennen sich fuer mehrere Techniken eignen. Mit einem
+ Katana, dem Schwert der Samurai, beispielsweise kann man in die
+ ungeschuetzten Partien des Gegners stechen, dem Gegner mit der
+ Streichtechnik tiefe Schnitte in die Unterseiten der Arme (ein
+ durch typische Samurairuestungen schlecht geschuetzter Bereich)
+ zufuegen, und mit der beruehmten halben Koerperdrehung dem in-
+ zwischen taumelndem Kontrahenten den Kopf abschlagen.
+
+ - Waffen koennen sich, obwohl von der gleichen Gattung, fuer ver-
+ schiedene Techniken eignen. Ein spitzer Dolch mag eine stumpfe
+ Klinge haben und nur fuer ausschliesslich stossende Praktiken
+ zu gebrauchen zu sein, waehrend ein abgerundetes Kuechenmesser,
+ ebenfalls vom Typ "Zyn", fuer kantiges Zuschlagen und eventuell
+ auch fuer schnittige Streichtechniken herhalten kann.
+
+ - Je nach Zweck und Koennen wird die beste zu verwendende Technik
+ variieren: Wenn es um arme Grashalme geht, wird die Sense mit
+ schneidenden Bewegungen gefuehrt (schoen in der Milka-Werbung
+ zu sehen, fuer die, die es partout nicht glauben wollen), bei
+ einer Bauernrevolte mag das gute Stueck jedoch auch mit anderen
+ Techniken effektiv (und vielleicht sogar effektiver) eingesetzt
+ werden, wer weiss, wer war schon dabei...? Selbst bei normalen
+ Waffen wie Schwertern wuerde ein Ungeuebter selten versuchen,
+ mit Streichtechniken Schaden zu verursachen, denn das Zustechen
+ ist schlicht einfacher.
+
+ - Es wird immer besondere Waffen geben. So sind beispielsweise
+ das Zweililien und die Hellebarde beide dem Typ "Kzrok" (fuer
+ nicht-Trves: Stangenwaffen) zuzuordnen, die Techniken weichen,
+ bedingt durch die Vielseitigkeit der Waffen, jedoch von der
+ Norm ab: Das Zweililien, an jedem Ende eine lange und scharfe
+ Klinge, kann ebenso vielseitig gehandhabt werden wie ein
+ Schwert, waehrend die Hellebarde (eine Mischung aus Lanze und
+ Axt) durch ihre unausgewogene Gewichtsverteilung und dem damit
+ verbundenen Potenzial an Schwung schlichtweg DIE Waffe der Wahl
+ fuer feige Zwerge ist: Schwingen wie eine grosse Axt und den
+ Gegner auf Distanz halten koennen. Gut, dass es keine feigen
+ Zwerge gibt ;o)
diff --git a/doc/balance/waffen b/doc/balance/waffen
new file mode 100644
index 0000000..44fa6e3
--- /dev/null
+++ b/doc/balance/waffen
@@ -0,0 +1,112 @@
+Allgemeines und generelles zu Waffen:
+------------------------------------
+
+ P_WC
+ Die WC sollte einigermassen "realistisch" gewaehlt werden. Die
+ Verantwortung hierfuer obliegt den jeweiligen RMs. Sie sollte
+ zwischen ca. 35 und 200 liegen. Auf jeden Fall sind die aktuellen
+ Genehmigungsgrenzen zu beachten. Sollte die WC diese Grenzen
+ ueberschreiten, unterliegt die Waffe ausser der Genehmigung durch
+ den RM der Beurteilung durch das Waffengremium.
+
+ P_NR_HANDS
+ Waffen ueber einer effektiven WC von 150 muessen zweihaendig sein.
+ Ausnahmen koennen unter Umstaenden genehmigt werden, zum Beispiel
+ wenn die Waffe schwer erreichbar oder zahlenmaessig begrenzt, eine
+ Questbelohnung etc. ist. Alle einhaendigen Waffen ueber WC 140 sind
+ in jedem Fall genehmigen zu lassen.
+
+ Messer muessen generell einhaendig sein!
+
+ P_WEIGHT
+ Bitte realistisch halten. Damit ist *nicht* das RL-Gewicht
+ gemeint, sondern man sollte am besten vergleichbare Waffen des
+ MG als Massstab nutzen. Da hier z.T. gravierende Diskrepanzen
+ bestehen, evtl. mal mehrere vergleichen. Die Verantwortung
+ hierfuer obliegt den RMs.
+
+ Waffen mit einem Gewicht von ueber 4000 Gramm sollten normalerweise
+ auch zweihaendig sein oder muessen der Balance vorgelegt werden.
+
+ P_VALUE
+ Wie bei P_WEIGHT sind die RMs gefragt: Augenmass zaehlt. Werte
+ ueber 10000 oder so sind zwar nett, aber sinnlos und unrealistisch.
+
+ P_DAM_TYPE
+ Jede Waffe, die aus physikalischem Material besteht (also faktisch
+ alles mit Hardware) *muss* einen physikalischen Schadenstyp haben.
+
+ P_WEAPON_TYPE
+ WT_SWORD, WT_AXE, WT_CLUB, WT_SPEAR, WT_KNIFE, WT_AMMU, WT_MAGIC,
+ WT_WHIP, WT_STAFF, WT_MISC, WT_RANGED_WEAPON
+
+ P_DAMAGED
+ Diese Property (sie gibt den Grad der Beschaedigung einer Waffe
+ oder Ruestung an) sollte man _nicht_ per Hand setzen. Stattdessen
+ ruft man in der Waffe Damage(int) auf. Ein positiver Parameter
+ bedeutet eine Beschaedigung, ein negativer Reparatur um diesen
+ Wert. In der Funktion werden alle notwendigen Bedingungen
+ geprueft (minimale/maximale Waffenklasse etc).
+
+ P_EFFECTIVE_WC
+ Hier kann die evtl durch eine HitFunc veraenderte WC angegeben
+ werden. Der Durchschnittswert soll da stehen. Die Kaempfergilde
+ kann das in gewissen Grenzen abschaetzen und es wird auch fuer
+ die Guete von Zusatzangriffen von Gilden genutzt.
+
+ P_EFFECTIVE_AC
+ Fuer Paradewaffen setzen. Werte unbedingt mit Boing absprechen!
+
+ P_NOBUY
+ Waffen ab WC 150 werden beim Verkauf im Laden zurueckbehalten. Es
+ sollte aber auch fuer Waffen, die HitFuncs enthalten, P_NOBUY
+ gesetzt werden.
+
+Spezialwaffen/Waffen mit Sonderfunktion
+
+ ** ALLE Waffen mit HitFunc oder entsprechender Fkt. muessen **
+ ** genehmigt werden! **
+
+ Solche Waffen muessen ueber ein P_INFO verfuegen und irgendwo in ihrer
+ Beschreibung oder im P_INFO mindestens eine Andeutung ueber die
+ Herkunft oder den Grund ihrer besonderen Faehigkeit haben.
+
+ Auch Spezialwaffen sollten nach Moeglichkeit nicht ueber eine
+ EFFECTIVE_WC von 200 hinausgehen. Der Return-Wert der HitFunc, sofern
+ er von 0 abweicht, MUSS per random() zurueckgegeben werden, da er ohne
+ weiteres random() auf die WC aufaddiert wird.
+
+ Zu beachten ist, dass man bei Waffen, die nur fuer NPCs mehr Schaden
+ machen sollen, nicht (nur) ueber P_RACE prueft, ob der Benutzer ein
+ solcher ist. Es ist denkbar, dass Spieler ihre Rasse temporaer ver-
+ aendern koennen. Waffen die nur dann besser zuschlagen, wenn es
+ keinem Spieler zuguten kommen kann (!interactive, nicht zueckbar
+ durch Hilfs-NPC etc.), muessen nicht genehnigt werden.
+
+ Waffen, die Monster vergiften (also nicht nur P_DAM_TYPE DT_POISON
+ haben) sind zwar nicht grundsaetzlich verboten, aber doch unerwuenscht.
+ Sie sind auf jeden Fall genehmigungspflichtig. Ausserdem sollte die
+ Wahrscheinlichkeit einer Vergiftung pro Kampfrunde max. bei 1% liegen.
+
+Parierwaffen
+
+ Parierwaffen sind Waffen, die die Verteidigung unterstuetzen.
+ Eine Waffe wird als Parierwaffe verwendet, wenn die Property
+ P_PARRY gesetzt ist. Folgende Werte sind moeglich:
+
+ PARRY_NOT Die ist KEINE Parierwaffe (=default).
+
+ PARRY_ONLY Dies ist eine reine Parierwaffe.
+
+ PARRY_TOO Diese Waffe wird sowohl als Parierwaffe als auch
+ als Angriffswaffe benutzt
+
+ Die Schutzwirkung der Parierwaffe wird wie bei Ruestungen ueber die
+ Property P_AC gesetzt. Ueber die Property P_DEFEND_FUNC kann wie
+ bei Ruestungen eine DefendFunc gesetzt werden.
+
+ Waffen mit PARRY_ONLY unterliegen den gleichen P_AC-Grenzwerten
+ wie Ruestungen vom Typ AT_SHIELD. Waffen mit PARRY_TOO oder einer
+ DefendFunc muessen generell genehmigt werden.
+
+---------- LETZTE AENDERUNG: Humni, 2011-10-12