1 #include "racial/race-racial-command-setter.h"
2 #include "cmd-action/cmd-spell.h"
3 #include "player-info/race-info.h"
4 #include "racial/racial-util.h"
5 #include "system/player-type-definition.h"
7 void set_mimic_racial_command(PlayerType *player_ptr, rc_type *rc_ptr)
10 switch (player_ptr->mimic_form) {
11 case MimicKindType::NONE:
13 case MimicKindType::DEMON:
14 case MimicKindType::DEMON_LORD:
15 rpi = rpi_type(_("地獄/火炎のブレス", "Nether or Fire Breath"));
16 rpi.info = format("%s%d", KWD_DAM, rc_ptr->lvl * 3);
17 rpi.text = _("火炎または地獄のブレスを放つ。", "Fires a breath of fire or nether.");
19 rpi.cost = 10 + rc_ptr->lvl / 3;
22 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
24 case MimicKindType::VAMPIRE:
25 rpi = rpi_type(_("吸血", "Vampiric Drain"));
26 rpi.info = format("%s%d", KWD_DAM, rc_ptr->lvl * 2);
27 rpi.text = _("隣接したモンスター1体から生命力を吸い取る。吸い取った生命力によって満腹度があがる。",
28 "Drains and transfers HP from a monster near by you. You will also gain nutritional sustenance from this.");
30 rpi.cost = 1 + (rc_ptr->lvl / 3);
33 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
38 void set_race_racial_command(PlayerType *player_ptr, rc_type *rc_ptr)
41 switch (player_ptr->prace) {
42 case PlayerRaceType::DWARF:
43 rpi = rpi_type(_("ドアと罠 感知", "Detect Doors+Traps"));
44 rpi.text = _("近くの全ての扉と罠、階段を感知する。", "Detects traps, doors, and stairs in your vicinity.");
49 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
51 case PlayerRaceType::NIBELUNG:
52 rpi = rpi_type(_("ドアと罠 感知", "Detect Doors+Traps"));
53 rpi.text = _("近くの全ての扉と罠、階段を感知する。", "Detects traps, doors, and stairs in your vicinity.");
58 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
60 case PlayerRaceType::HOBBIT:
61 rpi = rpi_type(_("食糧生成", "Create Food"));
62 rpi.text = _("食料を一つ作り出す。", "Produces a Ration of Food.");
67 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
69 case PlayerRaceType::GNOME:
70 rpi = rpi_type(_("ショート・テレポート", "Blink"));
71 rpi.info = format("%s%d", KWD_SPHERE, 10);
72 rpi.text = _("近距離のテレポートをする。", "Teleports you a short distance.");
77 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
79 case PlayerRaceType::HALF_ORC:
80 rpi = rpi_type(_("恐怖除去", "Remove Fear"));
81 rpi.text = _("恐怖を取り除く。", "Removes fear.");
85 rpi.fail = rc_ptr->is_warrior ? 5 : 10;
86 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
88 case PlayerRaceType::HALF_TROLL:
89 rpi = rpi_type(_("狂戦士化", "Berserk"));
90 rpi.info = format("%s%d+d%d", KWD_DURATION, 10, rc_ptr->lvl);
91 rpi.text = _("狂戦士化し、恐怖を除去する。防御力が少し低下する。", "Gives a bonus to hit and HP, immunity to fear for a while. But decreases AC.");
95 rpi.fail = rc_ptr->is_warrior ? 6 : 12;
96 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
98 case PlayerRaceType::BARBARIAN:
99 rpi = rpi_type(_("狂戦士化", "Berserk"));
100 rpi.info = format("%s%d+d%d", KWD_DURATION, 10, rc_ptr->lvl);
101 rpi.text = _("狂戦士化し、恐怖を除去する。防御力が少し低下する。", "Gives a bonus to hit and HP, immunity to fear for a while. But decreases AC.");
105 rpi.fail = rc_ptr->is_warrior ? 6 : 12;
106 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
108 case PlayerRaceType::AMBERITE:
109 rpi = rpi_type(_("シャドウ・シフト", "Shadow Shifting"));
110 rpi.text = _("現在の階を再構成する。", "Recreates current dungeon level.");
115 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
117 rpi = rpi_type(_("パターン・ウォーク", "Pattern Mindwalking"));
118 rpi.text = _("すべてのステータスと経験値を回復する。", "Restores all stats and experience.");
123 rc_ptr->add_power(rpi, RC_IDX_RACE_1);
125 case PlayerRaceType::HALF_OGRE:
126 rpi = rpi_type(_("爆発のルーン", "Explosive Rune"));
127 rpi.text = _("自分のいる床の上に、モンスターが上を通ろうとすると爆発するルーンを描く。",
128 "Sets a rune on the floor beneath you which exprodes if a monster through upon it. Monsters can try to disarm it.");
133 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
135 case PlayerRaceType::HALF_GIANT:
136 rpi = rpi_type(_("岩石溶解", "Stone to Mud"));
137 rpi.text = _("壁を溶かして床にする。", "Turns one rock square to mud.");
142 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
144 case PlayerRaceType::HALF_TITAN:
145 rpi = rpi_type(_("スキャン・モンスター", "Probing"));
146 rpi.text = _("モンスターの属性、残り体力、最大体力、スピード、正体を知る。", "Probes all monsters' alignment, HP, speed and their true character.");
151 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
153 case PlayerRaceType::CYCLOPS:
154 rpi = rpi_type(_("岩石投げ", "Throw Boulder"));
155 rpi.info = format("%s%d", KWD_DAM, rc_ptr->lvl * 3 / 2);
156 rpi.text = _("弱い魔法のボールを放つ", "Fires a weak boll of magic.");
161 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
163 case PlayerRaceType::YEEK:
164 rpi = rpi_type(_("モンスター恐慌", "Scare Monster"));
165 rpi.text = _("モンスター1体を恐怖させる。抵抗されると無効。", "Attempts to scare a monster.");
170 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
172 case PlayerRaceType::SPECTRE:
173 rpi = rpi_type(_("モンスター恐慌", "Scare Monster"));
174 rpi.text = _("モンスター1体を恐怖させる。抵抗されると無効。", "Attempts to scare a monster.");
179 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
181 case PlayerRaceType::KLACKON:
182 rpi = rpi_type(_("酸の唾", "Spit Acid"));
183 rpi.info = format("%s%d", KWD_DAM, rc_ptr->lvl);
184 if (rc_ptr->lvl >= 25) {
185 rpi.text = _("酸のボールを放つ", "Fires a boll of acid.");
187 rpi.text = _("酸の矢を放つ", "Fires a bolt of acid.");
193 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
195 case PlayerRaceType::KOBOLD:
196 rpi = rpi_type(_("毒のダーツ", "Poison Dart"));
197 rpi.info = format("%s%d", KWD_DAM, rc_ptr->lvl);
198 rpi.text = _("毒の矢を放つ", "Fires a bolt of poison.");
203 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
205 case PlayerRaceType::DARK_ELF:
206 rpi = rpi_type(_("マジック・ミサイル", "Magic Missile"));
207 rpi.info = format("%s%dd%d", KWD_DAM, 3 + ((rc_ptr->lvl - 1) / 5), 4);
208 rpi.text = _("弱い魔法の矢を放つ。", "Fires a weak bolt of magic.");
213 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
215 case PlayerRaceType::DRACONIAN:
216 rpi = rpi_type(_("ブレス", "Breath Weapon"));
217 rpi.info = format("%s%d", KWD_DAM, rc_ptr->lvl * 2);
218 rpi.text = _("元素のブレスを放つ", "Fires a breath of an element.");
220 rpi.cost = rc_ptr->lvl;
223 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
225 case PlayerRaceType::MIND_FLAYER:
226 rpi = rpi_type(_("精神攻撃", "Mind Blast"));
227 rpi.info = format("%s%d", KWD_DAM, rc_ptr->lvl);
228 rpi.text = _("モンスター1体に精神攻撃を行う。", "Deals a PSI damage to a monster.");
233 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
235 case PlayerRaceType::IMP:
236 if (rc_ptr->lvl > 30) {
237 rpi = rpi_type(_("ファイア・ボール", "Fire Ball"));
238 rpi.text = _("火炎のボールを放つ。", "Fires a ball of fire.");
240 rpi = rpi_type(_("ファイア・ボルト", "Fire Bolt"));
241 rpi.text = _("火炎の矢を放つ。", "Fires a bolt of fire.");
243 rpi.info = format("%s%d", KWD_DAM, rc_ptr->lvl);
248 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
250 case PlayerRaceType::GOLEM:
251 rpi = rpi_type(_("肌石化", "Stone Skin"));
252 rpi.info = format("%s%d+d%d", KWD_DURATION, 30, 20);
253 rpi.text = _("一定期間防御力を高める。", "Increases your AC temporary");
258 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
260 case PlayerRaceType::SKELETON:
261 case PlayerRaceType::ZOMBIE:
262 rpi = rpi_type(_("経験値復活", "Restore Experience"));
263 rpi.text = _("経験値を回復する。", "Restores experience.");
268 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
270 case PlayerRaceType::VAMPIRE:
271 rpi = rpi_type(_("吸血", "Vampiric Drain"));
272 rpi.info = format("%s%d", KWD_DAM, rc_ptr->lvl * 2);
273 rpi.text = _("隣接したモンスター1体から生命力を吸い取る。吸い取った生命力によって満腹度があがる。",
274 "Drains and transfers HP from a monster near by you. You will also gain nutritional sustenance from this.");
276 rpi.cost = 1 + (rc_ptr->lvl / 3);
279 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
281 case PlayerRaceType::SPRITE:
282 rpi = rpi_type(_("眠り粉", "Sleeping Dust"));
283 rpi.info = format("%s%d", KWD_POWER, rc_ptr->lvl);
284 rpi.text = _("モンスター1体を眠らせる。抵抗されると無効。", "Attempts to put a monster to sleep.");
289 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
291 case PlayerRaceType::BALROG:
292 rpi = rpi_type(_("地獄/火炎のブレス", "Nether or Fire Breath"));
293 rpi.info = format("%s%d", KWD_DAM, rc_ptr->lvl * 3);
294 rpi.text = _("火炎または地獄のブレスを放つ。", "Fires a breath of fire or nether.");
296 rpi.cost = 10 + rc_ptr->lvl / 3;
299 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
301 case PlayerRaceType::KUTAR:
302 rpi = rpi_type(_("横に伸びる", "Expand Horizontally"));
303 rpi.info = format("%s%d+d%d", KWD_DURATION, 30, 20);
304 rpi.text = _("横に伸びて防御力を高める。魔法防御力は低下する。",
305 "Expands your body horizontally then increases AC, but decreases your magic resistance for curses.");
310 rc_ptr->add_power(rpi, RC_IDX_RACE_0);
312 case PlayerRaceType::ANDROID:
313 if (player_ptr->lev < 10) {
314 rpi = rpi_type(_("レイガン", "Ray Gun"));
315 rpi.info = format("%s%d", KWD_DAM, (rc_ptr->lvl + 1) / 2);
316 rpi.text = _("弱い魔法の矢を放つ。", "Fires a weak bolt of magic.");
320 } else if (player_ptr->lev < 25) {
321 rpi = rpi_type(_("ブラスター", "Blaster"));
322 rpi.info = format("%s%d", KWD_DAM, rc_ptr->lvl);
323 rpi.text = _("弱い魔法の矢を放つ。", "Fires a weak bolt of magic.");
327 } else if (player_ptr->lev < 35) {
328 rpi = rpi_type(_("バズーカ", "Bazooka"));
329 rpi.info = format("%s%d", KWD_DAM, rc_ptr->lvl * 2);
330 rpi.text = _("弱い魔法のボールを放つ。", "Fires a weak ball of magic.");
334 } else if (player_ptr->lev < 45) {
335 rpi = rpi_type(_("ビームキャノン", "Beam Cannon"));
336 rpi.info = format("%s%d", KWD_DAM, rc_ptr->lvl * 2);
337 rpi.text = _("弱い魔法のビームを放つ。", "Fires a beam bolt of magic.");
342 rpi = rpi_type(_("ロケット", "Rocket"));
343 rpi.info = format("%s%d", KWD_DAM, rc_ptr->lvl * 5);
344 rpi.text = _("ロケットを放つ。", "Fires a magic rocket.");
350 rc_ptr->add_power(rpi, RC_IDX_RACE_0);