/**************************************************************
* FFTacticsMUD : obj.h *
**************************************************************
* (c) 2002 Damien Dailidenas (Trenton). All rights reserved. *
**************************************************************/
#include "shop.h"
#define OBJ_WEAPON 0
#define OBJ_HEAD 1
#define OBJ_BODY 2
#define OBJ_ACC 3
#define OBJ_ITEM 4
#define OBJ_SHIELD 5
#define LOC_RHAND 0
#define LOC_LHAND 1
#define LOC_HEAD 2
#define LOC_BODY 3
#define LOC_ACC 4
#define TYPE_KNIFE 2
#define TYPE_SWORD 3
#define TYPE_KNIGHT_SWORD 4
#define TYPE_NINJA_SWORD 5
#define TYPE_KATANA 6
#define TYPE_STAFF 7
#define TYPE_ROD 8
#define TYPE_CROSSBOW 9
#define TYPE_BOW 10
#define TYPE_GUN 11
#define TYPE_GUNM 12
#define TYPE_FLAIL 13
#define TYPE_AXE 14
#define TYPE_STICK 15
#define TYPE_SPEAR 16
#define TYPE_INSTRUMENT 17
#define TYPE_DICTIONARY 18
#define TYPE_CLOTH 19
#define TYPE_BAG 20
#define TYPE_POTION 21
#define TYPE_HELMET 22
#define TYPE_HAT 23
#define TYPE_WRIBBON 24
#define TYPE_ARMOR 25
#define TYPE_ROBE 26
#define TYPE_CLOTHES 27
#define TYPE_SHOES 28
#define TYPE_SHIELD 29
#define TYPE_RING 30
#define TYPE_ARMLET 31
#define TYPE_MANTLE 32
#define TYPE_RIBBON 33
#define TYPE_GAUNTLET 34
#define TYPE_PERFUME 35
#define ELEM_WIND (A)
#define ELEM_LIGHTNING (B)
#define ELEM_ICE (C)
#define ELEM_FIRE (D)
#define ELEM_WATER (E)
#define ELEM_DARK (F)
#define ELEM_HOLY (G)
#define ELEM_EARTH (H)
struct obj_type {
char *name;
short obj_type, type, cost, HP, MP, ATm, ATp, pEv, mEv, Sp, Mv, Ju;
STATUSTYPE *add, *always[5], *cancel[20];
DO_ACT *action;
long elem, absorb, half, weakness, strengthen, imm;
short range;
bool drain;
};
struct obj_types {
short type;
char *name;
};
extern const struct obj_type obj_table[];
extern const struct obj_types obj_type_table[];
class OBJ {
public:
OBJ *next;
CH *ch;
BATTLE_ROOM *room;
short id, loc;
bool equipped;
OBJ(const short id);
~OBJ();
void to(CH *ch);
void from_ch();
void to(BATTLE_ROOM *room);
void from_battle_room();
string name();
string str_type();
short type();
short cost();
short value();
};