/***************************************************************************
weapon.h - description
-------------------
begin : Sat Jan 22 2000
copyright : (C) 2000 by Daniel Roberge
email : droberge@uvic.ca
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the Artistic License *
* *
***************************************************************************/
#ifndef _WEAPON_H
#define _WEAPON_H
#include "invitem.h"
#include "dice.h"
#define SLASHING 0
#define PIERCING 1
#define BLUDGEONING 2
#define MISSILE 3
/**Represents a weapon which has a certain amount of damage dice plus a damage type and speed
*@author Daniel Roberge
*/
class Weapon : public InventoryItem
{
private: // Private attributes
/**Basic weapon data*/
int numdice,dicesides,plusminus,damageType,speed;
public:
/**Creates a basic (wimpy) weapon named "Fists"*/
Weapon();
/**Creates a custom weapon with speed Speed, damage type DT, dice damage dice with sides sides, with a bonus of bonus,
named AName and weight Weight*/
Weapon(int Speed,int DT,int dice,int sides,int bonus,char *AName,int Weight);
/**Creates a weapon which is a duplicate of model*/
Weapon(const Weapon& model);
/**Returns the weapon's speed*/
int getSpeed() const { return speed; };
/**Returns the integer constant representing the damage type*/
int getDT() const { return damageType; };
/**Rolls the damage dice and returns the value*/
virtual int returnDamage() const;
/**Returns the item's type*/
InventoryType getType() { return WP_FLAG; };
/** Returns the presence or absence of magic in the weapon */
virtual bool isMagic() const;
/** Returns the pluses on the weapon. */
virtual int getPluses() const;
};
/** Returns the pluses on the weapon. */
inline int Weapon::getPluses() const{
return 0;
}
/** Returns the presence or absence of magic in the weapon */
inline bool Weapon::isMagic() const{
return false;
}
/**Reference to the Weapon class*/
typedef Weapon& RWeapon;
/**Pointer to the Weapon class*/
typedef Weapon* PWeapon;
#ifdef WP_LIB
/**Contains the standard weapon library*/
class WeaponLibrary {
public:
static const Weapon *Dagger;
static const Weapon *Shortsword;
static const Weapon *Longsword;
/** Initializes the static members of the library*/
static void setupLib();
/**Deletes the static members of the library*/
static void cleanupLib();
};
#endif
#endif
| Generated by: droberge@magebook.localdomain on Mon Jul 3 13:20:08 200. |