From f01da50d6e21536072c25fb19d2e0f559ef6e6c0 Mon Sep 17 00:00:00 2001 From: nothere Date: Sun, 4 Jul 2004 03:35:07 +0000 Subject: [PATCH] =?utf8?q?=E3=83=A2=E3=83=B3=E3=82=B9=E3=82=BF=E3=83=BC?= =?utf8?q?=E3=81=AE=E6=9C=80=E5=A4=A7HP=E3=81=AB=E9=96=A2=E3=81=99?= =?utf8?q?=E3=82=8B=E4=BF=AE=E6=AD=A3.=20*=20=E5=90=B8=E8=A1=80=E6=94=BB?= =?utf8?q?=E6=92=83=E3=81=A7=E3=83=A2=E3=83=B3=E3=82=B9=E3=82=BF=E3=83=BC?= =?utf8?q?=E3=81=AE=E6=9C=80=E5=A4=A7HP=E3=81=8C1=E6=9C=AA=E6=BA=80?= =?utf8?q?=E3=81=AB=E3=81=AA=E3=82=8B=E3=83=90=E3=82=B0=E3=82=92=E4=BF=AE?= =?utf8?q?=E6=AD=A3.=20*=200d*,=20*d0=E3=81=A8=E3=81=84=E3=81=86HP?= =?utf8?q?=E3=83=80=E3=82=A4=E3=82=B9=E3=82=92=E8=AA=8D=E3=82=81=E3=81=AA?= =?utf8?q?=E3=81=84=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=9F.=20?= =?utf8?q?=E3=81=93=E3=82=8C=E3=82=89=E3=81=AF=E3=83=87=E3=83=BC=E3=82=BF?= =?utf8?q?=E8=AA=AD=E3=81=BF=E8=BE=BC=E3=81=BF=20=20=20=E6=99=82=E3=81=AB?= =?utf8?q?=E3=81=9D=E3=82=8C=E3=81=9E=E3=82=8C1d*,=20*d1=E3=81=AB=E4=BF=AE?= =?utf8?q?=E6=AD=A3=E3=81=95=E3=82=8C=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= =?utf8?q?=E3=81=97=E3=81=9F.=20*=20HP=E3=83=80=E3=82=A4=E3=82=B9=E3=81=AE?= =?utf8?q?=E9=9D=A2=E6=95=B0=E3=81=8C1=E3=81=AE=E5=A0=B4=E5=90=88=E3=81=AF?= =?utf8?q?=E3=83=A2=E3=83=B3=E3=82=B9=E3=82=BF=E3=83=BC=E3=81=AE=E6=80=9D?= =?utf8?q?=E3=81=84=E5=87=BA=E3=81=AB=E3=82=82FORCE=5FMAXHP=E3=81=A8?= =?utf8?q?=E5=90=8C=E6=A7=98=E3=81=AE=20=20=20=E8=A1=A8=E7=A4=BA=E3=82=92?= =?utf8?q?=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3.?= =?utf8?q?=20*=20=E6=82=AA=E5=A4=A2=E3=83=A2=E3=83=BC=E3=83=89=E3=81=A7?= =?utf8?q?=E3=81=AE=E3=83=A2=E3=83=B3=E3=82=B9=E3=82=BF=E3=83=BC=E3=81=AE?= =?utf8?q?=E6=80=9D=E3=81=84=E5=87=BA=E3=81=AB=E3=81=AF=E6=9C=80=E5=A4=A7H?= =?utf8?q?P=E3=82=822=E5=80=8D=E3=81=AB=E3=81=97=E3=81=A6=E8=A1=A8?= =?utf8?q?=E7=A4=BA=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=20=20=20?= =?utf8?q?=E4=BF=AE=E6=AD=A3.=20=E3=81=9F=E3=81=A0=E3=81=97=E8=87=AA?= =?utf8?q?=E5=8B=95=E7=94=9F=E6=88=90=E3=82=B9=E3=83=9D=E3=82=A4=E3=83=A9?= =?utf8?q?=E3=83=BC=E3=81=A7=E3=81=AF=E6=A8=99=E6=BA=96=E3=81=AE=E5=80=A4?= =?utf8?q?=E3=82=92=E8=A1=A8=E7=A4=BA=E3=81=99=E3=82=8B.=20*=20=E6=9C=80?= =?utf8?q?=E5=A4=A7HP=E3=81=AB=E3=83=80=E3=83=A1=E3=83=BC=E3=82=B8?= =?utf8?q?=E3=82=92=E5=8F=97=E3=81=91=E3=81=9F=E3=82=AB=E3=83=A1=E3=83=AC?= =?utf8?q?=E3=82=AA=E3=83=B3=E3=81=8CHP=E3=81=AE=E4=BD=8E=E3=81=84?= =?utf8?q?=E3=83=A2=E3=83=B3=E3=82=B9=E3=82=BF=E3=83=BC=E3=81=AB=E5=A4=89?= =?utf8?q?=E5=8C=96=E3=81=99=E3=82=8B=E3=81=A8=20=20=20=E6=9C=80=E5=A4=A7H?= =?utf8?q?P=E3=81=8C0=E3=81=AB=E3=81=AA=E3=82=8B=E5=A0=B4=E5=90=88?= =?utf8?q?=E3=81=8C=E3=81=82=E3=82=8A,=200=E9=99=A4=E7=AE=97=E3=81=AE?= =?utf8?q?=E5=8E=9F=E5=9B=A0=E3=81=A8=E3=81=AA=E3=82=8B=E3=83=90=E3=82=B0?= =?utf8?q?=E3=82=92=E4=BF=AE=E6=AD=A3.=20*=20=E6=82=AA=E5=A4=A2=E3=83=A2?= =?utf8?q?=E3=83=BC=E3=83=89=E3=81=A7=E3=81=AE=E3=82=AB=E3=83=A1=E3=83=AC?= =?utf8?q?=E3=82=AA=E3=83=B3=E3=81=AE=E5=A4=89=E5=8C=96=E6=99=82=E3=81=AB?= =?utf8?q?=E6=9C=80=E5=A4=A7HP=E3=81=8C2=E5=80=8D=E3=81=AB=E3=81=AA?= =?utf8?q?=E3=82=89=E3=81=AA=E3=81=84=E3=83=90=E3=82=B0=E3=82=92=E4=BF=AE?= =?utf8?q?=E6=AD=A3.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/cmd1.c | 1 + src/init1.c | 4 ++-- src/monster1.c | 9 ++++----- src/monster2.c | 9 +++++++++ 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/cmd1.c b/src/cmd1.c index 2e98edf15..f16b037a0 100644 --- a/src/cmd1.c +++ b/src/cmd1.c @@ -2726,6 +2726,7 @@ static void py_attack_aux(int y, int x, bool *fear, bool *mdeath, s16b hand, int } m_ptr->maxhp -= (k+7)/8; if (m_ptr->hp > m_ptr->maxhp) m_ptr->hp = m_ptr->maxhp; + if (m_ptr->maxhp < 1) m_ptr->maxhp = 1; weak = TRUE; } can_drain = FALSE; diff --git a/src/init1.c b/src/init1.c index f59682da1..2b9e04e34 100644 --- a/src/init1.c +++ b/src/init1.c @@ -2718,8 +2718,8 @@ errr parse_r_info(char *buf, header *head) /* Save the values */ r_ptr->speed = spd; - r_ptr->hdice = hp1; - r_ptr->hside = hp2; + r_ptr->hdice = MAX(hp1, 1); + r_ptr->hside = MAX(hp2, 1); r_ptr->aaf = aaf; r_ptr->ac = ac; r_ptr->sleep = slp; diff --git a/src/monster1.c b/src/monster1.c index c8a5e906a..86e8d9448 100644 --- a/src/monster1.c +++ b/src/monster1.c @@ -1674,15 +1674,15 @@ if (flags6 & (RF6_S_UNIQUE)) {vp[vn] = " 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 * (ironman_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 */ @@ -1693,8 +1693,7 @@ if (flags6 & (RF6_S_UNIQUE)) {vp[vn] = " #else hooked_roff(format(" and a life rating of %dd%d. ", #endif - - r_ptr->hdice, r_ptr->hside)); + r_ptr->hdice * (ironman_nightmare ? 2 : 1), r_ptr->hside)); } } diff --git a/src/monster2.c b/src/monster2.c index ad952e810..f33e84d4b 100644 --- a/src/monster2.c +++ b/src/monster2.c @@ -2858,7 +2858,16 @@ void choose_new_monster(int m_idx, bool born, int r_idx) { m_ptr->max_maxhp = damroll(r_ptr->hdice, r_ptr->hside); } + + /* Monsters have double hitpoints in Nightmare mode */ + if (ironman_nightmare) + { + u32b hp = m_ptr->max_maxhp * 2L; + m_ptr->max_maxhp = (s16b)MIN(30000, hp); + } + m_ptr->maxhp = (long)(m_ptr->maxhp * m_ptr->max_maxhp) / oldmaxhp; + if (m_ptr->maxhp < 1) m_ptr->maxhp = 1; m_ptr->hp = (long)(m_ptr->hp * m_ptr->max_maxhp) / oldmaxhp; } -- 2.11.0