OSDN Git Service

Merge pull request #3569 from sikabane-works/release/3.0.0.88-alpha
[hengbandforosx/hengbandosx.git] / src / mspell / mspell-attack-util.h
1 #pragma once
2
3 #include "monster-race/race-ability-flags.h"
4 #include "system/angband.h"
5 #include "util/flag-group.h"
6 #include <string>
7 #include <vector>
8
9 enum mspell_lite_type {
10     DO_SPELL_NONE = 0,
11     DO_SPELL_BR_LITE = 1,
12     DO_SPELL_BR_DISI = 2,
13     DO_SPELL_BA_LITE = 3,
14 };
15
16 // Monster Spell Attack.
17 class MonsterEntity;
18 class MonsterRaceInfo;
19 class PlayerType;
20 struct msa_type {
21     msa_type(PlayerType *player_ptr, MONSTER_IDX m_idx);
22
23     POSITION x_br_lite = 0;
24     POSITION y_br_lite = 0;
25     bool in_no_magic_dungeon = false;
26     bool success = false;
27     std::vector<MonsterAbilityType> mspells{};
28     std::string m_name = "";
29     bool can_remember = false;
30     int dam = 0;
31     DEPTH rlev = 0;
32
33     MONSTER_IDX m_idx;
34     MonsterEntity *m_ptr;
35     POSITION x;
36     POSITION y;
37     mspell_lite_type do_spell;
38     MonsterAbilityType thrown_spell;
39
40     MonsterRaceInfo *r_ptr;
41     bool no_inate;
42     EnumClassFlagGroup<MonsterAbilityType> ability_flags;
43 };