|
|
/*************************************************************************** character.h - description ------------------- begin : Sat Feb 5 2000 copyright : (C) 2000 by Daniel Roberge email : droberge@uvic.ca ***************************************************************************/ #ifndef _CHARACTER_H #define _CHARACTER_H #include "items.h" #include "dice.h" #include "status.h" #include "dpoints.h" #include "inventorylist.h" #define FIGHTER 0 #define PALADIN 1 #define RANGER 2 #define MAGE 3 #define CLERIC 4 #define DRUID 5 #define THIEF 6 #define BARD 7 #define HUMAN 0 #define DWARF 1 #define ELF 2 #define HALFELF 3 #define HALFLING 4 #define GNOME 5 /**Represents a generic character. Extend to create a specific character. *@author Daniel Roberge */ class Character { protected: int THACO; char *name; DepletablePoints HP; PWeapon weapon; PArmour armour; Status status; /**Carries out an attack roll against target*/ virtual bool attackRoll(Character &target); /**Carries out a damage roll against target*/ virtual void doDamage(Character &target); PInventoryList backpack; public: /**Creates a character with a weapon initialWeap, armour initialArm, and name myName*/ Character(PWeapon initialWeap,PArmour initialArm,char *myName); /**Destroys the Character object. Deletes the weapon, armour, status, and HP members*/ virtual ~Character(); /**Returns the THACO of the character (THACO with the letter O, not the number 0)*/ virtual int getTHACO() { return THACO + weapon->getPluses(); }; /**Returns the AC of the character for damage type DamageType*/ virtual int getAC(int DamageType); /**Returns the name of the character*/ char *getName() { return name; }; /**Returns the AC unmodified by damage type*/ virtual int getAC() { return armour->getAC(); }; /**Decreases the current value of the HP by amount. Returns the new HP value*/ int loseHP(int amount); /**Combines an attack roll and a damage roll*/ virtual void attack(Character &target); /**Returns whether or not the HP of the character has fallen below zero*/ bool amAlive() { return (HP.IsPositive()); }; /**Determines whether a character has a class.*/ virtual bool haveClass() = 0; }; typedef Character *PCharacter; typedef Character &RCharacter; #endif
Generated by: droberge@magebook.localdomain on Mon Jul 3 13:20:08 200. |