OSDN Git Service

Merge pull request #3532 from sikabane-works/release/3.0.0.87-alpha
[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 EffectPlayerType {
9 public:
10     DEPTH rlev; // モンスターのレベル (但し0のモンスターは1になる).
11     MonsterEntity *m_ptr;
12     char killer[MAX_MONSTER_NAME];
13     GAME_TEXT m_name[MAX_NLEN];
14     int get_damage;
15
16     MONSTER_IDX who;
17     int dam;
18     AttributeType attribute;
19     BIT_FLAGS flag;
20     EffectPlayerType(MONSTER_IDX who, int dam, AttributeType attribute, BIT_FLAGS flag);
21 };
22
23 struct ProjectResult;
24 class CapturedMonsterType;
25 class PlayerType;
26 using project_func = ProjectResult (*)(
27     PlayerType *player_ptr, MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, int dam, AttributeType typ, BIT_FLAGS flag, std::optional<CapturedMonsterType *> cap_mon_ptr);
28
29 bool affect_player(MONSTER_IDX who, PlayerType *player_ptr, concptr who_name, int r, POSITION y, POSITION x, int dam, AttributeType typ, BIT_FLAGS flag,
30     project_func project);