/
lib/banish/
lib/d/coronos/
lib/d/coronos/w/alena/
lib/d/coronos/w/angel/
lib/d/coronos/w/angel/caves/
lib/d/coronos/w/angel/caves/monst/
lib/d/coronos/w/angel/city/chambers/
lib/d/coronos/w/angel/city/monst/
lib/d/coronos/w/angel/city/obj/
lib/d/coronos/w/angel/city/streets/
lib/d/coronos/w/angel/farms/plains/
lib/d/coronos/w/angel/monst/
lib/d/tempus/
lib/d/tempus/w/angel/
lib/d/tempus/w/kingbill/
lib/d/tempus/w/mirak/
lib/d/tempus/w/mirak/monst/
lib/d/tempus/w/mirak/obj/
lib/d/tempus/w/relgar/planes/baat/
lib/d/tempus/w/sarak/
lib/d/tempus/w/serepion/mon/
lib/d/tempus/w/valrejn/
lib/doc/
lib/doc/domains/
lib/doc/efun/
lib/include/fn_specs/
lib/info/
lib/inherit/base/
lib/log/
lib/log/mailbox/
lib/log/main/
lib/news/
lib/obj/party/
lib/objects/componen/
lib/open/
lib/open/party/
lib/open/paste/
lib/open/spells/
lib/open/valrejn/
lib/players/
lib/players/alena/
lib/players/alena/obj/
lib/players/alena/open/
lib/players/alena/private/
lib/players/angel/
lib/players/angel/obj/
lib/players/ash/
lib/players/biggs/
lib/players/biggs/food/
lib/players/biggs/gobkeep/
lib/players/biggs/mnstr/
lib/players/biggs/town/caves/
lib/players/biggs/town/tower/
lib/players/biggs/wpns/
lib/players/calris/
lib/players/deathurg/
lib/players/deathurg/open/
lib/players/deathurg/private/thief/
lib/players/dogberry/
lib/players/dogberry/library/
lib/players/dogberry/open/
lib/players/epsilon/
lib/players/epsilon/private/
lib/players/farewell/
lib/players/hippo/
lib/players/hippo/open/
lib/players/hippo/tools/
lib/players/jimpa/
lib/players/josh/
lib/players/josh/room/
lib/players/josh/room/mage/dungeon/
lib/players/josh/room/mage/dungeon/obj/
lib/players/josh/wep/
lib/players/kingbill/
lib/players/metatron/
lib/players/miette/
lib/players/mirak/
lib/players/mirak/open/
lib/players/parsilan/
lib/players/relgar/
lib/players/relgar/private/
lib/players/sarak/
lib/players/sarak/bugs/
lib/players/sarak/feelings/
lib/players/sarak/magical/
lib/players/sarak/minotaur/island/
lib/players/sarak/open/
lib/players/sarak/private/
lib/players/serepion/
lib/players/serepion/open/
lib/players/serepion/private/
lib/players/spike/
lib/players/spike/open/
lib/players/spike/private/
lib/players/spike/seaworld/
lib/players/valrejn/
lib/players/valrejn/open/
lib/players/valrejn/private/
lib/players/virus/
lib/players/wrath/
lib/players/wrath/arm/
lib/players/wrath/mon/
lib/players/wrath/room/
lib/players/wrath/room/entry/
lib/players/wrath/room/zolgath/
lib/players/wrath/weap/
lib/players/zil/
lib/room/
lib/room/city/arena/
lib/room/city/creator/
lib/room/city/garden/monst/
lib/room/city/library/
lib/room/city/library/open/books/
lib/room/city/shop/
lib/room/death/
lib/room/death/open/
lib/room/island/
lib/room/keeps/
lib/room/registry/
lib/room/ships/crew/
lib/room/ships/open/
lib/room/ships/open/types/bounty/
lib/room/ships/open/types/nebula/
lib/room/ships/open/types/phoenix/
lib/secure/udp_cmd_/
lib/skills/
lib/skills/fighter/
lib/skills/psionici/
lib/skills/thief/
lib/usr/
lib/usr/creators/
lib/usr/no_banis/
lib/usr/players/
::: Armour Documentation :::


Introduction
~~~~~~~~~~~~
As with all things contiguity must be maintained throughout the
entire mudlib. As a result of this, uniform prices for items
should be maintained by its creators. 

