OSDN Git Service

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