3 #include "system/angband.h"
4 #include "realm/realm-hex-numbers.h"
7 enum class SpellHexRevengeType : byte {
13 class MonsterAttackPlayer;
15 struct spell_hex_data_type;
18 SpellHex(PlayerType *player_ptr);
19 SpellHex(PlayerType *player_ptr, MonsterAttackPlayer *monap_ptr);
20 virtual ~SpellHex() = default;
22 bool stop_spells_with_selection();
24 void stop_all_spells();
25 bool is_casting_full_capacity() const;
26 void continue_revenge();
27 void store_vengeful_damage(HIT_POINT dam);
28 bool check_hex_barrier(MONSTER_IDX m_idx, spell_hex_type type) const;
29 bool is_spelling_specific(int hex) const;
30 bool is_spelling_any() const;
31 void interrupt_spelling();
33 void thief_teleport();
34 void set_casting_flag(spell_hex_type type);
35 void reset_casting_flag(spell_hex_type type);
36 int32_t get_casting_num() const;
37 int32_t get_revenge_power() const;
38 void set_revenge_power(int32_t power, bool substitution);
39 byte get_revenge_turn() const;
40 void set_revenge_turn(byte power, bool substitution);
41 SpellHexRevengeType get_revenge_type() const;
42 void set_revenge_type(SpellHexRevengeType type);
45 PlayerType *player_ptr;
46 std::vector<int> casting_spells;
47 MonsterAttackPlayer *monap_ptr = nullptr;
48 std::shared_ptr<spell_hex_data_type> spell_hex_data;
50 std::tuple<bool, bool, char> select_spell_stopping(char *out_val);
51 void display_casting_spells_list();
52 bool process_mana_cost(const bool need_restart);