#include "angband.h"
+#include "core.h"
#include "util.h"
+#include "bldg.h"
#include "quest.h"
#include "player-move.h"
#include "player-status.h"
#include "player-race.h"
#include "player-class.h"
#include "player-personality.h"
+#include "player-damage.h"
#include "floor.h"
#include "floor-events.h"
#include "feature.h"
#include "spells-status.h"
#include "object.h"
#include "object-hook.h"
+#include "object-ego.h"
#include "monster.h"
#include "monster-status.h"
#include "monsterrace-hook.h"
#include "mutation.h"
#include "patron.h"
#include "realm-hex.h"
+#include "realm-song.h"
#include "cmd-pet.h"
#include "cmd-spell.h"
#include "dungeon.h"
#include "cmd-dump.h"
#include "melee.h"
#include "world.h"
+#include "view-mainwindow.h"
+#include "files.h"
+#include "cmd-magiceat.h"
/*!
* @brief 能力値テーブル / Abbreviations of healthy stats
};
+/* ELDRITCH_HORRORによるsanity blast処理に関するメッセージの最大数 / Number of entries in the sanity-blast descriptions */
+#define MAX_SAN_HORROR 20 /*!< 恐ろしい対象の形容数(正常時) */
+#define MAX_SAN_FUNNY 22 /*!< 恐ろしい対象の形容数(幻覚時) */
+#define MAX_SAN_COMMENT 5 /*!< 恐ろしい対象を見たときの絶叫メッセージ数(幻覚時) */
+
/*!
* @var horror_desc
* @brief ELDRITCH HORROR効果時のモンスターの形容メッセージ(通常時)
};
+/*!
+ * 知力/賢さによるレベル毎の習得可能魔法数テーブル
+ * Stat Table (INT/WIS) -- Number of half-spells per level
+ */
+const byte adj_mag_study[] =
+{
+ 0 /* 3 */,
+ 0 /* 4 */,
+ 0 /* 5 */,
+ 0 /* 6 */,
+ 0 /* 7 */,
+ 1 /* 8 */,
+ 1 /* 9 */,
+ 1 /* 10 */,
+ 1 /* 11 */,
+ 2 /* 12 */,
+ 2 /* 13 */,
+ 2 /* 14 */,
+ 2 /* 15 */,
+ 2 /* 16 */,
+ 2 /* 17 */,
+ 2 /* 18/00-18/09 */,
+ 2 /* 18/10-18/19 */,
+ 2 /* 18/20-18/29 */,
+ 2 /* 18/30-18/39 */,
+ 2 /* 18/40-18/49 */,
+ 3 /* 18/50-18/59 */,
+ 3 /* 18/60-18/69 */,
+ 3 /* 18/70-18/79 */,
+ 3 /* 18/80-18/89 */,
+ 4 /* 18/90-18/99 */,
+ 4 /* 18/100-18/109 */,
+ 4 /* 18/110-18/119 */,
+ 5 /* 18/120-18/129 */,
+ 5 /* 18/130-18/139 */,
+ 5 /* 18/140-18/149 */,
+ 5 /* 18/150-18/159 */,
+ 5 /* 18/160-18/169 */,
+ 5 /* 18/170-18/179 */,
+ 5 /* 18/180-18/189 */,
+ 5 /* 18/190-18/199 */,
+ 5 /* 18/200-18/209 */,
+ 6 /* 18/210-18/219 */,
+ 6 /* 18/220+ */
+};
+
+
+/*!
+ * 知力/賢さによるMP修正テーブル
+ * Stat Table (INT/WIS) -- extra 1/4-mana-points per level
+ */
+const byte adj_mag_mana[] =
+{
+ 0 /* 3 */,
+ 0 /* 4 */,
+ 0 /* 5 */,
+ 0 /* 6 */,
+ 0 /* 7 */,
+ 1 /* 8 */,
+ 2 /* 9 */,
+ 3 /* 10 */,
+ 4 /* 11 */,
+ 5 /* 12 */,
+ 5 /* 13 */,
+ 6 /* 14 */,
+ 7 /* 15 */,
+ 8 /* 16 */,
+ 9 /* 17 */,
+ 10 /* 18/00-18/09 */,
+ 11 /* 18/10-18/19 */,
+ 11 /* 18/20-18/29 */,
+ 12 /* 18/30-18/39 */,
+ 12 /* 18/40-18/49 */,
+ 13 /* 18/50-18/59 */,
+ 14 /* 18/60-18/69 */,
+ 15 /* 18/70-18/79 */,
+ 16 /* 18/80-18/89 */,
+ 17 /* 18/90-18/99 */,
+ 18 /* 18/100-18/109 */,
+ 19 /* 18/110-18/119 */,
+ 20 /* 18/120-18/129 */,
+ 21 /* 18/130-18/139 */,
+ 22 /* 18/140-18/149 */,
+ 23 /* 18/150-18/159 */,
+ 24 /* 18/160-18/169 */,
+ 25 /* 18/170-18/179 */,
+ 26 /* 18/180-18/189 */,
+ 27 /* 18/190-18/199 */,
+ 28 /* 18/200-18/209 */,
+ 29 /* 18/210-18/219 */,
+ 30 /* 18/220+ */
+};
+
+
+/*!
+ * 知力/賢さによる最低魔法失敗率テーブル
+ * Stat Table (INT/WIS) -- Minimum failure rate (percentage)
+ */
+const byte adj_mag_fail[] =
+{
+ 99 /* 3 */,
+ 99 /* 4 */,
+ 99 /* 5 */,
+ 99 /* 6 */,
+ 99 /* 7 */,
+ 50 /* 8 */,
+ 30 /* 9 */,
+ 20 /* 10 */,
+ 15 /* 11 */,
+ 12 /* 12 */,
+ 11 /* 13 */,
+ 10 /* 14 */,
+ 9 /* 15 */,
+ 8 /* 16 */,
+ 7 /* 17 */,
+ 6 /* 18/00-18/09 */,
+ 6 /* 18/10-18/19 */,
+ 5 /* 18/20-18/29 */,
+ 5 /* 18/30-18/39 */,
+ 5 /* 18/40-18/49 */,
+ 4 /* 18/50-18/59 */,
+ 4 /* 18/60-18/69 */,
+ 4 /* 18/70-18/79 */,
+ 4 /* 18/80-18/89 */,
+ 3 /* 18/90-18/99 */,
+ 3 /* 18/100-18/109 */,
+ 2 /* 18/110-18/119 */,
+ 2 /* 18/120-18/129 */,
+ 2 /* 18/130-18/139 */,
+ 2 /* 18/140-18/149 */,
+ 1 /* 18/150-18/159 */,
+ 1 /* 18/160-18/169 */,
+ 1 /* 18/170-18/179 */,
+ 1 /* 18/180-18/189 */,
+ 1 /* 18/190-18/199 */,
+ 0 /* 18/200-18/209 */,
+ 0 /* 18/210-18/219 */,
+ 0 /* 18/220+ */
+};
+
+
+/*!
+ * 知力/賢さによる魔法失敗率修正テーブル
+ * Stat Table (INT/WIS) -- Various things
+ */
+const byte adj_mag_stat[] =
+{
+ 0 /* 3 */,
+ 0 /* 4 */,
+ 0 /* 5 */,
+ 0 /* 6 */,
+ 0 /* 7 */,
+ 1 /* 8 */,
+ 1 /* 9 */,
+ 1 /* 10 */,
+ 1 /* 11 */,
+ 1 /* 12 */,
+ 1 /* 13 */,
+ 1 /* 14 */,
+ 2 /* 15 */,
+ 2 /* 16 */,
+ 2 /* 17 */,
+ 3 /* 18/00-18/09 */,
+ 3 /* 18/10-18/19 */,
+ 3 /* 18/20-18/29 */,
+ 3 /* 18/30-18/39 */,
+ 3 /* 18/40-18/49 */,
+ 4 /* 18/50-18/59 */,
+ 4 /* 18/60-18/69 */,
+ 5 /* 18/70-18/79 */,
+ 6 /* 18/80-18/89 */,
+ 7 /* 18/90-18/99 */,
+ 8 /* 18/100-18/109 */,
+ 9 /* 18/110-18/119 */,
+ 10 /* 18/120-18/129 */,
+ 11 /* 18/130-18/139 */,
+ 12 /* 18/140-18/149 */,
+ 13 /* 18/150-18/159 */,
+ 14 /* 18/160-18/169 */,
+ 15 /* 18/170-18/179 */,
+ 16 /* 18/180-18/189 */,
+ 17 /* 18/190-18/199 */,
+ 18 /* 18/200-18/209 */,
+ 19 /* 18/210-18/219 */,
+ 20 /* 18/220+ */
+};
+
+
+/*!
+ * 魅力による店での取引修正テーブル
+ * Stat Table (CHR) -- payment percentages
+ */
+const byte adj_chr_gold[] =
+{
+ 130 /* 3 */,
+ 125 /* 4 */,
+ 122 /* 5 */,
+ 120 /* 6 */,
+ 118 /* 7 */,
+ 116 /* 8 */,
+ 114 /* 9 */,
+ 112 /* 10 */,
+ 110 /* 11 */,
+ 108 /* 12 */,
+ 106 /* 13 */,
+ 104 /* 14 */,
+ 103 /* 15 */,
+ 102 /* 16 */,
+ 101 /* 17 */,
+ 100 /* 18/00-18/09 */,
+ 99 /* 18/10-18/19 */,
+ 98 /* 18/20-18/29 */,
+ 97 /* 18/30-18/39 */,
+ 96 /* 18/40-18/49 */,
+ 95 /* 18/50-18/59 */,
+ 94 /* 18/60-18/69 */,
+ 93 /* 18/70-18/79 */,
+ 92 /* 18/80-18/89 */,
+ 91 /* 18/90-18/99 */,
+ 90 /* 18/100-18/109 */,
+ 89 /* 18/110-18/119 */,
+ 88 /* 18/120-18/129 */,
+ 87 /* 18/130-18/139 */,
+ 86 /* 18/140-18/149 */,
+ 85 /* 18/150-18/159 */,
+ 84 /* 18/160-18/169 */,
+ 83 /* 18/170-18/179 */,
+ 82 /* 18/180-18/189 */,
+ 81 /* 18/190-18/199 */,
+ 80 /* 18/200-18/209 */,
+ 79 /* 18/210-18/219 */,
+ 78 /* 18/220+ */
+};
+
+
+/*!
+ * 知力による魔道具使用修正テーブル
+ * Stat Table (INT) -- Magic devices
+ */
+const byte adj_int_dev[] =
+{
+ 0 /* 3 */,
+ 0 /* 4 */,
+ 0 /* 5 */,
+ 0 /* 6 */,
+ 0 /* 7 */,
+ 1 /* 8 */,
+ 1 /* 9 */,
+ 1 /* 10 */,
+ 1 /* 11 */,
+ 1 /* 12 */,
+ 1 /* 13 */,
+ 1 /* 14 */,
+ 2 /* 15 */,
+ 2 /* 16 */,
+ 2 /* 17 */,
+ 3 /* 18/00-18/09 */,
+ 3 /* 18/10-18/19 */,
+ 4 /* 18/20-18/29 */,
+ 4 /* 18/30-18/39 */,
+ 5 /* 18/40-18/49 */,
+ 5 /* 18/50-18/59 */,
+ 6 /* 18/60-18/69 */,
+ 6 /* 18/70-18/79 */,
+ 7 /* 18/80-18/89 */,
+ 7 /* 18/90-18/99 */,
+ 8 /* 18/100-18/109 */,
+ 9 /* 18/110-18/119 */,
+ 10 /* 18/120-18/129 */,
+ 11 /* 18/130-18/139 */,
+ 12 /* 18/140-18/149 */,
+ 13 /* 18/150-18/159 */,
+ 14 /* 18/160-18/169 */,
+ 15 /* 18/170-18/179 */,
+ 16 /* 18/180-18/189 */,
+ 17 /* 18/190-18/199 */,
+ 18 /* 18/200-18/209 */,
+ 19 /* 18/210-18/219 */,
+ 20 /* 18/220+ */
+};
+
+
+/*!
+ * 賢さによる魔法防御修正テーブル
+ * Stat Table (WIS) -- Saving throw
+ */
+const byte adj_wis_sav[] =
+{
+ 0 /* 3 */,
+ 0 /* 4 */,
+ 0 /* 5 */,
+ 0 /* 6 */,
+ 0 /* 7 */,
+ 1 /* 8 */,
+ 1 /* 9 */,
+ 1 /* 10 */,
+ 1 /* 11 */,
+ 1 /* 12 */,
+ 1 /* 13 */,
+ 1 /* 14 */,
+ 2 /* 15 */,
+ 2 /* 16 */,
+ 2 /* 17 */,
+ 3 /* 18/00-18/09 */,
+ 3 /* 18/10-18/19 */,
+ 3 /* 18/20-18/29 */,
+ 3 /* 18/30-18/39 */,
+ 3 /* 18/40-18/49 */,
+ 4 /* 18/50-18/59 */,
+ 4 /* 18/60-18/69 */,
+ 5 /* 18/70-18/79 */,
+ 5 /* 18/80-18/89 */,
+ 6 /* 18/90-18/99 */,
+ 7 /* 18/100-18/109 */,
+ 8 /* 18/110-18/119 */,
+ 9 /* 18/120-18/129 */,
+ 10 /* 18/130-18/139 */,
+ 11 /* 18/140-18/149 */,
+ 12 /* 18/150-18/159 */,
+ 13 /* 18/160-18/169 */,
+ 14 /* 18/170-18/179 */,
+ 15 /* 18/180-18/189 */,
+ 16 /* 18/190-18/199 */,
+ 17 /* 18/200-18/209 */,
+ 18 /* 18/210-18/219 */,
+ 19 /* 18/220+ */
+};
+
+
+/*!
+ * 器用さによるトラップ解除修正テーブル
+ * Stat Table (DEX) -- disarming
+ */
+const byte adj_dex_dis[] =
+{
+ 0 /* 3 */,
+ 0 /* 4 */,
+ 0 /* 5 */,
+ 0 /* 6 */,
+ 0 /* 7 */,
+ 0 /* 8 */,
+ 0 /* 9 */,
+ 0 /* 10 */,
+ 0 /* 11 */,
+ 0 /* 12 */,
+ 1 /* 13 */,
+ 1 /* 14 */,
+ 1 /* 15 */,
+ 2 /* 16 */,
+ 2 /* 17 */,
+ 4 /* 18/00-18/09 */,
+ 4 /* 18/10-18/19 */,
+ 4 /* 18/20-18/29 */,
+ 4 /* 18/30-18/39 */,
+ 5 /* 18/40-18/49 */,
+ 5 /* 18/50-18/59 */,
+ 5 /* 18/60-18/69 */,
+ 6 /* 18/70-18/79 */,
+ 6 /* 18/80-18/89 */,
+ 7 /* 18/90-18/99 */,
+ 8 /* 18/100-18/109 */,
+ 8 /* 18/110-18/119 */,
+ 8 /* 18/120-18/129 */,
+ 8 /* 18/130-18/139 */,
+ 8 /* 18/140-18/149 */,
+ 9 /* 18/150-18/159 */,
+ 9 /* 18/160-18/169 */,
+ 9 /* 18/170-18/179 */,
+ 9 /* 18/180-18/189 */,
+ 9 /* 18/190-18/199 */,
+ 10 /* 18/200-18/209 */,
+ 10 /* 18/210-18/219 */,
+ 10 /* 18/220+ */
+};
+
+
+/*!
+ * 知力によるトラップ解除修正テーブル
+ * Stat Table (INT) -- disarming
+ */
+const byte adj_int_dis[] =
+{
+ 0 /* 3 */,
+ 0 /* 4 */,
+ 0 /* 5 */,
+ 0 /* 6 */,
+ 0 /* 7 */,
+ 1 /* 8 */,
+ 1 /* 9 */,
+ 1 /* 10 */,
+ 1 /* 11 */,
+ 1 /* 12 */,
+ 1 /* 13 */,
+ 1 /* 14 */,
+ 2 /* 15 */,
+ 2 /* 16 */,
+ 2 /* 17 */,
+ 3 /* 18/00-18/09 */,
+ 3 /* 18/10-18/19 */,
+ 3 /* 18/20-18/29 */,
+ 4 /* 18/30-18/39 */,
+ 4 /* 18/40-18/49 */,
+ 5 /* 18/50-18/59 */,
+ 6 /* 18/60-18/69 */,
+ 7 /* 18/70-18/79 */,
+ 8 /* 18/80-18/89 */,
+ 9 /* 18/90-18/99 */,
+ 10 /* 18/100-18/109 */,
+ 10 /* 18/110-18/119 */,
+ 11 /* 18/120-18/129 */,
+ 12 /* 18/130-18/139 */,
+ 13 /* 18/140-18/149 */,
+ 14 /* 18/150-18/159 */,
+ 15 /* 18/160-18/169 */,
+ 16 /* 18/170-18/179 */,
+ 17 /* 18/180-18/189 */,
+ 18 /* 18/190-18/199 */,
+ 19 /* 18/200-18/209 */,
+ 19 /* 18/210-18/219 */,
+ 20 /* 18/220+ */
+};
+
+
+/*!
+ * 器用さによるAC修正テーブル
+ * Stat Table (DEX) -- bonus to ac (plus 128)
+ */
+const byte adj_dex_ta[] =
+{
+ 128 + -4 /* 3 */,
+ 128 + -3 /* 4 */,
+ 128 + -2 /* 5 */,
+ 128 + -1 /* 6 */,
+ 128 + 0 /* 7 */,
+ 128 + 0 /* 8 */,
+ 128 + 0 /* 9 */,
+ 128 + 0 /* 10 */,
+ 128 + 0 /* 11 */,
+ 128 + 0 /* 12 */,
+ 128 + 0 /* 13 */,
+ 128 + 0 /* 14 */,
+ 128 + 1 /* 15 */,
+ 128 + 1 /* 16 */,
+ 128 + 1 /* 17 */,
+ 128 + 2 /* 18/00-18/09 */,
+ 128 + 2 /* 18/10-18/19 */,
+ 128 + 2 /* 18/20-18/29 */,
+ 128 + 2 /* 18/30-18/39 */,
+ 128 + 2 /* 18/40-18/49 */,
+ 128 + 3 /* 18/50-18/59 */,
+ 128 + 3 /* 18/60-18/69 */,
+ 128 + 3 /* 18/70-18/79 */,
+ 128 + 4 /* 18/80-18/89 */,
+ 128 + 5 /* 18/90-18/99 */,
+ 128 + 6 /* 18/100-18/109 */,
+ 128 + 7 /* 18/110-18/119 */,
+ 128 + 8 /* 18/120-18/129 */,
+ 128 + 9 /* 18/130-18/139 */,
+ 128 + 9 /* 18/140-18/149 */,
+ 128 + 10 /* 18/150-18/159 */,
+ 128 + 11 /* 18/160-18/169 */,
+ 128 + 12 /* 18/170-18/179 */,
+ 128 + 13 /* 18/180-18/189 */,
+ 128 + 14 /* 18/190-18/199 */,
+ 128 + 15 /* 18/200-18/209 */,
+ 128 + 15 /* 18/210-18/219 */,
+ 128 + 16 /* 18/220+ */
+};
+
+
+/*!
+ * 腕力によるダメージ修正テーブル
+ * Stat Table (STR) -- bonus to dam (plus 128)
+ */
+const byte adj_str_td[] =
+{
+ 128 + -2 /* 3 */,
+ 128 + -2 /* 4 */,
+ 128 + -1 /* 5 */,
+ 128 + -1 /* 6 */,
+ 128 + 0 /* 7 */,
+ 128 + 0 /* 8 */,
+ 128 + 0 /* 9 */,
+ 128 + 0 /* 10 */,
+ 128 + 0 /* 11 */,
+ 128 + 0 /* 12 */,
+ 128 + 0 /* 13 */,
+ 128 + 0 /* 14 */,
+ 128 + 0 /* 15 */,
+ 128 + 1 /* 16 */,
+ 128 + 2 /* 17 */,
+ 128 + 2 /* 18/00-18/09 */,
+ 128 + 2 /* 18/10-18/19 */,
+ 128 + 3 /* 18/20-18/29 */,
+ 128 + 3 /* 18/30-18/39 */,
+ 128 + 3 /* 18/40-18/49 */,
+ 128 + 3 /* 18/50-18/59 */,
+ 128 + 3 /* 18/60-18/69 */,
+ 128 + 4 /* 18/70-18/79 */,
+ 128 + 5 /* 18/80-18/89 */,
+ 128 + 5 /* 18/90-18/99 */,
+ 128 + 6 /* 18/100-18/109 */,
+ 128 + 7 /* 18/110-18/119 */,
+ 128 + 8 /* 18/120-18/129 */,
+ 128 + 9 /* 18/130-18/139 */,
+ 128 + 10 /* 18/140-18/149 */,
+ 128 + 11 /* 18/150-18/159 */,
+ 128 + 12 /* 18/160-18/169 */,
+ 128 + 13 /* 18/170-18/179 */,
+ 128 + 14 /* 18/180-18/189 */,
+ 128 + 15 /* 18/190-18/199 */,
+ 128 + 16 /* 18/200-18/209 */,
+ 128 + 18 /* 18/210-18/219 */,
+ 128 + 20 /* 18/220+ */
+};
+
+
+/*!
+ * 器用度による命中修正テーブル
+ * Stat Table (DEX) -- bonus to hit (plus 128)
+ */
+const byte adj_dex_th[] =
+{
+ 128 + -3 /* 3 */,
+ 128 + -2 /* 4 */,
+ 128 + -2 /* 5 */,
+ 128 + -1 /* 6 */,
+ 128 + -1 /* 7 */,
+ 128 + 0 /* 8 */,
+ 128 + 0 /* 9 */,
+ 128 + 0 /* 10 */,
+ 128 + 0 /* 11 */,
+ 128 + 0 /* 12 */,
+ 128 + 0 /* 13 */,
+ 128 + 0 /* 14 */,
+ 128 + 0 /* 15 */,
+ 128 + 1 /* 16 */,
+ 128 + 2 /* 17 */,
+ 128 + 3 /* 18/00-18/09 */,
+ 128 + 3 /* 18/10-18/19 */,
+ 128 + 3 /* 18/20-18/29 */,
+ 128 + 3 /* 18/30-18/39 */,
+ 128 + 3 /* 18/40-18/49 */,
+ 128 + 4 /* 18/50-18/59 */,
+ 128 + 4 /* 18/60-18/69 */,
+ 128 + 4 /* 18/70-18/79 */,
+ 128 + 4 /* 18/80-18/89 */,
+ 128 + 5 /* 18/90-18/99 */,
+ 128 + 6 /* 18/100-18/109 */,
+ 128 + 7 /* 18/110-18/119 */,
+ 128 + 8 /* 18/120-18/129 */,
+ 128 + 9 /* 18/130-18/139 */,
+ 128 + 9 /* 18/140-18/149 */,
+ 128 + 10 /* 18/150-18/159 */,
+ 128 + 11 /* 18/160-18/169 */,
+ 128 + 12 /* 18/170-18/179 */,
+ 128 + 13 /* 18/180-18/189 */,
+ 128 + 14 /* 18/190-18/199 */,
+ 128 + 15 /* 18/200-18/209 */,
+ 128 + 15 /* 18/210-18/219 */,
+ 128 + 16 /* 18/220+ */
+};
+
+
+/*!
+ * 腕力による命中修正テーブル
+ * Stat Table (STR) -- bonus to hit (plus 128)
+ */
+const byte adj_str_th[] =
+{
+ 128 + -3 /* 3 */,
+ 128 + -2 /* 4 */,
+ 128 + -1 /* 5 */,
+ 128 + -1 /* 6 */,
+ 128 + 0 /* 7 */,
+ 128 + 0 /* 8 */,
+ 128 + 0 /* 9 */,
+ 128 + 0 /* 10 */,
+ 128 + 0 /* 11 */,
+ 128 + 0 /* 12 */,
+ 128 + 0 /* 13 */,
+ 128 + 0 /* 14 */,
+ 128 + 0 /* 15 */,
+ 128 + 0 /* 16 */,
+ 128 + 0 /* 17 */,
+ 128 + 1 /* 18/00-18/09 */,
+ 128 + 1 /* 18/10-18/19 */,
+ 128 + 1 /* 18/20-18/29 */,
+ 128 + 1 /* 18/30-18/39 */,
+ 128 + 1 /* 18/40-18/49 */,
+ 128 + 1 /* 18/50-18/59 */,
+ 128 + 1 /* 18/60-18/69 */,
+ 128 + 2 /* 18/70-18/79 */,
+ 128 + 3 /* 18/80-18/89 */,
+ 128 + 4 /* 18/90-18/99 */,
+ 128 + 5 /* 18/100-18/109 */,
+ 128 + 6 /* 18/110-18/119 */,
+ 128 + 7 /* 18/120-18/129 */,
+ 128 + 8 /* 18/130-18/139 */,
+ 128 + 9 /* 18/140-18/149 */,
+ 128 + 10 /* 18/150-18/159 */,
+ 128 + 11 /* 18/160-18/169 */,
+ 128 + 12 /* 18/170-18/179 */,
+ 128 + 13 /* 18/180-18/189 */,
+ 128 + 14 /* 18/190-18/199 */,
+ 128 + 15 /* 18/200-18/209 */,
+ 128 + 15 /* 18/210-18/219 */,
+ 128 + 16 /* 18/220+ */
+};
+
+
+/*!
+ * 腕力による基本所持重量値テーブル
+ * Stat Table (STR) -- weight limit in deca-pounds
+ */
+const byte adj_str_wgt[] =
+{
+ 10 /* 3 */,
+ 11 /* 4 */,
+ 12 /* 5 */,
+ 13 /* 6 */,
+ 14 /* 7 */,
+ 15 /* 8 */,
+ 16 /* 9 */,
+ 17 /* 10 */,
+ 18 /* 11 */,
+ 19 /* 12 */,
+ 20 /* 13 */,
+ 21 /* 14 */,
+ 22 /* 15 */,
+ 23 /* 16 */,
+ 24 /* 17 */,
+ 25 /* 18/00-18/09 */,
+ 26 /* 18/10-18/19 */,
+ 27 /* 18/20-18/29 */,
+ 28 /* 18/30-18/39 */,
+ 29 /* 18/40-18/49 */,
+ 30 /* 18/50-18/59 */,
+ 31 /* 18/60-18/69 */,
+ 31 /* 18/70-18/79 */,
+ 32 /* 18/80-18/89 */,
+ 32 /* 18/90-18/99 */,
+ 33 /* 18/100-18/109 */,
+ 33 /* 18/110-18/119 */,
+ 34 /* 18/120-18/129 */,
+ 34 /* 18/130-18/139 */,
+ 35 /* 18/140-18/149 */,
+ 35 /* 18/150-18/159 */,
+ 36 /* 18/160-18/169 */,
+ 36 /* 18/170-18/179 */,
+ 37 /* 18/180-18/189 */,
+ 37 /* 18/190-18/199 */,
+ 38 /* 18/200-18/209 */,
+ 38 /* 18/210-18/219 */,
+ 39 /* 18/220+ */
+};
+
+
+/*!
+ * 腕力による武器重量限界値テーブル
+ * Stat Table (STR) -- weapon weight limit in pounds
+ */
+const byte adj_str_hold[] =
+{
+ 4 /* 3 */,
+ 5 /* 4 */,
+ 6 /* 5 */,
+ 7 /* 6 */,
+ 8 /* 7 */,
+ 9 /* 8 */,
+ 10 /* 9 */,
+ 11 /* 10 */,
+ 12 /* 11 */,
+ 13 /* 12 */,
+ 14 /* 13 */,
+ 15 /* 14 */,
+ 16 /* 15 */,
+ 17 /* 16 */,
+ 18 /* 17 */,
+ 19 /* 18/00-18/09 */,
+ 20 /* 18/10-18/19 */,
+ 21 /* 18/20-18/29 */,
+ 22 /* 18/30-18/39 */,
+ 23 /* 18/40-18/49 */,
+ 24 /* 18/50-18/59 */,
+ 25 /* 18/60-18/69 */,
+ 26 /* 18/70-18/79 */,
+ 27 /* 18/80-18/89 */,
+ 28 /* 18/90-18/99 */,
+ 30 /* 18/100-18/109 */,
+ 31 /* 18/110-18/119 */,
+ 32 /* 18/120-18/129 */,
+ 33 /* 18/130-18/139 */,
+ 34 /* 18/140-18/149 */,
+ 35 /* 18/150-18/159 */,
+ 37 /* 18/160-18/169 */,
+ 40 /* 18/170-18/179 */,
+ 44 /* 18/180-18/189 */,
+ 48 /* 18/190-18/199 */,
+ 50 /* 18/200-18/209 */,
+ 50 /* 18/210-18/219 */,
+ 50 /* 18/220+ */
+};
+
+
+/*!
+ * 腕力による採掘能力修正値テーブル
+ * Stat Table (STR) -- digging value
+ */
+const byte adj_str_dig[] =
+{
+ 0 /* 3 */,
+ 0 /* 4 */,
+ 1 /* 5 */,
+ 2 /* 6 */,
+ 3 /* 7 */,
+ 4 /* 8 */,
+ 4 /* 9 */,
+ 5 /* 10 */,
+ 5 /* 11 */,
+ 6 /* 12 */,
+ 6 /* 13 */,
+ 7 /* 14 */,
+ 7 /* 15 */,
+ 8 /* 16 */,
+ 8 /* 17 */,
+ 9 /* 18/00-18/09 */,
+ 10 /* 18/10-18/19 */,
+ 12 /* 18/20-18/29 */,
+ 15 /* 18/30-18/39 */,
+ 20 /* 18/40-18/49 */,
+ 25 /* 18/50-18/59 */,
+ 30 /* 18/60-18/69 */,
+ 35 /* 18/70-18/79 */,
+ 40 /* 18/80-18/89 */,
+ 45 /* 18/90-18/99 */,
+ 50 /* 18/100-18/109 */,
+ 55 /* 18/110-18/119 */,
+ 60 /* 18/120-18/129 */,
+ 65 /* 18/130-18/139 */,
+ 70 /* 18/140-18/149 */,
+ 75 /* 18/150-18/159 */,
+ 80 /* 18/160-18/169 */,
+ 85 /* 18/170-18/179 */,
+ 90 /* 18/180-18/189 */,
+ 95 /* 18/190-18/199 */,
+ 100 /* 18/200-18/209 */,
+ 100 /* 18/210-18/219 */,
+ 100 /* 18/220+ */
+};
+
+/*!
+ * 器用さによる盗難防止&体当たり成功判定修正テーブル
+ * Stat Table (DEX) -- chance of avoiding "theft" and "falling"
+ */
+const byte adj_dex_safe[] =
+{
+ 0 /* 3 */,
+ 1 /* 4 */,
+ 2 /* 5 */,
+ 3 /* 6 */,
+ 4 /* 7 */,
+ 5 /* 8 */,
+ 5 /* 9 */,
+ 6 /* 10 */,
+ 6 /* 11 */,
+ 7 /* 12 */,
+ 7 /* 13 */,
+ 8 /* 14 */,
+ 8 /* 15 */,
+ 9 /* 16 */,
+ 9 /* 17 */,
+ 10 /* 18/00-18/09 */,
+ 10 /* 18/10-18/19 */,
+ 15 /* 18/20-18/29 */,
+ 15 /* 18/30-18/39 */,
+ 20 /* 18/40-18/49 */,
+ 25 /* 18/50-18/59 */,
+ 30 /* 18/60-18/69 */,
+ 35 /* 18/70-18/79 */,
+ 40 /* 18/80-18/89 */,
+ 45 /* 18/90-18/99 */,
+ 50 /* 18/100-18/109 */,
+ 60 /* 18/110-18/119 */,
+ 70 /* 18/120-18/129 */,
+ 80 /* 18/130-18/139 */,
+ 90 /* 18/140-18/149 */,
+ 100 /* 18/150-18/159 */,
+ 100 /* 18/160-18/169 */,
+ 100 /* 18/170-18/179 */,
+ 100 /* 18/180-18/189 */,
+ 100 /* 18/190-18/199 */,
+ 100 /* 18/200-18/209 */,
+ 100 /* 18/210-18/219 */,
+ 100 /* 18/220+ */
+};
+
+
+/*!
+ * 耐久による基本HP自然治癒値テーブル /
+ * Stat Table (CON) -- base regeneration rate
+ */
+const byte adj_con_fix[] =
+{
+ 0 /* 3 */,
+ 0 /* 4 */,
+ 0 /* 5 */,
+ 0 /* 6 */,
+ 0 /* 7 */,
+ 0 /* 8 */,
+ 0 /* 9 */,
+ 0 /* 10 */,
+ 0 /* 11 */,
+ 0 /* 12 */,
+ 0 /* 13 */,
+ 1 /* 14 */,
+ 1 /* 15 */,
+ 1 /* 16 */,
+ 1 /* 17 */,
+ 2 /* 18/00-18/09 */,
+ 2 /* 18/10-18/19 */,
+ 2 /* 18/20-18/29 */,
+ 2 /* 18/30-18/39 */,
+ 2 /* 18/40-18/49 */,
+ 3 /* 18/50-18/59 */,
+ 3 /* 18/60-18/69 */,
+ 3 /* 18/70-18/79 */,
+ 3 /* 18/80-18/89 */,
+ 3 /* 18/90-18/99 */,
+ 4 /* 18/100-18/109 */,
+ 4 /* 18/110-18/119 */,
+ 5 /* 18/120-18/129 */,
+ 6 /* 18/130-18/139 */,
+ 6 /* 18/140-18/149 */,
+ 7 /* 18/150-18/159 */,
+ 7 /* 18/160-18/169 */,
+ 8 /* 18/170-18/179 */,
+ 8 /* 18/180-18/189 */,
+ 8 /* 18/190-18/199 */,
+ 9 /* 18/200-18/209 */,
+ 9 /* 18/210-18/219 */,
+ 9 /* 18/220+ */
+};
+
+
+/*!
+ * 耐久による基本HP自然治癒値テーブル /
+ * Stat Table (CON) -- extra 1/4-hitpoints per level (plus 128)
+ */
+const byte adj_con_mhp[] =
+{
+ 128 + -8 /* 3 */,
+ 128 + -6 /* 4 */,
+ 128 + -4 /* 5 */,
+ 128 + -2 /* 6 */,
+ 128 + -1 /* 7 */,
+ 128 + 0 /* 8 */,
+ 128 + 0 /* 9 */,
+ 128 + 0 /* 10 */,
+ 128 + 0 /* 11 */,
+ 128 + 0 /* 12 */,
+ 128 + 0 /* 13 */,
+ 128 + 1 /* 14 */,
+ 128 + 1 /* 15 */,
+ 128 + 2 /* 16 */,
+ 128 + 3 /* 17 */,
+ 128 + 4 /* 18/00-18/09 */,
+ 128 + 5 /* 18/10-18/19 */,
+ 128 + 6 /* 18/20-18/29 */,
+ 128 + 7 /* 18/30-18/39 */,
+ 128 + 8 /* 18/40-18/49 */,
+ 128 + 9 /* 18/50-18/59 */,
+ 128 + 10 /* 18/60-18/69 */,
+ 128 + 11 /* 18/70-18/79 */,
+ 128 + 12 /* 18/80-18/89 */,
+ 128 + 14 /* 18/90-18/99 */,
+ 128 + 17 /* 18/100-18/109 */,
+ 128 + 20 /* 18/110-18/119 */,
+ 128 + 23 /* 18/120-18/129 */,
+ 128 + 26 /* 18/130-18/139 */,
+ 128 + 29 /* 18/140-18/149 */,
+ 128 + 32 /* 18/150-18/159 */,
+ 128 + 35 /* 18/160-18/169 */,
+ 128 + 38 /* 18/170-18/179 */,
+ 128 + 40 /* 18/180-18/189 */,
+ 128 + 42 /* 18/190-18/199 */,
+ 128 + 44 /* 18/200-18/209 */,
+ 128 + 46 /* 18/210-18/219 */,
+ 128 + 48 /* 18/220+ */
+};
+
+
+/*!
+ * 魅力による魅了能力修正テーブル /
+ * Stat Table (CHR) -- charm
+ */
+const byte adj_chr_chm[] =
+{
+ 0 /* 3 */,
+ 0 /* 4 */,
+ 1 /* 5 */,
+ 2 /* 6 */,
+ 3 /* 7 */,
+ 4 /* 8 */,
+ 4 /* 9 */,
+ 5 /* 10 */,
+ 5 /* 11 */,
+ 6 /* 12 */,
+ 6 /* 13 */,
+ 7 /* 14 */,
+ 7 /* 15 */,
+ 8 /* 16 */,
+ 8 /* 17 */,
+ 9 /* 18/00-18/09 */,
+ 10 /* 18/10-18/19 */,
+ 12 /* 18/20-18/29 */,
+ 15 /* 18/30-18/39 */,
+ 18 /* 18/40-18/49 */,
+ 21 /* 18/50-18/59 */,
+ 24 /* 18/60-18/69 */,
+ 28 /* 18/70-18/79 */,
+ 32 /* 18/80-18/89 */,
+ 36 /* 18/90-18/99 */,
+ 39 /* 18/100-18/109 */,
+ 42 /* 18/110-18/119 */,
+ 45 /* 18/120-18/129 */,
+ 49 /* 18/130-18/139 */,
+ 53 /* 18/140-18/149 */,
+ 57 /* 18/150-18/159 */,
+ 61 /* 18/160-18/169 */,
+ 65 /* 18/170-18/179 */,
+ 69 /* 18/180-18/189 */,
+ 73 /* 18/190-18/199 */,
+ 77 /* 18/200-18/209 */,
+ 81 /* 18/210-18/219 */,
+ 85 /* 18/220+ */
+};
+
+
+/*** Player information ***/
+
+/*
+ * Static player info record
+ */
+player_type p_body;
+
+/*
+ * Pointer to the player info
+ */
+player_type *p_ptr = &p_body;
+
/*
* Return alignment title
*/
{
if (!(empty_hands_status & EMPTY_HAND_RARM))
{
- set_action(ACTION_NONE);
+ set_action(p_ptr, ACTION_NONE);
}
}
/* Unencumbered Monks become faster every 10 levels */
if (!(heavy_armor()))
{
- if (!(prace_is_(RACE_KLACKON) ||
- prace_is_(RACE_SPRITE) ||
+ if (!(PRACE_IS_(p_ptr, RACE_KLACKON) ||
+ PRACE_IS_(p_ptr, RACE_SPRITE) ||
(p_ptr->pseikaku == SEIKAKU_MUNCHKIN)))
new_speed += (p_ptr->lev) / 10;
(!p_ptr->inventory_list[INVEN_LARM].k_idx || p_ptr->hidarite))
{
new_speed += 3;
- if (!(prace_is_(RACE_KLACKON) ||
- prace_is_(RACE_SPRITE) ||
+ if (!(PRACE_IS_(p_ptr, RACE_KLACKON) ||
+ PRACE_IS_(p_ptr, RACE_SPRITE) ||
(p_ptr->pseikaku == SEIKAKU_MUNCHKIN)))
new_speed += (p_ptr->lev) / 10;
p_ptr->skill_stl += (p_ptr->lev) / 10;
if (p_ptr->sh_fire) p_ptr->lite = TRUE;
/* Golems also get an intrinsic AC bonus */
- if (prace_is_(RACE_GOLEM) || prace_is_(RACE_ANDROID))
+ if (PRACE_IS_(p_ptr, RACE_GOLEM) || PRACE_IS_(p_ptr, RACE_ANDROID))
{
p_ptr->to_a += 10 + (p_ptr->lev * 2 / 5);
p_ptr->dis_to_a += 10 + (p_ptr->lev * 2 / 5);
p_ptr->skill_tht += ((cp_ptr->x_thb * p_ptr->lev / 10) + (ap_ptr->a_thb * p_ptr->lev / 50));
- if ((prace_is_(RACE_S_FAIRY)) && (p_ptr->pseikaku != SEIKAKU_SEXY) && (p_ptr->cursed & TRC_AGGRAVATE))
+ if ((PRACE_IS_(p_ptr, RACE_S_FAIRY)) && (p_ptr->pseikaku != SEIKAKU_SEXY) && (p_ptr->cursed & TRC_AGGRAVATE))
{
p_ptr->cursed &= ~(TRC_AGGRAVATE);
p_ptr->skill_stl = MIN(p_ptr->skill_stl - 3, (p_ptr->skill_stl + 2) / 2);
msg_print(_("今の装備はどうも自分にふさわしくない気がする。", "You do not feel comfortable with your weapon."));
if (current_world_ptr->is_loading_now)
{
- chg_virtue(V_FAITH, -1);
+ chg_virtue(p_ptr, V_FAITH, -1);
}
}
else if (has_melee_weapon(INVEN_RARM + i))
msg_print(_("装備が重くてバランスを取れない。", "The weight of your armor disrupts your balance."));
if (current_world_ptr->is_loading_now)
{
- chg_virtue(V_HARMONY, -1);
+ chg_virtue(p_ptr, V_HARMONY, -1);
}
}
else
}
/* max radius is 14 (was 5) without rewriting other code -- */
- /* see current_floor_ptr->grid_array.c:update_lite() and defines.h:LITE_MAX */
if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS && p_ptr->cur_lite > 1)
p_ptr->cur_lite = 1;
p_ptr->old_lite = p_ptr->cur_lite;
if ((p_ptr->cur_lite > 0) && (p_ptr->special_defense & NINJA_S_STEALTH))
- set_superstealth(FALSE);
+ set_superstealth(p_ptr, FALSE);
}
}
msg_print(_("パターンを血で汚してしまった!", "You bleed on the Pattern!"));
msg_print(_("何か恐ろしい事が起こった!", "Something terrible happens!"));
- if (!IS_INVULN()) take_hit(DAMAGE_NOESCAPE, damroll(10, 8), _("パターン損壊", "corrupting the Pattern"), -1);
+ if (!IS_INVULN()) take_hit(p_ptr, DAMAGE_NOESCAPE, damroll(10, 8), _("パターン損壊", "corrupting the Pattern"), -1);
to_ruin = randint1(45) + 35;
while (to_ruin--)
{
int power = 100;
- if (p_ptr->inside_battle || !current_world_ptr->character_dungeon) return;
+ if (p_ptr->phase_out || !current_world_ptr->character_dungeon) return;
if (!necro && m_ptr)
{
r_ptr->r_flags2 |= RF2_ELDRITCH_HORROR;
/* Demon characters are unaffected */
- if (prace_is_(RACE_IMP) || prace_is_(RACE_DEMON) || (mimic_info[p_ptr->mimic_form].MIMIC_FLAGS & MIMIC_IS_DEMON)) return;
+ if (PRACE_IS_(p_ptr, RACE_IMP) || PRACE_IS_(p_ptr, RACE_DEMON) || (mimic_info[p_ptr->mimic_form].MIMIC_FLAGS & MIMIC_IS_DEMON)) return;
if (p_ptr->wizard) return;
/* Undead characters are 50% likely to be unaffected */
- if (prace_is_(RACE_SKELETON) || prace_is_(RACE_ZOMBIE)
- || prace_is_(RACE_VAMPIRE) || prace_is_(RACE_SPECTRE) ||
+ if (PRACE_IS_(p_ptr, RACE_SKELETON) || PRACE_IS_(p_ptr, RACE_ZOMBIE)
+ || PRACE_IS_(p_ptr, RACE_VAMPIRE) || PRACE_IS_(p_ptr, RACE_SPECTRE) ||
(mimic_info[p_ptr->mimic_form].MIMIC_FLAGS & MIMIC_IS_UNDEAD))
{
if (saving_throw(25 + p_ptr->lev)) return;
}
do {
- (void)do_dec_stat(A_INT);
+ (void)do_dec_stat(p_ptr, A_INT);
} while (randint0(100) > p_ptr->skill_sav && one_in_(2));
do {
- (void)do_dec_stat(A_WIS);
+ (void)do_dec_stat(p_ptr, A_WIS);
} while (randint0(100) > p_ptr->skill_sav && one_in_(2));
switch (randint1(21))
/* Brain smash */
if (!p_ptr->resist_conf)
{
- (void)set_confused(p_ptr->confused + randint0(4) + 4);
+ (void)set_confused(p_ptr, p_ptr->confused + randint0(4) + 4);
}
if (!p_ptr->free_act)
{
- (void)set_paralyzed(p_ptr->paralyzed + randint0(4) + 4);
+ (void)set_paralyzed(p_ptr, p_ptr->paralyzed + randint0(4) + 4);
}
if (!p_ptr->resist_chaos)
{
- (void)set_image(p_ptr->image + randint0(250) + 150);
+ (void)set_image(p_ptr, p_ptr->image + randint0(250) + 150);
}
break;
case 17:
case 20:
case 21:
/* Amnesia */
- if (lose_all_info())
+ if (lose_all_info(p_ptr))
msg_print(_("あまりの恐怖に全てのことを忘れてしまった!", "You forget everything in your utmost terror!"));
break;
}
prt("", n + 2, 14);
if (get_check(_("よろしいですか?", "Are you sure? "))) break;
}
- do_inc_stat(choice - 'a');
+ do_inc_stat(p_ptr, choice - 'a');
screen_load();
}
else if (!(p_ptr->max_plv % 2))
- do_inc_stat(randint0(6));
+ do_inc_stat(p_ptr, randint0(6));
}
if (level_mutation)
*/
if (level_reward)
{
- gain_level_reward(0);
+ gain_level_reward(p_ptr, 0);
level_reward = FALSE;
}
creature_ptr->is_dead = FALSE;
/* Hack -- Prevent starvation */
- (void)set_food(PY_FOOD_MAX - 1);
+ (void)set_food(p_ptr, PY_FOOD_MAX - 1);
current_floor_ptr->dun_level = 0;
creature_ptr->inside_arena = FALSE;
- creature_ptr->inside_battle = FALSE;
+ creature_ptr->phase_out = FALSE;
leaving_quest = 0;
creature_ptr->inside_quest = 0;
if (p_ptr->dungeon_idx) creature_ptr->recall_dungeon = p_ptr->dungeon_idx;
" but revived."));
/* Prepare next floor */
- leave_floor();
+ leave_floor(p_ptr->change_floor_mode);
wipe_m_list();
}