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"
12 void set_breath_types(PlayerType *player_ptr, lore_type *lore_ptr)
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
160 void set_ball_types(PlayerType *player_ptr, lore_type *lore_ptr)
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
247 void set_particular_types(PlayerType *player_ptr, lore_type *lore_ptr)
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;
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;
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;
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;
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;
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;
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;
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;
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;
303 void set_bolt_types(PlayerType *player_ptr, lore_type *lore_ptr)
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
378 void set_status_types(lore_type *lore_ptr)
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;
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;
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;
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;
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;
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;
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;
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;
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;
427 * @details 間にザ・ワールドが入っているが、元々こうなので敢えて修正はしない
429 void set_teleport_types(lore_type *lore_ptr)
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;
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;
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;
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;
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;
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;
462 void set_floor_types(PlayerType *player_ptr, lore_type *lore_ptr)
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;
469 lore_ptr->vp[lore_ptr->vn] = _("閃光", "create light");
470 lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
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;
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;
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;
490 void set_summon_types(lore_type *lore_ptr)
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;