Merge from the devteam repository into NetHack-3.6.0

Huh, it's nice to see the devteam active enough that we can actually
create simultaneous changes by chance.
This commit is contained in:
Alex Smith
2017-11-24 00:49:44 +00:00
2 changed files with 24 additions and 2 deletions

View File

@@ -473,6 +473,11 @@ make Vlad slightly tougher
reduce the amount of gold laying on the floor
locked chests and large boxes contain more stuff
make shopkeepers bill hero for burying merchandise
monster holding hero takes double damage from an explosion for reaching into
adjacent spot, but it was being inflicted even when hero was swallowed
or beyond the explosion radius
poly'd hero holding monster now takes double damage (if monster is within
explosion radious) instead of inflicting that upon the monster
Fixes to Post-3.6.0 Problems that Were Exposed Via git Repository

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 explode.c $NHDT-Date: 1503355817 2017/08/21 22:50:17 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.50 $ */
/* NetHack 3.6 explode.c $NHDT-Date: 1511483825 2017/11/24 00:37:05 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.53 $ */
/* Copyright (C) 1990 by Ken Arromdee */
/* NetHack may be freely redistributed. See license for details. */
@@ -401,8 +401,18 @@ int expltype;
pline("%s resists the %s!", Monnam(mtmp), str);
mdam = (dam + 1) / 2;
}
if (mtmp == u.ustuck)
/* if grabber is reaching into hero's spot and
hero's spot is within explosion radius, grabber
gets hit by double damage */
if (mtmp == u.ustuck && !u.uswallow
&& !(Upolyd && sticks(youmonst.data))
&& distu(x, y) <= 2)
mdam *= 2;
/* being resistant to opposite type of damage makes
target more vulnerable to current type of damage
(being resistant to current type has already cut
damage in half, so this effectively restores it
to full for targets who resist both types) */
if (resists_cold(mtmp) && adtyp == AD_FIRE)
mdam *= 2;
else if (resists_fire(mtmp) && adtyp == AD_COLD)
@@ -468,6 +478,13 @@ int expltype;
ugolemeffects((int) adtyp, damu);
if (uhurt == 2) {
/* if poly'd hero is grabbing another victim, do double damage */
/* [FIXME: if u.ustuck was killed above, we'll miss it here.] */
if (u.ustuck && !u.uswallow && (Upolyd && sticks(youmonst.data))
&& dist2((int) u.ustuck->mx, (int) u.ustuck->my, x, y) <= 2)
damu *= 2;
/* [FIXME too: hero ought to get same fire-resistant vs cold
* and cold-resistant vs fire double damage as monsters.] */
if (Upolyd)
u.mh -= damu;
else