E:Ishikawa Goemon
G:p:W
I:120:13d113:20:70:50
-W:33:7:0:2000:0:0
+W:36:7:0:2000:0:0
B:SLASH:HURT:9d1
B:SLASH:HURT:6d5
B:SLASH:HURT:25d1
* Determine if the player "hits" a monster (normal combat).
* Note -- Always miss 5%, always hit 5%, otherwise random.
*/
-bool test_hit_fire(int chance, int ac, int vis)
+bool test_hit_fire(int chance, monster_type *m_ptr, int vis, char* o_name)
{
- int k;
+ int k, ac;
+ monster_race *r_ptr = &r_info[m_ptr->r_idx];
+
+ ac = r_ptr->ac;
+ if(m_ptr->r_idx == MON_GOEMON && !MON_CSLEEP(m_ptr)) ac *= 3;
/* Percentile dice */
k = randint0(100);
if (!vis) chance = (chance + 1) / 2;
/* Power competes against armor */
- if (randint0(chance) < (ac * 3 / 4)) return (FALSE);
+ if (randint0(chance) < (ac * 3 / 4))
+ {
+ if(m_ptr->r_idx == MON_GOEMON && !MON_CSLEEP(m_ptr))
+ {
+ char m_name[80];
+
+ /* Extract monster name */
+ monster_desc(m_name, m_ptr, 0);
+ msg_format(_("%s¤Ï%s¤ò»Â¤ê¼Î¤Æ¤¿¡ª", "%s cuts down %s!"), m_name, o_name);
+ }
+ return (FALSE);
+ }
/* Assume hit */
return (TRUE);
}
/* Did we hit it (penalize range) */
- if (test_hit_fire(chance - cur_dis, armour, m_ptr->ml))
+ if (test_hit_fire(chance - cur_dis, m_ptr, m_ptr->ml, o_name))
{
bool fear = FALSE;
int tdam = tdam_base;
hit_body = TRUE;
/* Did we hit it (penalize range) */
- if (test_hit_fire(chance - cur_dis, r_ptr->ac, m_ptr->ml))
+ if (test_hit_fire(chance - cur_dis, m_ptr, m_ptr->ml, o_name))
{
bool fear = FALSE;
extern void glow_deep_lava_and_bldg(void);
/* cmd1.c */
-extern bool test_hit_fire(int chance, int ac, int vis);
+extern bool test_hit_fire(int chance, monster_type *m_ptr, int vis, char* o_name);
extern bool test_hit_norm(int chance, int ac, int vis);
extern s16b critical_shot(int weight, int plus_ammo, int plus_bow, int dam);
extern s16b critical_norm(int weight, int plus, int dam, s16b meichuu, int mode);
case MON_GOEMON:
a_idx = ART_ZANTETSU;
- chance = 75;
+ chance = 100;
break;
case MON_HAGEN: