Commit Graph

354 Commits

Author SHA1 Message Date
cohrs
a61e68069a Magic portals and levitation boots
From a bug report.  Removing levitation boots while hovering over
a magic portal causes the portal to be delayed since it takes time to
remove the boots.  This causes the portal to be taken via unmul in allmain.
At that point, the will activation message display but you won't teleport
until you type something.  Handle the delayed goto after unmul completes.
2002-08-05 00:57:21 +00:00
cohrs
132586f0b9 06009 - D/BUCX documentation 2002-08-05 00:20:10 +00:00
nethack.allison
8631cba725 newbie in-game assistance with Guidebook notation
Provide some command assistance for newbies, but
suppress it with !cmdassist in the config file.

If someone misinterprets the Guidebook ^D, ^T
type command notation, this will pop up some
further information to possibly assist them and
explain the notation.
2002-08-04 16:48:15 +00:00
nethack.rankin
9fa85b109b artifact manipulation
Fix an item from <Someone>'s list:  invoking or applying an
artifact might blast you; if it evades your grasp, the intended
action won't take place but will still use up a turn.
2002-08-01 23:20:34 +00:00
nethack.rankin
7191f3b8a5 dragon scale mail is magical
This reclassifies dragon scale mail as magic and leaves dragon
scales as non-magic.  Changing the latter would make it be easier
to obtain magic armor via polymorph; just kill some dragons and toss
their scales on the pile.  Unfortunately the logic used suggests that
unicorn horns ought to be non-magic too, but I left them as magic.
(Making them become non-magic would actually be a good idea as far
as balancing polypiling goes, but it's awfully hard to justify when
they produce should a wide-ranging magical effect when applied.)
2002-08-01 20:58:39 +00:00
cohrs
0823cb41be R1024 - Eyes of the Overworld effect delayed
The effect of the EOTO did not take effect until the next move.
Added a vision_full_recalc as suggested to resolve the problem.
2002-07-31 16:47:49 +00:00
nethack.rankin
aedd6947d4 runmode option
Provide user control over screen updating for multi-step movement
(run via shift, control, &c and also travel).  [See cvs history for
fixes34.1 for more details.]
2002-07-28 10:45:46 +00:00
nethack.rankin
c5540f4687 runmode option
<Someone>'s submittal of his `showrun' option has goaded
me to finally finish something I tried to implement some time back.
This adds a new run-time option called "runmode" which gives the
user control over how much screen udpating takes place during run
and travel movement.  It has four settings:
  teleport - update the map after movement has finished (this is
	the old behavior and also <Someone>'s !showrun behavior);
  run - update the map periodically (this is the new default);
	it uses (`moves' mod 7) to control the updating; it may
	need to have its own counter so that the updates are
	sync'd with the start of current movement rather than
	with `moves', but perhaps that won't matter;
  walk - update the map after each step (this is the behavior
	when <Someone>'s showrun is enabled);
  crawl - like walk, but with a longer delay after each step.

This option won't work well on configurations where delay_output()
doesn't produce a pause of reasonable duration, but I don't think
there's much we can do about that.

     The option setting ought to be stored in struct flags so that
it's maintained across save/restore cycles, but I put it into the
iflags structure with the other new options so that it won't cause
3.4.0 save files to be invalidated.

     I can't test the changes to Guidebook.mn; the corresponding
changes to Guidebook.tex process ok and don't show any obvious
glitches when viewed with xdvi.
2002-07-28 10:44:14 +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
02ed5c37c9 From the newsgroup, there was a discussion about how you
can't just blind yourself with a cream pie in your inventory
directly by applying it or by throwing it.

On 27 Jul 2002 14:11:06 GMT, <Someone> wrote:
> <email deleted> wrote:
>> <email deleted> (<Someone>) hypothesised:
>>
>> [cream pie]
>>> So I a)pply the pie. What I want to do is to hit MYSELF in the
>>> face with the pie, thereby blinding me and giving me T-P for
>>> just a few turns.
>>
>> Not a bad TTDTDTO ("Thing The DevTeam Didn't Think Of," which is
>> subtly different to a YANI, and not a bug; sorry, I seem to be
>> on a neologismathon today.)
> I tried throwing a cream pie upwards, hoping it would blind me,
> but no luck:
>
> "A cream pie hits the ceiling. What a mess!"
>
2002-07-27 20:48:45 +00:00
nethack.rankin
b5405940a2 R1007 - Monk kicking bug
Kicking a monster as a monk or samurai or while wearing kicking
boots might make it "reel from the blow" and be knocked back a step.
If that knock back put it into a trap which killed it, the kicking
code would kill it an extra time, then the player would get a warning
about dmonsfree finding the wrong number of dead monsters.
2002-07-26 00:33:14 +00:00
nethack.rankin
c740d732cc phantom venom
[ I didn't keep a copy of the message which reported this
  so don't have any reference number for it. ]

     If you used '/' to look at multiple items one after another,
then looking at floor or other item represented by the same '.' as
venom could result in subsequent things being falsely categorized as
possibly venom.  The subsequent items needed to have less than two
possible descriptions, and the triggering item needed to be a plain
dot rather than the graphic dot used for floor with IBMgraphics and
DECgraphics.
2002-07-25 23:55:06 +00:00
nethack.rankin
cdc0677383 ending hallucination while blind
Don't suppress hallucination on/off messages when blind.
This fixes the case where you might be observing hallucinatory
monsters via telepathy yet not be told that perception was back
to normal when hallucination timed out.  It does not fix the
case where temporary hallucination times out while the effect is
being blocked (in which case successful application of a unicorn
horn yields no feedback), nor the hypothetical cases where timed
hallucination starts or ends while also hallucinating for some
other reason (which could happen via polymorph someday if a
monster which is always hallucinating--the way that bats are
always stunned--ever gets introduced).
2002-07-24 06:13:29 +00:00
cohrs
59c34c852b sync Guidebook 2002-07-24 04:20:07 +00:00
nethack.allison
c6f7560bdd credit updates 2002-07-23 05:10:37 +00:00
nethack.allison
6bc604ecf3 Windows CE port addition 2002-07-22 03:27:01 +00:00
arromdee
74c5eae064 bear trap wizard wishing 2002-07-20 06:45:48 +00:00
nethack.rankin
34bcb2bb2b polyself typo 2002-07-19 01:45:26 +00:00
cohrs
a21ddbb2bf minetown guards outside the town proper
Pat forwarded a message from the newsgroup in March that the town guards
enforce rules even outside the town proper.  Fix: On room-based town levels,
check if the location is in a room containing subrooms (roomno will often
have a subroom id instead).  On the other levels (e.g. minetn-5), there are
no subrooms, so the whole level is fair game.  Currently, this is valid.
If fancier towns are added in the future, more flags or use of regions may
be required to tell where the town border actually is.  These checks are done
in a new in_town function.
2002-07-15 04:17:13 +00:00
cohrs
b440613866 B04010 - paper golems and fire traps
Paper golems take 100% damage in a fire trap.  Straw is very flammable
unless tightly packed, but straw golems have a lot of surface area, so give
them 50% damage.
2002-07-14 22:10:33 +00:00
cohrs
5d530348d4 containers and objects in special level descriptions
On mazelike levels, containers had to be listed before their objects.  But,
for roomfilled levels, containers had to be listed _after_ the objects.  All
our current levels that use containers with objects are mazelike, so I
changed the room behavior, updating the comment in lev_comp.y to match.
Other items/monsters are still processed in reverse on roomfilled special
levels, but I think this is OK.
2002-07-14 20:17:45 +00:00
nethack.allison
19225335bf B04008 Minetown fountain warnings prevent fountain gem/gold discovery
<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.
2002-07-14 17:19:40 +00:00
cohrs
909e262a6f B04005 - leash and uncontrolled teleportation
<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.
2002-07-14 03:06:19 +00:00
cohrs
adc4094d50 dwarvish indecision
<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.
2002-07-14 02:48:27 +00:00
cohrs
1238854154 R888 - panic while quaffing a potion of levitation
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.
2002-07-13 23:06:22 +00:00
cohrs
05e993d48e B04004 - naming polymorph potions
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.
2002-07-13 22:27:01 +00:00
nethack.rankin
34149babc3 plug fountain & throne SIGHUP cheat
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.
2002-07-13 13:11:51 +00:00
nethack.rankin
615d9dde2b B4003 - exercising spell skills
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.
2002-07-13 12:39:10 +00:00
nethack.rankin
30f6fbb5fe B04002 - blessed gain level vs XL 30
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.
2002-07-13 12:19:09 +00:00
cohrs
35914ed186 R919 - applying lances
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.
2002-07-11 05:16:27 +00:00
arromdee
f3db525ac4 chain summoning
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).
2002-07-09 07:10:21 +00:00
cohrs
568b8de533 kicking and killing an unseen monster
<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.
2002-07-09 04:21:58 +00:00
cohrs
034892d5a8 NO_TERMS bug
From a bug report, a missing check for defined(NO_TERMS) in pcsys.c
would result in a link time error.
2002-07-09 04:09:09 +00:00
cohrs
1c6535a655 riding speed
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.
2002-07-08 14:02:27 +00:00
cohrs
632e741a52 R853 - Items inside statues lost
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.
2002-07-08 00:15:27 +00:00
cohrs
e88a6182dd cancellation, polymorphed and unchanging
<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.
2002-07-07 23:25:43 +00:00
cohrs
c03c25b045 B01021 - Samurai quest doors
<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.
2002-07-07 20:57:13 +00:00
cohrs
4a5b7ef893 special level alignments
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.
2002-07-07 07:18:05 +00:00
cohrs
e8dc88c950 rotten food and veggie conduct
<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.
2002-07-07 05:07:53 +00:00
cohrs
26381228bc knights and covetous monsters
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.
2002-07-04 19:13:10 +00:00
cohrs
0859b5d30a B03002 - missing fountain messages
<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.
2002-07-04 18:25:26 +00:00
cohrs
2c6a1eb7e1 R972 - rust monster eating gold
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.
2002-07-04 17:47:18 +00:00
cohrs
ff68892016 B03001 - trapdoors while blind and levitating
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).
2002-07-04 17:29:42 +00:00
cohrs
8a44a437e5 R926 - polymorphed player does not explode at thin air
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.
2002-07-04 06:36:37 +00:00
cohrs
9d51c1853a cursed daggers thrown by monsters can go thru closed doors
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.
2002-07-03 06:35:35 +00:00
cohrs
c6ec3e35a7 dropping gold on an altar
<Someone> reported that dropping gold on an altar prints no message.
As a side effect, gnostic conduct was never affected, which seemed odd;
dropping other known objects would still affect your gnostic conduct.
While fixing this, I noticed a GOLDOBJ-related bug when dropping gold while
levitating.
2002-07-02 05:55:23 +00:00
cohrs
2c277e15d1 R975 - message for charging for items lost in a cursed magic bag
The loss message was not always printed due to testing the wrong variable
before printing the message.
2002-07-02 04:14:59 +00:00
nethack.rankin
3842c87c0f grammar of food warnings
Change "The corpses smell like it could be tainted! Eat it anyway?"
to be "The corpses smell like they could be tainted! Eat one anyway?"
when eating one of multiple stacked food objects.
2002-07-02 02:39:27 +00:00
nethack.allison
ea268b5b6f early directory validation
Allow early prefix directory validation to help prevent
failed games and lost save files due to incorrect config
file settings.
2002-07-01 22:42:57 +00:00
cohrs
fbdc238f33 grateful frozen monsters
a frozen (possibly sleeping) monster cannot be grateful unless it wakes up.
From a bug report.  The pit case can only happen if mfrozen is
non-zero, but other traps may leave msleeping set as well.
2002-07-01 02:44:26 +00:00