OSDN Git Service

[Refactor] #2645 display_object_list() を整形した
[hengbandforosx/hengbandosx.git] / src / object-enchant / tr-types.h
1 #pragma once
2
3 #include "system/angband.h"
4
5 #include <array>
6
7 /*!
8  * @todo TRが何の略か分かる人、補足求む
9  */
10 enum tr_type : int32_t {
11     TR_STR = 0, /* STR += "pval" */
12     TR_INT = 1, /* INT += "pval" */
13     TR_WIS = 2, /* WIS += "pval" */
14     TR_DEX = 3, /* DEX += "pval" */
15     TR_CON = 4, /* CON += "pval" */
16     TR_CHR = 5, /* CHR += "pval" */
17     TR_MAGIC_MASTERY = 6, /* 魔道具使用能力向上 */
18     TR_FORCE_WEAPON = 7, /* Later */
19     TR_STEALTH = 8, /* Stealth += "pval" */
20     TR_SEARCH = 9, /* Search += "pval" */
21     TR_INFRA = 10, /* Infra += "pval" */
22     TR_TUNNEL = 11, /* Tunnel += "pval" */
23     TR_SPEED = 12, /* Speed += "pval" */
24     TR_BLOWS = 13, /* Blows += "pval" */
25     TR_CHAOTIC = 14,
26     TR_VAMPIRIC = 15,
27     TR_SLAY_ANIMAL = 16,
28     TR_SLAY_EVIL = 17,
29     TR_SLAY_UNDEAD = 18,
30     TR_SLAY_DEMON = 19,
31     TR_SLAY_ORC = 20,
32     TR_SLAY_TROLL = 21,
33     TR_SLAY_GIANT = 22,
34     TR_SLAY_DRAGON = 23,
35     TR_KILL_DRAGON = 24, /* Execute Dragon */
36     TR_VORPAL = 25, /* Later */
37     TR_EARTHQUAKE = 26, //!< 地震を起こす / Cause earthquake
38     TR_BRAND_POIS = 27,
39     TR_BRAND_ACID = 28,
40     TR_BRAND_ELEC = 29,
41     TR_BRAND_FIRE = 30,
42     TR_BRAND_COLD = 31,
43
44     TR_SUST_STR = 32,
45     TR_SUST_INT = 33,
46     TR_SUST_WIS = 34,
47     TR_SUST_DEX = 35,
48     TR_SUST_CON = 36,
49     TR_SUST_CHR = 37,
50     TR_RIDING = 38,
51     TR_EASY_SPELL = 39, /* 呪文失敗率減少 */
52     TR_IM_ACID = 40,
53     TR_IM_ELEC = 41,
54     TR_IM_FIRE = 42,
55     TR_IM_COLD = 43,
56     TR_THROW = 44, /* 強力投擲ではなく、投げやすい武器 */
57     TR_REFLECT = 45, /* Reflect 'bolts' */
58     TR_FREE_ACT = 46, /* 耐麻痺 */
59     TR_HOLD_EXP = 47, /* 経験値維持 */
60     TR_RES_ACID = 48,
61     TR_RES_ELEC = 49,
62     TR_RES_FIRE = 50,
63     TR_RES_COLD = 51,
64     TR_RES_POIS = 52,
65     TR_RES_FEAR = 53, /* Added for Zangband */
66     TR_RES_LITE = 54,
67     TR_RES_DARK = 55,
68     TR_RES_BLIND = 56,
69     TR_RES_CONF = 57,
70     TR_RES_SOUND = 58,
71     TR_RES_SHARDS = 59,
72     TR_RES_NETHER = 60,
73     TR_RES_NEXUS = 61,
74     TR_RES_CHAOS = 62,
75     TR_RES_DISEN = 63,
76
77     TR_SH_FIRE = 64, /* Immolation (Fire) */
78     TR_SH_ELEC = 65, /* Electric Sheath */
79     TR_SLAY_HUMAN = 66, /* Slay human */
80     TR_SH_COLD = 67, /* cold aura */
81     TR_NO_TELE = 68, /* 反テレポート */
82     TR_NO_MAGIC = 69, /* 反魔法 */
83     TR_DEC_MANA = 70, /* 消費魔力減少 */
84     TR_TY_CURSE = 71, /* The Ancient Curse */
85     TR_WARNING = 72, /* Warning */
86     TR_HIDE_TYPE = 73, /* Hide "pval" description */
87     TR_SHOW_MODS = 74, /* Always show Tohit/Todam */
88     TR_SLAY_GOOD = 75, //!< 善良スレイ(/善)
89     TR_LEVITATION = 76, /* Feather Falling */
90     TR_LITE_1 = 77, /* Light Radius 1*/
91     TR_SEE_INVIS = 78, /* See Invisible */
92     TR_TELEPATHY = 79, /* Telepathy */
93     TR_SLOW_DIGEST = 80, /* Item slows down digestion */
94     TR_REGEN = 81, /* Item induces regeneration */
95     TR_XTRA_MIGHT = 82, /* Bows get extra multiplier */
96     TR_XTRA_SHOTS = 83, /* Bows get extra shots */
97     TR_IGNORE_ACID = 84, /* Item ignores Acid Damage */
98     TR_IGNORE_ELEC = 85, /* Item ignores Elec Damage */
99     TR_IGNORE_FIRE = 86, /* Item ignores Fire Damage */
100     TR_IGNORE_COLD = 87, /* Item ignores Cold Damage */
101     TR_ACTIVATE = 88, /* Item can be activated */
102     TR_DRAIN_EXP = 89, /* Item drains Experience */
103     TR_TELEPORT = 90, /* Item teleports player */
104     TR_AGGRAVATE = 91, /* Item aggravates monsters */
105     TR_BLESSED = 92, /* Item is Blessed */
106     TR_XXX_93 = 93, //!< 未使用 / Unused
107     TR_XXX_94 = 94, //!< 未使用 / Unused
108     TR_KILL_GOOD = 95, //!< 善良スレイ(X善)
109
110     TR_KILL_ANIMAL = 96,
111     TR_KILL_EVIL = 97,
112     TR_KILL_UNDEAD = 98,
113     TR_KILL_DEMON = 99,
114     TR_KILL_ORC = 100,
115     TR_KILL_TROLL = 101,
116     TR_KILL_GIANT = 102,
117     TR_KILL_HUMAN = 103,
118     TR_ESP_ANIMAL = 104,
119     TR_ESP_UNDEAD = 105,
120     TR_ESP_DEMON = 106,
121     TR_ESP_ORC = 107,
122     TR_ESP_TROLL = 108,
123     TR_ESP_GIANT = 109,
124     TR_ESP_DRAGON = 110,
125     TR_ESP_HUMAN = 111,
126     TR_ESP_EVIL = 112,
127     TR_ESP_GOOD = 113,
128     TR_ESP_NONLIVING = 114,
129     TR_ESP_UNIQUE = 115,
130     TR_FULL_NAME = 116,
131     TR_FIXED_FLAVOR = 117,
132     TR_ADD_L_CURSE = 118,
133     TR_ADD_H_CURSE = 119,
134     TR_DRAIN_HP = 120,
135     TR_DRAIN_MANA = 121,
136     TR_LITE_2 = 122,
137     TR_LITE_3 = 123,
138     TR_LITE_M1 = 124, /* Permanent decrease Light Area (-1) */
139     TR_LITE_M2 = 125, /* Permanent decrease Light Area (-1) */
140     TR_LITE_M3 = 126, /* Permanent decrease Light Area (-1) */
141     TR_LITE_FUEL = 127, /* Lights need Fuels */
142
143     TR_CALL_ANIMAL = 128,
144     TR_CALL_DEMON = 129,
145     TR_CALL_DRAGON = 130,
146     TR_CALL_UNDEAD = 131,
147     TR_COWARDICE = 132,
148     TR_LOW_MELEE = 133,
149     TR_LOW_AC = 134,
150     TR_HARD_SPELL = 135,
151     TR_FAST_DIGEST = 136,
152     TR_SLOW_REGEN = 137,
153     TR_MIGHTY_THROW = 138,
154     TR_EASY2_WEAPON = 139,
155     TR_DOWN_SAVING = 140,
156     TR_NO_AC = 141,
157     TR_HEAVY_SPELL = 142,
158     TR_RES_TIME = 143,
159     TR_RES_WATER = 144,
160     TR_INVULN_ARROW = 145,
161     TR_DARK_SOURCE = 146,
162     TR_SUPPORTIVE = 147,
163     TR_RES_CURSE = 148,
164     TR_BERS_RAGE = 149, //!< 狂戦士化の発作
165     TR_BRAND_MAGIC = 150, //!< 魔術属性
166     TR_IMPACT = 151, //!< クリティカル率アップ / Increase critical hit ratio
167     TR_VUL_ACID = 152, //!< 酸弱点
168     TR_VUL_COLD = 153, //!< 冷気弱点
169     TR_VUL_ELEC = 154, //!< 電撃弱点
170     TR_VUL_FIRE = 155, //!< 火炎弱点
171     TR_VUL_LITE = 156, //!< 閃光弱点
172     TR_IM_DARK = 157, //!< 暗黒免疫
173
174     TR_SELF_FIRE = 158, //!< マイナスフラグ - 持続火炎ダメージ
175     TR_SELF_ELEC = 159, //!< マイナスフラグ - 持続電撃ダメージ
176     TR_SELF_COLD = 160, //!< マイナスフラグ - 持続冷気ダメージ
177
178     TR_PERSISTENT_CURSE = 161, //!< 頻繁に自身を呪いなおすフラグ
179     TR_VUL_CURSE = 162, //!< 呪力弱点
180
181     TR_FLAG_MAX = 163,
182 };
183
184 /** 能力値(STR,INT,WIS,DEX,CON,CHR)のpvalを増減させるフラグのリスト */
185 inline constexpr std::array<tr_type, 6> TR_STATUS_LIST = { {
186     TR_STR,
187     TR_INT,
188     TR_WIS,
189     TR_DEX,
190     TR_CON,
191     TR_CHR,
192 } };
193
194 /** 能力値(STR,INT,WIS,DEX,CON,CHR)を維持するフラグのリスト */
195 inline constexpr std::array<tr_type, 6> TR_SUST_STATUS_LIST = { {
196     TR_SUST_STR,
197     TR_SUST_INT,
198     TR_SUST_WIS,
199     TR_SUST_DEX,
200     TR_SUST_CON,
201     TR_SUST_CHR,
202 } };