#endif
int msex = 0;
- int speed = (ironman_nightmare) ? r_ptr->speed + 5 : r_ptr->speed;
+ bool nightmare = ironman_nightmare && !(mode & 0x02);
+ int speed = nightmare ? r_ptr->speed + 5 : r_ptr->speed;
bool breath = FALSE;
bool magic = FALSE;
#ifdef JP
if (flags2 & RF2_HUMAN) hook_c_roff(TERM_L_WHITE, "¿Í´Ö");
#else
- if (flags2 & RF2_HUMAN) hook_c_roff(TERM_L_WHITE, " Human");
+ if (flags2 & RF2_HUMAN) hook_c_roff(TERM_L_WHITE, " human");
#endif
#ifdef JP
if ((flags2 & RF2_AURA_FIRE) && (flags2 & RF2_AURA_ELEC) && (flags3 & RF3_AURA_COLD))
{
#ifdef JP
-hook_c_roff(TERM_VIOLET, format("%^s¤Ï±ê¤Èɹ¤È¥¹¥Ñ¡¼¥¯¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex]));
+ hook_c_roff(TERM_VIOLET, format("%^s¤Ï±ê¤Èɹ¤È¥¹¥Ñ¡¼¥¯¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex]));
#else
- hook_c_roff(TERM_VIOLET, format("%^s is surrounded by flames and electricity. ", wd_he[msex]));
+ hook_c_roff(TERM_VIOLET, format("%^s is surrounded by flames, ice and electricity. ", wd_he[msex]));
#endif
-
}
else if ((flags2 & RF2_AURA_FIRE) && (flags2 & RF2_AURA_ELEC))
{
#ifdef JP
-hook_c_roff(TERM_L_RED, format("%^s¤Ï±ê¤È¥¹¥Ñ¡¼¥¯¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex]));
+ hook_c_roff(TERM_L_RED, format("%^s¤Ï±ê¤È¥¹¥Ñ¡¼¥¯¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex]));
#else
hook_c_roff(TERM_L_RED, format("%^s is surrounded by flames and electricity. ", wd_he[msex]));
#endif
-
}
else if ((flags2 & RF2_AURA_FIRE) && (flags3 & RF3_AURA_COLD))
{
#ifdef JP
-hook_c_roff(TERM_BLUE, format("%^s¤Ï±ê¤Èɹ¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex]));
+ hook_c_roff(TERM_BLUE, format("%^s¤Ï±ê¤Èɹ¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex]));
#else
- hook_c_roff(TERM_BLUE, format("%^s is surrounded by flames and electricity. ", wd_he[msex]));
+ hook_c_roff(TERM_BLUE, format("%^s is surrounded by flames and ice. ", wd_he[msex]));
#endif
-
}
else if ((flags3 & RF3_AURA_COLD) && (flags2 & RF2_AURA_ELEC))
{
#ifdef JP
-hook_c_roff(TERM_L_GREEN, format("%^s¤Ïɹ¤È¥¹¥Ñ¡¼¥¯¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex]));
+ hook_c_roff(TERM_L_GREEN, format("%^s¤Ïɹ¤È¥¹¥Ñ¡¼¥¯¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex]));
#else
hook_c_roff(TERM_L_GREEN, format("%^s is surrounded by ice and electricity. ", wd_he[msex]));
#endif
-
}
else if (flags2 & RF2_AURA_FIRE)
{
#ifdef JP
-hook_c_roff(TERM_RED, format("%^s¤Ï±ê¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex]));
+ hook_c_roff(TERM_RED, format("%^s¤Ï±ê¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex]));
#else
hook_c_roff(TERM_RED, format("%^s is surrounded by flames. ", wd_he[msex]));
#endif
-
}
else if (flags3 & RF3_AURA_COLD)
{
#ifdef JP
-hook_c_roff(TERM_BLUE, format("%^s¤Ïɹ¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex]));
+ hook_c_roff(TERM_BLUE, format("%^s¤Ïɹ¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex]));
#else
hook_c_roff(TERM_BLUE, format("%^s is surrounded by ice. ", wd_he[msex]));
#endif
-
}
else if (flags2 & RF2_AURA_ELEC)
{
#ifdef JP
-hook_c_roff(TERM_L_BLUE, format("%^s¤Ï¥¹¥Ñ¡¼¥¯¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex]));
+ hook_c_roff(TERM_L_BLUE, format("%^s¤Ï¥¹¥Ñ¡¼¥¯¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex]));
#else
hook_c_roff(TERM_L_BLUE, format("%^s is surrounded by electricity. ", wd_he[msex]));
#endif
-
}
if (flags2 & RF2_REFLECTING)
{
#ifdef JP
-hooked_roff(format("%^s¤ÏÌð¤Î¼öʸ¤òÄ·¤ÍÊÖ¤¹¡£", wd_he[msex]));
+ hooked_roff(format("%^s¤ÏÌð¤Î¼öʸ¤òÄ·¤ÍÊÖ¤¹¡£", wd_he[msex]));
#else
hooked_roff(format("%^s reflects bolt spells. ", wd_he[msex]));
#endif
wd_he[msex], r_ptr->ac));
/* Maximized hitpoints */
- if (flags1 & RF1_FORCE_MAXHP)
+ if ((flags1 & RF1_FORCE_MAXHP) || (r_ptr->hside == 1))
{
+ u32b hp = r_ptr->hdice * (nightmare ? 2 : 1) * r_ptr->hside;
#ifdef JP
hooked_roff(format(" %d ¤ÎÂÎÎϤ¬¤¢¤ë¡£",
#else
hooked_roff(format(" and a life rating of %d. ",
#endif
-
- r_ptr->hdice * r_ptr->hside));
+ (s16b)MIN(30000, hp)));
}
/* Variable hitpoints */
#else
hooked_roff(format(" and a life rating of %dd%d. ",
#endif
-
- r_ptr->hdice, r_ptr->hside));
+ r_ptr->hdice * (nightmare ? 2 : 1), r_ptr->hside));
}
}
#ifdef JP
hooked_roff(format("%^s¤Ï¸÷¤Ã¤Æ¤¤¤ë¡£", wd_he[msex]));
#else
- hooked_roff(format("%^s illuminate the dungeon. ", wd_he[msex]));
+ hooked_roff(format("%^s is shining. ", wd_he[msex]));
#endif
}
void set_pet(monster_type *m_ptr)
{
+ if (!is_pet(m_ptr)) check_pets_num_and_align(m_ptr, TRUE);
+
/* Check for quest completion */
check_quest_completion(m_ptr);
void set_hostile(monster_type *m_ptr)
{
if (p_ptr->inside_battle) return;
+
+ if (is_pet(m_ptr)) check_pets_num_and_align(m_ptr, FALSE);
+
m_ptr->smart &= ~SM_PET;
m_ptr->smart &= ~SM_FRIENDLY;
}
/* Some monsters can walk on mountains */
if (have_flag(f_ptr->flags, FF_MOUNTAIN) && (r_ptr->flags8 & RF8_WILD_MOUNTAIN)) return TRUE;
- if (have_flag(f_ptr->flags, FF_MUST_FLY) && !(r_ptr->flags7 & RF7_CAN_FLY)) return FALSE;
-
/* Water */
if (have_flag(f_ptr->flags, FF_WATER))
{