When making an armour item please set_value(int i) to the following 
prices. The value in the shop will come to 2-3 times this value 
(also dependant upon a player's Charisma). This will make armour 
valuable and scarce.


Table 1: Armour Pricing AC by WEIGHT.

     +------------------------------------------------------------+ 
+----|                        W E I G H T                         |
| AC |    1         2      3      4       5      6    7       8   |
+    +------------------------------------------------------------+
| 1  |    300      200    130     90      60     -    -       -   |
| 2  |    900      600    400    260     175     -    -       -   |
| 3  |    -       2500   1700   1200     800    550   -       -   |
| 4  |    -         -    5600   3750    2500   1600  1000     -   |
| 5  |    -         -      -    9000    6000   4000  2600   1700  |
| 6  |    -         -      -     -     10000   6500  4300   2800  |
+----+------------------------------------------------------------+

Armour may be set to different types. A player may wear only one type
of each armour. The more armour a player wears, the more protected he/she
is against damage. 


Table 2: Valid Armour TYPES by maximum AC
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
  Armour Type       Max AC   Special AC    Quest Item AC
    Armour            4           5               6
    Shield            2           3               4             
    Helm              1           2               -
    Gloves            1           2               -
    Cloak             1           -               -
    Amulet            1           -               2
    Ring              1           2               3
    Boots             1           1               -

The Max AC value indicates the usual AC allowable for a standard armour
item on a standard monster. The Special AC listing indicates possible
AC maximums for armour items on difficult monsters. This usually means
a monster in a difficult to get at area, with a minimum monster level of
18 or so. Quest Item AC indicates the absolute max AC any item can carry
due to it being a UNIQUE QUEST ITEM. Such items are always only obtainable
upon doing a difficult quest set not less than 15th level. There should 
only be one of these items per reset.

All Special AC and over armour items must have their set_sell_destruct(1)
flag set within the code of the said item.


set_sell_destruct (status flag) Armour items that have been enchanted, 
altered, made magical, or are 'Special Ac' type armour, or even those
which are quest items, or that the creator doesn't really wish to be
hanging around in shops, shold have this flag. Any item that returns
a value when queried for 'sell_destruct' will be destructed when sold.

set_weight(int i)   This is the weight of the armour. Usually the more
protective the armour is, the more the armour weighs. Please note the
armour weight values by AC and armour types in tables 1 and 2.

set_name(string str)     This sets the name of the armour item. Note that
the name should be set to the following:

Table 3: Armour Names and suggested AC
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     Name                     Type AC             Suggested  AC
    ____________________________________________________________
     Shield                    Shield                 1-2
    ____________________________________________________________

     Leather                   Armour                  1
     Padded                    "   "                   1
     Studded leather           "   "                   2
     Ringmail                  "   "                   2
     Scalemail                 "   "                   3
     Chainmail / Splintmail    "   "                   3
     Elfinchain                "   "                   3
     Bandedmail                "   "                   4
     Platemail                 "   "                   4
     Fieldplate                "   "                   5 *1
     Fullplate                 "   "                   5 *1
  

     Bracers (of Defence)      Armour  *2              1-4
    ____________________________________________________________

     Cloak                     Cloak *3                1
     Robes                     "   " *3                1
    ____________________________________________________________
     
     Bracers (arm bands)       Amulet *4               1
     Broach                    "   "  *4               1
     Amulet                    "   "  *4               1
     (Un)Holysymbol            "   "  *4               1
    ____________________________________________________________

     Gauntlet(s)               Gloves *5               1
     Helm / Helmet             Helm   *5               1
     Boots                     Boots  *5               1
    ____________________________________________________________

     Ring (s)			 Ring *6		   1
    ____________________________________________________________
  

*1 	These are considered race. Only cavalier and paladin should seek
	out such items, and hence it is only found on such monsters and
	like NPC's. Also note the monster level minimum for placing these
	items on them

*2	Bracers of defence should have a description that states simply that
	it is an arm band. Bracers is actually 'magical armour' of 'protection'.
	You should write into the query_info that they are 'bracers of 
	protection'.

*3	A cloak or robe does not usually offer protection. You can imagine
	a sword actually slicing through cloth! When you make an armour
	item, as type 'armour', with 'cloak' or 'robe', only state in the
	long that they might have runes on it. Again, in the query_info
	state that it is a 'cloak/robe' of protection'. It is only due to
	its magical nature that the cloak/robe confers protection as armour.

	If you set the type to 'armour', then the AC can be set as high as 3.
	Otherwise, you may use the type 'cloak', and make the max AC only 1.
	These items are sought by mages and thieves!

*4	Consider these items not armour as such, but imbued with magical
	protection fields, akin to rings and cloaks. The maximum AC value
	these items can have is but 1.

*5	Gauntlets, Helms, and Boots are considered metal or at the very
	least a hard leather, granting the wearer actual protection from
	weapon blows, unlike magical protection devices like amulets,
	rings, cloaks, and bracers,

*6	A ring conveys a magical field of protection around the wearer,
	and is not actually 'armour' as such. Again, you should place 
in the set_info that it is a 'magical ring of protection'.




Armour names are very important as class restrictions coded into armour.c
rely upon the correct names, especially for type 'armour' items. These names
should not be 'a suit of chainmail' as armour.c restrictions only recognise
the above very specific armour names. The lower case name 'chainmail' should
and MUST be used instead. 'A suit of chainmail' would be used as the short,
or as the long description as described below.


set_type (string str)    This is the 'type' or armour indicated in tables
1, 2 and 3. This helps identify what kind of armour the player is wearing,
allowing him/her to only wear one of each type of armour (it would look
strange for a person to be wearing platemail, chainmail and leather armour
all at the same time!).

set_armour_material(string str)    Armour of all types can be made of a 
specific material. As armour slowly destructs (only when a player is
wearing it) as it is hit different armour materials make the armour more
or less resistant to being hit. The following is a list of armour materials
that can be used in conjunction with armour.c The value given is multiplied
by the AC. This means that you can have a suit of ringmail armour that is 
made from glass, which would be more likely to be destroyed than ringmail
made from mithril, iron, or adamantite.

Table 4: Armour materials and Destruction Modifiers.
     _________________________________________________
          Material                 Modifier  
     _________________________________________________
          Bone                     -50
          Ivory                    -50
          Ceramic                  -75 (Brittle)
          Cloth                    -45
          Crystal                  -75
          Glass                    -100
          Leather                  -20
          Metal                    standard mod.
          Mithril                  +100
          Meterorite iron          +75
          Iron                     +20
          Adamantite               +150
          Bronze                   -10 (Soft metals)
          Silver                   -20
          Gold                     -30
          Platinum                 -40
          Steel                    +30
     _________________________________________________


::: Other Common Functions :::

set_alias(string str)    This is used where you want to give the armour
another name to be used by the player. If the set_short(string str) is 
something confusing like 'a suit of huge red chainmail armour', as the 
set_name(string str) is 'chainmail' and the type is 'armour', you may 
wish to give the alias as 'suit' or 'red chainmail'. Note that the alias
is simply an extra id added to the item.

set_ac(int i)  This is the armour value of the armour. The more this value
is the more the player wearing it is protected. This value is cumulative 
with any other armour items that the player is wearing. Note the relative
max and min values for armour in tables 1, 2 and 3.

set_short(string str)    When a player first sees the armour item on 
a monster, or lying in a room, he will see this description. The 'short'
is usually kept quite simple and brief. Long descriptions of the armour
and what is looks like is kept for the 'long' description. A short 
description is usually something like 'A suit of chainmail' or 'A pair of 
boots'.

set_long(string str)     This is the description that is given to the 
player when he looks specifically at this item. It is can be detailed or
as simple as the short description. This usually gives the player more 
information about the armour, perhaps what its made of and the like.

set_arm_light(int i)     This makes the armour GLOW in the dark and acts
like a light source. Light is cumulative within a room. A value of '1'
means that it is as bright as a torch. If you want it to be as bright as
magical light use a value of 2, and for continual light, use a value 
of 5 (as that should light just about ANYTHING!)

set_info(string str)     This is used when the armour has a special function
or power that can be used by the player. This info is for the player, NOT
for creators. This gives the use and what it does. This can usually be 
accessed by magical means. Information about the magical nature of armour
should NOT be given in the long, but written here.

set_quest_item ()   This is the flag that is used to indicate that the
armour is a quest object of some type.
 
  
set_enchanted ()    When the armour has been changed by magical means -
when its AC, VALUE, or WEIGHT, has been altered - then this flag should
be set.  
  
set_id (string str) This is an extra name that can be used for the armour. 
  
set_can_use (string str) At certain times there are certain magical items
that should only be used by certain classes when created. It should not
be used to alter an already existing item to be used by a single class.

set_current_strength(int i)   This will alter the current armour strength
of the armour. The armour strength is the amount of damage the armour can
take before it is destroyed. This value cnanot exceed the maximum value
calculated by armour.c  
  
 
::: Further Notes :::

Classes
~~~~~~~

Mage - Cannot use shields
     - Can only wear type "armour" if its set_name() is either,
       robe, robes, cloak, bracers.
     - Can only wear types "helm", "gloves", "boots", "cloak" if the armour
       material is set to cloth, or leather.

Thief - Cannot use shields
      - Can only wear type "armour" if its set_name() is either,
        robe, robes, cloak, bracers or the armour material type is set
        to leather or cloth.

Fighter - Can wear all armour types.

Cleric - Can wear all armour types.

Notes: Multi-classed players have the minimum armour restrictions.
       ie. A fighter/mage has mage armour restrictions.


  
Angel, August 1993, updated July 1996.