static void _critical_blow_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Critical Blow"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with a single devastating blow."); break; case SPELL_CAST: var_set_bool(res, do_blow(MAULER_CRITICAL_BLOW)); break; case SPELL_ON_BROWSE: { bool screen_hack = screen_is_saved(); if (screen_hack) screen_load(); display_weapon_mode = MAULER_CRITICAL_BLOW; do_cmd_knowledge_weapon(); display_weapon_mode = 0; if (screen_hack) screen_save(); var_set_bool(res, TRUE); break; } default: default_spell(cmd, res); break; } }
static void _knockback_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Knockback"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with a single blow. If landed, your foe will be knocked back away from you."); break; case SPELL_CAST: var_set_bool(res, do_blow(MAULER_KNOCKBACK)); break; case SPELL_ON_BROWSE: { bool screen_hack = screen_is_saved(); if (screen_hack) screen_load(); display_weapon_mode = MAULER_KNOCKBACK; do_cmd_knowledge_weapon(); display_weapon_mode = 0; if (screen_hack) screen_save(); var_set_bool(res, TRUE); break; } default: default_spell(cmd, res); break; } }
void stunning_blow_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Stunning Blow"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with a single blow aimed to stun."); break; case SPELL_CAST: var_set_bool(res, do_blow(MAULER_STUNNING_BLOW)); break; case SPELL_ON_BROWSE: { bool screen_hack = screen_is_saved(); if (screen_hack) screen_load(); display_weapon_mode = MAULER_STUNNING_BLOW; do_cmd_knowledge_weapon(); display_weapon_mode = 0; if (screen_hack) screen_save(); var_set_bool(res, TRUE); break; } default: default_spell(cmd, res); break; } }
static void _crushing_blow_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Crushing Blow"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with a single powerful blow."); break; case SPELL_CAST: var_set_bool(res, do_blow(MAULER_CRUSHING_BLOW)); break; default: default_spell(cmd, res); break; } }
static void _critical_blow_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Critical Blow"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with a single devastating blow."); break; case SPELL_CAST: var_set_bool(res, do_blow(MAULER_CRITICAL_BLOW)); break; default: default_spell(cmd, res); break; } }
static void _poison_strike_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Serpent's Tongue"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with a poisonous blow."); break; case SPELL_CAST: var_set_bool(res, do_blow(MYSTIC_POIS)); break; default: default_spell(cmd, res); break; } }
static void _knockout_blow_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Knockout Blow"); break; case SPELL_DESC: var_set_string(res, "Attempt to knockout an adjacent opponent."); break; case SPELL_CAST: var_set_bool(res, do_blow(MYSTIC_KNOCKOUT)); break; default: default_spell(cmd, res); break; } }
void lightning_eagle_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Lightning Eagle"); break; case SPELL_DESC: var_set_string(res, "Attacks a monster with more damage unless it has resistance to electricity."); break; case SPELL_CAST: var_set_bool(res, do_blow(HISSATSU_ELEC)); break; default: default_spell(cmd, res); break; } }
static void _stunning_blow_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Stunning Blow"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with a single blow aimed to stun."); break; case SPELL_CAST: var_set_bool(res, do_blow(MAULER_STUNNING_BLOW)); break; default: default_spell(cmd, res); break; } }
static void _super_attack_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Powerful Attack"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent powerfully."); break; case SPELL_CAST: var_set_bool(res, do_blow(PY_POWER_ATTACK)); break; default: default_spell(cmd, res); break; } }
static void _acid_strike_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Acid Strike"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with a corrosive blow."); break; case SPELL_CAST: var_set_bool(res, do_blow(PY_ATTACK_ACID)); break; default: default_spell(cmd, res); break; } }
static void _lightning_strike_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Lightning Strike"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with a shocking blow."); break; case SPELL_CAST: var_set_bool(res, do_blow(HISSATSU_ELEC)); break; default: default_spell(cmd, res); break; } }
static void _flaming_strike_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Flaming Strike"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with a fiery blow."); break; case SPELL_CAST: var_set_bool(res, do_blow(HISSATSU_FIRE)); break; default: default_spell(cmd, res); break; } }
static void _confusing_strike_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Confusing Strike"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with confusing blows."); break; case SPELL_CAST: var_set_bool(res, do_blow(MYSTIC_CONFUSE)); break; default: default_spell(cmd, res); break; } }
static void _cold_strike_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Icy Fists"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with a freezing blow."); break; case SPELL_CAST: var_set_bool(res, do_blow(MYSTIC_COLD)); break; default: default_spell(cmd, res); break; } }
static void _knockback_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Knockback"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with a single blow. If landed, your foe will be knocked back away from you."); break; case SPELL_CAST: var_set_bool(res, do_blow(MAULER_KNOCKBACK)); break; default: default_spell(cmd, res); break; } }
static void _knockout_blow_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Knockout Blow"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with a single blow aimed to knock your opponent out cold."); break; case SPELL_CAST: var_set_bool(res, do_blow(MAULER_KNOCKOUT_BLOW)); break; default: default_spell(cmd, res); break; } }
static void _killing_strike_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Touch of Death"); break; case SPELL_DESC: var_set_string(res, "Attempt to kill an adjacent opponent with a single blow."); break; case SPELL_CAST: var_set_bool(res, do_blow(MYSTIC_KILL)); break; default: default_spell(cmd, res); break; } }
void burning_strike_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Burning Strike"); break; case SPELL_DESC: var_set_string(res, "Attacks a monster with more damage unless it has resistance to fire."); break; case SPELL_CAST: var_set_bool(res, do_blow(HISSATSU_FIRE)); break; default: default_spell(cmd, res); break; } }
static void _stunning_blow_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Stunning Blow"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with stunning blows."); break; case SPELL_CAST: var_set_bool(res, do_blow(MYSTIC_STUN)); break; default: default_spell(cmd, res); break; } }
static void _crushing_blow_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Crushing Blow"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with crushing blows for extra damage."); break; case SPELL_CAST: var_set_bool(res, do_blow(MYSTIC_CRITICAL)); break; default: default_spell(cmd, res); break; } }
static void _fire_strike_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Flaming Strike"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with a flaming blow."); break; case SPELL_CAST: var_set_bool(res, do_blow(MYSTIC_FIRE)); break; case SPELL_ON_BROWSE: _on_browse(MYSTIC_FIRE); var_set_bool(res, TRUE); break; default: default_spell(cmd, res); break; } }
static void _elec_strike_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Lightning Eagle"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with a shocking blow."); break; case SPELL_CAST: var_set_bool(res, do_blow(MYSTIC_ELEC)); break; case SPELL_ON_BROWSE: _on_browse(MYSTIC_ELEC); var_set_bool(res, TRUE); break; default: default_spell(cmd, res); break; } }
static void _acid_strike_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Corrosive Blow"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with an acid blow."); break; case SPELL_CAST: var_set_bool(res, do_blow(MYSTIC_ACID)); break; case SPELL_ON_BROWSE: _on_browse(MYSTIC_ACID); var_set_bool(res, TRUE); break; default: default_spell(cmd, res); break; } }
/********************************************************************** * Powers **********************************************************************/ static void _big_punch_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Big Punch"); break; case SPELL_DESC: var_set_string(res, "Attack an adjacent opponent with a single devastating blow."); break; case SPELL_CAST: if (p_ptr->innate_attack_ct) var_set_bool(res, do_blow(GOLEM_BIG_PUNCH)); else { msg_print("Not while you are wielding a weapon!"); var_set_bool(res, FALSE); } break; default: default_spell(cmd, res); break; } }