1 /** 2 * @file 3 * @brief Monster spell casting. 4 **/ 5 6 #pragma once 7 8 #include "enum.h" 9 #include "externs.h" 10 #include "spell-type.h" 11 12 class actor; 13 class monster; 14 struct bolt; 15 struct dice_def; 16 17 void init_mons_spells(); 18 bool is_valid_mon_spell(spell_type spell); 19 20 void aura_of_brilliance(monster* agent); 21 22 bool mons_should_cloud_cone(monster* agent, int power, const coord_def pos); 23 24 dice_def waterstrike_damage(int spell_hd); 25 dice_def resonance_strike_base_damage(const monster &caster); 26 27 bool handle_mon_spell(monster* mons); 28 29 static const int ENCH_POW_FACTOR = 3; 30 bool mons_spell_is_spell(spell_type spell); 31 int mons_power_for_hd(spell_type spell, int hd); 32 int mons_spellpower(const monster &mons, spell_type spell); 33 int mons_spell_range_for_hd(spell_type spell, int hd); 34 bolt mons_spell_beam(const monster* mons, spell_type spell_cast, int power, 35 bool check_validity = false); 36 void mons_cast(monster* mons, bolt pbolt, spell_type spell_cast, 37 mon_spell_slot_flags slot_flags, bool do_noise = true); 38 void mons_cast_noise(monster* mons, const bolt &pbolt, 39 spell_type spell_cast, mon_spell_slot_flags slot_flags); 40 bool setup_mons_cast(const monster* mons, bolt &pbolt, spell_type spell_cast, 41 bool evoke = false, 42 bool check_validity = false); 43 44 void mons_cast_haunt(monster* mons); 45 bool mons_word_of_recall(monster* mons, int recall_target); 46 void mons_cast_spectral_orcs(monster* mons); 47 void setup_breath_timeout(monster* mons); 48 49 monster* cast_phantom_mirror(monster* mons, monster* targ, 50 int hp_perc = 35, 51 int summ_type = SPELL_PHANTOM_MIRROR); 52