1 #include "player-info/race-ability-info.h"
2 #include "player-info/self-info-util.h"
3 #include "system/player-type-definition.h"
6 * @brief レイシャルパワーの説明文を表示する
7 * @param player_ptr プレイヤー情報へのポインタ
8 * @param self_ptr 自己分析情報へのポインタ
12 void set_race_ability_info(PlayerType *player_ptr, self_info_type *self_ptr)
14 switch (player_ptr->prace) {
15 case PlayerRaceType::DWARF:
16 if (player_ptr->lev >= 5) {
17 self_ptr->info[self_ptr->line++] = _("あなたは罠とドアと階段を感知できる。(5 MP)", "You can find traps, doors and stairs (cost 5).");
21 case PlayerRaceType::NIBELUNG:
22 if (player_ptr->lev >= 10) {
23 self_ptr->info[self_ptr->line++] = _("あなたは罠とドアと階段を感知できる。(5 MP)", "You can find traps, doors and stairs (cost 5).");
27 case PlayerRaceType::HOBBIT:
28 if (player_ptr->lev >= 15) {
29 self_ptr->info[self_ptr->line++] = _("あなたは食料を生成できる。(10 MP)", "You can produce food (cost 10).");
33 case PlayerRaceType::GNOME:
34 if (player_ptr->lev >= 5) {
35 self_ptr->info[self_ptr->line++] = _("あなたは範囲 10 以内にテレポートできる。(5 MP)", "You can teleport, range 10 (cost 5).");
39 case PlayerRaceType::HALF_ORC:
40 if (player_ptr->lev >= 3) {
41 self_ptr->info[self_ptr->line++] = _("あなたは恐怖を除去できる。(5 MP)", "You can remove fear (cost 5).");
45 case PlayerRaceType::HALF_TROLL:
46 if (player_ptr->lev >= 10) {
47 self_ptr->info[self_ptr->line++] = _("あなたは狂暴化することができる。(12 MP) ", "You can enter a berserk fury (cost 12).");
51 case PlayerRaceType::AMBERITE:
52 if (player_ptr->lev >= 30) {
53 self_ptr->info[self_ptr->line++] = _("あなたはシャドウシフトすることができる。(50 MP)", "You can Shift Shadows (cost 50).");
56 if (player_ptr->lev >= 40) {
57 self_ptr->info[self_ptr->line++] = _("あなたは「パターン」を心に描いて歩くことができる。(75 MP)", "You can mentally Walk the Pattern (cost 75).");
61 case PlayerRaceType::BARBARIAN:
62 if (player_ptr->lev >= 8) {
63 self_ptr->info[self_ptr->line++] = _("あなたは狂暴化することができる。(10 MP) ", "You can enter a berserk fury (cost 10).");
67 case PlayerRaceType::HALF_OGRE:
68 if (player_ptr->lev >= 25) {
69 self_ptr->info[self_ptr->line++] = _("あなたは爆発のルーンを仕掛けることができる。(35 MP)", "You can set an Explosive Rune (cost 35).");
73 case PlayerRaceType::HALF_GIANT:
74 if (player_ptr->lev >= 20) {
75 self_ptr->info[self_ptr->line++] = _("あなたは石の壁を壊すことができる。(10 MP)", "You can break stone walls (cost 10).");
79 case PlayerRaceType::HALF_TITAN:
80 if (player_ptr->lev >= 15) {
81 self_ptr->info[self_ptr->line++] = _("あなたはモンスターをスキャンすることができる。(10 MP)", "You can probe monsters (cost 10).");
85 case PlayerRaceType::CYCLOPS:
86 if (player_ptr->lev >= 20) {
87 sprintf(self_ptr->plev_buf, _("あなたは %d ダメージの岩石を投げることができる。(15 MP)", "You can throw a boulder, dam. %d (cost 15)."),
88 (3 * player_ptr->lev) / 2);
89 self_ptr->info[self_ptr->line++] = self_ptr->plev_buf;
93 case PlayerRaceType::YEEK:
94 if (player_ptr->lev >= 15) {
95 self_ptr->info[self_ptr->line++] = _("あなたは恐怖を呼び起こす叫び声を発することができる。(15 MP)", "You can make a terrifying scream (cost 15).");
99 case PlayerRaceType::KLACKON:
100 if (player_ptr->lev >= 9) {
102 self_ptr->plev_buf, _("あなたは %d ダメージの酸を吹きかけることができる。(9 MP)", "You can spit acid, dam. %d (cost 9)."), player_ptr->lev);
103 self_ptr->info[self_ptr->line++] = self_ptr->plev_buf;
107 case PlayerRaceType::KOBOLD:
108 if (player_ptr->lev >= 12) {
109 sprintf(self_ptr->plev_buf, _("あなたは %d ダメージの毒矢を投げることができる。(8 MP)", "You can throw a dart of poison, dam. %d (cost 8)."),
111 self_ptr->info[self_ptr->line++] = self_ptr->plev_buf;
115 case PlayerRaceType::DARK_ELF:
116 if (player_ptr->lev >= 2) {
117 sprintf(self_ptr->plev_buf, _("あなたは %d ダメージのマジック・ミサイルの呪文を使える。(2 MP)", "You can cast a Magic Missile, dam %d (cost 2)."),
118 (3 + ((player_ptr->lev - 1) / 5)));
119 self_ptr->info[self_ptr->line++] = self_ptr->plev_buf;
123 case PlayerRaceType::DRACONIAN:
124 sprintf(self_ptr->plev_buf, _("あなたは %d ダメージのブレスを吐くことができる。(%d MP)", "You can breathe, dam. %d (cost %d)."), 2 * player_ptr->lev,
126 self_ptr->info[self_ptr->line++] = self_ptr->plev_buf;
128 case PlayerRaceType::MIND_FLAYER:
129 if (player_ptr->lev >= 15) {
130 sprintf(self_ptr->plev_buf, _("あなたは %d ダメージの精神攻撃をすることができる。(12 MP)", "You can mind blast your enemies, dam %d (cost 12)."),
134 self_ptr->info[self_ptr->line++] = self_ptr->plev_buf;
136 case PlayerRaceType::IMP:
137 if (player_ptr->lev >= 30) {
138 sprintf(self_ptr->plev_buf, _("あなたは %d ダメージのファイア・ボールの呪文を使える。(15 MP)", "You can cast a Fire Ball, dam. %d (cost 15)."),
140 self_ptr->info[self_ptr->line++] = self_ptr->plev_buf;
144 if (player_ptr->lev >= 9) {
145 sprintf(self_ptr->plev_buf, _("あなたは %d ダメージのファイア・ボルトの呪文を使える。(15 MP)", "You can cast a Fire Bolt, dam. %d (cost 15)."),
147 self_ptr->info[self_ptr->line++] = self_ptr->plev_buf;
151 case PlayerRaceType::GOLEM:
152 if (player_ptr->lev >= 20) {
153 self_ptr->info[self_ptr->line++] = _("あなたは d20+30 ターンの間肌を石に変化させられる。(15 MP)", "You can turn your skin to stone, dur d20+30 (cost 15).");
157 case PlayerRaceType::ZOMBIE:
158 case PlayerRaceType::SKELETON:
159 if (player_ptr->lev >= 30) {
160 self_ptr->info[self_ptr->line++] = _("あなたは失った経験値を回復することができる。(30 MP)", "You can restore lost experience (cost 30).");
164 case PlayerRaceType::VAMPIRE:
165 if (player_ptr->lev < 2) {
169 sprintf(self_ptr->plev_buf, _("あなたは敵から %d HP の生命力を吸収できる。(%d MP)", "You can steal life from a foe, dam. %d (cost %d)."),
170 player_ptr->lev * 2, 1 + (player_ptr->lev / 3));
171 self_ptr->info[self_ptr->line++] = self_ptr->plev_buf;
173 case PlayerRaceType::SPECTRE:
174 if (player_ptr->lev >= 4) {
175 self_ptr->info[self_ptr->line++] = _("あなたは泣き叫んで敵を恐怖させることができる。(6 MP)", "You can wail to terrify your enemies (cost 6).");
179 case PlayerRaceType::SPRITE:
180 if (player_ptr->lev >= 12) {
181 self_ptr->info[self_ptr->line++] = _("あなたは敵を眠らせる魔法の粉を投げることができる。(12 MP)", "You can throw magical dust which induces sleep (cost 12).");
185 case PlayerRaceType::BALROG:
186 sprintf(self_ptr->plev_buf, _("あなたは %d ダメージの地獄か火炎のブレスを吐くことができる。(%d MP)", "You can breathe nether, dam. %d (cost %d)."),
187 3 * player_ptr->lev, 10 + player_ptr->lev / 3);
188 self_ptr->info[self_ptr->line++] = self_ptr->plev_buf;
190 case PlayerRaceType::KUTAR:
191 if (player_ptr->lev >= 20) {
192 self_ptr->info[self_ptr->line++] = _("あなたは d20+30 ターンの間横に伸びることができる。(15 MP)", "You can expand horizontally, dur d20+30 (cost 15).");
196 case PlayerRaceType::ANDROID:
197 if (player_ptr->lev < 10) {
198 sprintf(self_ptr->plev_buf, _("あなたは %d ダメージのレイガンを撃つことができる。(7 MP)", "You can fire a ray gun with damage %d (cost 7)."),
199 (player_ptr->lev + 1) / 2);
200 } else if (player_ptr->lev < 25) {
201 sprintf(self_ptr->plev_buf, _("あなたは %d ダメージのブラスターを撃つことができる。(13 MP)", "You can fire a blaster with damage %d (cost 13)."),
203 } else if (player_ptr->lev < 35) {
204 sprintf(self_ptr->plev_buf, _("あなたは %d ダメージのバズーカを撃つことができる。(26 MP)", "You can fire a bazooka with damage %d (cost 26)."),
205 player_ptr->lev * 2);
206 } else if (player_ptr->lev < 45) {
207 sprintf(self_ptr->plev_buf,
208 _("あなたは %d ダメージのビームキャノンを撃つことができる。(40 MP)", "You can fire a beam cannon with damage %d (cost 40)."),
209 player_ptr->lev * 2);
211 sprintf(self_ptr->plev_buf, _("あなたは %d ダメージのロケットを撃つことができる。(60 MP)", "You can fire a rocket with damage %d (cost 60)."),
212 player_ptr->lev * 5);
215 self_ptr->info[self_ptr->line++] = self_ptr->plev_buf;