3 #include "monster-race/race-indice-types.h"
4 #include "system/angband.h"
5 #include "effect/attribute-types.h"
6 #include "util/flag-group.h"
13 typedef std::vector<std::tuple<monster_race_type, monster_race_type, monster_race_type>> combined_uniques;
14 class MonsterDamageProcessor {
16 MonsterDamageProcessor(PlayerType *player_ptr, MONSTER_IDX m_idx, int dam, bool *fear, AttributeType type);
17 MonsterDamageProcessor(PlayerType *player_ptr, MONSTER_IDX m_idx, int dam, bool *fear, AttributeFlags attribute_flags);
18 virtual ~MonsterDamageProcessor() = default;
19 bool mon_take_hit(concptr note);
22 PlayerType *player_ptr;
26 AttributeFlags attribute_flags{};
27 void get_exp_from_mon(monster_type *m_ptr, int exp_dam);
28 bool genocide_chaos_patron();
29 bool process_dead_exp_virtue(concptr note, monster_type *exp_mon);
30 void death_special_flag_monster();
31 void death_unique_monster(monster_race_type r_idx);
32 bool check_combined_unique(const monster_race_type r_idx, std::vector<monster_race_type> *combined_uniques);
33 void death_combined_uniques(const monster_race_type r_idx, combined_uniques *combined_uniques);
34 void increase_kill_numbers();
35 void death_amberites(GAME_TEXT *m_name);
36 void dying_scream(GAME_TEXT *m_name);
37 void show_kill_message(concptr note, GAME_TEXT *m_name);
38 void show_bounty_message(GAME_TEXT *m_name);
40 void summon_special_unique();
41 void add_monster_fear();