OSDN Git Service

[Refactor] #2807 Renamed monster-race-definition.h to monster-race-info.h
[hengbandforosx/hengbandosx.git] / src / lore / magic-types-setter.cpp
1 #include "lore/magic-types-setter.h"
2 #include "lore/lore-calculator.h"
3 #include "lore/lore-util.h"
4 #include "monster-race/race-flags3.h"
5 #include "monster-race/race-flags7.h"
6 #include "player-base/player-class.h"
7 #include "system/monster-race-info.h"
8 #include "system/player-type-definition.h"
9 #include "term/term-color-types.h"
10 #include "util/bit-flags-calculator.h"
11
12 void set_breath_types(PlayerType *player_ptr, lore_type *lore_ptr)
13 {
14     lore_ptr->vn = 0;
15     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_ACID)) {
16         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_ACID, _("酸%s", "acid%s"));
17         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
18         lore_ptr->color[lore_ptr->vn++] = TERM_GREEN;
19     }
20
21     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_ELEC)) {
22         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_ELEC, _("稲妻%s", "lightning%s"));
23         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
24         lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
25     }
26
27     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_FIRE)) {
28         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_FIRE, _("火炎%s", "fire%s"));
29         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
30         lore_ptr->color[lore_ptr->vn++] = TERM_RED;
31     }
32
33     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_COLD)) {
34         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_COLD, _("冷気%s", "frost%s"));
35         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
36         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
37     }
38
39     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_POIS)) {
40         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_POIS, _("毒%s", "poison%s"));
41         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
42         lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
43     }
44
45     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_NETH)) {
46         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_NETH, _("地獄%s", "nether%s"));
47         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
48         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
49     }
50
51     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_LITE)) {
52         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_LITE, _("閃光%s", "light%s"));
53         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
54         lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
55     }
56
57     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_DARK)) {
58         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_DARK, _("暗黒%s", "darkness%s"));
59         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
60         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
61     }
62
63     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_CONF)) {
64         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_CONF, _("混乱%s", "confusion%s"));
65         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
66         lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
67     }
68
69     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_SOUN)) {
70         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_SOUN, _("轟音%s", "sound%s"));
71         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
72         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
73     }
74
75     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_CHAO)) {
76         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_CHAO, _("カオス%s", "chaos%s"));
77         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
78         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
79     }
80
81     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_DISE)) {
82         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_DISE, _("劣化%s", "disenchantment%s"));
83         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
84         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
85     }
86
87     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_NEXU)) {
88         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_NEXU, _("因果混乱%s", "nexus%s"));
89         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
90         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
91     }
92
93     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_TIME)) {
94         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_TIME, _("時間逆転%s", "time%s"));
95         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
96         lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
97     }
98
99     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_INER)) {
100         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_INER, _("遅鈍%s", "inertia%s"));
101         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
102         lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
103     }
104
105     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_GRAV)) {
106         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_GRAV, _("重力%s", "gravity%s"));
107         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
108         lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
109     }
110
111     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_SHAR)) {
112         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_SHAR, _("破片%s", "shards%s"));
113         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
114         lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
115     }
116
117     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_PLAS)) {
118         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_PLAS, _("プラズマ%s", "plasma%s"));
119         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
120         lore_ptr->color[lore_ptr->vn++] = TERM_L_RED;
121     }
122
123     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_FORC)) {
124         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_FORC, _("フォース%s", "force%s"));
125         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
126         lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
127     }
128
129     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_MANA)) {
130         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_MANA, _("魔力%s", "mana%s"));
131         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
132         lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
133     }
134
135     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_NUKE)) {
136         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_NUKE, _("放射性廃棄物%s", "toxic waste%s"));
137         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
138         lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
139     }
140
141     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_DISI)) {
142         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_DISI, _("分解%s", "disintegration%s"));
143         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
144         lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
145     }
146
147     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_VOID)) {
148         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_VOID, _("虚無%s", "void%s"));
149         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
150         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
151     }
152
153     if (lore_ptr->ability_flags.has(MonsterAbilityType::BR_ABYSS)) {
154         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BR_ABYSS, _("深淵%s", "abyss%s"));
155         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
156         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
157     }
158 }
159
160 void set_ball_types(PlayerType *player_ptr, lore_type *lore_ptr)
161 {
162     if (lore_ptr->ability_flags.has(MonsterAbilityType::BA_ACID)) {
163         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BA_ACID, _("アシッド・ボール%s", "produce acid balls%s"));
164         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
165         lore_ptr->color[lore_ptr->vn++] = TERM_GREEN;
166     }
167
168     if (lore_ptr->ability_flags.has(MonsterAbilityType::BA_ELEC)) {
169         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BA_ELEC, _("サンダー・ボール%s", "produce lightning balls%s"));
170         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
171         lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
172     }
173
174     if (lore_ptr->ability_flags.has(MonsterAbilityType::BA_FIRE)) {
175         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BA_FIRE, _("ファイア・ボール%s", "produce fire balls%s"));
176         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
177         lore_ptr->color[lore_ptr->vn++] = TERM_RED;
178     }
179
180     if (lore_ptr->ability_flags.has(MonsterAbilityType::BA_COLD)) {
181         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BA_COLD, _("アイス・ボール%s", "produce frost balls%s"));
182         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
183         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
184     }
185
186     if (lore_ptr->ability_flags.has(MonsterAbilityType::BA_POIS)) {
187         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BA_POIS, _("悪臭雲%s", "produce poison balls%s"));
188         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
189         lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
190     }
191
192     if (lore_ptr->ability_flags.has(MonsterAbilityType::BA_NETH)) {
193         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BA_NETH, _("地獄球%s", "produce nether balls%s"));
194         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
195         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
196     }
197
198     if (lore_ptr->ability_flags.has(MonsterAbilityType::BA_WATE)) {
199         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BA_WATE, _("ウォーター・ボール%s", "produce water balls%s"));
200         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
201         lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
202     }
203
204     if (lore_ptr->ability_flags.has(MonsterAbilityType::BA_NUKE)) {
205         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BA_NUKE, _("放射能球%s", "produce balls of radiation%s"));
206         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
207         lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
208     }
209
210     if (lore_ptr->ability_flags.has(MonsterAbilityType::BA_MANA)) {
211         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BA_MANA, _("魔力の嵐%s", "invoke mana storms%s"));
212         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
213         lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
214     }
215
216     if (lore_ptr->ability_flags.has(MonsterAbilityType::BA_DARK)) {
217         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BA_DARK, _("暗黒の嵐%s", "invoke darkness storms%s"));
218         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
219         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
220     }
221
222     if (lore_ptr->ability_flags.has(MonsterAbilityType::BA_LITE)) {
223         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BA_LITE, _("スターバースト%s", "invoke starburst%s"));
224         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
225         lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
226     }
227
228     if (lore_ptr->ability_flags.has(MonsterAbilityType::BA_CHAO)) {
229         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BA_CHAO, _("純ログルス%s", "invoke raw Logrus%s"));
230         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
231         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
232     }
233
234     if (lore_ptr->ability_flags.has(MonsterAbilityType::BA_VOID)) {
235         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BA_VOID, _("虚無の嵐%s", "invoke void storms%s"));
236         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
237         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
238     }
239
240     if (lore_ptr->ability_flags.has(MonsterAbilityType::BA_ABYSS)) {
241         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BA_ABYSS, _("深淵の嵐%s", "invoke abyss storms%s"));
242         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
243         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
244     }
245 }
246
247 void set_particular_types(PlayerType *player_ptr, lore_type *lore_ptr)
248 {
249     if (lore_ptr->ability_flags.has(MonsterAbilityType::HAND_DOOM)) {
250         lore_ptr->vp[lore_ptr->vn] = _("破滅の手(40%-60%)", "invoke the Hand of Doom(40%-60%)");
251         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
252     }
253
254     if (lore_ptr->ability_flags.has(MonsterAbilityType::PSY_SPEAR)) {
255         set_damage(player_ptr, lore_ptr, MonsterAbilityType::PSY_SPEAR, _("光の剣%s", "psycho-spear%s"));
256         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
257         lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
258     }
259
260     if (lore_ptr->ability_flags.has(MonsterAbilityType::DRAIN_MANA)) {
261         set_damage(player_ptr, lore_ptr, MonsterAbilityType::DRAIN_MANA, _("魔力吸収%s", "drain mana%s"));
262         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
263         lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
264     }
265
266     if (lore_ptr->ability_flags.has(MonsterAbilityType::MIND_BLAST)) {
267         set_damage(player_ptr, lore_ptr, MonsterAbilityType::MIND_BLAST, _("精神攻撃%s", "cause mind blasting%s"));
268         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
269         lore_ptr->color[lore_ptr->vn++] = TERM_L_RED;
270     }
271
272     if (lore_ptr->ability_flags.has(MonsterAbilityType::BRAIN_SMASH)) {
273         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BRAIN_SMASH, _("脳攻撃%s", "cause brain smashing%s"));
274         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
275         lore_ptr->color[lore_ptr->vn++] = TERM_RED;
276     }
277
278     if (lore_ptr->ability_flags.has(MonsterAbilityType::CAUSE_1)) {
279         set_damage(player_ptr, lore_ptr, MonsterAbilityType::CAUSE_1, _("軽傷+呪い%s", "cause light wounds and cursing%s"));
280         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
281         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
282     }
283
284     if (lore_ptr->ability_flags.has(MonsterAbilityType::CAUSE_2)) {
285         set_damage(player_ptr, lore_ptr, MonsterAbilityType::CAUSE_2, _("重傷+呪い%s", "cause serious wounds and cursing%s"));
286         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
287         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
288     }
289
290     if (lore_ptr->ability_flags.has(MonsterAbilityType::CAUSE_3)) {
291         set_damage(player_ptr, lore_ptr, MonsterAbilityType::CAUSE_3, _("致命傷+呪い%s", "cause critical wounds and cursing%s"));
292         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
293         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
294     }
295
296     if (lore_ptr->ability_flags.has(MonsterAbilityType::CAUSE_4)) {
297         set_damage(player_ptr, lore_ptr, MonsterAbilityType::CAUSE_4, _("秘孔を突く%s", "cause mortal wounds%s"));
298         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
299         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
300     }
301 }
302
303 void set_bolt_types(PlayerType *player_ptr, lore_type *lore_ptr)
304 {
305     if (lore_ptr->ability_flags.has(MonsterAbilityType::BO_ACID)) {
306         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BO_ACID, _("アシッド・ボルト%s", "produce acid bolts%s"));
307         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
308         lore_ptr->color[lore_ptr->vn++] = TERM_GREEN;
309     }
310
311     if (lore_ptr->ability_flags.has(MonsterAbilityType::BO_ELEC)) {
312         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BO_ELEC, _("サンダー・ボルト%s", "produce lightning bolts%s"));
313         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
314         lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
315     }
316
317     if (lore_ptr->ability_flags.has(MonsterAbilityType::BO_FIRE)) {
318         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BO_FIRE, _("ファイア・ボルト%s", "produce fire bolts%s"));
319         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
320         lore_ptr->color[lore_ptr->vn++] = TERM_RED;
321     }
322
323     if (lore_ptr->ability_flags.has(MonsterAbilityType::BO_COLD)) {
324         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BO_COLD, _("アイス・ボルト%s", "produce frost bolts%s"));
325         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
326         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
327     }
328
329     if (lore_ptr->ability_flags.has(MonsterAbilityType::BO_NETH)) {
330         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BO_NETH, _("地獄の矢%s", "produce nether bolts%s"));
331         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
332         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
333     }
334
335     if (lore_ptr->ability_flags.has(MonsterAbilityType::BO_WATE)) {
336         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BO_WATE, _("ウォーター・ボルト%s", "produce water bolts%s"));
337         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
338         lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
339     }
340
341     if (lore_ptr->ability_flags.has(MonsterAbilityType::BO_MANA)) {
342         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BO_MANA, _("魔力の矢%s", "produce mana bolts%s"));
343         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
344         lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
345     }
346
347     if (lore_ptr->ability_flags.has(MonsterAbilityType::BO_PLAS)) {
348         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BO_PLAS, _("プラズマ・ボルト%s", "produce plasma bolts%s"));
349         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
350         lore_ptr->color[lore_ptr->vn++] = TERM_L_RED;
351     }
352
353     if (lore_ptr->ability_flags.has(MonsterAbilityType::BO_ICEE)) {
354         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BO_ICEE, _("極寒の矢%s", "produce ice bolts%s"));
355         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
356         lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
357     }
358
359     if (lore_ptr->ability_flags.has(MonsterAbilityType::BO_VOID)) {
360         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BO_VOID, _("ヴォイド・ボルト%s", "produce void bolts%s"));
361         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
362         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
363     }
364
365     if (lore_ptr->ability_flags.has(MonsterAbilityType::BO_ABYSS)) {
366         set_damage(player_ptr, lore_ptr, MonsterAbilityType::BO_ABYSS, _("アビス・ボルト%s", "produce abyss bolts%s"));
367         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
368         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
369     }
370
371     if (lore_ptr->ability_flags.has(MonsterAbilityType::MISSILE)) {
372         set_damage(player_ptr, lore_ptr, MonsterAbilityType::MISSILE, _("マジックミサイル%s", "produce magic missiles%s"));
373         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
374         lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
375     }
376 }
377
378 void set_status_types(lore_type *lore_ptr)
379 {
380     if (lore_ptr->ability_flags.has(MonsterAbilityType::SCARE)) {
381         lore_ptr->vp[lore_ptr->vn] = _("恐怖", "terrify");
382         lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
383     }
384
385     if (lore_ptr->ability_flags.has(MonsterAbilityType::BLIND)) {
386         lore_ptr->vp[lore_ptr->vn] = _("目くらまし", "blind");
387         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
388     }
389
390     if (lore_ptr->ability_flags.has(MonsterAbilityType::CONF)) {
391         lore_ptr->vp[lore_ptr->vn] = _("混乱", "confuse");
392         lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
393     }
394
395     if (lore_ptr->ability_flags.has(MonsterAbilityType::SLOW)) {
396         lore_ptr->vp[lore_ptr->vn] = _("減速", "slow");
397         lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
398     }
399
400     if (lore_ptr->ability_flags.has(MonsterAbilityType::HOLD)) {
401         lore_ptr->vp[lore_ptr->vn] = _("麻痺", "paralyze");
402         lore_ptr->color[lore_ptr->vn++] = TERM_RED;
403     }
404
405     if (lore_ptr->ability_flags.has(MonsterAbilityType::HASTE)) {
406         lore_ptr->vp[lore_ptr->vn] = _("加速", "haste-self");
407         lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
408     }
409
410     if (lore_ptr->ability_flags.has(MonsterAbilityType::HEAL)) {
411         lore_ptr->vp[lore_ptr->vn] = _("治癒", "heal-self");
412         lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
413     }
414
415     if (lore_ptr->ability_flags.has(MonsterAbilityType::INVULNER)) {
416         lore_ptr->vp[lore_ptr->vn] = _("無敵化", "make invulnerable");
417         lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
418     }
419
420     if (lore_ptr->ability_flags.has(MonsterAbilityType::DISPEL)) {
421         lore_ptr->vp[lore_ptr->vn] = _("魔力消去", "dispel-magic");
422         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
423     }
424 }
425
426 /*!
427  * @details 間にザ・ワールドが入っているが、元々こうなので敢えて修正はしない
428  */
429 void set_teleport_types(lore_type *lore_ptr)
430 {
431     if (lore_ptr->ability_flags.has(MonsterAbilityType::BLINK)) {
432         lore_ptr->vp[lore_ptr->vn] = _("ショートテレポート", "blink-self");
433         lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
434     }
435
436     if (lore_ptr->ability_flags.has(MonsterAbilityType::TPORT)) {
437         lore_ptr->vp[lore_ptr->vn] = _("テレポート", "teleport-self");
438         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
439     }
440
441     if (lore_ptr->ability_flags.has(MonsterAbilityType::WORLD)) {
442         lore_ptr->vp[lore_ptr->vn] = _("時を止める", "stop time");
443         lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
444     }
445
446     if (lore_ptr->ability_flags.has(MonsterAbilityType::TELE_TO)) {
447         lore_ptr->vp[lore_ptr->vn] = _("テレポートバック", "teleport to");
448         lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
449     }
450
451     if (lore_ptr->ability_flags.has(MonsterAbilityType::TELE_AWAY)) {
452         lore_ptr->vp[lore_ptr->vn] = _("テレポートアウェイ", "teleport away");
453         lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
454     }
455
456     if (lore_ptr->ability_flags.has(MonsterAbilityType::TELE_LEVEL)) {
457         lore_ptr->vp[lore_ptr->vn] = _("テレポート・レベル", "teleport level");
458         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
459     }
460 }
461
462 void set_floor_types(PlayerType *player_ptr, lore_type *lore_ptr)
463 {
464     if (lore_ptr->ability_flags.has(MonsterAbilityType::DARKNESS)) {
465         if (!PlayerClass(player_ptr).equals(PlayerClassType::NINJA) || lore_ptr->r_ptr->kind_flags.has_not(MonsterKindType::UNDEAD) || lore_ptr->r_ptr->resistance_flags.has(MonsterResistanceType::HURT_LITE) || (lore_ptr->r_ptr->flags7 & RF7_DARK_MASK)) {
466             lore_ptr->vp[lore_ptr->vn] = _("暗闇", "create darkness");
467             lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
468         } else {
469             lore_ptr->vp[lore_ptr->vn] = _("閃光", "create light");
470             lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
471         }
472     }
473
474     if (lore_ptr->ability_flags.has(MonsterAbilityType::TRAPS)) {
475         lore_ptr->vp[lore_ptr->vn] = _("トラップ", "create traps");
476         lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
477     }
478
479     if (lore_ptr->ability_flags.has(MonsterAbilityType::FORGET)) {
480         lore_ptr->vp[lore_ptr->vn] = _("記憶消去", "cause amnesia");
481         lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
482     }
483
484     if (lore_ptr->ability_flags.has(MonsterAbilityType::RAISE_DEAD)) {
485         lore_ptr->vp[lore_ptr->vn] = _("死者復活", "raise dead");
486         lore_ptr->color[lore_ptr->vn++] = TERM_RED;
487     }
488 }
489
490 void set_summon_types(lore_type *lore_ptr)
491 {
492     if (lore_ptr->ability_flags.has(MonsterAbilityType::S_MONSTER)) {
493         lore_ptr->vp[lore_ptr->vn] = _("モンスター一体召喚", "summon a monster");
494         lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
495     }
496
497     if (lore_ptr->ability_flags.has(MonsterAbilityType::S_MONSTERS)) {
498         lore_ptr->vp[lore_ptr->vn] = _("モンスター複数召喚", "summon monsters");
499         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
500     }
501
502     if (lore_ptr->ability_flags.has(MonsterAbilityType::S_KIN)) {
503         lore_ptr->vp[lore_ptr->vn] = _("救援召喚", "summon aid");
504         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
505     }
506
507     if (lore_ptr->ability_flags.has(MonsterAbilityType::S_ANT)) {
508         lore_ptr->vp[lore_ptr->vn] = _("アリ召喚", "summon ants");
509         lore_ptr->color[lore_ptr->vn++] = TERM_RED;
510     }
511
512     if (lore_ptr->ability_flags.has(MonsterAbilityType::S_SPIDER)) {
513         lore_ptr->vp[lore_ptr->vn] = _("クモ召喚", "summon spiders");
514         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
515     }
516
517     if (lore_ptr->ability_flags.has(MonsterAbilityType::S_HOUND)) {
518         lore_ptr->vp[lore_ptr->vn] = _("ハウンド召喚", "summon hounds");
519         lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
520     }
521
522     if (lore_ptr->ability_flags.has(MonsterAbilityType::S_HYDRA)) {
523         lore_ptr->vp[lore_ptr->vn] = _("ヒドラ召喚", "summon hydras");
524         lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
525     }
526
527     if (lore_ptr->ability_flags.has(MonsterAbilityType::S_ANGEL)) {
528         lore_ptr->vp[lore_ptr->vn] = _("天使一体召喚", "summon an angel");
529         lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
530     }
531
532     if (lore_ptr->ability_flags.has(MonsterAbilityType::S_DEMON)) {
533         lore_ptr->vp[lore_ptr->vn] = _("デーモン一体召喚", "summon a demon");
534         lore_ptr->color[lore_ptr->vn++] = TERM_L_RED;
535     }
536
537     if (lore_ptr->ability_flags.has(MonsterAbilityType::S_UNDEAD)) {
538         lore_ptr->vp[lore_ptr->vn] = _("アンデッド一体召喚", "summon an undead");
539         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
540     }
541
542     if (lore_ptr->ability_flags.has(MonsterAbilityType::S_DRAGON)) {
543         lore_ptr->vp[lore_ptr->vn] = _("ドラゴン一体召喚", "summon a dragon");
544         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
545     }
546
547     if (lore_ptr->ability_flags.has(MonsterAbilityType::S_HI_UNDEAD)) {
548         lore_ptr->vp[lore_ptr->vn] = _("強力なアンデッド召喚", "summon Greater Undead");
549         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
550     }
551
552     if (lore_ptr->ability_flags.has(MonsterAbilityType::S_HI_DRAGON)) {
553         lore_ptr->vp[lore_ptr->vn] = _("古代ドラゴン召喚", "summon Ancient Dragons");
554         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
555     }
556
557     if (lore_ptr->ability_flags.has(MonsterAbilityType::S_CYBER)) {
558         lore_ptr->vp[lore_ptr->vn] = _("サイバーデーモン召喚", "summon Cyberdemons");
559         lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
560     }
561
562     if (lore_ptr->ability_flags.has(MonsterAbilityType::S_AMBERITES)) {
563         lore_ptr->vp[lore_ptr->vn] = _("アンバーの王族召喚", "summon Lords of Amber");
564         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
565     }
566
567     if (lore_ptr->ability_flags.has(MonsterAbilityType::S_UNIQUE)) {
568         lore_ptr->vp[lore_ptr->vn] = _("ユニーク・モンスター召喚", "summon Unique Monsters");
569         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
570     }
571 }