/**************************************************************
* FFTacticsMUD : skills.h *
**************************************************************
* (c) 2002 Damien Dailidenas (Trenton). All rights reserved. *
**************************************************************/
#define DECLARE_DO_ACT(fun) DO_ACT fun
typedef bool DO_ACT args((CH *ch, const bool check=false));
#define SK_ACTION 0
#define SK_REACTION 1
#define SK_SUPPORT 2
#define SK_MOVE 3
struct skill_type {
char *name;
short type;
DO_ACT *fun;
short job, range, effect, ctr, JP;
bool self;
short trigger;
};
extern const struct skill_type skill_table[];
/********************
* ACTIONS (DO_ACT) *
********************/
DECLARE_DO_ACT(do_attack);
DECLARE_DO_ACT(do_accumulate);
DECLARE_DO_ACT(do_dash);
DECLARE_DO_ACT(do_throwstone);
DECLARE_DO_ACT(do_heal);
DECLARE_DO_ACT(do_countertackle);
DECLARE_DO_ACT(do_bloodsuck);
DECLARE_DO_ACT(do_ice2);
DECLARE_DO_ACT(do_monsterskill);
DECLARE_DO_ACT(do_defend);
DECLARE_DO_ACT(do_potion);
DECLARE_DO_ACT(do_hipotion);
DECLARE_DO_ACT(do_xpotion);
DECLARE_DO_ACT(do_ether);
DECLARE_DO_ACT(do_hiether);
DECLARE_DO_ACT(do_elixir);
DECLARE_DO_ACT(do_antidote);
DECLARE_DO_ACT(do_eyedrop);
DECLARE_DO_ACT(do_echograss);
DECLARE_DO_ACT(do_maidenskiss);
DECLARE_DO_ACT(do_soft);
DECLARE_DO_ACT(do_holywater);
DECLARE_DO_ACT(do_remedy);
DECLARE_DO_ACT(do_phoenixdown);
DECLARE_DO_ACT(do_autopotion);
DECLARE_DO_ACT(do_throwitem);
DECLARE_DO_ACT(do_maintenance);
DECLARE_DO_ACT(do_equipchange);
DECLARE_DO_ACT(do_movefinditem);
DECLARE_DO_ACT(do_headbreak);
DECLARE_DO_ACT(do_armorbreak);
DECLARE_DO_ACT(do_shieldbreak);
DECLARE_DO_ACT(do_weaponbreak);
DECLARE_DO_ACT(do_magicbreak);
DECLARE_DO_ACT(do_speedbreak);
DECLARE_DO_ACT(do_powerbreak);
DECLARE_DO_ACT(do_mindbreak);
DECLARE_DO_ACT(do_weaponguard);
DECLARE_DO_ACT(do_fire);
DECLARE_DO_ACT(do_fire2);
DECLARE_DO_ACT(do_ice);
DECLARE_DO_ACT(do_bolt);
DECLARE_DO_ACT(do_bolt2);
DECLARE_DO_ACT(do_charge1);
DECLARE_DO_ACT(do_charge2);
DECLARE_DO_ACT(do_charge3);
DECLARE_DO_ACT(do_charge4);
DECLARE_DO_ACT(do_charge5);
DECLARE_DO_ACT(do_charge7);
DECLARE_DO_ACT(do_charge10);
DECLARE_DO_ACT(do_charge20);
DECLARE_DO_ACT(do_concentrate);
DECLARE_DO_ACT(do_speedsave);
DECLARE_DO_ACT(do_arrowguard);
DECLARE_DO_ACT(do_spinfist);
DECLARE_DO_ACT(do_repeatingfist);
DECLARE_DO_ACT(do_wavefist);
DECLARE_DO_ACT(do_earthslash);
DECLARE_DO_ACT(do_secretfist);
DECLARE_DO_ACT(do_stigmamagic);
DECLARE_DO_ACT(do_chakra);
DECLARE_DO_ACT(do_revive);
/***************
* NPC ACTIONS *
***************/
DECLARE_DO_ACT(do_chocoattack);
DECLARE_DO_ACT(do_chococure);
DECLARE_DO_ACT(do_chocoesuna);
DECLARE_DO_ACT(do_chocoball);
DECLARE_DO_ACT(do_chocometeor);
DECLARE_DO_ACT(do_tackle);
DECLARE_DO_ACT(do_eyegouge);
DECLARE_DO_ACT(do_goblinpunch);
DECLARE_DO_ACT(do_mutilate);
DECLARE_DO_ACT(do_bite);
DECLARE_DO_ACT(do_selfdestruct);
DECLARE_DO_ACT(do_smallbomb);
DECLARE_DO_ACT(do_turnpunch);
DECLARE_DO_ACT(do_spark);
DECLARE_DO_ACT(do_scratch);
DECLARE_DO_ACT(do_poisonnail);
DECLARE_DO_ACT(do_catkick);
DECLARE_DO_ACT(do_blaster);
DECLARE_DO_ACT(do_tentacle);
DECLARE_DO_ACT(do_blackink);
DECLARE_DO_ACT(do_darkwhisper);
DECLARE_DO_ACT(do_tripleflame);
DECLARE_DO_ACT(do_triplethunder);
DECLARE_DO_ACT(do_triplebreath);
DECLARE_DO_ACT(do_tripleattack);
DECLARE_DO_ACT(do_firebreath);
DECLARE_DO_ACT(do_thunderbreath);
DECLARE_DO_ACT(do_icebreath);
DECLARE_DO_ACT(do_tailswing);
DECLARE_DO_ACT(do_ulmaguest);
DECLARE_DO_ACT(do_suddencry);
DECLARE_DO_ACT(do_stabup);
DECLARE_DO_ACT(do_hurricane);
DECLARE_DO_ACT(do_gigaflare);
DECLARE_DO_ACT(do_moldballvirus);
DECLARE_DO_ACT(do_badbreath);
DECLARE_DO_ACT(do_lick);
DECLARE_DO_ACT(do_goo);
DECLARE_DO_ACT(do_blowfire);
DECLARE_DO_ACT(do_gatherpower);
DECLARE_DO_ACT(do_mimictitan);
DECLARE_DO_ACT(do_shakeoff);
DECLARE_DO_ACT(do_wavearound);
DECLARE_DO_ACT(do_magicspirit);
DECLARE_DO_ACT(do_calmspirit);
DECLARE_DO_ACT(do_protectspirit);
DECLARE_DO_ACT(do_leafdance);
DECLARE_DO_ACT(do_spiritoflife);
DECLARE_DO_ACT(do_pleaseeat);
DECLARE_DO_ACT(do_nosebreath);
DECLARE_DO_ACT(do_straightdash);
DECLARE_DO_ACT(do_pooh);
DECLARE_DO_ACT(do_oink);
DECLARE_DO_ACT(do_beaking);
DECLARE_DO_ACT(do_featherbomb);
DECLARE_DO_ACT(do_beak);
DECLARE_DO_ACT(do_scratchup);
DECLARE_DO_ACT(do_shinelover);
DECLARE_DO_ACT(do_circle);
DECLARE_DO_ACT(do_deathsentence);
DECLARE_DO_ACT(do_lookofdevil);
DECLARE_DO_ACT(do_wingattack);
DECLARE_DO_ACT(do_lookoffright);
DECLARE_DO_ACT(do_zombietouch);
DECLARE_DO_ACT(do_draintouch);
DECLARE_DO_ACT(do_throwspirit);
DECLARE_DO_ACT(do_greasetouch);
DECLARE_DO_ACT(do_sleeptouch);
DECLARE_DO_ACT(do_windsoul);
DECLARE_DO_ACT(do_icesoul);
DECLARE_DO_ACT(do_knifehand);
DECLARE_DO_ACT(do_aquasoul);
DECLARE_DO_ACT(do_thundersoul);
DECLARE_DO_ACT(do_levelblast);
DECLARE_DO_ACT(do_mindblast);
DECLARE_DO_ACT(do_oddsoundwave);
string get_skill_type(const short type);