OBJECT
	/obj/armour


SYNOPSIS
	#include <properties.h>
	#include <combat.h>
	inherit "/obj/armour";

	  OR

	clone_object ("/obj/armour");

LAST UPDATE
	Mateese, 27-Apr-95 00:30 MET


DESCRIPTION
	The /obj/armour is a simple generic armour.
	It implements the commands needed for an armour, and can be
	preconfigured to something sensible.

	The armour can be worn and unworn:

	  wear <armour>
	  unwear <armour>

	It is a direct descendant of /std/thing and /std/combat.
	The standard functions

	  void create ()
	  void init ()
	  int move (mixed dest, int method, void | mixed extra)
	  int remove ()
	  int QueryValue()
	  string InvShort (string what)
	  string Short (string what)

	are redefined approbiately, so that a move of the armour
	automatically unwears it, value decreases by degradation
	that the commands are added, and that the state (worn or
	not) is shown in the inventory listing.

	  int SetClass (int class)
	    This function sets the P_DEFENSE and P_AP_PER_QP according
	    to the given <class> and the actual P_ARMOUR_TYPE setting.

	  void SetType (int type, int class)
	    This function (re)sets the armour to be of <type> (or the
	    actual P_ARMOUR_TYPE if <type> is 0) and of class <class>.
	    All important properties are set to default values.
	    This functions accepts every type mentioned in /sys/combat.h.
	    For easier use with a rooms AddItem(), the first argument
	    <type> may also be an array of the ({ type, class }) to set.

	The setup by SetType(class, type) sets or changes these
	properties:
	  P_SHORT	  P_LONG	  P_IDS
	  P_VALUE	  P_WEIGHT	  P_DEFENSE
	  P_ARMOUR_TYPE   P_NUMBER_HANDS  P_AP_PER_QP


	For the easier programming of generic armours (like those in
	/obj/armour/*), the following two properties help restricting
	the class range a preconfigured armour can be set to:

	  int P_MIN_CLASS   "MinClass"
	  int P_MAX_CLASS   "MaxClass"
	    Both values are integers and determine the possible
	    minimum or maximum setting for P_CLASS. Class values
	    outside this range are mapped inside.


NOTE
	The directory /obj/armour/ contains several ready-made armours
	for direct cloneage. Use them as far as possible.

	Though they are ready-made, you can change their 'class' after
	cloning using the function

	  void SetUp (int class)
	    Setup the armour to be of strength <class>. This call also
	    initializes some extra data (like P_ADJECTIVES).


INHERITANCE TREE
	armour
	  |-std/combat
	  `-std/thing
	      |-std/base
	      |-std/thing/moving
	      |-std/thing/properties
	      `-std/thing/description



SEE ALSO
	combat(C), combat(S), thing(S)
