2 #include "util/flag-group.h"
4 enum class AttributeType : int {
6 ELEC = 1, /*!< 魔法効果: 電撃*/
7 POIS = 2, /*!< 魔法効果: 毒*/
8 ACID = 3, /*!< 魔法効果: 酸*/
9 COLD = 4, /*!< 魔法効果: 冷気*/
10 FIRE = 5, /*!< 魔法効果: 火炎*/
11 PSY_SPEAR = 9, /*!< 魔法効果: 光の剣*/
12 MISSILE = 10, /*!< 魔法効果: 弱魔力*/
13 DEBUG = 11, /*!< 魔法効果: デバッグ用必中属性*/
14 PLASMA = 12, /*!< 魔法効果: プラズマ*/
15 WATER = 14, /*!< 魔法効果: 水流*/
16 LITE = 15, /*!< 魔法効果: 閃光*/
17 DARK = 16, /*!< 魔法効果: 暗黒*/
18 LITE_WEAK = 17, /*!< 魔法効果: 弱光*/
19 DARK_WEAK = 18, /*!< 魔法効果: 弱暗*/
20 SHARDS = 20, /*!< 魔法効果: 破片*/
21 SOUND = 21, /*!< 魔法効果: 轟音*/
22 CONFUSION = 22, /*!< 魔法効果: 混乱*/
23 FORCE = 23, /*!< 魔法効果: フォース*/
24 INERTIAL = 24, /*!< 魔法効果: 遅鈍*/
25 MANA = 26, /*!< 魔法効果: 純粋魔力*/
26 METEOR = 27, /*!< 魔法効果: 隕石*/
27 ICE = 28, /*!< 魔法効果: 極寒*/
28 CHAOS = 30, /*!< 魔法効果: カオス*/
29 NETHER = 31, /*!< 魔法効果: 地獄*/
30 DISENCHANT = 32, /*!< 魔法効果: 劣化*/
31 NEXUS = 33, /*!< 魔法効果: 因果混乱*/
32 TIME = 34, /*!< 魔法効果: 時間逆転*/
33 GRAVITY = 35, /*!< 魔法効果: 重力*/
34 KILL_WALL = 40, /*!< 魔法効果: 岩石溶解*/
35 KILL_DOOR = 41, /*!< 魔法効果: ドア破壊*/
36 KILL_TRAP = 42, /*!< 魔法効果: トラップ破壊*/
37 MAKE_WALL = 45, /*!< 魔法効果: 壁生成 (現在未使用)*/
38 MAKE_DOOR = 46, /*!< 魔法効果: ドア生成*/
39 MAKE_TRAP = 47, /*!< 魔法効果: トラップ生成*/
40 MAKE_TREE = 48, /*!< 魔法効果: 森林生成*/
41 OLD_CLONE = 51, /*!< 魔法効果: クローン・モンスター*/
42 OLD_POLY = 52, /*!< 魔法効果: チェンジ・モンスター*/
43 OLD_HEAL = 53, /*!< 魔法効果: 回復モンスター*/
44 OLD_SPEED = 54, /*!< 魔法効果: スピード・モンスター*/
45 OLD_SLOW = 55, /*!< 魔法効果: スロウ・モンスター*/
46 OLD_CONF = 56, /*!< 魔法効果: パニック・モンスター*/
47 OLD_SLEEP = 57, /*!< 魔法効果: スリープ・モンスター*/
48 HYPODYNAMIA = 58, /*!< 魔法効果: 衰弱*/
49 AWAY_UNDEAD = 61, /*!< 魔法効果: アンデッド・アウェイ*/
50 AWAY_EVIL = 62, /*!< 魔法効果: 邪悪飛ばし*/
51 AWAY_ALL = 63, /*!< 魔法効果: テレポート・アウェイ*/
52 TURN_UNDEAD = 64, /*!< 魔法効果: アンデッド恐慌*/
53 TURN_EVIL = 65, /*!< 魔法効果: 邪悪恐慌*/
54 TURN_ALL = 66, /*!< 魔法効果: モンスター恐慌*/
55 DISP_UNDEAD = 67, /*!< 魔法効果: アンデッド退散*/
56 DISP_EVIL = 68, /*!< 魔法効果: 邪悪退散*/
57 DISP_ALL = 69, /*!< 魔法効果: モンスター退散*/
58 DISP_DEMON = 70, /*!< 魔法効果: 悪魔退散*/
59 DISP_LIVING = 71, /*!< 魔法効果: 生命退散*/
60 ROCKET = 72, /*!< 魔法効果: ロケット*/
61 NUKE = 73, /*!< 魔法効果: 放射性廃棄物*/
62 MAKE_RUNE_PROTECTION = 74, /*!< 魔法効果: 守りのルーン生成*/
63 STASIS = 75, /*!< 魔法効果: モンスター拘束*/
64 STONE_WALL = 76, /*!< 魔法効果: 壁生成*/
65 DEATH_RAY = 77, /*!< 魔法効果: 死の光線*/
66 STUN = 78, /*!< 魔法効果: 朦朧*/
67 HOLY_FIRE = 79, /*!< 魔法効果: 聖光*/
68 HELL_FIRE = 80, /*!< 魔法効果: 地獄の劫火*/
69 DISINTEGRATE = 81, /*!< 魔法効果: 分解*/
70 CHARM = 82, /*!< 魔法効果: モンスター魅了*/
71 CONTROL_UNDEAD = 83, /*!< 魔法効果: アンデッド支配*/
72 CONTROL_ANIMAL = 84, /*!< 魔法効果: 動物支配*/
73 PSI = 85, /*!< 魔法効果: サイキック攻撃*/
74 PSI_DRAIN = 86, /*!< 魔法効果: 精神吸収*/
75 TELEKINESIS = 87, /*!< 魔法効果: テレキシネス*/
76 JAM_DOOR = 88, /*!< 魔法効果: 施錠*/
77 DOMINATION = 89, /*!< 魔法効果: 精神支配*/
78 DISP_GOOD = 90, /*!< 魔法効果: 善良退散*/
79 DRAIN_MANA = 91, /*!< 魔法効果: 魔力吸収*/
80 MIND_BLAST = 92, /*!< 魔法効果: 精神攻撃*/
81 BRAIN_SMASH = 93, /*!< 魔法効果: 脳攻撃*/
82 CAUSE_1 = 94, /*!< 魔法効果: 軽傷の呪い*/
83 CAUSE_2 = 95, /*!< 魔法効果: 重傷の呪い*/
84 CAUSE_3 = 96, /*!< 魔法効果: 致命傷の呪い*/
85 CAUSE_4 = 97, /*!< 魔法効果: 秘孔を突く*/
86 HAND_DOOM = 98, /*!< 魔法効果: 破滅の手*/
87 CAPTURE = 99, /*!< 魔法効果: 捕縛*/
88 ANIM_DEAD = 100, /*!< 魔法効果: 死者復活*/
89 CHARM_LIVING = 101, /*!< 魔法効果: 生命魅了*/
90 IDENTIFY = 102, /*!< 魔法効果: 鑑定*/
91 ATTACK = 103, /*!< 魔法効果: 白兵*/
92 ENGETSU = 104, /*!< 魔法効果: 円月*/
93 GENOCIDE = 105, /*!< 魔法効果: 抹殺*/
94 PHOTO = 106, /*!< 魔法効果: 撮影*/
95 CONTROL_DEMON = 107, /*!< 魔法効果: 悪魔支配*/
96 LAVA_FLOW = 108, /*!< 魔法効果: 溶岩噴出*/
97 BLOOD_CURSE = 109, /*!< 魔法効果: 血の呪い*/
98 SEEKER = 110, /*!< 魔法効果: シーカーレイ*/
99 SUPER_RAY = 111, /*!< 魔法効果: スーパーレイ*/
100 STAR_HEAL = 112, /*!< 魔法効果: 星の癒し*/
101 WATER_FLOW = 113, /*!< 魔法効果: 流水*/
102 CRUSADE = 114, /*!< 魔法効果: 聖戦*/
103 STASIS_EVIL = 115, /*!< 魔法効果: 邪悪拘束*/
104 WOUNDS = 116, /*!< 魔法効果: 創傷*/
105 E_GENOCIDE = 117, /*!< 魔法効果: 元素抹殺 */
106 VOID_MAGIC = 118, /*!< 魔法効果: 虚無 */
107 ABYSS = 119, /*!< 魔法効果: 深淵 */
108 HUNGRY = 120, /*!< 魔法効果: 空腹>*/
109 PLAYER_SHOOT = 121, /*!< 属性取得用: プレイヤーの射撃/投擲>*/
110 PLAYER_MELEE = 122, /*!< 属性取得用: プレイヤーの近接攻撃>*/
111 MONSTER_SHOOT = 123, /*!< 属性取得用: モンスターの射撃/投擲>*/
112 MONSTER_MELEE = 124, /*!< 属性取得用: モンスターの近接攻撃>*/
113 MAX /*!< 欠番を無視した最大サイズ (直上の値+1) */
116 /*! 属性フラグATTRIBUTEの集合を表すクラス */
117 using AttributeFlags = FlagGroup<AttributeType, AttributeType::MAX>;