/****************************************************************************
* [S]imulated [M]edieval [A]dventure multi[U]ser [G]ame | *
* -----------------------------------------------------------| \\._.// *
* SmaugWiz (C) 1998 by Russ Pillsbury (Windows NT version) | (0...0) *
* -----------------------------------------------------------| ).:.( *
* SMAUG (C) 1994, 1995, 1996 by Derek Snider | {o o} *
* -----------------------------------------------------------| / ' ' \ *
* SMAUG code team: Thoric, Altrag, Blodkai, Narn, Haus, |~'~.VxvxV.~'~*
* Scryn, Swordbearer, Rennard, Tricops, and Gorog. | *
* ------------------------------------------------------------------------ *
* Merc 2.1 Diku Mud improvments copyright (C) 1992, 1993 by Michael *
* Chastain, Michael Quan, and Mitchell Tse. *
* Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, *
* Michael Seifert, Hans Henrik Staerfeldt, Tom Madsen, and Katja Nyboe. *
* ------------------------------------------------------------------------ *
* Attack Flags Interface file *
***************************************************************************/
#ifndef ATCKFLAGS_H
#define ATCKFLAGS_H
#include "BitVector.h"
// Damage types from the attack_table []
enum DamageTypes {
DAM_HIT, DAM_SLICE, DAM_STAB, DAM_SLASH, DAM_WHIP, DAM_CLAW,
DAM_BLAST, DAM_POUND, DAM_CRUSH, DAM_GREP, DAM_BITE, DAM_PIERCE,
DAM_SUCTION, DAM_BOLT, DAM_ARROW, DAM_DART, DAM_STONE, DAM_PEA,
DAM_MAX };
// ATTACK bits
enum AttackBits {
ATCK_BITE, ATCK_CLAWS, ATCK_TAIL, ATCK_STING, ATCK_PUNCH, ATCK_KICK,
ATCK_TRIP, ATCK_BASH, ATCK_STUN, ATCK_GOUGE, ATCK_BACKSTAB, ATCK_FEED,
ATCK_DRAIN, ATCK_FIREBREATH, ATCK_FROSTBREATH, ATCK_ACIDBREATH,
ATCK_LIGHTNBREATH, ATCK_GASBREATH, ATCK_POISON, ATCK_NASTYPOISON, ATCK_GAZE,
ATCK_BLINDNESS, ATCK_CAUSESERIOUS, ATCK_EARTHQUAKE, ATCK_CAUSECRITICAL,
ATCK_CURSE, ATCK_FLAMESTRIKE, ATCK_HARM, ATCK_FIREBALL, ATCK_COLORSPRAY,
ATCK_WEAKEN, ATCK_SPIRALBLAST,
MAX_ATTACK_TYPE };
#ifdef SMAUGSERVER_CPP
const char* AttackNames [MAX_ATTACK_TYPE] = {
"bite", "claws", "tail", "sting", "punch", "kick",
"trip", "bash", "stun", "gouge", "backstab", "feed",
"drain", "firebreath", "frostbreath", "acidbreath",
"lightnbreath", "gasbreath", "poison", "nastypoison", "gaze",
"blindness", "causeserious", "earthquake", "causecritical",
"curse", "flamestrike", "harm", "fireball", "colorspray",
"weaken", "spiralblast"
};
#endif
extern const char* AttackNames [MAX_ATTACK_TYPE];
class CAttackFlags : public CBitVector {
public:
const CAttackFlags& GetAttackFlags () { return *this; }
void SetAttackFlags (const CAttackFlags& f) { *this = f; }
CString PrintString () const
{ return CBitVector::PrintString (AttackNames, MAX_ATTACK_TYPE); }
BOOL CanBite () { return IsSet (ATCK_BITE); }
void SetBite () { SetBit (ATCK_BITE); }
void ClrBite () { ClrBit (ATCK_BITE); }
BOOL CanUseClaws () { return IsSet (ATCK_CLAWS); }
void SetClaws () { SetBit (ATCK_CLAWS); }
void ClrClaws () { ClrBit (ATCK_CLAWS); }
BOOL CanUseTail () { return IsSet (ATCK_TAIL); }
void SetTail () { SetBit (ATCK_TAIL); }
void ClrTail () { ClrBit (ATCK_TAIL); }
BOOL CanSting () { return IsSet (ATCK_STING); }
void SetSting () { SetBit (ATCK_STING); }
void ClrSting () { ClrBit (ATCK_STING); }
BOOL CanPunch () { return IsSet (ATCK_PUNCH); }
void SetPunch () { SetBit (ATCK_PUNCH); }
void ClrPunch () { ClrBit (ATCK_PUNCH); }
BOOL CanKick () { return IsSet (ATCK_KICK); }
void SetKick () { SetBit (ATCK_KICK); }
void ClrKick () { ClrBit (ATCK_KICK); }
BOOL CanTrip () { return IsSet (ATCK_TRIP); }
void SetTrip () { SetBit (ATCK_TRIP); }
void ClrTrip () { ClrBit (ATCK_TRIP); }
BOOL CanBash () { return IsSet (ATCK_BASH); }
void SetBash () { SetBit (ATCK_BASH); }
void ClrBash () { ClrBit (ATCK_BASH); }
BOOL CanStun () { return IsSet (ATCK_STUN); }
void SetStun () { SetBit (ATCK_STUN); }
void ClrStun () { ClrBit (ATCK_STUN); }
BOOL CanGouge () { return IsSet (ATCK_GOUGE); }
void SetGouge () { SetBit (ATCK_GOUGE); }
void ClrGouge () { ClrBit (ATCK_GOUGE); }
BOOL CanBackStab () { return IsSet (ATCK_BACKSTAB); }
void SetBackStab () { SetBit (ATCK_BACKSTAB); }
void ClrBackStab () { ClrBit (ATCK_BACKSTAB); }
BOOL CanFeed () { return IsSet (ATCK_FEED); }
void SetFeed () { SetBit (ATCK_FEED); }
void ClrFeed () { ClrBit (ATCK_FEED); }
BOOL CanDrain () { return IsSet (ATCK_DRAIN); }
void SetDrain () { SetBit (ATCK_DRAIN); }
void ClrDrain () { ClrBit (ATCK_DRAIN); }
BOOL CanBreatheFire () { return IsSet (ATCK_FIREBREATH); }
void SetBreatheFire () { SetBit (ATCK_FIREBREATH); }
void ClrBreatheFire () { ClrBit (ATCK_FIREBREATH); }
BOOL CanBreatheFrost () { return IsSet (ATCK_FROSTBREATH); }
void SetBreatheFrost () { SetBit (ATCK_FROSTBREATH); }
void ClrBreatheFrost () { ClrBit (ATCK_FROSTBREATH); }
BOOL CanBreatheAcid () { return IsSet (ATCK_ACIDBREATH); }
void SetBreatheAcid () { SetBit (ATCK_ACIDBREATH); }
void ClrBreatheAcid () { ClrBit (ATCK_ACIDBREATH); }
BOOL CanBreatheLightning () { return IsSet (ATCK_LIGHTNBREATH); }
void SetBreatheLightning () { SetBit (ATCK_LIGHTNBREATH); }
void ClrBreatheLightning () { ClrBit (ATCK_LIGHTNBREATH); }
BOOL CanBreatheGas () { return IsSet (ATCK_GASBREATH); }
void SetBreatheGas () { SetBit (ATCK_GASBREATH); }
void ClrBreatheGas () { ClrBit (ATCK_GASBREATH); }
BOOL CanPoison () { return IsSet (ATCK_POISON); }
void SetPoison () { SetBit (ATCK_POISON); }
void ClrPoison () { ClrBit (ATCK_POISON); }
BOOL CanNastyPoison () { return IsSet (ATCK_NASTYPOISON); }
void SetNastyPoison () { SetBit (ATCK_NASTYPOISON); }
void ClrNastyPoison () { ClrBit (ATCK_NASTYPOISON); }
BOOL CanGaze () { return IsSet (ATCK_GAZE); }
void SetGaze () { SetBit (ATCK_GAZE); }
void ClrGaze () { ClrBit (ATCK_GAZE); }
BOOL CanBlind () { return IsSet (ATCK_BLINDNESS); }
void SetBlind () { SetBit (ATCK_BLINDNESS); }
void ClrBlind () { ClrBit (ATCK_BLINDNESS); }
BOOL CanCauseSerious () { return IsSet (ATCK_CAUSESERIOUS); }
void SetCauseSerious () { SetBit (ATCK_CAUSESERIOUS); }
void ClrCauseSerious () { ClrBit (ATCK_CAUSESERIOUS); }
BOOL CanQuake () { return IsSet (ATCK_EARTHQUAKE); }
void SetQuake () { SetBit (ATCK_EARTHQUAKE); }
void ClrQuake () { ClrBit (ATCK_EARTHQUAKE); }
BOOL CanCauseCritical () { return IsSet (ATCK_CAUSECRITICAL); }
void SetCauseCritical () { SetBit (ATCK_CAUSECRITICAL); }
void ClrCauseCritical () { ClrBit (ATCK_CAUSECRITICAL); }
BOOL CanCurse () { return IsSet (ATCK_CURSE); }
void SetCurse () { SetBit (ATCK_CURSE); }
void ClrCurse () { ClrBit (ATCK_CURSE); }
BOOL CanFlameStrike () { return IsSet (ATCK_FLAMESTRIKE); }
void SetFlameStrike () { SetBit (ATCK_FLAMESTRIKE); }
void ClrFlameStrike () { ClrBit (ATCK_FLAMESTRIKE); }
BOOL CanHarm () { return IsSet (ATCK_HARM); }
void SetHarm () { SetBit (ATCK_HARM); }
void ClrHarm () { ClrBit (ATCK_HARM); }
BOOL CanFireball () { return IsSet (ATCK_FIREBALL); }
void SetFireball () { SetBit (ATCK_FIREBALL); }
void ClrFireball () { ClrBit (ATCK_FIREBALL); }
BOOL CanColorSpray () { return IsSet (ATCK_COLORSPRAY); }
void SetColorSpray () { SetBit (ATCK_COLORSPRAY); }
void ClrColorSpray () { ClrBit (ATCK_COLORSPRAY); }
BOOL CanWeaken () { return IsSet (ATCK_WEAKEN); }
void SetWeaken () { SetBit (ATCK_WEAKEN); }
void ClrWeaken () { ClrBit (ATCK_WEAKEN); }
BOOL CanSpiralBlast () { return IsSet (ATCK_SPIRALBLAST); }
void SetSpiralBlast () { SetBit (ATCK_SPIRALBLAST); }
void ClrSpiralBlast () { ClrBit (ATCK_SPIRALBLAST); }
};
#endif