 WAFFEN:

    a. Allgemeines

    Alle (zumindest neuen!) Waffen sollten ueber eine vernuenftige
    Beschreibung und auch Details verfuegen. Einfach "Ein Schwert" ist
    ein bissel arg duerftig und rechtfertigt auf keinen Fall
    irgendwelche hohen WCs oder gar HitFuncs! Darauf sollten schon die
    RMs achten...

    Nach Moeglichkeit auch P_INFO setzen, das ist fuer Spieler nicht so
    frustrierend und kann ja auch einen netten Spruch enthalten. P_INFO
    ist *zwingend* bei Waffen mit HitFuncs! Muss ja nicht absolut ein-
    deutig sein, aber etwas Liebe zum Detail sollte bei Sonderwaffen auf
    jeden Fall gelten.

    Waffen vom Typ WT_MISC duerfen weder ueber eine Defend- noch eine
    HitFunc verfuegen. Die AC solcher Waffen ist immer 0. Weiter duerfen
    solche Waffen keinerlei andere kampfrelevante Bedeutung besitzen
    oder Manipulationen am/im Spieler/Gegner verursachen.


    b. Bemerkungen zu einigen Properties:

     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.

     ** Besondere Leichtgewichte bitte genehmigen lassen, um spaeterem     **
     ** Aerger vorzubeugen. Grade fuer Kaempfer ist das Gewicht von Waffen **
     ** sehr wichtig!                                                      **

    Zur Erinnerung: Spieler mit Kraft 20 koennen nur 25000 Gewichts-
    einheiten ("Gramm") tragen.

     P_SIZE
        Die Laenge der Waffe in cm. Setzt man sie nicht, so gilt der
        Default- wert fuer den jeweiligen Waffentyp, welcher in der Manpage
        zu P_SIZE notiert ist.

     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.

     ** Waffen mit mehr als einem nichtphysikalischen Schadenstyp oder   **
     ** mehr als 50% nichtphysikalischen Anteilen sind generell zur      **
     ** Genehmigung vorzulegen und als Besonderheit zu handhaben. Nicht  **
     ** genehmigt und nur im Rahmen der Gildenbalance ermoeglicht werden **
     ** a) Waffen mit mehr als 66% nichtphysikalischem Schaden im Array, **
     ** b) Waffen mit einem nichtphysikalischen Schadenstyp ueber 50%    **

    Weiterhin genehmigungspflichtig sind die Schadenstypen:

    DT_TERROR, DT_SOUND, DT_SQUEEZE

    Diese Schadenstypen werden in Waffen nur genehmigt, wenn sie gut
    begruendet sind.

    Der Schadenstyp DT_EXPLOSION wird in Waffen generell nicht mehr
    genehmigt.

     P_WEAPON_TYPE
        Nur zur Erinnerung: es gibt im MG zu viele Schwerter und Speere.
        Nutzt auch die anderen Waffentypen! (Messer und Peitschen sind sehr
        rar. Bitte angepasste WCs!)

     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.

     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.


    c. 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 bei
    !interactive(QueryProp(P_WIELDED)) besser zuschlagen, brauchen
    natuerlich nicht genehmigt zu werden.

    Die Dichte solcher Waffen in einem Gebiet sollte ein vernuenftiges
    Mass nicht ueberschreiten. Fuer eine Sonderwaffe sollten auch
    etliche nicht-magische Waffen in der Umgebung sein. Zumindest die
    starken Waffen (also nicht die, die nur einen Gag oder so
    beinhalten, sondern wirklich in den Kampf eingreifen) sollten nicht
    zu leicht zu bekommen sein. Hierauf sollen die RMs achten. Solche
    Sachen gehoeren zu Monstern, die ein wenig schlechter erreichbar
    sind oder die besonders stark oder sonstwie unangenehm sind. Also
    nix verschenken.

    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.

    Des weiteren muessen Waffen, die fuer bestimmte Gilden bestimmte
    Vorteile bringen (sich beim Kami der Tanjian nicht abnutzen zum
    Beispiel) ebenfalls von der Balance genehmigt werden.


    d. Genehmigungsgrenzen

    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


    e. Spezielle Properties fuer die Kaempfergilde

    Diese Properties sind definiert in '/p/kaempfer/kaempfer.h'. Mit ihnen
    kann man Boni fuer bestimmte Attacken der Kaempfer vergeben (z.B.
    Bonus auf Waffenschlag oder Todesstoss).

    Genauere Hinweise zu diesen Properties und den zu setzenden Werten
    findet man in 'man kaempferboni'.

    Prinzipiell gilt:

     ** Alle Waffen, in denen eine solche Property gesetzt wird,  **
     ** sind mit der Objektbalance abzuklaeren.                   **


    f. 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.

 SIEHE AUCH:
     balance, ruestungen, fernwaffen, uniques, npcs, grenzwerte,
     attributsveraenderungen, resistenzen, kampfobjekte, kaempferboni

 LETZTE AeNDERUNG:
     16. Januar 2014 Gloinson
