/*
....[@@@..[@@@..............[@.................. MUD++ is a written from
....[@..[@..[@..[@..[@..[@@@@@....[@......[@.... scratch multi-user swords and
....[@..[@..[@..[@..[@..[@..[@..[@@@@@..[@@@@@.. sorcery game written in C++.
....[@......[@..[@..[@..[@..[@....[@......[@.... This server is an ongoing
....[@......[@..[@@@@@..[@@@@@.................. development project. All
................................................ contributions are welcome.
....Copyright(C).1995.Melvin.Smith.............. Enjoy.
------------------------------------------------------------------------------
Melvin Smith (aka Fusion) msmith@falcon.mercer.peachnet.edu
MUD++ development mailing list mudpp-list@spice.com
------------------------------------------------------------------------------
combat.h
*/
#ifndef _COMBAT_H
#define _COMBAT_H
#include "bit.h"
const char * damRangeName( int, bool );
const char * damTypeName( int );
extern const bitType dam_types[];
const int DAM_RANGES = 7;
const int NONE = 0;
const int PUNCH = 1;
const int KICK = 2;
const int CRUSH = 3;
const int PIERCE = 4;
const int SLASH = 5;
const int WHIP = 6;
const int FUMBLE = 0;
const int MISSED = 1;
const int DODGED = 2;
const int HIT = 3;
const int CRIT_HIT = 4;
class Attack
{
private:
int type;
int min_dam;
int max_dam;
int hit_mod;
int dam_mod;
public:
Attack()
: type(PUNCH),
min_dam(1), max_dam(6),
hit_mod(0), dam_mod(0)
{
}
Attack( int t, int min, int max, int hit, int dam )
: type(t),
min_dam(min), max_dam(max),
hit_mod(hit), dam_mod(dam)
{
}
int getType() { return type; }
int getHit() { return hit_mod; }
int getDam() { return dam_mod; }
int getMin() { return min_dam; }
int getMax() { return max_dam; }
};
inline const char * getDamTypeName( int val )
{
return getBitName( dam_types, val );
}
inline int getDamType( const char * name )
{
return getBit( dam_types, name );
}
#endif