 GRENZWERTE

    Waffen:
   
      Maximalwerte fuer P_WC:

      Einhaendige Waffen  150
      Zweihaendige Waffen 200

      Genehmigungspflichtig sind:

      A) Waffen mit rein physikalischen Schadenstypen:

      Einhaendige Waffen  :    ab P_WC >= 144
      Zweihaendige Waffen :    ab P_WC >= 191

      Der Schadenstyp DT_EXPLOSION wird jedoch nicht mehr genehmigt.

      B) Waffen, die einen nichtphysikalischen Schadenstypen enthalten:

      Einhaendige Waffen  :    ab P_WC >= 136
      Zweihaendige Waffen :    ab P_WC >= 181

      Diese Waffen duerfen maximal 50% homogenen magischen Schaden machen.

      C) Waffen, die mehr als einen nichtpysikalischen Schadentypen enthalten:

      Solche Waffen sind grundsaetzlich genehmigungspflichtig, unabhaengig
      von der WC.

      Der Anteil der magischen Schadenstypen darf in Summe maximal 67%
      betragen. Es _muss_ daher in solchen Waffen immer mindestens ein
      physikalischer Schadenstyp gesetzt sein. Der Anteil an physikalischen
      Schadenstypen betraegt demzufolge immer mindestens 33%.

      D) Waffen mit Schadenstypen DT_TERROR, DT_SOUND oder DT_SQUEEZE:

      Solche Waffen sind grundsaetzlich genehmigungspflichtig, unabhaengig
      von der WC.


      Alle Waffen mit HitFunc oder entsprechender Funktion muessen genehmigt
      werden, wenn sie bei Spielern wirken und den Schaden erhoehen.
      Das gilt auch fuer indirekte Effekt wie z.B. Vergiftung von NPCs im
      Kampf.


    Ruestungen:

      +--------------+--------+----------------------------+
      | Ruestungstyp | MAX_AC | Genehmigungsgrenze (inkl.) |
      +--------------+--------+----------------------------+
      | AT_AMULET    |    2   |             --             |
      | AT_ARMOUR    |   50   |             38             |
      | AT_BELT      |    2   |             --             |
      | AT_BOOT      |    6   |             --             |
      | AT_CLOAK     |   10   |             --             |
      | AT_GLOVE     |    5   |             --             |
      | AT_HELMET    |   15   |             --             |
      | AT_QUIVER    |    0   |             --             |
      | AT_RING      |    2   |             --             |
      | AT_SHIELD    |   40*  |             28             |
      | AT_TROUSERS  |   15   |             --             |
      | AT_MISC      |    0   |             --             |
      +--------------+--------+----------------------------+
       * Eine Sonderregel gilt fuer Schilde: Sind diese zweihaendig,
         darf die P_AC bis zu 80 betragen.

    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: 2022-01-09 Arathorn.
