2 typedef int COMBAT_OPTION_IDX; // py_attack()用コンバットオプション型定義
5 /*** Monster blow constants ***/
8 * @note モンスターの打撃方法 / New monster blow methods
9 * 打撃の種別に応じて傷と朦朧が発生するかがコメントの通りに決まる
11 #define RBM_HIT 1 /*!< モンスターの攻撃種別:殴る(傷/朦朧が半々) */
12 #define RBM_TOUCH 2 /*!< モンスターの攻撃種別:触る */
13 #define RBM_PUNCH 3 /*!< モンスターの攻撃種別:パンチする(朦朧) */
14 #define RBM_KICK 4 /*!< モンスターの攻撃種別:蹴る(朦朧) */
15 #define RBM_CLAW 5 /*!< モンスターの攻撃種別:ひっかく(傷) */
16 #define RBM_BITE 6 /*!< モンスターの攻撃種別:噛む(傷) */
17 #define RBM_STING 7 /*!< モンスターの攻撃種別:刺す */
18 #define RBM_SLASH 8 /*!< モンスターの攻撃種別:斬る(傷) */
19 #define RBM_BUTT 9 /*!< モンスターの攻撃種別:角で突く(朦朧) */
20 #define RBM_CRUSH 10 /*!< モンスターの攻撃種別:体当たりする(朦朧) */
21 #define RBM_ENGULF 11 /*!< モンスターの攻撃種別:飲み込む */
22 #define RBM_CHARGE 12 /*!< モンスターの攻撃種別:請求書を寄越す */
23 #define RBM_CRAWL 13 /*!< モンスターの攻撃種別:体の上を這い回る */
24 #define RBM_DROOL 14 /*!< モンスターの攻撃種別:よだれをたらす */
25 #define RBM_SPIT 15 /*!< モンスターの攻撃種別:つばを吐く */
26 #define RBM_EXPLODE 16 /*!< モンスターの攻撃種別:爆発する */
27 #define RBM_GAZE 17 /*!< モンスターの攻撃種別:にらむ */
28 #define RBM_WAIL 18 /*!< モンスターの攻撃種別:泣き叫ぶ */
29 #define RBM_SPORE 19 /*!< モンスターの攻撃種別:胞子を飛ばす */
30 #define RBM_XXX4 20 /*!< モンスターの攻撃種別:未定義 */
31 #define RBM_BEG 21 /*!< モンスターの攻撃種別:金をせがむ */
32 #define RBM_INSULT 22 /*!< モンスターの攻撃種別:侮辱する */
33 #define RBM_MOAN 23 /*!< モンスターの攻撃種別:うめく */
34 #define RBM_SHOW 24 /*!< モンスターの攻撃種別:歌う */
35 #define RBM_SHOOT 25 /*!< モンスターの攻撃種別:射撃(非打撃) */
39 * @note モンスターの攻撃効果 / New monster blow effects
41 #define RBE_HURT 1 /*!< モンスターの攻撃効果: 攻撃する*/
42 #define RBE_POISON 2 /*!< モンスターの攻撃効果: 毒をくらわす*/
43 #define RBE_UN_BONUS 3 /*!< モンスターの攻撃効果: 劣化させる*/
44 #define RBE_UN_POWER 4 /*!< モンスターの攻撃効果: 充填魔力を吸収する*/
45 #define RBE_EAT_GOLD 5 /*!< モンスターの攻撃効果: 金を盗む*/
46 #define RBE_EAT_ITEM 6 /*!< モンスターの攻撃効果: アイテムを盗む*/
47 #define RBE_EAT_FOOD 7 /*!< モンスターの攻撃効果: あなたの食糧を食べる*/
48 #define RBE_EAT_LITE 8 /*!< モンスターの攻撃効果: 明かりを吸収する*/
49 #define RBE_ACID 9 /*!< モンスターの攻撃効果: 酸を飛ばす*/
50 #define RBE_ELEC 10 /*!< モンスターの攻撃効果: 感電させる*/
51 #define RBE_FIRE 11 /*!< モンスターの攻撃効果: 燃やす*/
52 #define RBE_COLD 12 /*!< モンスターの攻撃効果: 凍らせる*/
53 #define RBE_BLIND 13 /*!< モンスターの攻撃効果: 盲目にする*/
54 #define RBE_CONFUSE 14 /*!< モンスターの攻撃効果: 混乱させる*/
55 #define RBE_TERRIFY 15 /*!< モンスターの攻撃効果: 恐怖させる*/
56 #define RBE_PARALYZE 16 /*!< モンスターの攻撃効果: 麻痺させる*/
57 #define RBE_LOSE_STR 17 /*!< モンスターの攻撃効果: 腕力を減少させる*/
58 #define RBE_LOSE_INT 18 /*!< モンスターの攻撃効果: 知能を減少させる*/
59 #define RBE_LOSE_WIS 19 /*!< モンスターの攻撃効果: 賢さを減少させる*/
60 #define RBE_LOSE_DEX 20 /*!< モンスターの攻撃効果: 器用さを減少させる*/
61 #define RBE_LOSE_CON 21 /*!< モンスターの攻撃効果: 耐久力を減少させる*/
62 #define RBE_LOSE_CHR 22 /*!< モンスターの攻撃効果: 魅力を減少させる*/
63 #define RBE_LOSE_ALL 23 /*!< モンスターの攻撃効果: 全ステータスを減少させる*/
64 #define RBE_SHATTER 24 /*!< モンスターの攻撃効果: 粉砕する*/
65 #define RBE_EXP_10 25 /*!< モンスターの攻撃効果: 経験値を減少(10d6+)させる*/
66 #define RBE_EXP_20 26 /*!< モンスターの攻撃効果: 経験値を減少(20d6+)させる*/
67 #define RBE_EXP_40 27 /*!< モンスターの攻撃効果: 経験値を減少(40d6+)させる*/
68 #define RBE_EXP_80 28 /*!< モンスターの攻撃効果: 経験値を減少(80d6+)させる*/
69 #define RBE_DISEASE 29 /*!< モンスターの攻撃効果: 病気にする*/
70 #define RBE_TIME 30 /*!< モンスターの攻撃効果: 時間を逆戻りさせる*/
71 #define RBE_DR_LIFE 31 /*!< モンスターの攻撃効果: 生命力を吸収する*/
72 #define RBE_DR_MANA 32 /*!< モンスターの攻撃効果: 魔力を奪う*/
73 #define RBE_SUPERHURT 33 /*!< モンスターの攻撃効果: 強力に攻撃する*/
74 #define RBE_INERTIA 34 /*!< モンスターの攻撃効果: 減速させる*/
75 #define RBE_STUN 35 /*!< モンスターの攻撃効果: 朦朧とさせる*/
77 #define HISSATSU_NONE 0
79 #define HISSATSU_3WAY 2
80 #define HISSATSU_SUTEMI 3
81 #define HISSATSU_FIRE 4
82 #define HISSATSU_COLD 5
83 #define HISSATSU_POISON 6
84 #define HISSATSU_ELEC 7
85 #define HISSATSU_NYUSIN 8
86 #define HISSATSU_FUKI 9
87 #define HISSATSU_MAJIN 10
88 #define HISSATSU_BOOMER 11
89 #define HISSATSU_DRAIN 12
90 #define HISSATSU_SEKIRYUKA 13
91 #define HISSATSU_OTAKEBI 14
92 #define HISSATSU_SHOUGE 15
93 #define HISSATSU_CONF 16
94 #define HISSATSU_ISSEN 17
95 #define HISSATSU_KYUSHO 18
96 #define HISSATSU_KONSIN 19
97 #define HISSATSU_HYAKU 20
98 #define HISSATSU_MINEUCHI 21
99 #define HISSATSU_MEKIKI 22
100 #define HISSATSU_ZANMA 23
101 #define HISSATSU_UNDEAD 24
102 #define HISSATSU_HAGAN 25
103 #define HISSATSU_QUAKE 26
104 #define HISSATSU_COUNTER 27
105 #define HISSATSU_HARAI 28
106 #define HISSATSU_3DAN 29
107 #define HISSATSU_100NIN 30
108 #define HISSATSU_IAI 100
110 extern const concptr silly_attacks[MAX_SILLY_ATTACK];
112 extern const concptr silly_attacks2[MAX_SILLY_ATTACK];
115 extern const byte adj_str_blow[];
116 extern const byte adj_dex_blow[];
117 extern const byte blows_table[12][12];
119 /* For Monk martial arts */
120 typedef struct martial_arts martial_arts;
123 concptr desc; /* A verbose attack description */
124 PLAYER_LEVEL min_level; /* Minimum level to use */
125 int chance; /* Chance of 'success' */
126 int dd; /* Damage dice */
127 int ds; /* Damage sides */
128 int effect; /* Special effects */
131 typedef struct mbe_info_type mbe_info_type;
135 int power; /* The attack "power" */
136 int explode_type; /* Explosion effect */
139 extern const martial_arts ma_blows[MAX_MA];
140 extern const int monk_ave_damage[PY_MAX_LEVEL + 1][3];
142 extern bool test_hit_norm(HIT_RELIABILITY chance, ARMOUR_CLASS ac, bool visible);
143 extern PERCENTAGE hit_chance(HIT_RELIABILITY chance, ARMOUR_CLASS ac);
144 extern HIT_POINT tot_dam_aux(object_type *o_ptr, HIT_POINT tdam, monster_type *m_ptr, BIT_FLAGS mode, bool thrown);
145 extern HIT_POINT critical_norm(WEIGHT weight, int plus, HIT_POINT dam, s16b meichuu, BIT_FLAGS mode);
146 extern bool py_attack(POSITION y, POSITION x, COMBAT_OPTION_IDX mode);
147 extern bool make_attack_normal(MONSTER_IDX m_idx);
148 extern void mon_take_hit_mon(MONSTER_IDX m_idx, HIT_POINT dam, bool *dead, bool *fear, concptr note, MONSTER_IDX who);
150 extern const mbe_info_type mbe_info[];