<Someone> writes:
Why do you "feel transparent" when you gain see invisible from a
fountain when blind and _not_ invisible? Transparency usually refers
to _being_ invisible.
Another try.
<Someone> writes:
Why do you "feel transparent" when you gain see invisible from a
fountain when blind and _not_ invisible? Transparency usually refers
to _being_ invisible.
Good point. I think this may have been what was intended, but it's
been like this for quite a while.
<Someone> writes:
I can accept that losing gold into a fountain recharges it to make it
possible to find a gem in it in future (however weird that is). What
_does_ seem wrong is that receiving a warning about a Minetown
fountain prevents finding gems and gold there.
This does not fix a reported bug where you
can't attack a hidden creature that is
co-located with a boulder, but it might
assist the player in understanding what is
going on.
<Someone> reported that after an uncontrolled teleport due to eating a
leprechaun, his leashed pet was still leashed until he took one more step.
The usual approach which included disallowing the teleport seemed wrong in
this case, so I put in an abbreviated version that does its checks but does
not disallow the teleport. The pet teleports with you in the same cases as
other teleports, but when it doesn't, the leash snaps loose.
<Someone> (and later <Someone>) reported along with several other
things of a dwarf that stood in place and switched between his pick-axe and
broadsword on successive turns. Fixed by bringing the logic in the two
cases in line. The code now prefers to leave the hostile dwarf with a weapon.
Now that the in_use flag is set for potions being quaffed, use the in_use
flag in general in destroy_item to avoid destroying the in use object, on
the assumption that the caller will call useup when finished. There are a
few places that set then unset in_use, but these don't currently result in
a call to destroy_item. The current_wand hack was not removed, since its
logic appears to allow destroy_item to still destroy the item.
Provide a chance for the player to name a polymorph potion if you dip
something into it and nothing happens.
Also fix several places in dipping and drinking potions where the HUP cheat
would allow you to use the potion a 2nd time, made more important since
the polymorph sequence includes what is currently a unique message.
When using a fountain or throne, getting a --More-- prompt
usually means that you're about to be told that it has just dried
up or vanished. But since that topology change didn't occur until
after the message, players could cheat by forcing SIGHUP instead
of answering the prompt; the resulting save file would retain the
original topology. So change the dungeon prior to telling the user
about it.
The `fixes' entry possibly belongs in the tty-specific category
but since the change is to core code I put it in the general section.
The spellcasting code stopped counting a spell class's skill
exercise once that reached expert, so the only way that it could
end up being flagged as having reached maximum in the #enhance
feedback would be if it had already received enough exercise to
reach the hypothetical level beyond expert while it was still at
skilled or less.
It also didn't count the exercise if you were restricted in
the spell class, but that wasn't necessary because becoming
unrestricted--which I don't think is even possible for spells at
present--resets the counter back to 0 to discard any exercise
achieved while ineligible.
Fix the problem [reported in the newsgroup and forwarded by <Someone>]
of blessed potions of gain level having the possibility of reducing
your experience points if you were already level 30. The random XP
value that averages "half way to next level" could be less than your
current experience if you had gotten to level 30 via such a blessed
potion or had drunk at least one of same since reaching that level.
This didn't really make any difference to game play since you weren't
losing any levels, HP, mana, or score, but it was visible to users who
enable the `showexp' option.
Fixes 2 bugs:
1) an impossible() could occur if you applied a lance against a long worm
because the code uses thitmonst to do the hitting, but didn't set bhitpos,
which is required before calling thitmonst.
Add the missing assignment.
2) applying a lance would never mark a knight as a caitiff. Added a new
check_caitiff function and called it from the 2 existing checks and in
the lance code.
> The intention is, I believe, to cater for the situation where you, a
> chest, and a dungeon-trap are all on the same square; previously
> (C340-71), you wouldn't have been able to check the chest for traps
> because an #untrap in direction '.' would always have tried to disarm
> the dungeon trap. However, since you can't trap-check containers on
> adjacent squares, it'd wouldn't hurt if the question was dispensed
> with when you specify a direction that isn't your square.
>
> (Note that "you cannot deal with traps while trapped!", so there's
> still several situations when you can't trap-check a chest on a
> trap-square, even though you can loot it, until you've untrapped
> yourself; is this really consistent? Should the if(u.utrap) check
> be moved to the "case y:" branch of the switch?)
This adds a further throttle to chain summoning. Monsters can only summon
spellcasting nasties if the nasties are lower level than the summoner, which
makes infinite chains impossible (as long as the player figures out which
monster to kill first).
<Someone> reported that kicking [unlike hitting] an unseen monster
to death would leave an "I" on the screen. This was due to a missing
DEADMONSTER check. I also noticed that code to avoid leaving an extra "I"
behind when a monster jumps of of the way was only half right, resulting in
an extra "I" anyway.
While riding, your speed was calculated using the steeds speed only when
moving multi locations. So, if you were walking step by step, it would use
your speed instead. Changed this to use the steed's speed any time actual
movement occurs.
If you cast stone to flesh on a statue on a location containing a monster,
the statue would be turned into a corpse and the contents lost. This
didn't seem to be appropriate for the spell. Now the contents spill out.
<Someone> reported that a wand of cancellation would ignore Unchanging,
noting the case of cancelling yourself while polymorphed into a stone golem.
He thought the wand should win, killing the player. I felt otherwise,
since the case he specified passes the flag allow_cancel_kill == FALSE.
<Someone> wondered why there were no DOOR:nodoor specs for several doors in the
Samurai quest. I wasn't positive, but it seemed like these should have
been DOOR:closed, which is what I've added.
I saw no straight-forward way to insert the message earlier in the
sequence, so... I reasoned that you might not yet have a good grasp and
not be able to continue holding the object when reverting form. So, I made
this into a drop case and made the drop message a rare past tense message.
Past tense is still OK for the other drop cases.
While testing this, I noticed you'd keep stealing even after reverting
form. Added code to stop this. Finally, there was a missing MON_NOWEP
call in the stealing code, added it.
> > 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".
From the newsgroup a while back - special levels w/o a specific alignment
should inherit their alignment from the dungeon. Some places explicitly
checked the dungeon if the level alignment wasn't set, at least one did not.
<Someone> reported (in April) that eating cursed tripe, for example, did
not violate vegetarian conduct. This patch moves the various conduct
checks into common code that is executed before the rotten state of food is
determined.
Implement Pat's suggestion of setting the mavenge flag when a covetous
monster flees, since they may subsequently teleport back and attack even
if mflee is set.
<Someone> reported that dowaternymph and dowaterdemon did not print a message
when their G_GONE checks failed. Now they do. I wasn't feeling
imaginative, so the the dowaterdemon message is the same as for no snakes.
When !GOLDOBJ, player polymorphed to a rust monster that attempted to eat
gold in the inventory would fail to eat it, but the gold would be consumed
anyway. Under GOLDOBJ, a later check would work around the invalid prompt.
The seetrap() was done for trapdoors & holes independent of whether a
message was printed. Move the seetrap call into fall_through where
the message logic lives (Sokoban holes always activate).
Reported that player polymorphed into an exploding monster does not explode
when attacking thin air. Also noticed that if player is Unchanging, they
wouldn't die after exploding in the existing code. Set u.mh = -1 to ensure
they won't still be around after exploding.
based on a bugfix forwarded by <Someone>, check for closed doors and drop
the missle before it. I re-arranged the pre checks a bit so m_throw no
longer needs to trust the caller to ensure everything is OK beforehand.