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
