2 * @brief プレーヤーの職業に関する諸テーブル定義
7 #include "player/player-race.h"
8 #include "player/player-class.h"
9 #include "core/player-redraw-types.h"
10 #include "inventory/inventory-slot-types.h"
11 #include "player/player-race.h"
12 #include "system/object-type-definition.h"
17 const player_magic *mp_ptr;
21 const player_class *cp_ptr;
29 * {STR,INT,WIS,DEX,CON,CHR},
30 * c_dis, c_dev, c_sav, c_stl, c_srh, c_fos, c_thn, c_thb,
31 * x_dis, x_dev, x_sav, x_stl, x_srh, x_fos, x_thn, x_thb,
32 * HD, Exp, pet_upkeep_div
35 const player_class class_info[MAX_CLASS] =
43 { 4, -2, -2, 2, 2, -1},
44 25, 18, 31, 1, 14, 2, 70, 55,
45 12, 7, 10, 0, 0, 0, 30, 30,
57 30, 40, 38, 3, 16, 20, 34, 20,
58 7, 15, 11, 0, 0, 0, 6, 7,
69 {-1, -3, 3, -1, 0, 2},
70 25, 35, 40, 2, 16, 8, 48, 35,
71 7, 11, 12, 0, 0, 0, 13, 11,
82 { 2, 1, -2, 3, 1, -1},
83 45, 37, 36, 5, 32, 24, 60, 66,
84 15, 12, 10, 0, 0, 0, 21, 18,
96 30, 37, 36, 3, 24, 16, 56, 72,
97 8, 11, 10, 0, 0, 0, 18, 28,
108 { 3, -3, 1, 0, 2, 2},
109 20, 24, 34, 1, 12, 2, 68, 40,
110 7, 10, 11, 0, 0, 0, 21, 18,
122 30, 35, 36, 2, 18, 16, 50, 25,
123 7, 10, 10, 0, 0, 0, 15, 11,
134 { 2, 1, -1, 0, 2, -2},
135 20, 25, 34, 1, 14, 12, 65, 40,
136 7, 11, 10, 0, 0, 0, 20, 17,
147 { 2, -1, 1, 3, 2, 1},
148 45, 34, 36, 5, 32, 24, 64, 60,
149 15, 11, 10, 0, 0, 0, 18, 18,
160 {-1, 0, 3, -1, -1, 2}, /* note: spell stat is Wis */
161 30, 33, 38, 3, 22, 16, 50, 40,
162 10, 11, 10, 0, 0, 0, 14, 18,
173 {-4, 4, 0, 0, -2, 1},
174 30, 40, 38, 3, 16, 20, 34, 20,
175 7, 15, 11, 0, 0, 0, 6, 7,
185 { -1, -1, -1, -1, -1, -1},
186 15, 18, 28, 1, 12, 2, 40, 20,
187 5, 7, 9, 0, 0, 0, 11, 11,
197 { 0, 1, -1, 2, 0, 1},
198 25, 30, 36, 2, 18, 16, 60, 50,
199 7, 10, 10, 0, 0, 0, 18, 20,
209 { 1, -1, -1, 1, 0, 2},
210 20, 25, 32, 2, 18, 16, 52, 63,
211 7, 10, 10, 0, 0, 0, 14, 25,
222 {-5, 6, -2, 2, 0, -2},
223 30, 48, 75, 2, 12, 22, 0, 0,
224 7, 18, 13, 0, 0, 0, 0, 0,
235 { 2, -1, -1, 2, 1, 0},
236 38, 24, 35, 4, 24, 16, 56, 82,
237 12, 10, 10, 0, 0, 0, 18, 36,
248 {-1, 2, 1, 2, -2, 1},
249 25, 42, 36, 2, 20, 16, 48, 35,
250 7, 16, 10, 0, 0, 0, 13, 11,
259 "Bard", /* Note : spell stat is Charisma */
260 {-2, 1, 2, -1, -2, 4},
261 20, 33, 34, -5, 16, 20, 34, 20,
262 8, 13, 11, 0, 0, 0, 10, 8,
273 { 2, 2, -1, 1, 0, -1},
274 20, 34, 34, 1, 16, 10, 56, 25,
275 7, 11, 11, 0, 0, 0, 18, 11,
286 { 3, -2, 1, 2, 1, 0},
287 25, 18, 32, 2, 16, 6, 70, 40,
288 12, 7, 10, 0, 0, 0, 23, 18,
299 { 0, -1, 3, 2, 1, 1},
300 30, 34, 38, 4, 32, 24, 50, 40,
301 10, 11, 11, 0, 0, 0, 14, 15,
312 {-4, 4, -1, 1, -2, -1},
313 30, 40, 36, 3, 20, 16, 40, 25,
314 7, 16, 11, 0, 0, 0, 6, 7,
324 { 2, -2, -2, 2, 2, 0},
325 20, 18, 32, 1, 16, 10, 60, 66,
326 10, 7, 10, 0, 0, 0, 22, 26,
337 { 8, -20, -20, 4, 4, -5},
338 -100, -1000, -200, -100, -100, -100, 120, -2000,
339 0, 0, 0, 0, 0, 0, 50, 0,
350 { 3, -1, -1, 1, 0, -1},
351 30, 28, 28, 1, 20, 10, 60, 45,
352 10, 10, 10, 0, 0, 0, 21, 15,
362 { -2, 3, 1, -1, -2, 1},
363 30, 33, 40, 3, 14, 16, 34,30,
364 10, 11, 12, 0, 0, 0, 6,10,
374 { 0, -1, -1, 3, 2, -1},
375 45, 24, 36, 8, 48, 32, 70,66,
376 15, 10, 10, 0, 0, 0, 25,18,
387 { 2, -1, -1, 2, 1, 0},
388 25, 24, 28, 5, 32, 18, 56, 72,
389 12, 10, 10, 0, 0, 0, 18, 28,
396 * @brief 職業とレベル毎のプレイヤー称号テーブル / Class titles for the player.
398 * The player gets a new title every five levels, so each class
399 * needs only ten titles total.
403 const concptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
437 "侍僧", /*教会奉仕者、見習い僧、伴僧、従者 */
440 "伝道師", /*司祭評議員、修道会会員 */
442 "聖人", /*大司教、総主教、総大司教 */
450 /* "ごろつき",*/ /*ごろつき、風来坊、浮浪者 */
452 "追いはぎ", /*追い剥ぎ、強盗、泥棒 */
455 "ペテン師", /*博徒、ペテン師、詐欺師 */
458 "マスター", /* "マスターシーフ", */
467 "斥候", /*斥候、見張り、偵察兵 */
479 "勇士", /*色男、愛人、しゃれ者、勇敢な人 */
499 "魔術の英雄", /* Mage-Hero */
503 "知識の守護者", /* "ウィザードロード", */
545 "精神の支配者", /* "マインドマスター", */
548 /* High Mage; same as Mage */
605 /* Sorcerer; same as Mage */
650 "見習い", /*"Apprentice"*/
651 "作曲家", /*"Songsmith"*/
653 "コンパニオン", /*"Companion"*/
654 "心の癒し手", /*"Minstrel"*/
656 "伝承の紡ぎ手", /*"Loreweaver"*/
658 "夢紡ぎ", /*"Dreamweaver"*/
659 "マスター", /*"Master Harper"*/
662 /* Red Mage; same as Warrior-Mage */
670 "魔術の英雄", /* Mage-Hero */
674 "知識の守護者", /* "ウィザードロード", */
691 /* ForceTrainer; same as Monk(?) */
705 /* Blue Mage; same as Mage */
805 const concptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
947 /* High Mage; same as Mage */
1047 "Apprentice", /*"Apprentice"*/
1048 "Songsmith", /*"Songsmith"*/
1050 "Companion", /*"Companion"*/
1051 "Minstrel", /*"Minstrel"*/
1052 "Harper", /*"Harper"*/
1053 "Loreweaver", /*"Loreweaver"*/
1055 "Dreamweaver", /*"Dreamweaver"*/
1056 "Master Harper", /*"Master Harper"*/
1201 void calc_class_status(player_type *creature_ptr)
1203 switch (creature_ptr->pclass) {
1205 if (creature_ptr->lev > 29)
1206 creature_ptr->resist_fear = TRUE;
1207 if (creature_ptr->lev > 44)
1208 creature_ptr->regenerate = TRUE;
1211 if (creature_ptr->lev > 39)
1212 creature_ptr->resist_fear = TRUE;
1214 case CLASS_CHAOS_WARRIOR:
1215 if (creature_ptr->lev > 29)
1216 creature_ptr->resist_chaos = TRUE;
1217 if (creature_ptr->lev > 39)
1218 creature_ptr->resist_fear = TRUE;
1220 case CLASS_MINDCRAFTER:
1221 if (creature_ptr->lev > 9)
1222 creature_ptr->resist_fear = TRUE;
1223 if (creature_ptr->lev > 19)
1224 creature_ptr->sustain_wis = TRUE;
1225 if (creature_ptr->lev > 29)
1226 creature_ptr->resist_conf = TRUE;
1229 creature_ptr->resist_sound = TRUE;
1232 if (creature_ptr->lev > 29)
1233 creature_ptr->resist_fear = TRUE;
1235 case CLASS_BERSERKER:
1236 creature_ptr->shero = 1;
1237 creature_ptr->sustain_str = TRUE;
1238 creature_ptr->sustain_dex = TRUE;
1239 creature_ptr->sustain_con = TRUE;
1240 creature_ptr->regenerate = TRUE;
1241 creature_ptr->redraw |= PR_STATUS;
1244 if (heavy_armor(creature_ptr)) {
1245 creature_ptr->skill_stl -= (creature_ptr->lev) / 10;
1246 } else if ((!creature_ptr->inventory_list[INVEN_RARM].k_idx || creature_ptr->right_hand_weapon)
1247 && (!creature_ptr->inventory_list[INVEN_LARM].k_idx || creature_ptr->left_hand_weapon)) {
1248 creature_ptr->skill_stl += (creature_ptr->lev) / 10;
1251 if ((!creature_ptr->inventory_list[INVEN_RARM].k_idx || creature_ptr->right_hand_weapon)
1252 && (!creature_ptr->inventory_list[INVEN_LARM].k_idx || creature_ptr->left_hand_weapon)) {
1253 creature_ptr->to_a += creature_ptr->lev / 2 + 5;
1254 creature_ptr->dis_to_a += creature_ptr->lev / 2 + 5;
1257 creature_ptr->slow_digest = TRUE;
1258 creature_ptr->resist_fear = TRUE;
1259 if (creature_ptr->lev > 19)
1260 creature_ptr->resist_pois = TRUE;
1261 if (creature_ptr->lev > 24)
1262 creature_ptr->sustain_dex = TRUE;
1263 if (creature_ptr->lev > 44) {
1264 creature_ptr->oppose_pois = 1;
1265 creature_ptr->redraw |= PR_STATUS;