Half_physical_damage 05

- [fixed in trunk] Jumping/Newton's-Thirding into something solid
- [fixed in trunk] Being hit by Mjollnir on the return
- [fixed in trunk] Contaminated or boiling water from a sink
- [fixed in trunk] Falling on a sink while levitating
- [fixed in trunk, fire only] Any passive attack
- [fixed in trunk] Zapping yourself with a wand, horn or spell
- [fixed in trunk] Burning (un)holy water
- [fixed in trunk] Thrown potion (bottle)
- [fixed in trunk] Bumping head on ceiling by cursed levitation
- [fixed in trunk] Exploding rings and wands (under all circumstances)
- [fixed in trunk] Stinking cloud damage
- [fixed in trunk] Sitting in a spiked pit, in lava
- [fixed in trunk] Exploding spellbooks
- [fixed in trunk] Falling off or failing to mount a steed
- [fixed in trunk] Falling into a (spiked) pit
- [fixed in trunk] Land mine explosion
- [fixed in trunk] Fire traps
This commit is contained in:
nethack.allison
2003-10-21 23:45:11 +00:00
parent d3316e0436
commit cdf982e478
13 changed files with 69 additions and 28 deletions

View File

@@ -453,6 +453,7 @@ hurtle_step(arg, x, y)
struct monst *mon;
boolean may_pass = TRUE;
struct trap *ttmp;
int dmg = 0;
if (!isok(x,y)) {
You_feel("the spirits holding you back.");
@@ -474,23 +475,28 @@ hurtle_step(arg, x, y)
s = "bumping into a wall";
else
s = "bumping into a door";
losehp(rnd(2+*range), s, KILLED_BY);
dmg = rnd(2+*range);
losehp(Maybe_Half_Phys(dmg), s, KILLED_BY);
return FALSE;
}
if (levl[x][y].typ == IRONBARS) {
You("crash into some iron bars. Ouch!");
losehp(rnd(2+*range), "crashing into iron bars", KILLED_BY);
dmg = rnd(2+*range);
losehp(Maybe_Half_Phys(dmg), "crashing into iron bars", KILLED_BY);
return FALSE;
}
if ((obj = sobj_at(BOULDER,x,y)) != 0) {
You("bump into a %s. Ouch!", xname(obj));
losehp(rnd(2+*range), "bumping into a boulder", KILLED_BY);
dmg = rnd(2+*range);
losehp(Maybe_Half_Phys(dmg), "bumping into a boulder", KILLED_BY);
return FALSE;
}
if (!may_pass) {
/* did we hit a no-dig non-wall position? */
You("smack into something!");
losehp(rnd(2+*range), "touching the edge of the universe", KILLED_BY);
dmg = rnd(2+*range);
losehp(Maybe_Half_Phys(dmg), "touching the edge of the universe",
KILLED_BY);
return FALSE;
}
if ((u.ux - x) && (u.uy - y) &&
@@ -500,7 +506,9 @@ hurtle_step(arg, x, y)
if (bigmonst(youmonst.data) || too_much) {
You("%sget forcefully wedged into a crevice.",
too_much ? "and all your belongings " : "");
losehp(rnd(2+*range), "wedging into a narrow crevice", KILLED_BY);
dmg = rnd(2+*range);
losehp(Maybe_Half_Phys(dmg), "wedging into a narrow crevice",
KILLED_BY);
return FALSE;
}
}
@@ -1048,7 +1056,7 @@ boolean twoweap; /* used to restore twoweapon mode if wielded weapon returns */
body_part(ARM));
(void) artifact_hit((struct monst *)0,
&youmonst, obj, &dmg, 0);
losehp(dmg, xname(obj),
losehp(Maybe_Half_Phys(dmg), xname(obj),
obj_is_pname(obj) ? KILLED_BY : KILLED_BY_AN);
}
if (ship_object(obj, u.ux, u.uy, FALSE)) {