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

@@ -325,7 +325,8 @@ do_pit: chasm = maketrap(x,y,PIT);
You("fall into a chasm!");
u.utrap = rn1(6,2);
u.utraptype = TT_PIT;
losehp(rnd(6),"fell into a chasm",
losehp(Maybe_Half_Phys(rnd(6)),
"fell into a chasm",
NO_KILLER_PREFIX);
selftouch("Falling, you");
}
@@ -354,6 +355,7 @@ do_improvisation(instr)
struct obj *instr;
{
int damage, do_spec = !Confusion;
boolean physical_damage = FALSE;
#if defined(MAC) || defined(AMIGA) || defined(VPIX_MUSIC) || defined (PCMUSIC)
struct obj itmp;
@@ -397,8 +399,10 @@ struct obj *instr;
if (do_spec) charm_snakes(u.ulevel * 3);
exercise(A_DEX, TRUE);
break;
case FROST_HORN: /* Idem wand of cold */
case FIRE_HORN: /* Idem wand of fire */
physical_damage = TRUE;
/* fall through */
case FROST_HORN: /* Idem wand of cold */
if (do_spec && instr->spe > 0) {
consume_obj_charge(instr, TRUE);
@@ -409,6 +413,7 @@ struct obj *instr;
if ((damage = zapyourself(instr, TRUE)) != 0) {
char buf[BUFSZ];
Sprintf(buf, "using a magical horn on %sself", uhim());
if (physical_damage) damage = Maybe_Half_Phys(damage);
losehp(damage, buf, KILLED_BY);
}
} else {