OSDN Git Service

[fix] #41478 階段を上ったときにクラッシュ
[hengband/hengband.git] / src / lore / magic-types-setter.c
1 #include "lore/magic-types-setter.h"
2 #include "lore/lore-calculator.h"
3 #include "monster-race/race-flags-ability1.h"
4 #include "monster-race/race-flags-ability2.h"
5 #include "monster-race/race-flags3.h"
6 #include "monster-race/race-flags4.h"
7 #include "monster-race/race-flags7.h"
8 #include "mspell/mspell-type.h"
9 #include "term/term-color-types.h"
10
11 void set_breath_types(player_type *player_ptr, lore_type *lore_ptr)
12 {
13     lore_ptr->vn = 0;
14     if (lore_ptr->flags4 & (RF4_BR_ACID)) {
15         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_ACID), _("酸%s", "acid%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
16         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
17         lore_ptr->color[lore_ptr->vn++] = TERM_GREEN;
18     }
19
20     if (lore_ptr->flags4 & (RF4_BR_ELEC)) {
21         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_ELEC), _("稲妻%s", "lightning%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
22         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
23         lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
24     }
25
26     if (lore_ptr->flags4 & (RF4_BR_FIRE)) {
27         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_FIRE), _("火炎%s", "fire%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
28         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
29         lore_ptr->color[lore_ptr->vn++] = TERM_RED;
30     }
31
32     if (lore_ptr->flags4 & (RF4_BR_COLD)) {
33         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_COLD), _("冷気%s", "frost%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
34         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
35         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
36     }
37
38     if (lore_ptr->flags4 & (RF4_BR_POIS)) {
39         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_POIS), _("毒%s", "poison%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
40         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
41         lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
42     }
43
44     if (lore_ptr->flags4 & (RF4_BR_NETH)) {
45         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_NETHER), _("地獄%s", "nether%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
46         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
47         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
48     }
49
50     if (lore_ptr->flags4 & (RF4_BR_LITE)) {
51         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_LITE), _("閃光%s", "light%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
52         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
53         lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
54     }
55
56     if (lore_ptr->flags4 & (RF4_BR_DARK)) {
57         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_DARK), _("暗黒%s", "darkness%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
58         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
59         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
60     }
61
62     if (lore_ptr->flags4 & (RF4_BR_CONF)) {
63         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_CONF), _("混乱%s", "confusion%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
64         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
65         lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
66     }
67
68     if (lore_ptr->flags4 & (RF4_BR_SOUN)) {
69         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_SOUND), _("轟音%s", "sound%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
70         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
71         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
72     }
73
74     if (lore_ptr->flags4 & (RF4_BR_CHAO)) {
75         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_CHAOS), _("カオス%s", "chaos%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
76         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
77         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
78     }
79
80     if (lore_ptr->flags4 & (RF4_BR_DISE)) {
81         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_DISEN), _("劣化%s", "disenchantment%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
82         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
83         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
84     }
85
86     if (lore_ptr->flags4 & (RF4_BR_NEXU)) {
87         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_NEXUS), _("因果混乱%s", "nexus%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
88         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
89         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
90     }
91
92     if (lore_ptr->flags4 & (RF4_BR_TIME)) {
93         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_TIME), _("時間逆転%s", "time%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
94         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
95         lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
96     }
97
98     if (lore_ptr->flags4 & (RF4_BR_INER)) {
99         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_INERTIA), _("遅鈍%s", "inertia%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
100         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
101         lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
102     }
103
104     if (lore_ptr->flags4 & (RF4_BR_GRAV)) {
105         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_GRAVITY), _("重力%s", "gravity%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
106         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
107         lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
108     }
109
110     if (lore_ptr->flags4 & (RF4_BR_SHAR)) {
111         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_SHARDS), _("破片%s", "shards%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
112         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
113         lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
114     }
115
116     if (lore_ptr->flags4 & (RF4_BR_PLAS)) {
117         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_PLASMA), _("プラズマ%s", "plasma%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
118         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
119         lore_ptr->color[lore_ptr->vn++] = TERM_L_RED;
120     }
121
122     if (lore_ptr->flags4 & (RF4_BR_WALL)) {
123         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_FORCE), _("フォース%s", "force%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
124         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
125         lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
126     }
127
128     if (lore_ptr->flags4 & (RF4_BR_MANA)) {
129         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_MANA), _("魔力%s", "mana%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
130         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
131         lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
132     }
133
134     if (lore_ptr->flags4 & (RF4_BR_NUKE)) {
135         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_NUKE), _("放射性廃棄物%s", "toxic waste%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
136         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
137         lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
138     }
139
140     if (lore_ptr->flags4 & (RF4_BR_DISI)) {
141         set_damage(player_ptr, lore_ptr->r_idx, (MS_BR_DISI), _("分解%s", "disintegration%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
142         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
143         lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
144     }
145 }
146
147 void set_ball_types(player_type *player_ptr, lore_type *lore_ptr)
148 {
149     if (lore_ptr->a_ability_flags1 & (RF5_BA_ACID)) {
150         set_damage(player_ptr, lore_ptr->r_idx, (MS_BALL_ACID), _("アシッド・ボール%s", "produce acid balls%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
151         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
152         lore_ptr->color[lore_ptr->vn++] = TERM_GREEN;
153     }
154
155     if (lore_ptr->a_ability_flags1 & (RF5_BA_ELEC)) {
156         set_damage(player_ptr, lore_ptr->r_idx, (MS_BALL_ELEC), _("サンダー・ボール%s", "produce lightning balls%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
157         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
158         lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
159     }
160
161     if (lore_ptr->a_ability_flags1 & (RF5_BA_FIRE)) {
162         set_damage(player_ptr, lore_ptr->r_idx, (MS_BALL_FIRE), _("ファイア・ボール%s", "produce fire balls%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
163         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
164         lore_ptr->color[lore_ptr->vn++] = TERM_RED;
165     }
166
167     if (lore_ptr->a_ability_flags1 & (RF5_BA_COLD)) {
168         set_damage(player_ptr, lore_ptr->r_idx, (MS_BALL_COLD), _("アイス・ボール%s", "produce frost balls%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
169         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
170         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
171     }
172
173     if (lore_ptr->a_ability_flags1 & (RF5_BA_POIS)) {
174         set_damage(player_ptr, lore_ptr->r_idx, (MS_BALL_POIS), _("悪臭雲%s", "produce poison balls%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
175         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
176         lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
177     }
178
179     if (lore_ptr->a_ability_flags1 & (RF5_BA_NETH)) {
180         set_damage(player_ptr, lore_ptr->r_idx, (MS_BALL_NETHER), _("地獄球%s", "produce nether balls%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
181         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
182         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
183     }
184
185     if (lore_ptr->a_ability_flags1 & (RF5_BA_WATE)) {
186         set_damage(player_ptr, lore_ptr->r_idx, (MS_BALL_WATER), _("ウォーター・ボール%s", "produce water balls%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
187         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
188         lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
189     }
190
191     if (lore_ptr->flags4 & (RF4_BA_NUKE)) {
192         set_damage(player_ptr, lore_ptr->r_idx, (MS_BALL_NUKE), _("放射能球%s", "produce balls of radiation%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
193         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
194         lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
195     }
196
197     if (lore_ptr->a_ability_flags1 & (RF5_BA_MANA)) {
198         set_damage(player_ptr, lore_ptr->r_idx, (MS_BALL_MANA), _("魔力の嵐%s", "invoke mana storms%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
199         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
200         lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
201     }
202
203     if (lore_ptr->a_ability_flags1 & (RF5_BA_DARK)) {
204         set_damage(player_ptr, lore_ptr->r_idx, (MS_BALL_DARK), _("暗黒の嵐%s", "invoke darkness storms%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
205         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
206         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
207     }
208
209     if (lore_ptr->a_ability_flags1 & (RF5_BA_LITE)) {
210         set_damage(player_ptr, lore_ptr->r_idx, (MS_STARBURST), _("スターバースト%s", "invoke starburst%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
211         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
212         lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
213     }
214
215     if (lore_ptr->flags4 & (RF4_BA_CHAO)) {
216         set_damage(player_ptr, lore_ptr->r_idx, (MS_BALL_CHAOS), _("純ログルス%s", "invoke raw Logrus%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
217         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
218         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
219     }
220 }
221
222 void set_particular_types(player_type *player_ptr, lore_type *lore_ptr)
223 {
224     if (lore_ptr->a_ability_flags2 & (RF6_HAND_DOOM)) {
225         lore_ptr->vp[lore_ptr->vn] = _("破滅の手(40%-60%)", "invoke the Hand of Doom(40%-60%)");
226         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
227     }
228
229     if (lore_ptr->a_ability_flags2 & (RF6_PSY_SPEAR)) {
230         set_damage(player_ptr, lore_ptr->r_idx, (MS_PSY_SPEAR), _("光の剣%s", "psycho-spear%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
231         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
232         lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
233     }
234
235     if (lore_ptr->a_ability_flags1 & (RF5_DRAIN_MANA)) {
236         set_damage(player_ptr, lore_ptr->r_idx, (MS_DRAIN_MANA), _("魔力吸収%s", "drain mana%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
237         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
238         lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
239     }
240
241     if (lore_ptr->a_ability_flags1 & (RF5_MIND_BLAST)) {
242         set_damage(player_ptr, lore_ptr->r_idx, (MS_MIND_BLAST), _("精神攻撃%s", "cause mind blasting%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
243         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
244         lore_ptr->color[lore_ptr->vn++] = TERM_L_RED;
245     }
246
247     if (lore_ptr->a_ability_flags1 & (RF5_BRAIN_SMASH)) {
248         set_damage(player_ptr, lore_ptr->r_idx, (MS_BRAIN_SMASH), _("脳攻撃%s", "cause brain smashing%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
249         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
250         lore_ptr->color[lore_ptr->vn++] = TERM_RED;
251     }
252
253     if (lore_ptr->a_ability_flags1 & (RF5_CAUSE_1)) {
254         set_damage(player_ptr, lore_ptr->r_idx, (MS_CAUSE_1), _("軽傷+呪い%s", "cause light wounds and cursing%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
255         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
256         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
257     }
258
259     if (lore_ptr->a_ability_flags1 & (RF5_CAUSE_2)) {
260         set_damage(player_ptr, lore_ptr->r_idx, (MS_CAUSE_2), _("重傷+呪い%s", "cause serious wounds and cursing%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
261         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
262         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
263     }
264
265     if (lore_ptr->a_ability_flags1 & (RF5_CAUSE_3)) {
266         set_damage(player_ptr, lore_ptr->r_idx, (MS_CAUSE_3), _("致命傷+呪い%s", "cause critical wounds and cursing%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
267         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
268         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
269     }
270
271     if (lore_ptr->a_ability_flags1 & (RF5_CAUSE_4)) {
272         set_damage(player_ptr, lore_ptr->r_idx, (MS_CAUSE_4), _("秘孔を突く%s", "cause mortal wounds%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
273         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
274         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
275     }
276 }
277
278 void set_bolt_types(player_type *player_ptr, lore_type *lore_ptr)
279 {
280     if (lore_ptr->a_ability_flags1 & (RF5_BO_ACID)) {
281         set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_ACID), _("アシッド・ボルト%s", "produce acid bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
282         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
283         lore_ptr->color[lore_ptr->vn++] = TERM_GREEN;
284     }
285
286     if (lore_ptr->a_ability_flags1 & (RF5_BO_ELEC)) {
287         set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_ELEC), _("サンダー・ボルト%s", "produce lightning bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
288         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
289         lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
290     }
291
292     if (lore_ptr->a_ability_flags1 & (RF5_BO_FIRE)) {
293         set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_FIRE), _("ファイア・ボルト%s", "produce fire bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
294         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
295         lore_ptr->color[lore_ptr->vn++] = TERM_RED;
296     }
297
298     if (lore_ptr->a_ability_flags1 & (RF5_BO_COLD)) {
299         set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_COLD), _("アイス・ボルト%s", "produce frost bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
300         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
301         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
302     }
303
304     if (lore_ptr->a_ability_flags1 & (RF5_BO_NETH)) {
305         set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_NETHER), _("地獄の矢%s", "produce nether bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
306         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
307         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
308     }
309
310     if (lore_ptr->a_ability_flags1 & (RF5_BO_WATE)) {
311         set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_WATER), _("ウォーター・ボルト%s", "produce water bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
312         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
313         lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
314     }
315
316     if (lore_ptr->a_ability_flags1 & (RF5_BO_MANA)) {
317         set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_MANA), _("魔力の矢%s", "produce mana bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
318         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
319         lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
320     }
321
322     if (lore_ptr->a_ability_flags1 & (RF5_BO_PLAS)) {
323         set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_PLASMA), _("プラズマ・ボルト%s", "produce plasma bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
324         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
325         lore_ptr->color[lore_ptr->vn++] = TERM_L_RED;
326     }
327
328     if (lore_ptr->a_ability_flags1 & (RF5_BO_ICEE)) {
329         set_damage(player_ptr, lore_ptr->r_idx, (MS_BOLT_ICE), _("極寒の矢%s", "produce ice bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
330         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
331         lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
332     }
333
334     if (lore_ptr->a_ability_flags1 & (RF5_MISSILE)) {
335         set_damage(player_ptr, lore_ptr->r_idx, (MS_MAGIC_MISSILE), _("マジックミサイル%s", "produce magic missiles%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
336         lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
337         lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
338     }
339 }
340
341 void set_status_types(lore_type *lore_ptr)
342 {
343     if (lore_ptr->a_ability_flags1 & (RF5_SCARE)) {
344         lore_ptr->vp[lore_ptr->vn] = _("恐怖", "terrify");
345         lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
346     }
347
348     if (lore_ptr->a_ability_flags1 & (RF5_BLIND)) {
349         lore_ptr->vp[lore_ptr->vn] = _("目くらまし", "blind");
350         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
351     }
352
353     if (lore_ptr->a_ability_flags1 & (RF5_CONF)) {
354         lore_ptr->vp[lore_ptr->vn] = _("混乱", "confuse");
355         lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
356     }
357
358     if (lore_ptr->a_ability_flags1 & (RF5_SLOW)) {
359         lore_ptr->vp[lore_ptr->vn] = _("減速", "slow");
360         lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
361     }
362
363     if (lore_ptr->a_ability_flags1 & (RF5_HOLD)) {
364         lore_ptr->vp[lore_ptr->vn] = _("麻痺", "paralyze");
365         lore_ptr->color[lore_ptr->vn++] = TERM_RED;
366     }
367
368     if (lore_ptr->a_ability_flags2 & (RF6_HASTE)) {
369         lore_ptr->vp[lore_ptr->vn] = _("加速", "haste-self");
370         lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
371     }
372
373     if (lore_ptr->a_ability_flags2 & (RF6_HEAL)) {
374         lore_ptr->vp[lore_ptr->vn] = _("治癒", "heal-self");
375         lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
376     }
377
378     if (lore_ptr->a_ability_flags2 & (RF6_INVULNER)) {
379         lore_ptr->vp[lore_ptr->vn] = _("無敵化", "make invulnerable");
380         lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
381     }
382
383     if (lore_ptr->flags4 & RF4_DISPEL) {
384         lore_ptr->vp[lore_ptr->vn] = _("魔力消去", "dispel-magic");
385         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
386     }
387 }
388
389 /*!
390  * @details 間にザ・ワールドが入っているが、元々こうなので敢えて修正はしない
391  */
392 void set_teleport_types(lore_type *lore_ptr)
393 {
394     if (lore_ptr->a_ability_flags2 & (RF6_BLINK)) {
395         lore_ptr->vp[lore_ptr->vn] = _("ショートテレポート", "blink-self");
396         lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
397     }
398
399     if (lore_ptr->a_ability_flags2 & (RF6_TPORT)) {
400         lore_ptr->vp[lore_ptr->vn] = _("テレポート", "teleport-self");
401         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
402     }
403
404     if (lore_ptr->a_ability_flags2 & (RF6_WORLD)) {
405         lore_ptr->vp[lore_ptr->vn] = _("時を止める", "stop time");
406         lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
407     }
408
409     if (lore_ptr->a_ability_flags2 & (RF6_TELE_TO)) {
410         lore_ptr->vp[lore_ptr->vn] = _("テレポートバック", "teleport to");
411         lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
412     }
413
414     if (lore_ptr->a_ability_flags2 & (RF6_TELE_AWAY)) {
415         lore_ptr->vp[lore_ptr->vn] = _("テレポートアウェイ", "teleport away");
416         lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
417     }
418
419     if (lore_ptr->a_ability_flags2 & (RF6_TELE_LEVEL)) {
420         lore_ptr->vp[lore_ptr->vn] = _("テレポート・レベル", "teleport level");
421         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
422     }
423 }
424
425 void set_floor_types(player_type *player_ptr, lore_type *lore_ptr)
426 {
427     if (lore_ptr->a_ability_flags2 & (RF6_DARKNESS)) {
428         if ((player_ptr->pclass != CLASS_NINJA) || (lore_ptr->r_ptr->flags3 & (RF3_UNDEAD | RF3_HURT_LITE)) || (lore_ptr->r_ptr->flags7 & RF7_DARK_MASK)) {
429             lore_ptr->vp[lore_ptr->vn] = _("暗闇", "create darkness");
430             lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
431         } else {
432             lore_ptr->vp[lore_ptr->vn] = _("閃光", "create light");
433             lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
434         }
435     }
436
437     if (lore_ptr->a_ability_flags2 & (RF6_TRAPS)) {
438         lore_ptr->vp[lore_ptr->vn] = _("トラップ", "create traps");
439         lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
440     }
441
442     if (lore_ptr->a_ability_flags2 & (RF6_FORGET)) {
443         lore_ptr->vp[lore_ptr->vn] = _("記憶消去", "cause amnesia");
444         lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
445     }
446
447     if (lore_ptr->a_ability_flags2 & (RF6_RAISE_DEAD)) {
448         lore_ptr->vp[lore_ptr->vn] = _("死者復活", "raise dead");
449         lore_ptr->color[lore_ptr->vn++] = TERM_RED;
450     }
451 }
452
453 void set_summon_types(lore_type *lore_ptr)
454 {
455     if (lore_ptr->a_ability_flags2 & (RF6_S_MONSTER)) {
456         lore_ptr->vp[lore_ptr->vn] = _("モンスター一体召喚", "summon a monster");
457         lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
458     }
459
460     if (lore_ptr->a_ability_flags2 & (RF6_S_MONSTERS)) {
461         lore_ptr->vp[lore_ptr->vn] = _("モンスター複数召喚", "summon monsters");
462         lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
463     }
464
465     if (lore_ptr->a_ability_flags2 & (RF6_S_KIN)) {
466         lore_ptr->vp[lore_ptr->vn] = _("救援召喚", "summon aid");
467         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
468     }
469
470     if (lore_ptr->a_ability_flags2 & (RF6_S_ANT)) {
471         lore_ptr->vp[lore_ptr->vn] = _("アリ召喚", "summon ants");
472         lore_ptr->color[lore_ptr->vn++] = TERM_RED;
473     }
474
475     if (lore_ptr->a_ability_flags2 & (RF6_S_SPIDER)) {
476         lore_ptr->vp[lore_ptr->vn] = _("クモ召喚", "summon spiders");
477         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
478     }
479
480     if (lore_ptr->a_ability_flags2 & (RF6_S_HOUND)) {
481         lore_ptr->vp[lore_ptr->vn] = _("ハウンド召喚", "summon hounds");
482         lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
483     }
484
485     if (lore_ptr->a_ability_flags2 & (RF6_S_HYDRA)) {
486         lore_ptr->vp[lore_ptr->vn] = _("ヒドラ召喚", "summon hydras");
487         lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
488     }
489
490     if (lore_ptr->a_ability_flags2 & (RF6_S_ANGEL)) {
491         lore_ptr->vp[lore_ptr->vn] = _("天使一体召喚", "summon an angel");
492         lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
493     }
494
495     if (lore_ptr->a_ability_flags2 & (RF6_S_DEMON)) {
496         lore_ptr->vp[lore_ptr->vn] = _("デーモン一体召喚", "summon a demon");
497         lore_ptr->color[lore_ptr->vn++] = TERM_L_RED;
498     }
499
500     if (lore_ptr->a_ability_flags2 & (RF6_S_UNDEAD)) {
501         lore_ptr->vp[lore_ptr->vn] = _("アンデッド一体召喚", "summon an undead");
502         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
503     }
504
505     if (lore_ptr->a_ability_flags2 & (RF6_S_DRAGON)) {
506         lore_ptr->vp[lore_ptr->vn] = _("ドラゴン一体召喚", "summon a dragon");
507         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
508     }
509
510     if (lore_ptr->a_ability_flags2 & (RF6_S_HI_UNDEAD)) {
511         lore_ptr->vp[lore_ptr->vn] = _("強力なアンデッド召喚", "summon Greater Undead");
512         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
513     }
514
515     if (lore_ptr->a_ability_flags2 & (RF6_S_HI_DRAGON)) {
516         lore_ptr->vp[lore_ptr->vn] = _("古代ドラゴン召喚", "summon Ancient Dragons");
517         lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
518     }
519
520     if (lore_ptr->a_ability_flags2 & (RF6_S_CYBER)) {
521         lore_ptr->vp[lore_ptr->vn] = _("サイバーデーモン召喚", "summon Cyberdemons");
522         lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
523     }
524
525     if (lore_ptr->a_ability_flags2 & (RF6_S_AMBERITES)) {
526         lore_ptr->vp[lore_ptr->vn] = _("アンバーの王族召喚", "summon Lords of Amber");
527         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
528     }
529
530     if (lore_ptr->a_ability_flags2 & (RF6_S_UNIQUE)) {
531         lore_ptr->vp[lore_ptr->vn] = _("ユニーク・モンスター召喚", "summon Unique Monsters");
532         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
533     }
534 }