Dead monsters that had traits saved with the corpse would revive as
the same gender, but ordinary corpses revived with random gender so
could be different from before they got killed.
Since corpses of monsters lacked gender, those for monsters with
gender-specific names were described by the neuter name.
This is a fairly big change for a fairly minor problem and needs a
lot more testing.
Fixes#531
^X feedback and end of game disclosure reported
Your two weapon skill {is,was} [also] limited by being <skill rating>
with with <secondary weapon>.
when the skill rating for the secondary weapon is/was less than the
skill rating for two-weapon combat. The corresponding message for
primary weapon did not duplicate the word "with".
Fixes#530
Change the default value of autopickup to off. Having it on is
harmful for new players, making them very easily burdened.
We can't expect new players to know how to configure
pickup_types, pickup_burden, and pickup exceptions.
Change the default value of color to on. We can safely assume
new users have a terminal that supports color, and most people
want color.
Have curses call the core get_count() routine instead rolling its
own so that backspace and delete are supported. That part was
trivial to accomplish. Unfortunately it brought the disappearing
menu phenomenon back so it became more complicated overall.
This fixes the disappearing menu, but not curses menu count entry
failing to honor backspace/delete. Entering two or more digits
to get a "Count:12" message, followed by non-digit which removes
that, resulted in the menu for apply/loot in-out container operation
vanishing while it was still waiting for a choice. (Typing a choice
blindly did work.)
The code intended to handle this. I don't understand why refresh()
wasn't working. Reordering stuff didn't help until I changed that
from refresh() to wrefresh(win).
The original Count:123 display was limited to 25 characters and
menus to half the main window, so they didn't overlap. I made the
count display wider--because it is now also used for 'autodescribe'
feedback when moving the cursor around the map--so made something
that originally was impossible become possible. One line of the
menu does get erased while "Count:" is displayed, but then gets put
back by the wrefresh().
The stair handling reorganization changed drinking a cursed potion
of levitation to only check whether stairs up existed on the level
instead of whether the hero drank the potion while at their spot.
That resulted in always attempting to go up and then getting "you
can't go up here" when not at stairs instead of the intended "you
hit your head on the ceiling".
Fixes#527
being given when it shouldn't be. A change for perm_invent handling
back in March screwed up the if/then/else logic for code executed
when finishing MENUCOLOR manipulation via the 'O' command. That
resulted in the reminder to set menucolors to True being given even
when it was already True if perm_invent happened to be False.
I noticed this myself recently, then neglected to investigate it or
even write it down anywhere.
Fixes#526
On terminals with at least 16 colors there should be no need for special
handling dark gray.
The curses code uses COLORS < 16, COLORS <= 16, COLORS > 16, or COLORS >= 16
at several places although I'm not sure if they are correct or which could
possibly be off-by-one errors.
But realistically in this case, we only need to distinguish between 8 color
terminals and terminals supporting more than 8 colors as this will mean the
terminal supports at least 256 colors.
Quit is not a commmand you usually need very often, and generally
don't want to use by accident.
Apparently, on Spanish keyboard layout, n-with-tilde is interpreted
by the Windows NetHack as M-q, and the key is next to l. Loot also
asks for confirmation, just like quit.
Prevent stuff like this by not binding the quit command to any key.
Valkyrie player monster was set to be chaotic even though valk
hero is lawful by default and can also be neutral but not chaotic.
Change it to be lawful. Warrior quest monsters attending leader
were also chaotic; change to lawful to match revised valk. If
hero is a neutral valk then both the player monster and warriors
get changed to neutral at start of game (and stay that way even
if hero changes alignment). The leader defaults to neutral but
gets changed to lawful for lawful valk hero.
Attentdant quest monsters with the healer leader were lawful but
if they gain enough experience they get promoted to healer, so
make them neutral like the latter.
I've added some miscellaneous comments and done a small amount of
reformatting. Comment about alignment changing in bones applies
to all roles that can be played with different alignments, not
just to valkyries. It isn't new; I just thought that it ought to
be mentioned somewhere.
Fixes#521
Add a page citation for passage #1 and change the wording of that
passage to match the book: the second "does not need" should be
"doesn't even need".
Also make the comments about various added passages (for other
books) be more consistent.
Like /m for nearby monsters and /O for all objects, implement /^
and /" to view a list of nearby traps or all known traps. Only
lists discovered traps (or mimics immitating traps, or detected
door or chest traps iff still shown as such on map), but lists
map traps even when an object or monster at the same location is
blocking view of them.
For traps on the Water and Air levels that have been mapped, they
will only be listed when within line of sight so that this feature
can't be used to track portal location as it moves around. However,
when within line of sight it does allow the portal to be recognized
if that has become covered.
When using '//' or ';' to examine the map and player uses '^' to
move the cursor to the next displayed trap, have cursor go to
locations containing webs, the vibrating square, or other non-'^'
trap when such is the next trap symbol up. Otherwise looking at
webs is very tedious because '"' is treated as a look-at command
rather than than a target symbol.
Allow killing your quest leader, just to make games winnable if you
converted before doing the quest.
Boost the quest leaders and give them some equipment. King Arthur
gets Excalibur. Killing quest leader gives really bad luck and
makes your god angry at you, and killing quest guardians gives
smaller penalties.
This is based on both the EvilHack implementation by
k21971 <keith.simpson1971@gmail.com>, and xNetHack
implementation by copperwater <aosdict@gmail.com>.
Another SliceHack feature. However, the math implemented by SliceHack
seemed incorrect, so I tweaked it.
Pets previously attacked monsters of up to one level higher than them as
long as they were above 25% health. Now, they will attack monsters as
follows:
100%: up to level + 2 (pets could not attack this high before)
80%+: up to level + 1
60%+: up to same level
40%+: up to level - 1
25%+: up to level - 2
The case that prevents any attacks below 25% health still exists.
Despite active explosion attacks being called explosions in-game,
they only affected a single target, and were handled differently
from actual explosions. Make them do an actual explosion instead.
This should make spheres more interesting and inspire different
tactics handling them.
Because spheres deal more damage on average and can destroy items
in their explosions, their difficulty has been increased slightly.
Polyselfed hero exploding won't cause elemental damage to their
own gear.
Originally from xNetHack by copperwater <aosdict@gmail.com>.
Adds possible callbacks for "start_new_game", "restore_old_game",
"moveloop_turn", and "game_exit" which when defined, will be called
from core code at the appropriate time.
Adds lua hooks for dump_fmtstr (only if DUMPLOG), dnum_name, u.moves,
u.uhave_amulet, and u.depth.
The #version command retrieves the lua version number to include
in its output, but it was leaving the 'in_lua' flag set. So if a
later 'O' command tried to complain about a bad option value, the
error reporting routine crashed.
... and make them actually deal damage based on the energy
it would've drained, if you have Antimagic.
Also prevent them appearing too early in the dungeon.
Allow drain energy attacks (and anti-magic traps) drain more
than your level of energy.
Make eating magical monsters such as wizards and shamans give
the same tiny buzz bonus as eating a newt.
Add missing italics to several words in passage 1.
Add three new passages, bringing the total to 13.
The third one ended up being fairly long. I made note of it
intending just the bacon joke but when transcribing I backed up
quite a ways. The context is fairly unusual for a Discworld story.
Higher charisma will make it more likely for monsters to be affected.
Conflict will also now require the monster to see the hero.
Originally from SporkHack by Derek Ray.
Applying a novel to flip through its pages described them as having
"ink" rather than "magical ink" but that wasn't a very suitable way
to distinguish them from spellbooks since their ink never fades.
The Book of the Dead's pages "glowed faintly red" even when the
hero couldn't see them.
Fixes#513
level-drained below level 1. No "you die" or equivalent, just
straight to being life-saved or to "do you want your possessions
identifed?". Change it to issue "Goodbye level 1." The fact
that it is has been fatal will become obvious. An issue comment
on github pointed out where the fix was needed.
Fixes#511
Touch of death will now do 50 + 8d6 damage, and drain max HP for half
of that. If the drain is equal or greater than your max HP, then it
will kill you instantly.
Change originally from SporkHack by Derek Ray.
If monsters see you resist something, generally elemental or magical
attack, or if they see you reflect an attack, they learn that and
will adjust their attack accordingly.
Originally from SporkHack, but this version comes via EvilHack with
some minor changes.
Characters who start out knowing non-magic armor should not know
cornuthaum and dunce cap. (Which suggests that those probably
ought to be classified as magic.)
Take away knowledge of polearms from barbarians and valkyries.
Add knowledge of all bows/crossbows, arrows/bolts, and spears to
rangers.
Add knowledge of all daggers to rogues. (Very minor; non-elves
recognize elven daggers and non-orcs recognize orcish daggers.)
[From 14 months ago; I've got an old email for this but can't find
it in the bug list.]
Some things shouldn't hurt the hero when thrown upward and falling
back on head. I've been pretty conservative about what won't do
any harm.
A recent change made it possible for a glob to have its dknown flag
cleared and that exposed globby_bill_fixup() passing Null shopkeeper
to get_cost(), triggering a crash.
Make the routine that clears dknown/known/bknown/&c also be the
routine used to initialize those flags for a new object so that it
is the place that handles various special cases. That hides the
shop bug again.
But also fix the shop bug even though it won't be triggered.
Fixes#509
Add page citations for first two passages and some missing italics
to the first one. Fix spelling of "fossil" in passage 8.
Add two short, new passages bringing total to 13.
For the time being at least, take out "uninjured/barely wounded/
slightly wounded/wounded/heavily wounded/nearly dead" description
on monsters examined with ';' or '//' or '/m' and on final tombstone
and logfile entry if hero gets directly killed by a monster.
Maybe it will be revisited later....
when compressing or uncompressing a save file. Defining
VAR_PLAYGROUND forces PREFIXES_IN_USE to be defined, and the latter
causes docompress_file() to be called with save file name containing
a full path instead of just save/xyzzy.Z relative to the playground.
Depending on the value of VAR_PLAYGROUND, that could be too long for
the buffer used to make a copy of the name with ".Z"/".gz"/".bz2"
appended.
Probably only applies to Unix/linux/OSX configurations.
Fixes#507
zapped at corpse flagged as "no revive". A fairly recent change
made undead turning override no-revive if it hit someone carrying
a corpse flagged that way (corpse of a troll killed by Trollsbane
or stuffed in an ice box or explicitly cancelled) but neglected to
do so for corpses zapped while on the floor. This fixes that, for
undead turning zapped by monsters as well as by the hero.
Fixes#505
that has no nutritional value. Prevent applying the partly eaten
attribute to wished for food if the full nutrition isn't at least 2.
The problem case was 0 nutrition wraith corpse, yielding "partly
eaten food (1) more nutritious than untouched food (0)" when setting
the corpse's weight. That one was possible in 3.6.x, unlike corpse
that was actually partly eaten and then revived as a zombie (which
was just fixed for triggering the same warning).
Wishing really ought to ignore "partly eaten" for anything that is
normally eaten in one bite but I'm not sure how to handle that.
Fixes#504
Issue was about being asked what to call a previously seen potion
which has been picked up and thrown by an unseen monster. Hero
shouldn't remember what the item description was. This is a much
more general change than just fixing that. Any item picked up by
an unseen non-tame monster will have all its *known flags cleared
since the hero can't see what that monster does to it. Same if an
item is picked up while seen but then used when unseen.
Unseen pets are excluded from the pick up case--but not the use
case--because they pick up and drop stuff continually and players
would just slaughter them if they caused item information to be
forgotten.
Fixes#493
When unlocking a trapped container, any blessed key was behaving
as if it was the rogue's Master Key of Thievery: detecting the
trap, asking whether to untrap, and always succeeding if player
responds with yes. The intended behavior is that the Master Key
will behave that way for a rogue if not cursed and for non-rogue
if blessed; it wasn't supposed to affect ordinary keys at all.
Fixes#503
For Lords and Ladies, add a new, 13th passage.
For Men at Arms, include a page citation for the first passage
and add some missing italics to that one. Add a missing word to
the second passage.
When a potentially bribable demon lord becomes angry because the
hero is wielding Excalibur or Demonbane, avoid "It looks angry"
if the demon can't be seen. The pull request just suppressed the
message in that situation; I've added an alternate one.
Fixes#498
Implementation of '|'/#perminv command for scrolling perm_invent
deliberately disabled menu_headings (video attribute for object
class separator lines) on the persistent inventory window under
curses. I don't recall why (possibly because it isn't actually
a menu) but there's no compelling need to do that, so reinstate
heading attributes.
Fixes#499
The report was misleading because the warning about partly eaten
food being more nutritious than untouched food was actually given
when the partly eaten corpse was used to calculate hit points of
the new monster as the corpse was reviving as a zombie, rather
than when a bite was taken from it. Pull request #497 had correct
analysis and a fix, although I've put the fix in a different place.
Closes#497
Issue #495 and pull request #496 are both about a typo in recently
modified ^X feedback displayed when held by a monster: "createure"
should be "creature".
Closes#496Closes#495