OSDN Git Service

[Refactor] #2204 HIT_POINTエイリアスをintに揃えた
[hengbandforosx/hengbandosx.git] / src / monster / monster-damage.h
1 #pragma once
2
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"
7 #include <tuple>
8 #include <vector>
9
10 struct monster_race;
11 struct monster_type;
12 class PlayerType;
13 typedef std::vector<std::tuple<monster_race_type, monster_race_type, monster_race_type>> combined_uniques;
14 class MonsterDamageProcessor {
15 public:
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);
20
21 private:
22     PlayerType *player_ptr;
23     MONSTER_IDX m_idx;
24     int dam;
25     bool *fear;
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);
39     void set_redraw();
40     void summon_special_unique();
41     void add_monster_fear();
42 };