OSDN Git Service

Merge branch 'master' of https://github.com/hengband/hengband
[hengbandforosx/hengbandosx.git] / src / effect / effect-player.h
1 #pragma once
2
3 #include "effect/attribute-types.h"
4 #include "system/angband.h"
5 #include <optional>
6
7 class MonsterEntity;
8 class FallOffHorseEffect;
9 class EffectPlayerType {
10 public:
11     DEPTH rlev; // モンスターのレベル (但し0のモンスターは1になる).
12     MonsterEntity *m_ptr;
13     std::string killer;
14     std::string m_name;
15     int get_damage;
16
17     MONSTER_IDX src_idx;
18     int dam;
19     AttributeType attribute;
20     BIT_FLAGS flag;
21     EffectPlayerType(MONSTER_IDX src_idx, int dam, AttributeType attribute, BIT_FLAGS flag);
22 };
23
24 struct ProjectResult;
25 class CapturedMonsterType;
26 class PlayerType;
27 using project_func = ProjectResult (*)(
28     PlayerType *player_ptr, MONSTER_IDX src_idx, POSITION rad, POSITION y, POSITION x, int dam, AttributeType typ, BIT_FLAGS flag, std::optional<CapturedMonsterType *> cap_mon_ptr);
29
30 bool affect_player(MONSTER_IDX src_idx, PlayerType *player_ptr, concptr src_name, int r, POSITION y, POSITION x, int dam, AttributeType typ, BIT_FLAGS flag,
31     FallOffHorseEffect &fall_off_horse_effect, project_func project);