OSDN Git Service

Merge pull request #3569 from sikabane-works/release/3.0.0.88-alpha
[hengbandforosx/hengbandosx.git] / src / player-info / class-ability-info.cpp
1 #include "player-info/class-ability-info.h"
2 #include "player-info/self-info-util.h"
3 #include "realm/realm-names-table.h"
4 #include "realm/realm-types.h"
5 #include "system/player-type-definition.h"
6
7 void set_class_ability_info(PlayerType *player_ptr, self_info_type *self_ptr)
8 {
9     switch (player_ptr->pclass) {
10     case PlayerClassType::WARRIOR:
11         if (player_ptr->lev > 39) {
12             self_ptr->info[self_ptr->line++] = _("あなたはランダムな方向に対して数回攻撃することができる。(75 HP)", "You can attack some random directions simultaneously (cost 75).");
13         }
14
15         break;
16     case PlayerClassType::HIGH_MAGE:
17         if (player_ptr->realm1 == REALM_HEX) {
18             break;
19         }
20         [[fallthrough]];
21     case PlayerClassType::MAGE:
22     case PlayerClassType::SORCERER:
23         if (player_ptr->lev > 24) {
24             self_ptr->info[self_ptr->line++] = _("あなたはアイテムの魔力を吸収することができる。(1 MP)", "You can absorb charges from an item (cost 1).");
25         }
26
27         break;
28     case PlayerClassType::PRIEST:
29         if (is_good_realm(player_ptr->realm1)) {
30             if (player_ptr->lev > 34) {
31                 self_ptr->info[self_ptr->line++] = _("あなたは武器を祝福することができる。(70 MP)", "You can bless a weapon (cost 70).");
32             }
33
34             break;
35         }
36
37         if (player_ptr->lev > 41) {
38             self_ptr->info[self_ptr->line++] = _("あなたは周りのすべてのモンスターを攻撃することができる。(40 MP)", "You can damage all monsters in sight (cost 40).");
39         }
40
41         break;
42     case PlayerClassType::ROGUE:
43         if (player_ptr->lev > 7) {
44             self_ptr->info[self_ptr->line++] = _("あなたは攻撃して即座に逃げることができる。(12 MP)", "You can hit a monster and teleport away simultaneously (cost 12).");
45         }
46
47         break;
48     case PlayerClassType::RANGER:
49         if (player_ptr->lev > 14) {
50             self_ptr->info[self_ptr->line++] = _("あなたは怪物を調査することができる。(20 MP)", "You can probe monsters (cost 20).");
51         }
52
53         break;
54     case PlayerClassType::PALADIN:
55         if (is_good_realm(player_ptr->realm1)) {
56             if (player_ptr->lev > 29) {
57                 self_ptr->info[self_ptr->line++] = _("あなたは聖なる槍を放つことができる。(30 MP)", "You can fire a holy spear (cost 30).");
58             }
59
60             break;
61         }
62
63         if (player_ptr->lev > 29) {
64             self_ptr->info[self_ptr->line++] = _("あなたは生命力を減少させる槍を放つことができる。(30 MP)", "You can fire a spear which drains vitality (cost 30).");
65         }
66
67         break;
68     case PlayerClassType::WARRIOR_MAGE:
69         if (player_ptr->lev > 24) {
70             self_ptr->info[self_ptr->line++] = _("あなたはHPをMPに変換することができる。(消費なし)", "You can convert HP to SP (cost 0).");
71             self_ptr->info[self_ptr->line++] = _("あなたはMPをHPに変換することができる。(消費なし)", "You can convert SP to HP (cost 0).");
72         }
73
74         break;
75     case PlayerClassType::CHAOS_WARRIOR:
76         if (player_ptr->lev > 39) {
77             self_ptr->info[self_ptr->line++] = _("あなたは周囲に怪物を惑わす光を発生させることができる。(50 MP)", "You can radiate light which confuses nearby monsters (cost 50).");
78         }
79
80         break;
81     case PlayerClassType::MONK:
82         if (player_ptr->lev > 24) {
83             self_ptr->info[self_ptr->line++] = _("あなたは構えることができる。(消費なし)", "You can assume a special stance (cost 0).");
84         }
85
86         if (player_ptr->lev > 29) {
87             self_ptr->info[self_ptr->line++] = _("あなたは通常の2倍の攻撃を行うことができる。(30 MP)", "You can perform two attacks at the same time (cost 30).");
88         }
89
90         break;
91     case PlayerClassType::MINDCRAFTER:
92     case PlayerClassType::FORCETRAINER:
93     case PlayerClassType::ELEMENTALIST:
94         if (player_ptr->lev > 14) {
95             self_ptr->info[self_ptr->line++] = _("あなたは精神を集中してMPを回復させることができる。(消費なし)", "You can concentrate to regenerate your mana (cost 0).");
96         }
97
98         break;
99     case PlayerClassType::TOURIST:
100         self_ptr->info[self_ptr->line++] = _("あなたは写真を撮影することができる。(消費なし)", "You can take a photograph (cost 0).");
101
102         if (player_ptr->lev > 24) {
103             self_ptr->info[self_ptr->line++] = _("あなたはアイテムを完全に鑑定することができる。(20 MP)", "You can *identify* items (cost 20).");
104         }
105
106         break;
107     case PlayerClassType::IMITATOR:
108         if (player_ptr->lev > 29) {
109             self_ptr->info[self_ptr->line++] = _("あなたは怪物の特殊攻撃をダメージ2倍でまねることができる。(100 MP)",
110                 "You can imitate monster's special attacks with double damage (cost 100).");
111         }
112
113         break;
114     case PlayerClassType::BEASTMASTER:
115         self_ptr->info[self_ptr->line++] = _("あなたは1体の生命のあるモンスターを支配することができる。((レベル+3)/4 MP)", "You can dominate a monster (cost (level+3)/4).");
116
117         if (player_ptr->lev > 29) {
118             self_ptr->info[self_ptr->line++] = _("あなたは視界内の生命のあるモンスターを支配することができる。((レベル+20)/2 MP)",
119                 "You can dominate living monsters in sight (cost (level+20)/2).");
120         }
121
122         break;
123     case PlayerClassType::MAGIC_EATER:
124         self_ptr->info[self_ptr->line++] = _("あなたは杖/魔法棒/ロッドの魔力を自分のものにすることができる。(消費なし)", "You can absorb a staff, wand or rod itself (cost 0).");
125
126         if (player_ptr->lev > 9) {
127             self_ptr->info[self_ptr->line++] = _("あなたは杖/魔法棒/ロッドの魔力を強力に発動することができる。(10+(レベル-10)/2 HP)",
128                 "You can powerfully activate a staff, wand or rod (cost 10+(level-10)/2).");
129         }
130
131         break;
132     case PlayerClassType::RED_MAGE:
133         if (player_ptr->lev > 47) {
134             self_ptr->info[self_ptr->line++] = _("あなたは1ターンに2回魔法を唱えることができる。(20 MP)", "You can cast two spells simultaneously (cost 20).");
135         }
136
137         break;
138     case PlayerClassType::SAMURAI:
139         self_ptr->info[self_ptr->line++] = _("あなたは精神を集中して気合いを溜めることができる。(消費なし)", "You can concentrate to regenerate your mana (cost 0).");
140
141         if (player_ptr->lev > 24) {
142             self_ptr->info[self_ptr->line++] = _("あなたは特殊な型で構えることができる。(消費なし)", "You can assume a special stance (cost 0).");
143         }
144
145         break;
146     case PlayerClassType::BLUE_MAGE:
147         self_ptr->info[self_ptr->line++] = _("あなたは相手に使われた魔法を学ぶことができる。(消費なし)", "You can study spells which your enemy casts on you (cost 0).");
148         break;
149     case PlayerClassType::CAVALRY:
150         if (player_ptr->lev > 9) {
151             self_ptr->info[self_ptr->line++] = _("あなたはモンスターに乗って無理矢理ペットにすることができる。(消費なし)",
152                 "You can ride on a hostile monster to forcibly turn it into a pet  (cost 0).");
153         }
154
155         break;
156     case PlayerClassType::BERSERKER:
157         if (player_ptr->lev > 9) {
158             self_ptr->info[self_ptr->line++] = _("あなたは街とダンジョンの間を行き来することができる。(10 HP)", "You can travel between town and the depths (cost 10).");
159         }
160
161         break;
162     case PlayerClassType::SMITH:
163         if (player_ptr->lev > 4) {
164             self_ptr->info[self_ptr->line++] = _("あなたは武器や防具を鑑定することができる。(15 HP)", "You can identify weapons or armours (cost 15).");
165         }
166
167         break;
168     case PlayerClassType::MIRROR_MASTER:
169         self_ptr->info[self_ptr->line++] = _("あなたは鏡を作り出すことができる。(2 MP)", "You can create a Mirror (cost 2).");
170         self_ptr->info[self_ptr->line++] = _("あなたは鏡を割ることができる。(消費なし)", "You can break distant Mirrors (cost 0).");
171         break;
172     case PlayerClassType::NINJA:
173         if (player_ptr->lev > 19) {
174             self_ptr->info[self_ptr->line++] = _("あなたは素早く移動することができる。(消費なし)", "You can walk extremely fast (cost 0).");
175         }
176
177         break;
178
179     case PlayerClassType::ARCHER:
180     case PlayerClassType::BARD:
181     case PlayerClassType::SNIPER:
182     case PlayerClassType::MAX:
183         break;
184     }
185 }