3 * @brief ゲーム情報テーブル / Angband Tables
7 * Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke
8 * This software may be copied and distributed for educational, research,
9 * and not for profit purposes provided that this copyright and statement
10 * are included in all such copies. Other copyrights may also apply.
18 * キーパッドの方向を南から反時計回り順に列挙 / Global array for looping through the "keypad directions"
21 { 2, 8, 6, 4, 3, 1, 9, 7, 5 };
24 * dddで定義した順にベクトルのX軸成分を定義 / Global arrays for converting "keypad direction" into offsets
27 { 0, -1, 0, 1, -1, 0, 1, -1, 0, 1 };
30 * dddで定義した順にベクトルのY軸成分を定義 / Global arrays for converting "keypad direction" into offsets
33 { 0, 1, 1, 1, 0, 0, 0, -1, -1, -1 };
36 * ddd越しにベクトルのX軸成分を定義 / Global arrays for optimizing "ddx[ddd[i]]" and "ddy[ddd[i]]"
38 const s16b ddx_ddd[9] =
39 { 0, 0, 1, -1, 1, -1, 1, -1, 0 };
42 * ddd越しにベクトルのY軸成分を定義 / Global arrays for optimizing "ddx[ddd[i]]" and "ddy[ddd[i]]"
44 const s16b ddy_ddd[9] =
45 { 1, -1, 0, 0, 1, 1, -1, -1, 0 };
49 * キーパッドの円環状方向配列 / Circular keypad direction array
52 { 2, 3, 6, 9, 8, 7, 4, 1 };
55 * cdd越しにベクトルのX軸成分を定義 / Global arrays for optimizing "ddx[cdd[i]]" and "ddy[cdd[i]]"
57 const s16b ddx_cdd[8] =
58 { 0, 1, 1, 1, 0, -1, -1, -1 };
61 * cdd越しにベクトルのY軸成分を定義 / Global arrays for optimizing "ddx[cdd[i]]" and "ddy[cdd[i]]"
63 const s16b ddy_cdd[8] =
64 { 1, 1, 0, -1, -1, -1, 0, 1 };
69 * 10進数から16進数への変換テーブル /
70 * Global array for converting numbers to uppercase hecidecimal digit
71 * This array can also be used to convert a number to an octal digit
73 const char hexsym[16] =
75 '0', '1', '2', '3', '4', '5', '6', '7',
76 '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
82 * Global array for converting numbers to a logical list symbol
84 const char listsym[] =
86 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
87 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
88 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
89 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
90 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
97 * Encode the screen colors
99 const concptr color_char = "dwsorgbuDWvyRGBU";
103 * 知力/賢さによるレベル毎の習得可能魔法数テーブル
104 * Stat Table (INT/WIS) -- Number of half-spells per level
106 const byte adj_mag_study[] =
133 4 /* 18/100-18/109 */,
134 4 /* 18/110-18/119 */,
135 5 /* 18/120-18/129 */,
136 5 /* 18/130-18/139 */,
137 5 /* 18/140-18/149 */,
138 5 /* 18/150-18/159 */,
139 5 /* 18/160-18/169 */,
140 5 /* 18/170-18/179 */,
141 5 /* 18/180-18/189 */,
142 5 /* 18/190-18/199 */,
143 5 /* 18/200-18/209 */,
144 6 /* 18/210-18/219 */,
151 * Stat Table (INT/WIS) -- extra 1/4-mana-points per level
153 const byte adj_mag_mana[] =
170 10 /* 18/00-18/09 */,
171 11 /* 18/10-18/19 */,
172 11 /* 18/20-18/29 */,
173 12 /* 18/30-18/39 */,
174 12 /* 18/40-18/49 */,
175 13 /* 18/50-18/59 */,
176 14 /* 18/60-18/69 */,
177 15 /* 18/70-18/79 */,
178 16 /* 18/80-18/89 */,
179 17 /* 18/90-18/99 */,
180 18 /* 18/100-18/109 */,
181 19 /* 18/110-18/119 */,
182 20 /* 18/120-18/129 */,
183 21 /* 18/130-18/139 */,
184 22 /* 18/140-18/149 */,
185 23 /* 18/150-18/159 */,
186 24 /* 18/160-18/169 */,
187 25 /* 18/170-18/179 */,
188 26 /* 18/180-18/189 */,
189 27 /* 18/190-18/199 */,
190 28 /* 18/200-18/209 */,
191 29 /* 18/210-18/219 */,
197 * 知力/賢さによる最低魔法失敗率テーブル
198 * Stat Table (INT/WIS) -- Minimum failure rate (percentage)
200 const byte adj_mag_fail[] =
227 3 /* 18/100-18/109 */,
228 2 /* 18/110-18/119 */,
229 2 /* 18/120-18/129 */,
230 2 /* 18/130-18/139 */,
231 2 /* 18/140-18/149 */,
232 1 /* 18/150-18/159 */,
233 1 /* 18/160-18/169 */,
234 1 /* 18/170-18/179 */,
235 1 /* 18/180-18/189 */,
236 1 /* 18/190-18/199 */,
237 0 /* 18/200-18/209 */,
238 0 /* 18/210-18/219 */,
244 * 知力/賢さによる魔法失敗率修正テーブル
245 * Stat Table (INT/WIS) -- Various things
247 const byte adj_mag_stat[] =
274 8 /* 18/100-18/109 */,
275 9 /* 18/110-18/119 */,
276 10 /* 18/120-18/129 */,
277 11 /* 18/130-18/139 */,
278 12 /* 18/140-18/149 */,
279 13 /* 18/150-18/159 */,
280 14 /* 18/160-18/169 */,
281 15 /* 18/170-18/179 */,
282 16 /* 18/180-18/189 */,
283 17 /* 18/190-18/199 */,
284 18 /* 18/200-18/209 */,
285 19 /* 18/210-18/219 */,
292 * Stat Table (CHR) -- payment percentages
294 const byte adj_chr_gold[] =
311 100 /* 18/00-18/09 */,
312 99 /* 18/10-18/19 */,
313 98 /* 18/20-18/29 */,
314 97 /* 18/30-18/39 */,
315 96 /* 18/40-18/49 */,
316 95 /* 18/50-18/59 */,
317 94 /* 18/60-18/69 */,
318 93 /* 18/70-18/79 */,
319 92 /* 18/80-18/89 */,
320 91 /* 18/90-18/99 */,
321 90 /* 18/100-18/109 */,
322 89 /* 18/110-18/119 */,
323 88 /* 18/120-18/129 */,
324 87 /* 18/130-18/139 */,
325 86 /* 18/140-18/149 */,
326 85 /* 18/150-18/159 */,
327 84 /* 18/160-18/169 */,
328 83 /* 18/170-18/179 */,
329 82 /* 18/180-18/189 */,
330 81 /* 18/190-18/199 */,
331 80 /* 18/200-18/209 */,
332 79 /* 18/210-18/219 */,
339 * Stat Table (INT) -- Magic devices
341 const byte adj_int_dev[] =
368 8 /* 18/100-18/109 */,
369 9 /* 18/110-18/119 */,
370 10 /* 18/120-18/129 */,
371 11 /* 18/130-18/139 */,
372 12 /* 18/140-18/149 */,
373 13 /* 18/150-18/159 */,
374 14 /* 18/160-18/169 */,
375 15 /* 18/170-18/179 */,
376 16 /* 18/180-18/189 */,
377 17 /* 18/190-18/199 */,
378 18 /* 18/200-18/209 */,
379 19 /* 18/210-18/219 */,
386 * Stat Table (WIS) -- Saving throw
388 const byte adj_wis_sav[] =
415 7 /* 18/100-18/109 */,
416 8 /* 18/110-18/119 */,
417 9 /* 18/120-18/129 */,
418 10 /* 18/130-18/139 */,
419 11 /* 18/140-18/149 */,
420 12 /* 18/150-18/159 */,
421 13 /* 18/160-18/169 */,
422 14 /* 18/170-18/179 */,
423 15 /* 18/180-18/189 */,
424 16 /* 18/190-18/199 */,
425 17 /* 18/200-18/209 */,
426 18 /* 18/210-18/219 */,
433 * Stat Table (DEX) -- disarming
435 const byte adj_dex_dis[] =
462 8 /* 18/100-18/109 */,
463 8 /* 18/110-18/119 */,
464 8 /* 18/120-18/129 */,
465 8 /* 18/130-18/139 */,
466 8 /* 18/140-18/149 */,
467 9 /* 18/150-18/159 */,
468 9 /* 18/160-18/169 */,
469 9 /* 18/170-18/179 */,
470 9 /* 18/180-18/189 */,
471 9 /* 18/190-18/199 */,
472 10 /* 18/200-18/209 */,
473 10 /* 18/210-18/219 */,
480 * Stat Table (INT) -- disarming
482 const byte adj_int_dis[] =
509 10 /* 18/100-18/109 */,
510 10 /* 18/110-18/119 */,
511 11 /* 18/120-18/129 */,
512 12 /* 18/130-18/139 */,
513 13 /* 18/140-18/149 */,
514 14 /* 18/150-18/159 */,
515 15 /* 18/160-18/169 */,
516 16 /* 18/170-18/179 */,
517 17 /* 18/180-18/189 */,
518 18 /* 18/190-18/199 */,
519 19 /* 18/200-18/209 */,
520 19 /* 18/210-18/219 */,
527 * Stat Table (DEX) -- bonus to ac (plus 128)
529 const byte adj_dex_ta[] =
546 128 + 2 /* 18/00-18/09 */,
547 128 + 2 /* 18/10-18/19 */,
548 128 + 2 /* 18/20-18/29 */,
549 128 + 2 /* 18/30-18/39 */,
550 128 + 2 /* 18/40-18/49 */,
551 128 + 3 /* 18/50-18/59 */,
552 128 + 3 /* 18/60-18/69 */,
553 128 + 3 /* 18/70-18/79 */,
554 128 + 4 /* 18/80-18/89 */,
555 128 + 5 /* 18/90-18/99 */,
556 128 + 6 /* 18/100-18/109 */,
557 128 + 7 /* 18/110-18/119 */,
558 128 + 8 /* 18/120-18/129 */,
559 128 + 9 /* 18/130-18/139 */,
560 128 + 9 /* 18/140-18/149 */,
561 128 + 10 /* 18/150-18/159 */,
562 128 + 11 /* 18/160-18/169 */,
563 128 + 12 /* 18/170-18/179 */,
564 128 + 13 /* 18/180-18/189 */,
565 128 + 14 /* 18/190-18/199 */,
566 128 + 15 /* 18/200-18/209 */,
567 128 + 15 /* 18/210-18/219 */,
568 128 + 16 /* 18/220+ */
574 * Stat Table (STR) -- bonus to dam (plus 128)
576 const byte adj_str_td[] =
593 128 + 2 /* 18/00-18/09 */,
594 128 + 2 /* 18/10-18/19 */,
595 128 + 3 /* 18/20-18/29 */,
596 128 + 3 /* 18/30-18/39 */,
597 128 + 3 /* 18/40-18/49 */,
598 128 + 3 /* 18/50-18/59 */,
599 128 + 3 /* 18/60-18/69 */,
600 128 + 4 /* 18/70-18/79 */,
601 128 + 5 /* 18/80-18/89 */,
602 128 + 5 /* 18/90-18/99 */,
603 128 + 6 /* 18/100-18/109 */,
604 128 + 7 /* 18/110-18/119 */,
605 128 + 8 /* 18/120-18/129 */,
606 128 + 9 /* 18/130-18/139 */,
607 128 + 10 /* 18/140-18/149 */,
608 128 + 11 /* 18/150-18/159 */,
609 128 + 12 /* 18/160-18/169 */,
610 128 + 13 /* 18/170-18/179 */,
611 128 + 14 /* 18/180-18/189 */,
612 128 + 15 /* 18/190-18/199 */,
613 128 + 16 /* 18/200-18/209 */,
614 128 + 18 /* 18/210-18/219 */,
615 128 + 20 /* 18/220+ */
621 * Stat Table (DEX) -- bonus to hit (plus 128)
623 const byte adj_dex_th[] =
640 128 + 3 /* 18/00-18/09 */,
641 128 + 3 /* 18/10-18/19 */,
642 128 + 3 /* 18/20-18/29 */,
643 128 + 3 /* 18/30-18/39 */,
644 128 + 3 /* 18/40-18/49 */,
645 128 + 4 /* 18/50-18/59 */,
646 128 + 4 /* 18/60-18/69 */,
647 128 + 4 /* 18/70-18/79 */,
648 128 + 4 /* 18/80-18/89 */,
649 128 + 5 /* 18/90-18/99 */,
650 128 + 6 /* 18/100-18/109 */,
651 128 + 7 /* 18/110-18/119 */,
652 128 + 8 /* 18/120-18/129 */,
653 128 + 9 /* 18/130-18/139 */,
654 128 + 9 /* 18/140-18/149 */,
655 128 + 10 /* 18/150-18/159 */,
656 128 + 11 /* 18/160-18/169 */,
657 128 + 12 /* 18/170-18/179 */,
658 128 + 13 /* 18/180-18/189 */,
659 128 + 14 /* 18/190-18/199 */,
660 128 + 15 /* 18/200-18/209 */,
661 128 + 15 /* 18/210-18/219 */,
662 128 + 16 /* 18/220+ */
668 * Stat Table (STR) -- bonus to hit (plus 128)
670 const byte adj_str_th[] =
687 128 + 1 /* 18/00-18/09 */,
688 128 + 1 /* 18/10-18/19 */,
689 128 + 1 /* 18/20-18/29 */,
690 128 + 1 /* 18/30-18/39 */,
691 128 + 1 /* 18/40-18/49 */,
692 128 + 1 /* 18/50-18/59 */,
693 128 + 1 /* 18/60-18/69 */,
694 128 + 2 /* 18/70-18/79 */,
695 128 + 3 /* 18/80-18/89 */,
696 128 + 4 /* 18/90-18/99 */,
697 128 + 5 /* 18/100-18/109 */,
698 128 + 6 /* 18/110-18/119 */,
699 128 + 7 /* 18/120-18/129 */,
700 128 + 8 /* 18/130-18/139 */,
701 128 + 9 /* 18/140-18/149 */,
702 128 + 10 /* 18/150-18/159 */,
703 128 + 11 /* 18/160-18/169 */,
704 128 + 12 /* 18/170-18/179 */,
705 128 + 13 /* 18/180-18/189 */,
706 128 + 14 /* 18/190-18/199 */,
707 128 + 15 /* 18/200-18/209 */,
708 128 + 15 /* 18/210-18/219 */,
709 128 + 16 /* 18/220+ */
715 * Stat Table (STR) -- weight limit in deca-pounds
717 const byte adj_str_wgt[] =
734 25 /* 18/00-18/09 */,
735 26 /* 18/10-18/19 */,
736 27 /* 18/20-18/29 */,
737 28 /* 18/30-18/39 */,
738 29 /* 18/40-18/49 */,
739 30 /* 18/50-18/59 */,
740 31 /* 18/60-18/69 */,
741 31 /* 18/70-18/79 */,
742 32 /* 18/80-18/89 */,
743 32 /* 18/90-18/99 */,
744 33 /* 18/100-18/109 */,
745 33 /* 18/110-18/119 */,
746 34 /* 18/120-18/129 */,
747 34 /* 18/130-18/139 */,
748 35 /* 18/140-18/149 */,
749 35 /* 18/150-18/159 */,
750 36 /* 18/160-18/169 */,
751 36 /* 18/170-18/179 */,
752 37 /* 18/180-18/189 */,
753 37 /* 18/190-18/199 */,
754 38 /* 18/200-18/209 */,
755 38 /* 18/210-18/219 */,
762 * Stat Table (STR) -- weapon weight limit in pounds
764 const byte adj_str_hold[] =
781 19 /* 18/00-18/09 */,
782 20 /* 18/10-18/19 */,
783 21 /* 18/20-18/29 */,
784 22 /* 18/30-18/39 */,
785 23 /* 18/40-18/49 */,
786 24 /* 18/50-18/59 */,
787 25 /* 18/60-18/69 */,
788 26 /* 18/70-18/79 */,
789 27 /* 18/80-18/89 */,
790 28 /* 18/90-18/99 */,
791 30 /* 18/100-18/109 */,
792 31 /* 18/110-18/119 */,
793 32 /* 18/120-18/129 */,
794 33 /* 18/130-18/139 */,
795 34 /* 18/140-18/149 */,
796 35 /* 18/150-18/159 */,
797 37 /* 18/160-18/169 */,
798 40 /* 18/170-18/179 */,
799 44 /* 18/180-18/189 */,
800 48 /* 18/190-18/199 */,
801 50 /* 18/200-18/209 */,
802 50 /* 18/210-18/219 */,
809 * Stat Table (STR) -- digging value
811 const byte adj_str_dig[] =
829 10 /* 18/10-18/19 */,
830 12 /* 18/20-18/29 */,
831 15 /* 18/30-18/39 */,
832 20 /* 18/40-18/49 */,
833 25 /* 18/50-18/59 */,
834 30 /* 18/60-18/69 */,
835 35 /* 18/70-18/79 */,
836 40 /* 18/80-18/89 */,
837 45 /* 18/90-18/99 */,
838 50 /* 18/100-18/109 */,
839 55 /* 18/110-18/119 */,
840 60 /* 18/120-18/129 */,
841 65 /* 18/130-18/139 */,
842 70 /* 18/140-18/149 */,
843 75 /* 18/150-18/159 */,
844 80 /* 18/160-18/169 */,
845 85 /* 18/170-18/179 */,
846 90 /* 18/180-18/189 */,
847 95 /* 18/190-18/199 */,
848 100 /* 18/200-18/209 */,
849 100 /* 18/210-18/219 */,
856 * Stat Table (STR) -- help index into the "blow" table
858 const byte adj_str_blow[] =
875 20 /* 18/00-18/09 */,
876 30 /* 18/10-18/19 */,
877 40 /* 18/20-18/29 */,
878 50 /* 18/30-18/39 */,
879 60 /* 18/40-18/49 */,
880 70 /* 18/50-18/59 */,
881 80 /* 18/60-18/69 */,
882 90 /* 18/70-18/79 */,
883 100 /* 18/80-18/89 */,
884 110 /* 18/90-18/99 */,
885 120 /* 18/100-18/109 */,
886 130 /* 18/110-18/119 */,
887 140 /* 18/120-18/129 */,
888 150 /* 18/130-18/139 */,
889 160 /* 18/140-18/149 */,
890 170 /* 18/150-18/159 */,
891 180 /* 18/160-18/169 */,
892 190 /* 18/170-18/179 */,
893 200 /* 18/180-18/189 */,
894 210 /* 18/190-18/199 */,
895 220 /* 18/200-18/209 */,
896 230 /* 18/210-18/219 */,
902 * 器用さによる攻撃回数インデックステーブル
903 * Stat Table (DEX) -- index into the "blow" table
905 const byte adj_dex_blow[] =
932 7 /* 18/100-18/109 */,
933 7 /* 18/110-18/119 */,
934 8 /* 18/120-18/129 */,
935 8 /* 18/130-18/139 */,
936 9 /* 18/140-18/149 */,
937 9 /* 18/150-18/159 */,
938 10 /* 18/160-18/169 */,
939 10 /* 18/170-18/179 */,
940 11 /* 18/180-18/189 */,
941 11 /* 18/190-18/199 */,
942 12 /* 18/200-18/209 */,
943 12 /* 18/210-18/219 */,
949 * 器用さによる盗難防止&体当たり成功判定修正テーブル
950 * Stat Table (DEX) -- chance of avoiding "theft" and "falling"
952 const byte adj_dex_safe[] =
969 10 /* 18/00-18/09 */,
970 10 /* 18/10-18/19 */,
971 15 /* 18/20-18/29 */,
972 15 /* 18/30-18/39 */,
973 20 /* 18/40-18/49 */,
974 25 /* 18/50-18/59 */,
975 30 /* 18/60-18/69 */,
976 35 /* 18/70-18/79 */,
977 40 /* 18/80-18/89 */,
978 45 /* 18/90-18/99 */,
979 50 /* 18/100-18/109 */,
980 60 /* 18/110-18/119 */,
981 70 /* 18/120-18/129 */,
982 80 /* 18/130-18/139 */,
983 90 /* 18/140-18/149 */,
984 100 /* 18/150-18/159 */,
985 100 /* 18/160-18/169 */,
986 100 /* 18/170-18/179 */,
987 100 /* 18/180-18/189 */,
988 100 /* 18/190-18/199 */,
989 100 /* 18/200-18/209 */,
990 100 /* 18/210-18/219 */,
996 * 耐久による基本HP自然治癒値テーブル /
997 * Stat Table (CON) -- base regeneration rate
999 const byte adj_con_fix[] =
1016 2 /* 18/00-18/09 */,
1017 2 /* 18/10-18/19 */,
1018 2 /* 18/20-18/29 */,
1019 2 /* 18/30-18/39 */,
1020 2 /* 18/40-18/49 */,
1021 3 /* 18/50-18/59 */,
1022 3 /* 18/60-18/69 */,
1023 3 /* 18/70-18/79 */,
1024 3 /* 18/80-18/89 */,
1025 3 /* 18/90-18/99 */,
1026 4 /* 18/100-18/109 */,
1027 4 /* 18/110-18/119 */,
1028 5 /* 18/120-18/129 */,
1029 6 /* 18/130-18/139 */,
1030 6 /* 18/140-18/149 */,
1031 7 /* 18/150-18/159 */,
1032 7 /* 18/160-18/169 */,
1033 8 /* 18/170-18/179 */,
1034 8 /* 18/180-18/189 */,
1035 8 /* 18/190-18/199 */,
1036 9 /* 18/200-18/209 */,
1037 9 /* 18/210-18/219 */,
1043 * 耐久による基本HP自然治癒値テーブル /
1044 * Stat Table (CON) -- extra 1/4-hitpoints per level (plus 128)
1046 const byte adj_con_mhp[] =
1063 128 + 4 /* 18/00-18/09 */,
1064 128 + 5 /* 18/10-18/19 */,
1065 128 + 6 /* 18/20-18/29 */,
1066 128 + 7 /* 18/30-18/39 */,
1067 128 + 8 /* 18/40-18/49 */,
1068 128 + 9 /* 18/50-18/59 */,
1069 128 + 10 /* 18/60-18/69 */,
1070 128 + 11 /* 18/70-18/79 */,
1071 128 + 12 /* 18/80-18/89 */,
1072 128 + 14 /* 18/90-18/99 */,
1073 128 + 17 /* 18/100-18/109 */,
1074 128 + 20 /* 18/110-18/119 */,
1075 128 + 23 /* 18/120-18/129 */,
1076 128 + 26 /* 18/130-18/139 */,
1077 128 + 29 /* 18/140-18/149 */,
1078 128 + 32 /* 18/150-18/159 */,
1079 128 + 35 /* 18/160-18/169 */,
1080 128 + 38 /* 18/170-18/179 */,
1081 128 + 40 /* 18/180-18/189 */,
1082 128 + 42 /* 18/190-18/199 */,
1083 128 + 44 /* 18/200-18/209 */,
1084 128 + 46 /* 18/210-18/219 */,
1085 128 + 48 /* 18/220+ */
1091 * Stat Table (CHR) -- charm
1093 const byte adj_chr_chm[] =
1110 9 /* 18/00-18/09 */,
1111 10 /* 18/10-18/19 */,
1112 12 /* 18/20-18/29 */,
1113 15 /* 18/30-18/39 */,
1114 18 /* 18/40-18/49 */,
1115 21 /* 18/50-18/59 */,
1116 24 /* 18/60-18/69 */,
1117 28 /* 18/70-18/79 */,
1118 32 /* 18/80-18/89 */,
1119 36 /* 18/90-18/99 */,
1120 39 /* 18/100-18/109 */,
1121 42 /* 18/110-18/119 */,
1122 45 /* 18/120-18/129 */,
1123 49 /* 18/130-18/139 */,
1124 53 /* 18/140-18/149 */,
1125 57 /* 18/150-18/159 */,
1126 61 /* 18/160-18/169 */,
1127 65 /* 18/170-18/179 */,
1128 69 /* 18/180-18/189 */,
1129 73 /* 18/190-18/199 */,
1130 77 /* 18/200-18/209 */,
1131 81 /* 18/210-18/219 */,
1139 * This table is used to help calculate the number of blows the player can
1140 * make in a single round of attacks (one player turn) with a normal weapon.
1143 * This number ranges from a single blow/round for weak players to up to six
1144 * blows/round for powerful warriors.
1146 * Note that certain artifacts and ego-items give "bonus" blows/round.
1148 * First, from the player class, we extract some values:
1150 * Warrior num = 6; mul = 5; div = MAX(70, weapon_weight);
1151 * Berserker num = 6; mul = 7; div = MAX(70, weapon_weight);
1152 * Mage num = 3; mul = 2; div = MAX(100, weapon_weight);
1153 * Priest num = 5; mul = 3; div = MAX(100, weapon_weight);
1154 * Mindcrafter num = 5; mul = 3; div = MAX(100, weapon_weight);
1155 * Rogue num = 5; mul = 3; div = MAX(40, weapon_weight);
1156 * Ranger num = 5; mul = 4; div = MAX(70, weapon_weight);
1157 * Paladin num = 5; mul = 4; div = MAX(70, weapon_weight);
1158 * Weaponsmith num = 5; mul = 5; div = MAX(150, weapon_weight);
1159 * Warrior-Mage num = 5; mul = 3; div = MAX(70, weapon_weight);
1160 * Chaos Warrior num = 5; mul = 4; div = MAX(70, weapon_weight);
1161 * Monk num = 5; mul = 3; div = MAX(60, weapon_weight);
1162 * Tourist num = 4; mul = 3; div = MAX(100, weapon_weight);
1163 * Imitator num = 5; mul = 4; div = MAX(70, weapon_weight);
1164 * Beastmaster num = 5; mul = 3; div = MAX(70, weapon_weight);
1165 * Cavalry(Ride) num = 5; mul = 4; div = MAX(70, weapon_weight);
1166 * Cavalry(Walk) num = 5; mul = 3; div = MAX(100, weapon_weight);
1167 * Sorcerer num = 1; mul = 1; div = MAX(1, weapon_weight);
1168 * Archer num = 4; mul = 2; div = MAX(70, weapon_weight);
1169 * Magic eater num = 4; mul = 2; div = MAX(70, weapon_weight);
1170 * ForceTrainer num = 4; mul = 2; div = MAX(60, weapon_weight);
1171 * Mirror Master num = 3; mul = 3; div = MAX(100, weapon_weight);
1172 * Ninja num = 4; mul = 1; div = MAX(20, weapon_weight);
1174 * To get "P", we look up the relevant "adj_str_blow[]" (see above),
1175 * multiply it by "mul", and then divide it by "div".
1176 * Increase P by 1 if you wield a weapon two-handed.
1177 * Decrease P by 1 if you are a Ninja.
1179 * To get "D", we look up the relevant "adj_dex_blow[]" (see above),
1181 * The player gets "blows_table[P][D]" blows/round, as shown below,
1182 * up to a maximum of "num" blows/round, plus any "bonus" blows/round.
1185 const byte blows_table[12][12] =
1188 /* 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11+ */
1189 /* 3 10 15 /10 /40 /60 /80 /100 /120 /140 /160 /180 */
1190 /* 0 */{ 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4 },
1191 /* 1 */{ 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4 },
1192 /* 2 */{ 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5 },
1193 /* 3 */{ 1, 1, 2, 3, 3, 4, 4, 4, 5, 5, 5, 5 },
1194 /* 4 */{ 1, 1, 2, 3, 3, 4, 4, 5, 5, 5, 5, 5 },
1195 /* 5 */{ 1, 1, 2, 3, 4, 4, 4, 5, 5, 5, 5, 6 },
1196 /* 6 */{ 1, 1, 2, 3, 4, 4, 4, 5, 5, 5, 5, 6 },
1197 /* 7 */{ 1, 2, 2, 3, 4, 4, 4, 5, 5, 5, 5, 6 },
1198 /* 8 */{ 1, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6 },
1199 /* 9 */{ 1, 2, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6 },
1200 /* 10*/{ 2, 2, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6 },
1201 /*11+*/{ 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 6, 6 },
1206 * @brief 闘技場のモンスターID及び報酬アイテムテーブル
1208 const arena_type arena_info[MAX_ARENA_MONS + 2] =
1210 { MON_NOBORTA, TV_AMULET, SV_AMULET_ADORNMENT },
1211 { MON_MORI_TROLL, TV_FOOD, SV_FOOD_PINT_OF_WINE },
1212 { MON_IMP, TV_POTION, SV_POTION_SPEED },
1213 { MON_LION_HEART, 0, 0 },
1214 { MON_MASTER_YEEK, TV_POTION, SV_POTION_CURING },
1215 { MON_SABRE_TIGER, TV_WAND, SV_WAND_STONE_TO_MUD },
1216 { MON_LIZARD_KING, TV_WAND, SV_WAND_TELEPORT_AWAY },
1217 { MON_WYVERN, TV_POTION, SV_POTION_HEALING },
1218 { MON_ARCH_VILE, TV_POTION, SV_POTION_RESISTANCE },
1219 { MON_ELF_LORD , TV_POTION, SV_POTION_ENLIGHTENMENT },
1220 { MON_GHOUL_KING, TV_FOOD, SV_FOOD_RESTORING },
1221 { MON_COLBRAN, TV_RING, SV_RING_ELEC },
1222 { MON_BICLOPS, TV_WAND, SV_WAND_ACID_BALL },
1223 { MON_M_MINDCRAFTER, TV_POTION, SV_POTION_SELF_KNOWLEDGE },
1224 { MON_GROO, TV_SCROLL, SV_SCROLL_ACQUIREMENT },
1225 { MON_RAAL, TV_SCROLL, SV_SCROLL_STAR_DESTRUCTION },
1226 { MON_DREADMASTER, TV_WAND, SV_WAND_HYPODYNAMIA },
1227 { MON_ULTRA_PALADIN, TV_STAFF, SV_STAFF_DISPEL_EVIL },
1228 { MON_BARNEY, TV_RING, SV_RING_RES_CHAOS },
1229 { MON_TROLL_KING, TV_SCROLL, SV_SCROLL_MASS_GENOCIDE },
1230 { MON_BARON_HELL, TV_POTION, SV_POTION_AUGMENTATION },
1231 { MON_F_ANGEL, TV_SCROLL, SV_SCROLL_RUNE_OF_PROTECTION },
1232 { MON_G_C_DRAKE, TV_WAND, SV_WAND_DRAGON_FIRE },
1233 { MON_IRON_LICH, TV_STAFF, SV_STAFF_DESTRUCTION },
1234 { MON_DROLEM, TV_POTION, SV_POTION_STAR_HEALING },
1235 { MON_G_TITAN, TV_WAND, SV_WAND_GENOCIDE },
1236 { MON_G_BALROG, TV_POTION, SV_POTION_EXPERIENCE },
1237 { MON_ELDER_VAMPIRE, TV_RING, SV_RING_SUSTAIN },
1238 { MON_NIGHTWALKER, TV_WAND, SV_WAND_STRIKING },
1239 { MON_S_TYRANNO, TV_SCROLL, SV_SCROLL_STAR_ACQUIREMENT },
1240 { MON_G_MASTER_MYS, TV_ROD, SV_ROD_IDENTIFY },
1241 { MON_LORD_CHAOS, TV_POTION, SV_POTION_LIFE },
1242 { MON_SHADOWLORD, TV_POTION, SV_POTION_STAR_ENLIGHTENMENT },
1243 { MON_ULT_BEHOLDER, TV_AMULET, SV_AMULET_REFLECTION },
1244 { MON_JABBERWOCK, TV_ROD, SV_ROD_HEALING },
1245 { MON_LOCKE_CLONE, TV_WAND, SV_WAND_DISINTEGRATE },
1246 { MON_WYRM_SPACE, TV_ROD, SV_ROD_RESTORATION },
1247 { MON_SHAMBLER, TV_SCROLL, SV_SCROLL_STAR_ACQUIREMENT },
1248 { MON_BLACK_REAVER, TV_RING, SV_RING_LORDLY },
1249 { MON_FENGHUANG, TV_STAFF, SV_STAFF_THE_MAGI },
1250 { MON_WYRM_POWER, TV_SCROLL, SV_SCROLL_ARTIFACT },
1251 { 0, 0, 0 }, /* Victory prizing */
1252 { MON_HAGURE, TV_SCROLL, SV_SCROLL_ARTIFACT },
1259 * @brief 加速値による実質速度修正倍率テーブル /
1260 * This table allows quick conversion from "speed" to "energy"
1263 * The basic function WAS ((S>=110) ? (S-110) : (100 / (120-S)))
1264 * Note that table access is *much* quicker than computation.
1266 * Note that the table has been changed at high speeds. From
1267 * "Slow (-40)" to "Fast (+30)" is pretty much unchanged, but
1268 * at speeds above "Fast (+30)", one approaches an asymptotic
1269 * effective limit of 50 energy per turn. This means that it
1270 * is relatively easy to reach "Fast (+30)" and get about 40
1271 * energy per turn, but then speed becomes very "expensive",
1272 * and you must get all the way to "Fast (+50)" to reach the
1273 * point of getting 45 energy per turn. After that point,
1274 * furthur increases in speed are more or less pointless,
1275 * except to balance out heavy inventory.
1277 * Note that currently the fastest monster is "Fast (+30)".
1279 * It should be possible to lower the energy threshhold from
1280 * 100 units to 50 units, though this may interact badly with
1281 * the (compiled out) small random energy boost code. It may
1282 * also tend to cause more "clumping" at high speeds.
1285 const byte extract_energy[200] =
1287 /* Slow */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1288 /* Slow */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1289 /* Slow */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1290 /* Slow */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1291 /* Slow */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1292 /* Slow */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1293 /* S-50 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1294 /* S-40 */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1295 /* S-30 */ 2, 2, 2, 2, 2, 2, 2, 3, 3, 3,
1296 /* S-20 */ 3, 3, 3, 3, 3, 4, 4, 4, 4, 4,
1297 /* S-10 */ 5, 5, 5, 5, 6, 6, 7, 7, 8, 9,
1298 /* Norm */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1299 /* F+10 */ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1300 /* F+20 */ 30, 31, 32, 33, 34, 35, 36, 36, 37, 37,
1301 /* F+30 */ 38, 38, 39, 39, 40, 40, 40, 41, 41, 41,
1302 /* F+40 */ 42, 42, 42, 43, 43, 43, 44, 44, 44, 44,
1303 /* F+50 */ 45, 45, 45, 45, 45, 46, 46, 46, 46, 46,
1304 /* F+60 */ 47, 47, 47, 47, 47, 48, 48, 48, 48, 48,
1305 /* F+70 */ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
1306 /* Fast */ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
1312 * @brief 基本必要経験値テーブル /
1313 * Base experience levels, may be adjusted up for race and/or class
1315 const s32b player_exp[PY_MAX_LEVEL] =
1371 * @brief 基本必要強化値テーブル(アンドロイド専用)
1373 const s32b player_exp_a[PY_MAX_LEVEL] =
1437 const player_sex sex_info[MAX_SEXES] =
1464 * {STR,INT,WIS,DEX,CON,CHR},
1465 * r_dis, r_dev, r_sav, r_stl, r_srh, r_fos, r_thn, r_thb,
1474 const player_race race_info[MAX_RACES] =
1482 { 0, 0, 0, 0, 0, 0 },
1483 0, 0, 0, 0, 0, 10, 0, 0,
1497 { -1, 1, 1, 1, -1, 1 },
1498 2, 3, 2, 1, 6, 11, -1, 5,
1512 { -1, 2, 0, 1, -2, 2 },
1513 5, 6, 4, 2, 8, 12, -5, 15,
1528 { -2, 1, 1, 3, 2, 1 },
1529 15, 12, 10, 5, 12, 15, -10, 20,
1543 { -1, 2, 0, 2, 1, -1 },
1544 10, 8, 7, 3, 6, 13, -8, 12,
1558 { 2, -2, 2, -2, 2, -1 },
1559 2, 7, 6, -1, 7, 10, 15, 0,
1573 { 2, -1, 0, 0, 1, -2 },
1574 -3, -3, -2, -1, 0, 7, 12, -5,
1588 { 4, -4, -1, -3, 3, -3 },
1589 -5, -8, -5, -2, -1, 5, 20, -10,
1603 { 1, 2, 2, 2, 3, 2 },
1604 4, 5, 3, 2, 3, 13, 15, 10,
1618 { 1, 3, -1, 3, 1, 3 },
1619 4, 13, 12, 4, 3, 14, 10, 25,
1633 { 3, -2, -1, 1, 2, 0 },
1634 -2, -10, 2, -1, 1, 7, 12, 10,
1648 { 3, -2, 0, -1, 3, -2 },
1649 -3, -5, -3, -2, -1, 5, 20, 0,
1663 { 4, -2, -2, -2, 3, -2 },
1664 -6, -8, -3, -2, -1, 5, 25, 5,
1678 { 5, 1, 2, -2, 3, 1 },
1679 -5, 5, 1, -2, 1, 8, 25, 0,
1693 { 4, -3, -2, -3, 4, -3 },
1694 -4, -5, -3, -2, -2, 5, 20, 12,
1708 { -2, 1, 1, 1, -2, -4 },
1709 2, 4, 6, 3, 5, 15, -5, -5,
1723 { 2, -1, -1, 1, 2, -1 },
1724 10, 5, 3, 0, -1, 10, 5, 5,
1738 { 1, -1, 0, 1, 0, -2 },
1739 -2, -3, -1, -1, 1, 8, 10, -8,
1753 { 1, -1, 2, 0, 2, -2 },
1754 3, 5, 6, 1, 5, 10, 9, 0,
1768 { -1, 3, 2, 2, -2, 1 },
1769 5, 10, 12, 3, 8, 12, -5, 10,
1783 { 2, 1, 1, 1, 2, -1 },
1784 -2, 5, 2, 0, 1, 10, 5, 5,
1798 { -3, 4, 4, 0, -2, -3 },
1799 10, 15, 9, 2, 5, 12, -10, -5,
1813 { 0, -1, -1, 1, 2, -1 },
1814 -3, 2, -1, 1, -1, 10, 5, -5,
1828 { 4, -5, -5, -2, 4, -2 },
1829 -5, -5, 6, -1, -1, 8, 20, 0,
1843 { 0, 1, -2, 0, 1, -2 },
1844 -5, 0, 3, -1, -1, 8, 10, 0,
1858 { 2, -6, -6, 1, 4, -3 },
1859 -5, -5, 5, -1, -1, 5, 15, 0,
1873 { 3, 3, -1, -1, 1, 2 },
1874 4, 8, 6, 4, 1, 8, 5, 0,
1888 { -5, 4, -1, 2, 0, -3 },
1889 10, 15, 12, 5, 5, 14, -15, -5,
1903 { -4, 3, 3, 3, -2, 2 },
1904 10, 8, 6, 4, 10, 10, -12, 0,
1918 { 2, -2, -1, -1, 2, -2 },
1919 -5, -2, -1, -1, -1, 5, 12, 5,
1932 { 2, 0, 2, -3, 2, 0 },
1933 -5, 2, 5, -1, 0, 9, 15, -5,
1947 { 2, 0, 4, 1, 2, 3 },
1948 0, 12, 8, 2, 2, 11, 10, 10,
1964 { 4, 2, -10, 2, 3, -5 },
1965 -3, 12, 15, -2, 1, 8, 20, 0,
1979 { 1, 2, 2, 2, 3, 2 },
1980 4, 5, 3, 2, 3, 13, 15, 10,
1993 {-2, 2, 2, 1, -1, 0 },
1994 7, 8, 0, 6, 12, 15, -10, -5,
2008 { 0, -1, -1, 1, 2, 3 },
2009 -2, 5, 5, 5, -2, 6, 0, -5,
2023 { 4, -5, -5, 0, 4, -2 },
2024 0, -5, 0, -2, 3, 14, 20, 10,
2038 { -1, 0, 2, 1, -1, 1},
2039 2, 3, 2, 1, 6, 11, -1, 5,
2057 * {STR,INT,WIS,DEX,CON,CHR},
2058 * c_dis, c_dev, c_sav, c_stl, c_srh, c_fos, c_thn, c_thb,
2059 * x_dis, x_dev, x_sav, x_stl, x_srh, x_fos, x_thn, x_thb,
2060 * HD, Exp, pet_upkeep_div
2063 const player_class class_info[MAX_CLASS] =
2071 { 4, -2, -2, 2, 2, -1},
2072 25, 18, 31, 1, 14, 2, 70, 55,
2073 12, 7, 10, 0, 0, 0, 30, 30,
2083 {-4, 3, 0, 1, -2, 1},
2084 30, 40, 38, 3, 16, 20, 34, 20,
2085 7, 15, 11, 0, 0, 0, 6, 7,
2095 {-1, -3, 3, -1, 0, 2},
2096 25, 35, 40, 2, 16, 8, 48, 35,
2097 7, 11, 12, 0, 0, 0, 13, 11,
2107 { 2, 1, -2, 3, 1, -1},
2108 45, 37, 36, 5, 32, 24, 60, 66,
2109 15, 12, 10, 0, 0, 0, 21, 18,
2119 { 2, 2, 0, 1, 1, 1},
2120 30, 37, 36, 3, 24, 16, 56, 72,
2121 8, 11, 10, 0, 0, 0, 18, 28,
2131 { 3, -3, 1, 0, 2, 2},
2132 20, 24, 34, 1, 12, 2, 68, 40,
2133 7, 10, 11, 0, 0, 0, 21, 18,
2143 { 2, 2, 0, 1, 0, 1},
2144 30, 35, 36, 2, 18, 16, 50, 25,
2145 7, 10, 10, 0, 0, 0, 15, 11,
2155 { 2, 1, -1, 0, 2, -2},
2156 20, 25, 34, 1, 14, 12, 65, 40,
2157 7, 11, 10, 0, 0, 0, 20, 17,
2167 { 2, -1, 1, 3, 2, 1},
2168 45, 34, 36, 5, 32, 24, 64, 60,
2169 15, 11, 10, 0, 0, 0, 18, 18,
2179 {-1, 0, 3, -1, -1, 2}, /* note: spell stat is Wis */
2180 30, 33, 38, 3, 22, 16, 50, 40,
2181 10, 11, 10, 0, 0, 0, 14, 18,
2191 {-4, 4, 0, 0, -2, 1},
2192 30, 40, 38, 3, 16, 20, 34, 20,
2193 7, 15, 11, 0, 0, 0, 6, 7,
2202 { -1, -1, -1, -1, -1, -1},
2203 15, 18, 28, 1, 12, 2, 40, 20,
2204 5, 7, 9, 0, 0, 0, 11, 11,
2213 { 0, 1, -1, 2, 0, 1},
2214 25, 30, 36, 2, 18, 16, 60, 50,
2215 7, 10, 10, 0, 0, 0, 18, 20,
2224 { 1, -1, -1, 1, 0, 2},
2225 20, 25, 32, 2, 18, 16, 52, 63,
2226 7, 10, 10, 0, 0, 0, 14, 25,
2236 {-5, 6, -2, 2, 0, -2},
2237 30, 48, 75, 2, 12, 22, 0, 0,
2238 7, 18, 13, 0, 0, 0, 0, 0,
2248 { 2, -1, -1, 2, 1, 0},
2249 38, 24, 35, 4, 24, 16, 56, 82,
2250 12, 10, 10, 0, 0, 0, 18, 36,
2260 {-1, 2, 1, 2, -2, 1},
2261 25, 42, 36, 2, 20, 16, 48, 35,
2262 7, 16, 10, 0, 0, 0, 13, 11,
2270 "Bard", /* Note : spell stat is Charisma */
2271 {-2, 1, 2, -1, -2, 4},
2272 20, 33, 34, -5, 16, 20, 34, 20,
2273 8, 13, 11, 0, 0, 0, 10, 8,
2283 { 2, 2, -1, 1, 0, -1},
2284 20, 34, 34, 1, 16, 10, 56, 25,
2285 7, 11, 11, 0, 0, 0, 18, 11,
2295 { 3, -2, 1, 2, 1, 0},
2296 25, 18, 32, 2, 16, 6, 70, 40,
2297 12, 7, 10, 0, 0, 0, 23, 18,
2307 { 0, -1, 3, 2, 1, 1},
2308 30, 34, 38, 4, 32, 24, 50, 40,
2309 10, 11, 11, 0, 0, 0, 14, 15,
2319 {-4, 4, -1, 1, -2, -1},
2320 30, 40, 36, 3, 20, 16, 40, 25,
2321 7, 16, 11, 0, 0, 0, 6, 7,
2330 { 2, -2, -2, 2, 2, 0},
2331 20, 18, 32, 1, 16, 10, 60, 66,
2332 10, 7, 10, 0, 0, 0, 22, 26,
2342 { 8, -20, -20, 4, 4, -5},
2343 -100, -1000, -200, -100, -100, -100, 120, -2000,
2344 0, 0, 0, 0, 0, 0, 50, 0,
2354 { 3, -1, -1, 1, 0, -1},
2355 30, 28, 28, 1, 20, 10, 60, 45,
2356 10, 10, 10, 0, 0, 0, 21, 15,
2365 { -2, 3, 1, -1, -2, 1},
2366 30, 33, 40, 3, 14, 16, 34,30,
2367 10, 11, 12, 0, 0, 0, 6,10,
2376 { 0, -1, -1, 3, 2, -1},
2377 45, 24, 36, 8, 48, 32, 70,66,
2378 15, 10, 10, 0, 0, 0, 25,18,
2388 { 2, -1, -1, 2, 1, 0},
2389 25, 24, 28, 5, 32, 18, 56, 72,
2390 12, 10, 10, 0, 0, 0, 18, 28,
2399 const player_seikaku seikaku_info[MAX_SEIKAKU] =
2406 { 0, 0, 0, 0, 0, 0 },
2407 0, 0, 0, 0, 0, 0, 0, 0,
2416 { 2, -2, -1, 0, 1, 0 },
2417 -5, -5, -3, -1, -2, -2, 10, 0,
2426 { -2, 2, 0, 1, -1, -1 },
2427 3, 8, 2, 0, -2, 5, -8, -5,
2436 { 0, -1, 2, -1, 0, 1 },
2437 -5, 2, 4, -1, 3, -2, -3, -6,
2446 { -1, 1, -1, 2, -1, -1 },
2447 7, 2, -1, 1, 5, 5, 0, 10,
2456 { 2, 1, 1, -1, -1, 0 },
2457 -5, 5, -2, 0, 2, -2, 10, 10,
2466 { 1, -1, -2, 2, 0, 1 },
2467 -2, -3, -3, 0, -1, 2, 5, 5,
2476 { -2, -2, -2, -2, -2, -2 },
2477 -5, -5, -3, -1, -4, -2, -8, -8,
2486 { 1, 1, 1, 1, 1, 3 },
2487 10, 5, 3, 0, 4, 2, 10, 10,
2496 { -2, -2, -2, -2, -2, 2 },
2497 10, 7, 3, 2, 10, 8, 15, 15,
2506 { -1, -1, 1, -2, 2, 0 },
2507 -5, -3, 3, 1, 0, -3, -6, -6,
2516 { 10, 10, 10, 10, 10, 10 },
2517 20, 40, 30, 10, 40, 40, 80, 80,
2526 { 2, -2, -2, 0, 1, -2 },
2527 -7, 7, -5, -1, -2, -4, 15, 20,
2537 const player_race mimic_info[] =
2545 { 0, 0, 0, 0, 0, 0 },
2546 0, 0, 0, 0, 0, 10, 0, 0,
2560 { 5, 3, 2, 3, 4, -6 },
2561 -5, 18, 20, -2, 3, 10, 40, 20,
2575 { 20, 20, 20, 20, 20, 20 },
2576 20, 20, 25, -2, 3, 10, 70, 40,
2590 { 4, 4, 1, 1, 2, 3 },
2591 6, 12, 8, 6, 2, 12, 30, 20,
2603 * @brief 歌、剣術、呪術領域情報テーブル
2605 const magic_type technic_info[NUM_TECHNIC][32] =
2728 * Zangband uses this array instead of the spell flags table, as there
2729 * are 5 realms of magic, each with 4 spellbooks and 8 spells per book -- TY
2731 const u32b fake_spell_flags[4]=
2740 * 職業毎に選択可能な第一領域魔法テーブル
2742 const s32b realm_choices1[MAX_CLASS] =
2744 (CH_NONE), /* Warrior */
2745 (CH_LIFE | CH_SORCERY | CH_NATURE |
2746 CH_CHAOS | CH_DEATH | CH_TRUMP |
2747 CH_ARCANE | CH_ENCHANT | CH_DAEMON |
2748 CH_CRUSADE), /* Mage */
2749 (CH_LIFE | CH_DEATH | CH_DAEMON |
2750 CH_CRUSADE), /* Priest */
2751 (CH_SORCERY | CH_DEATH | CH_TRUMP |
2752 CH_ARCANE | CH_ENCHANT), /* Rogue */
2753 (CH_NATURE), /* Ranger */
2754 (CH_CRUSADE | CH_DEATH), /* Paladin */
2755 (CH_ARCANE), /* Warrior-Mage */
2756 (CH_CHAOS | CH_DAEMON), /* Chaos-Warrior */
2757 (CH_LIFE | CH_NATURE | CH_DEATH |
2758 CH_ENCHANT), /* Monk */
2759 (CH_NONE), /* Mindcrafter */
2760 (CH_LIFE | CH_SORCERY | CH_NATURE |
2761 CH_CHAOS | CH_DEATH | CH_TRUMP |
2762 CH_ARCANE | CH_ENCHANT | CH_DAEMON |
2763 CH_CRUSADE | CH_HEX), /* High-Mage */
2764 (CH_ARCANE), /* Tourist */
2765 (CH_NONE), /* Imitator */
2766 (CH_TRUMP), /* Beastmaster */
2767 (CH_NONE), /* Sorcerer */
2768 (CH_NONE), /* Archer */
2769 (CH_NONE), /* Magic eater */
2770 (CH_MUSIC), /* Bard */
2771 (CH_NONE), /* Red Mage */
2772 (CH_HISSATSU), /* Samurai */
2773 (CH_LIFE | CH_NATURE | CH_DEATH |
2774 CH_ENCHANT | CH_CRUSADE), /* ForceTrainer */
2775 (CH_NONE), /* Blue Mage */
2776 (CH_NONE), /* Cavalry */
2777 (CH_NONE), /* Berserker */
2778 (CH_NONE), /* Weaponsmith */
2779 (CH_NONE), /* Mirror-master */
2780 (CH_NONE), /* Ninja */
2781 (CH_NONE), /* Sniper */
2785 * 職業毎に選択可能な第二領域魔法テーブル
2787 const s32b realm_choices2[MAX_CLASS] =
2789 (CH_NONE), /* Warrior */
2790 (CH_LIFE | CH_SORCERY | CH_NATURE |
2791 CH_CHAOS | CH_DEATH | CH_TRUMP |
2792 CH_ARCANE | CH_ENCHANT | CH_DAEMON |
2793 CH_CRUSADE), /* Mage */
2794 (CH_LIFE | CH_SORCERY | CH_NATURE |
2795 CH_CHAOS | CH_DEATH | CH_TRUMP |
2796 CH_ARCANE | CH_ENCHANT | CH_DAEMON |
2797 CH_CRUSADE), /* Priest */
2798 (CH_NONE), /* Rogue */
2799 (CH_SORCERY | CH_CHAOS | CH_DEATH |
2800 CH_TRUMP | CH_ARCANE | CH_DAEMON), /* Ranger */
2801 (CH_NONE), /* Paladin */
2802 (CH_LIFE | CH_NATURE | CH_CHAOS |
2803 CH_DEATH | CH_TRUMP | CH_ARCANE |
2804 CH_SORCERY | CH_ENCHANT | CH_DAEMON |
2805 CH_CRUSADE), /* Warrior-Mage */
2806 (CH_NONE), /* Chaos-Warrior */
2807 (CH_NONE), /* Monk */
2808 (CH_NONE), /* Mindcrafter */
2809 (CH_NONE), /* High-Mage */
2810 (CH_NONE), /* Tourist */
2811 (CH_NONE), /* Imitator */
2812 (CH_NONE), /* Beastmanster */
2813 (CH_NONE), /* Sorcerer */
2814 (CH_NONE), /* Archer */
2815 (CH_NONE), /* Magic eater */
2816 (CH_NONE), /* Bard */
2817 (CH_NONE), /* Red Mage */
2818 (CH_NONE), /* Samurai */
2819 (CH_NONE), /* ForceTrainer */
2820 (CH_NONE), /* Blue Mage */
2821 (CH_NONE), /* Cavalry */
2822 (CH_NONE), /* Berserker */
2823 (CH_NONE), /* Weaponsmith */
2824 (CH_NONE), /* Mirror-master */
2825 (CH_NONE), /* Ninja */
2826 (CH_NONE), /* Sniper */
2834 const concptr realm_names[] =
2860 const concptr E_realm_names[]
2862 const concptr realm_names[]
2892 * Each chest has a certain set of traps, determined by pval
2893 * Each chest has a "pval" from 1 to the chest level (max 55)
2894 * If the "pval" is negative then the trap has been disarmed
2895 * The "pval" of a chest determines the quality of its treasure
2896 * Note that disarming a trap on a chest also removes the lock.
2899 const int chest_traps[64] =
2906 (CHEST_LOSE_CON), /* 5 == best small wooden */
2914 (CHEST_LOSE_STR | CHEST_LOSE_CON),
2915 (CHEST_LOSE_STR | CHEST_LOSE_CON),
2916 (CHEST_SUMMON), /* 15 == best large wooden */
2921 (CHEST_LOSE_STR | CHEST_LOSE_CON),
2926 (CHEST_EXPLODE), /* 25 == best small iron */
2929 (CHEST_POISON | CHEST_LOSE_CON),
2930 (CHEST_LOSE_STR | CHEST_LOSE_CON),
2931 (CHEST_EXPLODE | CHEST_SUMMON),
2933 (CHEST_POISON | CHEST_SUMMON),
2934 (CHEST_E_SUMMON | CHEST_ALARM),
2936 (CHEST_EXPLODE | CHEST_SUMMON), /* 35 == best large iron */
2938 (CHEST_SUMMON | CHEST_ALARM),
2940 (CHEST_EXPLODE | CHEST_SUMMON),
2941 (CHEST_EXPLODE | CHEST_SUMMON),
2942 (CHEST_POISON | CHEST_PARALYZE),
2945 (CHEST_EXPLODE | CHEST_E_SUMMON | CHEST_ALARM),
2946 (CHEST_H_SUMMON), /* 45 == best small steel */
2948 (CHEST_EXPLODE | CHEST_SUMMON | CHEST_ALARM),
2950 (CHEST_RUNES_OF_EVIL),
2951 (CHEST_EXPLODE | CHEST_SUMMON | CHEST_ALARM),
2952 (CHEST_BIRD_STORM | CHEST_ALARM),
2953 (CHEST_H_SUMMON | CHEST_ALARM),
2954 (CHEST_RUNES_OF_EVIL),
2955 (CHEST_H_SUMMON | CHEST_SCATTER | CHEST_ALARM),
2956 (CHEST_RUNES_OF_EVIL | CHEST_EXPLODE), /* 55 == best large steel */
2957 (CHEST_EXPLODE | CHEST_SUMMON),
2958 (CHEST_EXPLODE | CHEST_SUMMON),
2959 (CHEST_EXPLODE | CHEST_SUMMON),
2960 (CHEST_EXPLODE | CHEST_SUMMON),
2961 (CHEST_EXPLODE | CHEST_SUMMON),
2962 (CHEST_EXPLODE | CHEST_SUMMON),
2963 (CHEST_EXPLODE | CHEST_SUMMON),
2964 (CHEST_EXPLODE | CHEST_SUMMON),
2969 * @brief 職業とレベル毎のプレイヤー称号テーブル / Class titles for the player.
2971 * The player gets a new title every five levels, so each class
2972 * needs only ten titles total.
2976 const concptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
2996 "奇術師", /*詐欺師、ペテン師 */
3010 "侍僧", /*教会奉仕者、見習い僧、伴僧、従者 */
3013 "伝道師", /*司祭評議員、修道会会員 */
3015 "聖人", /*大司教、総主教、総大司教 */
3023 /* "ごろつき",*/ /*ごろつき、風来坊、浮浪者 */
3025 "追いはぎ", /*追い剥ぎ、強盗、泥棒 */
3028 "ペテン師", /*博徒、ペテン師、詐欺師 */
3031 "マスター", /* "マスターシーフ", */
3033 "頭領", /*"ギルドマスター",*/
3040 "斥候", /*斥候、見張り、偵察兵 */
3052 "勇士", /*色男、愛人、しゃれ者、勇敢な人 */
3072 "魔術の英雄", /* Mage-Hero */
3076 "知識の守護者", /* "ウィザードロード", */
3118 "精神の支配者", /* "マインドマスター", */
3121 /* High Mage; same as Mage */
3125 "奇術師", /*詐欺師、ペテン師 */
3178 /* Sorcerer; same as Mage */
3182 "奇術師", /*詐欺師、ペテン師 */
3223 "見習い", /*"Apprentice"*/
3224 "作曲家", /*"Songsmith"*/
3226 "コンパニオン", /*"Companion"*/
3227 "心の癒し手", /*"Minstrel"*/
3229 "伝承の紡ぎ手", /*"Loreweaver"*/
3230 "詩神の申し子", /*"Muse"*/
3231 "夢紡ぎ", /*"Dreamweaver"*/
3232 "マスター", /*"Master Harper"*/
3235 /* Red Mage; same as Warrior-Mage */
3243 "魔術の英雄", /* Mage-Hero */
3247 "知識の守護者", /* "ウィザードロード", */
3264 /* ForceTrainer; same as Monk(?) */
3278 /* Blue Mage; same as Mage */
3282 "奇術師", /*詐欺師、ペテン師 */
3378 const concptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
3520 /* High Mage; same as Mage */
3620 "Apprentice", /*"Apprentice"*/
3621 "Songsmith", /*"Songsmith"*/
3623 "Companion", /*"Companion"*/
3624 "Minstrel", /*"Minstrel"*/
3625 "Harper", /*"Harper"*/
3626 "Loreweaver", /*"Loreweaver"*/
3628 "Dreamweaver", /*"Dreamweaver"*/
3629 "Master Harper", /*"Master Harper"*/
3777 * level, smana, %fail, manedam, %manefail, use_stat, name
3779 const monster_power monster_powers[MAX_MONSPELLS] =
3782 { 1, 1, 10, 0, 15, A_CON, "叫ぶ"},
3783 { 10, 4, 35, 89, 40, A_INT, "何か"},
3784 { 40, 35, 85, 0, 40, A_INT, "魔力消去"},
3785 { 35, 30, 80, 800, 70, A_STR, "ロケット"},
3786 { 5, 1, 20, 18, 15, A_DEX, "射撃"},
3787 { 10, 4, 35, 89, 40, A_INT, "何か"},
3788 { 10, 4, 35, 89, 40, A_INT, "何か"},
3789 { 10, 4, 35, 89, 40, A_INT, "何か"},
3790 { 20, 15, 55, 1600, 95, A_CON, "酸のブレス"},
3791 { 20, 15, 55, 1600, 95, A_CON, "電撃のブレス"},
3792 { 20, 15, 55, 1600, 95, A_CON, "炎のブレス"},
3793 { 20, 15, 55, 1600, 95, A_CON, "冷気のブレス"},
3794 { 20, 15, 55, 800, 95, A_CON, "毒のブレス"},
3795 { 20, 15, 70, 550, 95, A_CON, "地獄のブレス"},
3796 { 20, 16, 70, 400, 95, A_CON, "閃光のブレス"},
3797 { 20, 16, 70, 400, 95, A_CON, "暗黒のブレス"},
3798 { 20, 20, 70, 450, 95, A_CON, "混乱のブレス"},
3799 { 20, 20, 70, 450, 95, A_CON, "轟音のブレス"},
3800 { 20, 20, 70, 600, 95, A_CON, "カオスのブレス"},
3801 { 20, 16, 70, 500, 95, A_CON, "劣化のブレス"},
3802 { 30, 25, 80, 250, 95, A_CON, "因果混乱のブレス"},
3803 { 35, 18, 80, 150, 95, A_CON, "時間逆転のブレス"},
3804 { 30, 25, 80, 200, 95, A_CON, "遅鈍のブレス"},
3805 { 30, 28, 90, 200, 95, A_CON, "重力のブレス"},
3806 { 20, 15, 70, 500, 95, A_CON, "破片のブレス"},
3807 { 35, 15, 80, 150, 95, A_CON, "プラズマのブレス"},
3808 { 30, 18, 70, 200, 95, A_CON, "フォースのブレス"},
3809 { 30, 28, 80, 250, 95, A_CON, "魔力のブレス"},
3810 { 25, 20, 95, 320, 80, A_INT, "放射能球"},
3811 { 25, 15, 70, 800, 95, A_CON, "放射性廃棄物のブレス"},
3812 { 30, 32, 85, 400, 80, A_INT, "純ログルス"},
3813 { 35, 40, 95, 150, 95, A_CON, "分解のブレス"},
3814 { 18, 13, 55, 630, 80, A_INT, "アシッド・ボール"},
3815 { 14, 10, 45, 316, 60, A_INT, "サンダー・ボール"},
3816 { 20, 14, 60, 720, 80, A_INT, "ファイア・ボール"},
3817 { 15, 11, 50, 320, 60, A_INT, "アイス・ボール"},
3818 { 5, 3, 40, 48, 20, A_INT, "悪臭雲"},
3819 { 25, 18, 70, 350, 80, A_INT, "地獄球"},
3820 { 30, 22, 75, 350, 80, A_INT, "ウォーター・ボール"},
3821 { 44, 45, 85, 550, 95, A_INT, "魔力の嵐"},
3822 { 40, 42, 90, 550, 95, A_INT, "暗黒の嵐"},
3823 { 10, 5, 50, 0, 25, A_INT, "魔力吸収"},
3824 { 25, 10, 60, 0, 30, A_INT, "精神攻撃"},
3825 { 30, 14, 65, 0, 30, A_INT, "脳攻撃"},
3826 { 3, 1, 25, 24, 20, A_INT, "軽傷"},
3827 { 12, 2, 35, 64, 25, A_INT, "重傷"},
3828 { 22, 6, 50, 150, 30, A_INT, "致命傷"},
3829 { 32, 10, 70, 225, 35, A_INT, "秘孔を突く"},
3830 { 13, 7, 40, 178, 40, A_INT, "アシッド・ボルト"},
3831 { 10, 5, 35, 130, 35, A_INT, "サンダー・ボルト"},
3832 { 15, 9, 50, 210, 45, A_INT, "ファイア・ボルト"},
3833 { 12, 6, 35, 162, 40, A_INT, "アイス・ボルト"},
3834 { 40, 42, 90, 550, 95, A_INT, "スター・バースト"},
3835 { 25, 17, 60, 255, 60, A_INT, "地獄の矢"},
3836 { 25, 20, 65, 250, 60, A_INT, "ウォーター・ボルト"},
3837 { 25, 24, 90, 400, 80, A_INT, "魔力の矢"},
3838 { 25, 20, 80, 216, 60, A_INT, "プラズマ・ボルト"},
3839 { 25, 16, 60, 186, 60, A_INT, "極寒の矢"},
3840 { 3, 1, 25, 12, 20, A_INT, "マジック・ミサイル"},
3841 { 5, 3, 35, 0, 20, A_INT, "恐慌"},
3842 { 10, 5, 40, 0, 20, A_INT, "盲目"},
3843 { 10, 5, 40, 0, 20, A_INT, "パニック・モンスター"},
3844 { 10, 5, 40, 0, 20, A_INT, "スロウ・モンスター"},
3845 { 10, 5, 40, 0, 20, A_INT, "スリープ・モンスター"},
3846 { 20, 10, 70, 0, 40, A_INT, "スピード"},
3847 { 45, 120, 95, 0, 60, A_INT, "破滅の手"},
3848 { 20, 15, 70, 0, 20, A_WIS, "体力回復"},
3849 { 45, 65, 80, 0, 60, A_INT, "無傷の球"},
3850 { 5, 1, 30, 0, 20, A_INT, "ショート・テレポート"},
3851 { 15, 8, 40, 0, 30, A_INT, "テレポート"},
3852 { 40, 999, 99, 0, 80, A_INT, "ザ・ワールド"},
3853 { 1, 0, 0, 0, 15, A_INT, "何か"},
3854 { 15, 8, 50, 0, 30, A_INT, "引きよせる"},
3855 { 20, 13, 80, 0, 30, A_INT, "テレポート・アウェイ"},
3856 { 30, 40, 95, 0, 40, A_INT, "テレポート・レベル"},
3857 { 35, 30, 80, 350, 70, A_INT, "光の剣"},
3858 { 5, 1, 20, 0, 15, A_INT, "暗闇"},
3859 { 5, 1, 20, 0, 15, A_DEX, "トラップ創造"},
3860 { 15, 3, 40, 0, 30, A_INT, "記憶喪失"},
3861 { 30, 30, 70, 0, 40, A_INT, "死者復活"},
3862 { 40, 70, 85, 0, 45, A_INT, "援軍を呼ぶ"},
3863 { 45, 90, 90, 0, 50, A_INT, "サイバーデーモンの召喚"},
3864 { 25, 20, 65, 0, 30, A_INT, "モンスターの召喚"},
3865 { 35, 30, 75, 0, 40, A_INT, "複数のモンスターの召喚"},
3866 { 25, 25, 65, 0, 25, A_INT, "アリの召喚"},
3867 { 25, 20, 60, 0, 25, A_INT, "蜘蛛の召喚"},
3868 { 35, 26, 75, 0, 40, A_INT, "ハウンドの召喚"},
3869 { 30, 23, 70, 0, 35, A_INT, "ヒドラの召喚"},
3870 { 40, 50, 85, 0, 40, A_INT, "天使の召喚"},
3871 { 35, 50, 80, 0, 35, A_INT, "デーモンの召喚"},
3872 { 30, 30, 75, 0, 35, A_INT, "アンデッドの召喚"},
3873 { 39, 70, 80, 0, 40, A_INT, "ドラゴンの召喚"},
3874 { 43, 85, 85, 0, 45, A_INT, "上級アンデッドの召喚"},
3875 { 46, 90, 85, 0, 45, A_INT, "古代ドラゴンの召喚"},
3876 { 48, 120, 90, 0, 50, A_INT, "アンバーの王族の召喚"},
3877 { 50, 150, 95, 0, 50, A_INT, "ユニークモンスターの召喚"},
3879 { 1, 1, 10, 0, 15, A_CON, "shriek"},
3880 { 10, 4, 35, 89, 40, A_INT, "something"},
3881 { 40, 35, 85, 0, 40, A_INT, "dispel-magic"},
3882 { 35, 30, 80, 800, 70, A_STR, "rocket"},
3883 { 2, 1, 15, 10, 15, A_DEX, "arrow"},
3884 { 5, 2, 20, 18, 20, A_DEX, "arrows"},
3885 { 12, 3, 25, 30, 25, A_DEX, "missile"},
3886 { 16, 4, 30, 42, 30, A_DEX, "missiles"},
3887 { 20, 15, 55, 1600, 95, A_CON, "breath acid"},
3888 { 20, 15, 55, 1600, 95, A_CON, "breath lightning"},
3889 { 20, 15, 55, 1600, 95, A_CON, "breath fire"},
3890 { 20, 15, 55, 1600, 95, A_CON, "breath cold"},
3891 { 20, 15, 55, 800, 95, A_CON, "breath poison"},
3892 { 20, 15, 70, 550, 95, A_CON, "breath nether"},
3893 { 20, 16, 70, 400, 95, A_CON, "breath light"},
3894 { 20, 16, 70, 400, 95, A_CON, "breath dark"},
3895 { 20, 20, 70, 450, 95, A_CON, "breath confusion"},
3896 { 20, 20, 70, 450, 95, A_CON, "breath sound"},
3897 { 20, 20, 70, 600, 95, A_CON, "breath chaos"},
3898 { 20, 16, 70, 500, 95, A_CON, "breath disenchantment"},
3899 { 30, 25, 80, 250, 95, A_CON, "breath nexus"},
3900 { 35, 18, 80, 150, 95, A_CON, "breath time"},
3901 { 30, 25, 80, 200, 95, A_CON, "breath inertia"},
3902 { 30, 28, 90, 200, 95, A_CON, "breath gravity"},
3903 { 20, 15, 70, 500, 95, A_CON, "breath shards"},
3904 { 35, 15, 80, 150, 95, A_CON, "breath plasma"},
3905 { 30, 18, 70, 200, 95, A_CON, "breath force"},
3906 { 30, 28, 80, 250, 95, A_CON, "breath mana"},
3907 { 25, 20, 95, 320, 80, A_INT, "nuke ball"},
3908 { 25, 15, 70, 800, 95, A_CON, "breath nuke"},
3909 { 30, 32, 85, 400, 80, A_INT, "raw Logrus"},
3910 { 35, 40, 95, 150, 95, A_CON, "breath disintegrate"},
3911 { 18, 13, 55, 630, 80, A_INT, "acid ball"},
3912 { 14, 10, 45, 316, 60, A_INT, "lightning ball"},
3913 { 20, 14, 60, 720, 80, A_INT, "fire ball"},
3914 { 15, 11, 50, 320, 60, A_INT, "frost ball"},
3915 { 5, 3, 40, 48, 20, A_INT, "stinking cloud"},
3916 { 25, 18, 70, 350, 80, A_INT, "nether ball"},
3917 { 30, 22, 75, 350, 80, A_INT, "water ball"},
3918 { 44, 45, 85, 550, 95, A_INT, "mana storm"},
3919 { 40, 42, 90, 550, 95, A_INT, "darkness storm"},
3920 { 10, 5, 50, 0, 25, A_INT, "drain mana"},
3921 { 25, 10, 60, 0, 30, A_INT, "mind blast"},
3922 { 30, 14, 65, 0, 30, A_INT, "brain smash"},
3923 { 3, 1, 25, 24, 20, A_INT, "cause light wounds"},
3924 { 12, 2, 35, 64, 25, A_INT, "cause serious wounds"},
3925 { 22, 6, 50, 150, 30, A_INT, "cause critical wounds"},
3926 { 32, 10, 70, 225, 35, A_INT, "cause mortal wounds"},
3927 { 13, 7, 40, 178, 40, A_INT, "acid bolt"},
3928 { 10, 5, 35, 130, 35, A_INT, "lightning bolt"},
3929 { 15, 9, 50, 210, 45, A_INT, "fire bolt"},
3930 { 12, 6, 35, 162, 40, A_INT, "frost bolt"},
3931 { 40, 42, 90, 550, 95, A_INT, "starburst"},
3932 { 25, 17, 60, 255, 60, A_INT, "nether bolt"},
3933 { 25, 20, 65, 250, 60, A_INT, "water bolt"},
3934 { 25, 24, 90, 400, 80, A_INT, "mana bolt"},
3935 { 25, 20, 80, 216, 60, A_INT, "plasma bolt"},
3936 { 25, 16, 60, 186, 60, A_INT, "ice bolt"},
3937 { 3, 1, 25, 12, 20, A_INT, "magic missile"},
3938 { 5, 3, 35, 0, 20, A_INT, "scare"},
3939 { 10, 5, 40, 0, 20, A_INT, "blind"},
3940 { 10, 5, 40, 0, 20, A_INT, "confuse"},
3941 { 10, 5, 40, 0, 20, A_INT, "slow"},
3942 { 10, 5, 40, 0, 20, A_INT, "sleep"},
3943 { 20, 10, 70, 0, 40, A_INT, "speed"},
3944 { 45, 120, 95, 0, 60, A_INT, "the Hand of Doom"},
3945 { 20, 15, 70, 0, 20, A_WIS, "heal-self"},
3946 { 45, 65, 80, 0, 60, A_INT, "make invulnerable"},
3947 { 5, 1, 30, 0, 20, A_INT, "blink-self"},
3948 { 15, 8, 40, 0, 30, A_INT, "teleport-self"},
3949 { 40, 999, 99, 0, 80, A_INT, "The world"},
3950 { 1, 0, 0, 0, 15, A_INT, "something"},
3951 { 15, 8, 50, 0, 30, A_INT, "teleport to"},
3952 { 20, 13, 80, 0, 30, A_INT, "teleport away"},
3953 { 30, 40, 95, 0, 40, A_INT, "teleport level"},
3954 { 35, 30, 80, 350, 70, A_INT, "psycho-spear"},
3955 { 5, 1, 20, 0, 15, A_INT, "create darkness"},
3956 { 5, 1, 20, 0, 15, A_DEX, "create traps"},
3957 { 15, 3, 40, 0, 30, A_INT, "cause amnesia"},
3958 { 30, 30, 70, 0, 40, A_INT, "raise dead"},
3959 { 40, 70, 85, 0, 45, A_INT, "summon aid"},
3960 { 45, 90, 90, 0, 50, A_INT, "summon Cyberdemons"},
3961 { 25, 20, 65, 0, 30, A_INT, "summon a monster"},
3962 { 35, 30, 75, 0, 40, A_INT, "summon monsters"},
3963 { 25, 25, 65, 0, 25, A_INT, "summon ants"},
3964 { 25, 20, 60, 0, 25, A_INT, "summon spiders"},
3965 { 35, 26, 75, 0, 40, A_INT, "summon hounds"},
3966 { 30, 23, 70, 0, 35, A_INT, "summon hydras"},
3967 { 40, 50, 85, 0, 40, A_INT, "summon an angel"},
3968 { 35, 50, 80, 0, 35, A_INT, "summon a daemon"},
3969 { 30, 30, 75, 0, 35, A_INT, "summon an undead"},
3970 { 39, 70, 80, 0, 40, A_INT, "summon a dragon"},
3971 { 43, 85, 85, 0, 45, A_INT, "summon Greater Undead"},
3972 { 46, 90, 85, 0, 45, A_INT, "summon Ancient Dragon"},
3973 { 48, 120, 90, 0, 50, A_INT, "summon Lords of Amber"},
3974 { 50, 150, 95, 0, 50, A_INT, "summon Unique Monsters"},
3980 * @brief モンスター魔法名テーブル
3982 const concptr monster_powers_short[MAX_MONSPELLS] = {
3985 "叫ぶ", "何か", "魔力消去", "ロケット", "射撃", "何か", "何か", "何か",
3986 "酸", "電撃", "火炎", "冷気", "毒", "地獄", "閃光", "暗黒",
3987 "混乱", "轟音", "カオス", "劣化", "因果混乱", "時間逆転", "遅鈍", "重力",
3988 "破片", "プラズマ", "フォース", "魔力", "放射能球", "放射性廃棄物", "純ログルス", "分解",
3990 "酸", "電撃", "火炎", "冷気", "悪臭雲", "地獄球", "ウォーター", "魔力の嵐",
3991 "暗黒の嵐", "魔力吸収", "精神攻撃", "脳攻撃", "軽傷", "重傷", "致命傷", "秘孔を突く",
3992 "酸", "電撃", "火炎", "冷気", "スターバースト", "地獄の矢", "ウォーター", "魔力の矢",
3993 "プラズマ", "極寒", "マジックミサイル", "恐慌", "盲目", "混乱", "減速", "睡眠",
3995 "加速", "破滅の手", "体力回復", "無傷の球", "ショートテレポート", "テレポート", "時を止める", "何か",
3996 "引きよせる", "テレポートアウェイ", "テレポートレベル", "光の剣", "暗闇", "トラップ創造", "記憶喪失", "死者復活",
3997 "援軍", "サイバーデーモン", "モンスター", "複数のモンスター", "蟻", "蜘蛛", "ハウンド", "ヒドラ",
3998 "天使", "悪魔", "アンデッド", "ドラゴン", "上級アンデッド", "古代ドラゴン", "アンバーの王族", "ユニーク"
4002 "Shriek", "Something", "Dispel-magic", "Rocket", "Arrow", "Arrows", "Missile", "Missiles",
4003 "Acid", "Lightning", "Fire", "Cold", "Poison", "Nether", "Light", "Dark",
4004 "Confusion", "Sound", "Chaos", "Disenchantment", "Nexus", "Time", "Inertia", "Gravity",
4005 "Shards", "Plasma", "Force", "Mana", "Nuke", "Nuke", "Logrus", "Disintergrate",
4007 "Acid", "Lightning", "Fire", "Frost", "Stinking Cloud", "Nether", "Water", "Mana storm",
4008 "Darkness storm", "Drain mana", "Mind blast", "Brain smash", "Cause Light Wound", "Cause Serious Wound", "Cause Critical Wound", "Cause Mortal Wound",
4009 "Acid", "Lightning", "Fire", "Frost", "Starburst", "Nether", "Water", "Mana",
4010 "Plasm", "Ice", "Magic missile", "Scare", "Blind", "Confuse", "Slow", "Sleep",
4012 "Speed", "Hand of doom", "Heal-self", "Invulnerable", "Blink", "Teleport", "The world", "Something",
4013 "Teleport to", "Teleport away", "Teleport level", "Psycho-spear", "Create darkness", "Create traps", "Amnesia", "Raise dead",
4014 "Aid", "Cyberdeamons", "A monster", "Monsters", "Ants", "Spiders", "Hounds", "Hydras",
4015 "Angel", "Daemon", "Undead", "Dragon", "Greater Undead", "Ancient Dragon", "Lords of Amber", "Unique monsters"
4022 * @brief 色名称テーブル / Hack -- the "basic" color names (see "TERM_xxx")
4024 const concptr color_names[16] =
4066 * @brief 能力値テーブル / Abbreviations of healthy stats
4068 const concptr stat_names[6] =
4071 "腕力 :", "知能 :", "賢さ :", "器用 :", "耐久 :", "魅力 :"
4073 "STR : ", "INT : ", "WIS : ", "DEX : ", "CON : ", "CHR : "
4079 * @brief 能力値テーブル(能力低下時) / Abbreviations of damaged stats
4081 const concptr stat_names_reduced[6] =
4084 "腕力x:", "知能x:", "賢さx:", "器用x:", "耐久x:", "魅力x:"
4086 "Str : ", "Int : ", "Wis : ", "Dex : ", "Con : ", "Chr : "
4093 * @brief サブウィンドウ名称テーブル
4096 * Certain "screens" always use the main screen, including News, Birth,
4097 * Dungeon, Tomb-stone, High-scores, Macros, Colors, Visuals, Options.
4099 * Later, special flags may allow sub-windows to "steal" stuff from the
4100 * main window, including File dump (help), File dump (artifacts, uniques),
4101 * Character screen, Small scale map, Previous Messages, Store screen, etc.
4103 * The "ctrl-i" (tab) command flips the "Display inven/equip" and "Display
4104 * equip/inven" flags for all windows.
4106 * The "ctrl-g" command (or pseudo-command) should perhaps grab a snapshot
4107 * of the main screen into any interested windows.
4110 const concptr window_flag_desc[32] =
4112 _("持ち物/装備一覧", "Display inven/equip"),
4113 _("装備/持ち物一覧", "Display equip/inven"),
4114 _("呪文一覧", "Display spell list"),
4115 _("キャラクタ情報", "Display character"),
4116 _("視界内のモンスター表示", "Display monsters in sight"),
4118 _("メッセージ", "Display messages"),
4119 _("ダンジョン全体図", "Display overhead view"),
4120 _("モンスターの思い出", "Display monster recall"),
4121 _("アイテムの詳細", "Display object recall"),
4122 _("自分の周囲を表示", "Display dungeon view"),
4123 _("記念撮影", "Display snap-shot"),
4126 _("ボーグ・メッセージ", "Display borg messages"),
4127 _("ボーグ・ステータス", "Display borg status"),
4149 * @brief マーシャルアーツ打撃テーブル
4151 const martial_arts ma_blows[MAX_MA] =
4154 { "%sを殴った。", 1, 0, 1, 5, 0 },
4155 { "%sを蹴った。", 2, 0, 1, 7, 0 },
4156 { "%sに正拳突きをくらわした。", 3, 0, 1, 9, 0 },
4157 { "%sに膝蹴りをくらわした。", 5, 5, 2, 4, MA_KNEE },
4158 { "%sに肘打ちをくらわした。", 7, 5, 1, 12, 0 },
4159 { "%sに体当りした。", 9, 10, 2, 6, 0 },
4160 { "%sを蹴った。", 11, 10, 3, 6, MA_SLOW },
4161 { "%sにアッパーをくらわした。", 13, 12, 5, 5, 6 },
4162 { "%sに二段蹴りをくらわした。", 16, 15, 5, 6, 8 },
4163 { "%sに猫爪撃をくらわした。", 20, 20, 5, 8, 0 },
4164 { "%sに跳空脚をくらわした。", 24, 25, 6, 8, 10 },
4165 { "%sに鷲爪襲をくらわした。", 28, 25, 7, 9, 0 },
4166 { "%sに回し蹴りをくらわした。", 32, 30, 8, 10, 10 },
4167 { "%sに鉄拳撃をくらわした。", 35, 35, 8, 11, 10 },
4168 { "%sに飛空脚をくらわした。", 39, 35, 8, 12, 12 },
4169 { "%sに昇龍拳をくらわした。", 43, 35, 9, 12, 16 },
4170 { "%sに石破天驚拳をくらわした。", 48, 40, 10, 13, 18 },
4172 { "You punch %s.", 1, 0, 1, 4, 0 },
4173 { "You kick %s.", 2, 0, 1, 6, 0 },
4174 { "You strike %s.", 3, 0, 1, 7, 0 },
4175 { "You hit %s with your knee.", 5, 5, 2, 3, MA_KNEE },
4176 { "You hit %s with your elbow.", 7, 5, 1, 8, 0 },
4177 { "You butt %s.", 9, 10, 2, 5, 0 },
4178 { "You kick %s.", 11, 10, 3, 4, MA_SLOW },
4179 { "You uppercut %s.", 13, 12, 4, 4, 6 },
4180 { "You double-kick %s.", 16, 15, 5, 4, 8 },
4181 { "You hit %s with a Cat's Claw.", 20, 20, 5, 5, 0 },
4182 { "You hit %s with a jump kick.", 25, 25, 5, 6, 10 },
4183 { "You hit %s with an Eagle's Claw.", 29, 25, 6, 6, 0 },
4184 { "You hit %s with a circle kick.", 33, 30, 6, 8, 10 },
4185 { "You hit %s with an Iron Fist.", 37, 35, 8, 8, 10 },
4186 { "You hit %s with a flying kick.", 41, 35, 8, 10, 12 },
4187 { "You hit %s with a Dragon Fist.", 45, 35, 10, 10, 16 },
4188 { "You hit %s with a Crushing Blow.", 48, 35, 10, 12, 18 },
4194 * @brief 修行僧のターンダメージ算出テーブル
4196 const int monk_ave_damage[PY_MAX_LEVEL+1][3] =
4252 * @brief アイテムの価値記述テーブル /
4253 * Table of game-generated inscriptions (indexed by the defines in defines.h). -- RG
4255 const concptr game_inscriptions[] =
4257 NULL, /* FEEL_NONE */
4259 "壊れている", /* FEEL_BROKEN */
4260 "恐ろしい", /* FEEL_TERRIBLE */
4261 "無価値", /* FEEL_WORTHLESS */
4262 "呪われている", /* FEEL_CURSED */
4263 "上質以上", /* FEEL_UNCURSED */
4264 "並", /* FEEL_AVERAGE */
4265 "上質", /* FEEL_GOOD */
4266 "高級品", /* FEEL_EXCELLENT */
4267 "特別製", /* FEEL_SPECIAL */
4269 "broken", /* FEEL_BROKEN */
4270 "terrible", /* FEEL_TERRIBLE */
4271 "worthless", /* FEEL_WORTHLESS */
4272 "cursed", /* FEEL_CURSED */
4273 "uncursed", /* FEEL_UNCURSED */
4274 "average", /* FEEL_AVERAGE */
4275 "good", /* FEEL_GOOD */
4276 "excellent", /* FEEL_EXCELLENT */
4277 "special", /* FEEL_SPECIAL */
4283 * @brief 修行僧の構え能力テーブル
4285 const kamae kamae_shurui[MAX_KAMAE] =
4293 {"Genbu", 25, "(Black Tortoise) "},
4294 {"Byakko", 30, "(White Tiger) "},
4295 {"Seiryuu", 35, "(Blue Dragon) "},
4296 {"Suzaku", 40, "(Red Phoenix) "},
4301 * @brief 剣術家の構え能力テーブル
4303 const kamae kata_shurui[MAX_KATA] =
4319 * @brief 技能値到達表記テーブル
4321 const concptr exp_level_str[5]=
4323 {"[初心者]", "[入門者]", "[熟練者]", "[エキスパート]", "[達人]"};
4325 {"[Unskilled]", "[Beginner]", "[Skilled]", "[Expert]", "[Master]"};
4329 * @brief 幻覚時の打撃記述テーブル / Weird melee attack types when hallucinating
4332 const concptr silly_attacks[MAX_SILLY_ATTACK] =
4335 "があなたの回りを3回回ってワンと言った。",
4343 "に「神の国」発言の撤回を求められた。",
4354 "はあなたの100の秘密について熱く語った。",
4360 "はあなたのスパイクをブロックした。",
4362 "は昇龍拳コマンドの入力に失敗した。",
4366 "に二週間以内でビデオを人に見せないと死ぬ呪いをかけられた。",
4368 "はスーパーウルトラギャラクティカマグナムを放った。",
4370 "にジェットストリームアタックをかけられた。",
4371 "はあなたに卍固めをかけて「1、2、3、ダーッ!」と叫んだ。",
4372 "は「いくじなし!ばかばかばか!」といって駆け出した。",
4373 "が「ごらん、ルーベンスの絵だよ」と言って静かに目を閉じた。",
4374 "は言った。「変愚蛮怒、絶賛公開中!」",
4378 * @brief 幻覚時の打撃記述テーブル(フォーマットつき) / Weird melee attack types when hallucinating (%s for strfmt())
4380 const concptr silly_attacks2[MAX_SILLY_ATTACK] =
4383 "%sの回りを3回回ってワンと言った。",
4391 "%sに「神の国」発言の撤回を求めた。",
4402 "%sの100の秘密について熱く語った。",
4414 "%sに二週間以内でビデオを人に見せないと死ぬ呪いをかけた。",
4416 "%sにスーパーウルトラギャラクティカマグナムを放った。",
4418 "%sにジェットストリームアタックをかけた。",
4419 "%sに卍固めをかけて「1、2、3、ダーッ!」と叫んだ。",
4420 "「いくじなし!ばかばかばか!」といって駆け出した。",
4421 "「ごらん、ルーベンスの絵だよ」と言って静かに目を閉じた。",
4422 "言った。「変愚蛮怒、絶賛公開中!」",
4425 const concptr silly_attacks[MAX_SILLY_ATTACK] =
4435 "passes the gas on",
4436 "makes obscene gestures at",
4466 * @brief シンボル解説テーブル /
4467 * The table of "symbol info" -- each entry is a string of the form "X:desc" where "X" is the trigger, and "desc" is the "info".
4469 const concptr ident_info[] =
4482 "*:財宝を含んだ鉱脈または球形の怪物",
4487 "/:竿状武器(アックス/パイク/等)",
4565 "}:飛び道具(弓/クロスボウ/スリング)",
4569 "!:A potion (or oil)",
4570 "\":An amulet (or necklace)",
4571 "#:A wall (or secret door) / a plant / a gas",
4572 "$:Treasure (gold or gems)",
4573 "%:A vein (magma or quartz)",
4578 "*:A vein with treasure or a ball monster",
4580 ",:Food (or mushroom patch)",
4581 "-:A wand (or rod)",
4583 "/:A polearm (Axe/Pike/etc)",
4584 "0:Entrance to Museum",
4585 "1:Entrance to General Store",
4586 "2:Entrance to Armory",
4587 "3:Entrance to Weaponsmith",
4588 "4:Entrance to Temple",
4589 "5:Entrance to Alchemy shop",
4590 "6:Entrance to Magic store",
4591 "7:Entrance to Black Market",
4592 "8:Entrance to your home",
4593 "9:Entrance to the bookstore",
4595 ";:A glyph of warding / an explosive rune",
4596 "<:An up staircase",
4598 ">:A down staircase",
4604 "D:Ancient Dragon/Wyrm",
4613 "M:Multi-Headed Reptile",
4617 "Q:Quylthulg (Pulsing Flesh Mound)",
4618 "R:Reptile/Amphibian",
4619 "S:Spider/Scorpion/Tick",
4623 "W:Wight/Wraith/etc",
4628 "\\:A hafted weapon (mace/whip/etc)",
4632 "`:A figurine or statue",
4640 "h:Hobbit/Elf/Dwarf",
4644 "l:Aquatic monster",
4659 "{:A missile (arrow/bolt/shot)",
4660 "|:An edged weapon (sword/dagger/etc)",
4661 "}:A launcher (bow/crossbow/sling)",
4662 "~:Fluid terrain (or miscellaneous item)",
4669 * @brief モンスターの打撃効力テーブル /
4670 * The table of monsters' blow effects
4672 const mbe_info_type mbe_info[] =
4674 { 0, 0, }, /* None */
4675 { 60, GF_MISSILE, }, /* HURT */
4676 { 5, GF_POIS, }, /* POISON */
4677 { 20, GF_DISENCHANT, }, /* UN_BONUS */
4678 { 15, GF_MISSILE, }, /* UN_POWER */ /* ToDo: Apply the correct effects */
4679 { 5, GF_MISSILE, }, /* EAT_GOLD */
4680 { 5, GF_MISSILE, }, /* EAT_ITEM */
4681 { 5, GF_MISSILE, }, /* EAT_FOOD */
4682 { 5, GF_MISSILE, }, /* EAT_LITE */
4683 { 0, GF_ACID, }, /* ACID */
4684 { 10, GF_ELEC, }, /* ELEC */
4685 { 10, GF_FIRE, }, /* FIRE */
4686 { 10, GF_COLD, }, /* COLD */
4687 { 2, GF_MISSILE, }, /* BLIND */
4688 { 10, GF_CONFUSION, }, /* CONFUSE */
4689 { 10, GF_MISSILE, }, /* TERRIFY */
4690 { 2, GF_MISSILE, }, /* PARALYZE */
4691 { 0, GF_MISSILE, }, /* LOSE_STR */
4692 { 0, GF_MISSILE, }, /* LOSE_INT */
4693 { 0, GF_MISSILE, }, /* LOSE_WIS */
4694 { 0, GF_MISSILE, }, /* LOSE_DEX */
4695 { 0, GF_MISSILE, }, /* LOSE_CON */
4696 { 0, GF_MISSILE, }, /* LOSE_CHR */
4697 { 2, GF_MISSILE, }, /* LOSE_ALL */
4698 { 60, GF_ROCKET, }, /* SHATTER */
4699 { 5, GF_MISSILE, }, /* EXP_10 */
4700 { 5, GF_MISSILE, }, /* EXP_20 */
4701 { 5, GF_MISSILE, }, /* EXP_40 */
4702 { 5, GF_MISSILE, }, /* EXP_80 */
4703 { 5, GF_POIS, }, /* DISEASE */
4704 { 5, GF_TIME, }, /* TIME */
4705 { 5, GF_MISSILE, }, /* EXP_VAMP */
4706 { 5, GF_MANA, }, /* DR_MANA */
4707 { 60, GF_MISSILE, }, /* SUPERHURT */
4712 * @brief 地形状態フラグテーブル /
4713 * The table of features' actions
4715 const byte feature_action_flags[FF_FLAG_MAX] =
4727 FAF_CRASH_GLASS, /* BASH */
4729 FAF_DESTROY, /* DISARM */
4731 FAF_DESTROY | FAF_CRASH_GLASS, /* TUNNEL */
4732 0, /* MAY_HAVE_GOLD */
4762 FAF_DESTROY | FAF_CRASH_GLASS, /* HURT_ROCK */
4794 0, /* HURT_BWATER */
4817 FAF_DESTROY | FAF_NO_DROP | FAF_CRASH_GLASS, /* HURT_DISI */
4818 0, /* QUEST_ENTER */
4824 0, /* MINOR_GLYPH */
4830 0, /* TELEPORTABLE */
4837 * @brief 装備耐性に準じたブレス効果の選択テーブル /
4838 * Define flags, effect type, name for dragon breath activation
4840 const dragonbreath_type dragonbreath_info[] = {
4841 { TR_RES_ACID, GF_ACID, _("酸", "acid") },
4842 { TR_RES_ELEC, GF_ELEC, _("電撃", "lightning") },
4843 { TR_RES_FIRE, GF_FIRE, _("火炎", "fire") },
4844 { TR_RES_COLD, GF_COLD, _("冷気", "cold") },
4845 { TR_RES_POIS, GF_POIS, _("毒", "poison") },
4846 { TR_RES_LITE, GF_LITE, _("閃光", "light") },
4847 { TR_RES_DARK, GF_DARK, _("暗黒", "dark") },
4848 { TR_RES_SHARDS, GF_SHARDS, _("破片", "shard") },
4849 { TR_RES_CONF, GF_CONFUSION, _("混乱", "confusion") },
4850 { TR_RES_SOUND, GF_SOUND, _("轟音", "sound") },
4851 { TR_RES_NEXUS, GF_NEXUS, _("因果混乱", "nexus") },
4852 { TR_RES_NETHER, GF_NETHER, _("地獄", "nether") },
4853 { TR_RES_CHAOS, GF_CHAOS, _("カオス", "chaos") },
4854 { TR_RES_DISEN, GF_DISENCHANT, _("劣化", "disenchant") },