Commit Graph

41 Commits

Author SHA1 Message Date
nethack.rankin
459cee350e poisoning prefix
Fix a recent killer prefix fix....
2003-05-20 07:33:30 +00:00
nethack.rankin
c4c1b064f7 fix B02004 and other projectile related killer reasons
1) killer reason for scattered land mine shrapnel used "a" or "an" prefix
   even when multiple projectiles hit as a group -- one of various things
   From a bug report.oextra field) --
   noticed while investigating #1 and later From a bug report.4.0 due to an unintentional side-effect of missile killer reason
   handling in 3.4.1 (removal of redundant "poisoned" prefix by m_throw()
   confused the poison handling routine) -- noticed while investigating #3.
2003-05-14 10:25:26 +00:00
cohrs
492bdb672b yet another spelling error
"undigestable" -> "indigestible"
2003-04-27 15:10:46 +00:00
nethack.allison
c2c72d11e7 B18009 animate figurine over water
>More worrying is the fact that applying a figurine over water lets
>the monster wait until its next move before it drowns (giving
>you time to teleport it to safety, or whatever) [...]
>Should there be a minliquid() check as part of make_familiar()?

Applying at the water location next to you was easy. But
applying it at your own location (triggering BY_YOU)  could
end up placing the figurine at the far side of the level if
there was lots of water.

Correcting that required the ability to pass a flag from
make_familiar to makemon() telling it to not rule out
water locations as good positions.  The flag had to
be passed on down to goodpos() and enexto().

The bulk of this patch is just adding an additional
argument to goodpos() in all of the callers.
2003-02-09 05:39:32 +00:00
nethack.allison
4b92592056 freezing sphere and amulet of lifesaving
<Someone> wrote:
> "The freezing sphere explodes!  You seem unaffected by it.  But wait...
>   The freezing sphere's medallion begins to glow!
>   The freezing sphere looks much better!
>   The medallion crumbles to dust!"
> How can sphere wear a medaillon?
> How can an exploded creature start to look better, if it leaves no corpse?

This addresses the part about looking better, it does not
address spheres wearing medallions (which is not a bug
in my opinion, but other opinions may differ)
2003-02-04 00:56:03 +00:00
nethack.rankin
029ca9f294 fix "Scorpius egg"
From the newsgroup:  wishing for a "Scorpius egg" succeeds;
fortunately the resulting egg will never hatch.  Turn such eggs into
normal scorpion eggs instead.
2003-01-30 11:35:03 +00:00
cohrs
aabc54549e U189 - killing an engulfing monster over water allows waterwalking
- The code in xkilled failed to call spoteffects after killing the monster
that was engulfing you.  Being expelled already worked correctly.
- While testing this, I discovered that removing a ring of levitation or
similar while engulfed would call spoteffects when it shouldn't.  Fixed
that too.
2002-12-19 01:57:10 +00:00
nethack.allison
6b121e3231 monsters and lava follow-up bit
"aways" is not a word.
2002-12-12 11:30:04 +00:00
cohrs
d013f95679 B14006 - monsters and lava
- water elementals now get a special message when they land in lava
- rather than track down all places where non-moving monsters can end up in
lava (or water, not that it currently matters), add a check to mcalcdistress
to catch all such cases, once per turn.
2002-12-12 04:28:28 +00:00
nethack.rankin
e639c09f58 fix B14012 - polymorph of monster possessions
Forwarded from the newsgroup:  when a monster gets hit by wand or
spell of polymorph, any armor that fell off was protected from being
hit by that same zap, but a dropped weapon wasn't.  Nor was the whole
dropped inventory in the case where the monster is killed by system
shock rather than transformed.  Protect its entire inventory.
2002-11-08 12:45:58 +00:00
nethack.rankin
6772c3973c more starving pets
The fact that a pet was starving to death got recorded with its
corpse; if that corpse was revived via undead turning, the resulting
monster would immediately starve again if it stayed tame.  Similarly,
if one got petrified while nearly starved, reanimating the statue would
produce a starving pet.  Make revival and reanimation use the same code
as life-saving, where hunger status gets reset.
2002-09-14 05:48:40 +00:00
nethack.rankin
0ef3240077 more monster intrinsics
Provide more control over message handling for monsters' use
of equipment.  This fixes the statue revival problem (inappropriate
feedback when monster puts on speed boots) mentioned in the earlier
"intrinsics of dead monsters" patch.
2002-09-09 09:24:38 +00:00
nethack.rankin
786ed93751 intrinsics of dead monsters
Monster traits that are used to revive some corpses or statues
with their old attributes were retaining intrinsics conferred by worn
items.  To prevent that, strip such attributes at time of a monster's
death before the traits are recorded.  Statue handling needs to some
more work; now that extra speed is lost, there's an out of place
message if/when a revived statue gets to put on its old speed boots.
2002-09-09 09:02:21 +00:00
nethack.allison
9ac2c2c576 <email deleted>
> I'm working on a Nethack port, and one of the header files a
> library uses has a structure with a member named "red". Since
> includes/decl.h #defines red to something, this totally loses.
>
> Attached is a patch which fixes the color defines.
2002-09-06 00:12:44 +00:00
nethack.allison
18f4b58fb8 fix recent mon.c warning
mon.c(967) : warning C4244: '=' : conversion from 'long ' to 'char ',
possible loss of data
2002-08-12 12:41:56 +00:00
cohrs
a8ac6f6cc6 forcefighting an undetected monster
Fix the case <Someone> saw, where forcefighting an undetected monster
would still leave it undetected, resulting in an odd message sequence unless
you kept forcefighting on the next turns.  This also left the monster at a
disadvantage, since it wouldn't fight back. Added a check to wakeup() for this
case, cutting off the possibilities and allowing the monster to fight back.
2002-08-12 05:57:40 +00:00
nethack.allison
b4dffbcc48 B07001 healed, undetected mimic
> [Cast a healing spell in a shop where no mimic was visible] So,
> "The small mimic looks better.". However, my picture still looks
> the same. Either the mimic should be shown, *or* I shouldn't get
> any message about the mimic healing. Both solutions seem equally
> valid to me.

If the mimic was mimicing the "strange object", then the healing causes
them to start mimicing something else with no message (the observant
player could notice however).

If the mimic was already mimicing a real object, a message similar
to this one results:
"The crude dagger seems a more vivid black than before."
2002-08-12 01:57:02 +00:00
cohrs
b4b5a0fe52 B02001 - trees and monster
<Someone> noticed that the change to require axes for trees (and allow them for
doors) did not extend to monsters.  Now it does.
- added 2 new weapon check flags to handle the new cases
- added some detailed digging flags to mfndpos, based on ALLOW_DIG, and
  moved some common logic regarding that flag into mfndpos
- made the ARMS check consistent for 2-handed weapons
I also noticed that simply carrying a pick was enough to allow a monster to
dig a door; wielding wasn't required.  This is fixed as well.
2002-08-11 17:32:47 +00:00
nethack.allison
6baca91d81 comment update mon.c 2002-07-28 23:22:24 +00:00
nethack.allison
cca62c762f B04007 unknown corpse type revealed by hider
"It was hidden under a green mold corpse!  It bites!"
	Never seen corpse from a never seen monster can be
	revealed by the hider.
	-problem is that the corpse of the monster is
	always created with dknown set to 1 when make_corpse() finishes,
	even in the case where you never knew what it was while alive.
2002-07-28 02:19:21 +00:00
nethack.allison
5802922a3d picking up gold
> > On Saturday, 6 Jul 2002, <Someone> wrote:
> > What's the rationale behind using "money" for what used to be
> > "gold" (as in "The hill orc picks up some money" or "You notice
> > you have no money!")? Has the zorkmid been devalued?
[...]
> At least let *leprechauns* pick up gold. Unlike orcs, they're not the
> kind to pick up just "money".
2002-07-07 19:10:17 +00:00
nethack.allison
4d402e1b07 B01012 involuntary dismount crash
Nethack crashes when you are riding a flying monster over a
	pool/moat and some engulfing monster plucks you off your saddle.
	After falling into the water you'll get the normal message
	sequence (sink like rock ... phew, that was close; you also get
	chance to teleport if you can).  After the last message the game
	will crash with a segmentation fault.
	- reproducible; null pointer dereference in swallowed()

The crash results because dismount_steed() calls float_down(), which
calls drown(), which calls teleds(), which clears u.ustuck.  So when
gulpmu calls swallowed after dismount_steed(), this line attempts to
derefernce a null pointer:
    swallower = monsndx(u.ustuck->data);

This patch bypasses the float_down() in dismount steed() altogether.
That routine is meant to return the hero to the floor, and that
isn't appropriate if a purple worm just plucked you off the steed
anyway.

While this fixes the crash, a problem still exists. The
way swallowing works, the swallowing monster's location
switches to that of the hero.  Since that location is
over water, the purple worm ends up drowning almost
immediately after you are swallowed, while you are
swallowed.  The purple worm's death is not revealed
to you since the "The purple worm drowns." message is
conditional. This patch also adds a message when
the purple worm dies, but should this guaranteed
drowing take place?
2002-07-03 02:22:50 +00:00
cohrs
2c26ea1dd5 R809 - newcham message reorganization
Add a param to newcham() to let it print "The oldmon turns into a newmon!"
rather than always printing this externally.  Should ensure a good ordering
of the messages.  Also put some special name handling in one place and
catch a couple cases where "saddled" was printed, resulting in funny messages.
2002-04-23 06:15:52 +00:00
cohrs
27fb054937 polymorph engulfing monster display bit
- <Someone> reported that the swallowed display did not update immediately if
you managed to polymorph the monster that was engulfing you into another
engulfing monster
2002-04-15 15:33:44 +00:00
nethack.rankin
812b53799d multiple iron bars fixes
Can't push boulders through iron bars; traps can't roll such through either;
	likewise for objects thrown by monsters.
Thrown objects susceptible to breaking might do so when they hit iron bars.
Assorted monsters can pass through iron bars; ditto for polymorphed character.
Attempting to dig iron bars will wake nearby monsters instead of yielding
	"you swing your pick-axe through thin air".
Autodig won't accept iron bars as candidate location.
2002-04-07 10:43:59 +00:00
cohrs
6cdf92851e half-physical-damage from gas spore explosion should only affect you
- <Someone> noticed the fix for applying half physical damage to gas spore
explosions affected damage to all monsters, not just you
2002-03-27 02:31:21 +00:00
cohrs
ea18afa4dd seemimic produces transparent doors
- if a mimic mimics a boulder (top sokoban) or a door atop
a closed door the closed door didn't block your vision after
the mimic is sensed.
- also, make mondied consistent with xkilled WRT corpses on inaccessible
locations: no corpse
2002-03-27 00:58:44 +00:00
nethack.rankin
6c91a6bc04 leash groundwork
Add another parameter to m_unleash.  This should not introduce
any change in behavior.
2002-03-11 08:00:21 +00:00
jwalz
bab78d03c8 Lint part 1, unused variables, routines, and return codes. 2002-03-10 00:30:53 +00:00
arromdee
d6d445d514 This fixes beta bug 8003 (half physical damage from gas spores) as well as a
minor bit of cleanup in mon.c.
2002-03-02 01:07:11 +00:00
nethack.rankin
a9b2f4f1ee double undead turning
From the newsgroup:  when an undead monster got killed by a wand
or spell of undead turning, if it left a corpse that corpse would be
hit by the same zap and was immediately revived.  This fix uses the
flag bits that were added to prevent objects that are dropped by a
polymorphed monster from being hit by the same polymorph zap.

     This also fixes a post-3.3.1 bug that produced "the <undead>
turns to flee" even when that monster had been killed by the turning
attack.  3.3.1 had the same bogus fleeing effect but didn't give any
message so it was unnoticeable.
2002-02-23 11:13:41 +00:00
cohrs
cad85663de purple worm digestion
Generally modify the AD_DGST damage type so that:
- players and pets get no AD_DGST nutrition from G_NOCORPSE monsters
- undead no longer convey any nutrition, to either monsters or you-as-monster
  I decided on this based on the age typically assigned to undead corpses.
- digestion conveys 50% or normal nutrition, and takes 25% the time to eat.
- all AD_DGST attacks are now subject to gas spore explosions, including player
2002-02-18 23:36:46 +00:00
cohrs
316a94d50f obj_no_longer_held consistency
Call obj_no_longer_held whenever an object hits the floor, no matter what
previously held it.  Also handle stoning of prior holder.
2002-02-09 21:55:45 +00:00
nethack.rankin
f750e2df4e fix B3032 -- wand of speed monster id
Make wands of speed or slow monster known if their effect
on monsters is observed; likewise for speed boots.  Also, avoid
giving odd "the bat is moving faster" when seeing a bat created
in gehennom and inaccurate "the monster is moving slower" when
a monster puts on speed boots.
2002-02-08 04:14:03 +00:00
nethack.allison
06528d1002 3.3.2 to 3.4.0 2002-02-04 16:06:00 +00:00
nethack.allison
69ce21fe0b Add a macro to provide universal consistency around the check
for what sort of creatures tend to revive.
2002-01-26 15:05:00 +00:00
arromdee
166affb0f9 polymorphed quest leader
Duuuh.  Of course adding objects already changed the editlevel.

Anyway, here's the fix I was working on.  It only matters in a very obscure
situation.  (Also, the quest leader still speaks no matter what he's
polymorphed into.)
2002-01-21 22:15:22 +00:00
cohrs
e7bdcb157f lava effects for monsters and objects
This patch, based on code sent to us by <Someone> well over a year ago, addresses
bugs recently resurfaced.  Namely, that lava does not generally do anything
to monsters or objects that land in java.  Newly renamed minliquid() handles
both water and lava, and new fire_damage() is used similar to water_damage().
2002-01-20 07:04:18 +00:00
arromdee
157840766d Finally overhauled some spell stuff. --Ken A.
Summary of spell changes:
-- wimpiness of 'default' spell fixed by doing half damage for magic resistance
instead of 1 damage, and using half monster level instead of 1/3.  It may
still need tweaking, but is much better than before.
-- 'default' spell for cleric monsters is now the wounds spell, by analogy with
wizard monsters.
-- added clerical lightning strike, flame strike, gush of water
-- all spells should now say the monster is casting a spell, and all spells
should have messages.  (Side effect: monsters speeding up by other means
also give a message saying so).
-- casting undirected spells is not affected by whether the monster knows
where you are.  Monsters that are attacking your displaced image, that are
several squares away, or that are peaceful can use undirected spells.
-- messages should correctly say whether the spell is undirected (a monster
was always casting at thin air or pointing at you and cursing, without checking
to see if the spell wouldn't require pointing)
-- Monsters which are attacking your displaced image, etc. use up mspec_used.
If they are casting an undirected spell, the spell still works.
-- Monsters which are not attacking can cast spells that don't attack.
-- If a monster didn't have ranged spellcasting ability (which most don't),
it would print a curse message from buzzmu() every round it was at range,
creating a useless stream of constant curse messages

I still haven't made spellcasters "smarter" in the sense of noticing whether
you have reflection, fire resistance, etc.  That opens a big can of worms
because it would mean giving monsters a memory.

Known bug: the higher level a monster is, the more spells it has; since it
chooses a noncombat spell by randomly picking a spell and casting if it
happens to be noncombat, the higher level the monster is the greater the
chance of getting nothing.
2002-01-11 01:09:07 +00:00
nethack.allison
9b7d9f29b5 From a bug report: monsters hit by polymorph
magic while wearing dragon scales/scale mail were being turned
into random monsters instead of into dragons.

Also

Two items from <Someone>'s list.

Files patched:
  include/obj.h
  src/mon.c, muse.c, worn.c, zap.c
2002-01-09 13:10:13 +00:00
jwalz
f8b01a8eb4 *** empty log message *** 2002-01-05 21:05:49 +00:00