-----------------------------------------------------------------------------
Buglist: actual bugs that may get fixed someday
-----------------------------------------------------------------------------

=============================================================================
Using the '>' command to end controlled levitation doesn't set the
Heart of Ahriman's invocation timeout, allowing the player to resume
levitating immediately via #invoke.

A funny thing happened at the portal to Rodney's tower. Wearing
levitation boots, I floated onto the portal, and was ported to the
tower. Then I took off my boots, and got "You activated the magic
portal!", but no immediate teleport. I was able to make one more
move, stepping off the portal, and _then_ the teleport happened.
I reproduced this in wizard mode - only levitation boots work that
way, the ring doesn't. It turns out that after landing on the portal
it is possible to take one action (which could be a time-taking move,
but also checking the inventory or somesuch) before the teleport
actually takes place. [mhed@nym.alias.net]

Moving when strained or overtaxed was supposedly intended to cause
HP loss. allmain.c. But it looks like the flags.mv is set (in cmd.c) 
only for multiple movement commands, not when walking step by step.
A wizmode test confirmed that HP loss happened only when multi-running; 
simple walking resulted in HP regeneration.  The same reason (flags.mv)
is probably responsible for the steed being affected by the character's 
speed boots when walking step by step. 
> if (wtcap > MOD_ENCUMBER && flags.mv) {
>    if(!(wtcap < EXT_ENCUMBER ? moves%30 : moves%10)) {
>       if (Upolyd && u.mh > 1) {
>                u.mh--;
>       } else if (!Upolyd && u.uhp > 1) {
>                u.uhp--;
>       } else {
>                You("pass out from exertion!");
>                exercise(A_CON, FALSE);
>                fall_asleep(-10, FALSE);
>       }
>    }
> }
[mhed@nym.alias.net]

Prisoners for the Dark One's dungeon? 
[psmith@spod-central.org]

Yanked towards water with grappling hook but don't fall in?
[psmith@spod-central.org]

Drain life requires you to reach floor to wipe an engraving.
[psmith@spod-central.org]

Orc monsters should be given poison res? [psmith@spod-central.org]

Ninja monsters should get multishot bonuses with yumi-ya? 
[psmith@spod-central.org]

Chromatic Dragon should have reflection? [psmith@spod-central.org]

stone-to-flesh monsters' inventory? [psmith@spod-central.org]

Releasing your pet from a bear trap by displacing is silly.
[eino.keskitalo@purkki.mbnet.fi]

When punished, being teleported always places the iron ball underneath you
even when you land at a spot that's within range of the current ball&chain
position.  Since the teleport mechanism is used for crawling out of water,
this can produce an even stranger effect:  if you're carrying the attached
ball when you step into water and it happens to be chosen as an item to
drop in order to lighten your load, it will end up crawling out of the
water with you.  (Ie, it will end up underneath you on land rather than in
the adjacent water where it was actually dropped.)

Monster spellcasting is in serious need of overhaul.
Clerical spell `case 1' has ``if (...) {} /* else fall into default */''
but the default case has been moved away so the comment is a lie.
Monsters which cast spells automatically "cast at thin air" if they don't know
where you are.  In fact, castmu() includes undirected spells (healing) which
should still be possible under these circumstances.
The higher level a monster is, the more likely it becomes to cast the wimpy
"default" spell.  This is particularly silly for the Wizard who has a higher
level each time he's reincarnated.  Beyond that, spell using monsters ought
to pick their spells intelligently rather than randomly, especially once
they learn that their target is magic resistant.

Recoil from throwing while levitating won't trigger every type of trap.
Some were checked for and added in 3.3.2 (magic_portal, fire, pits et al on
Sokoban), but there are others that you can bypass just by throwing
something in the opposite direction.

When a wand of striking hits a boulder or statue sitting on the down 
staircase, the resulting rubble/contents should have a chance of
falling down the stairs. (Possibly the same situation for trapdoors/holes).

Individually scattering objects that fall down stairs and holes is 
inefficient when multiple objects are migrating. It might be better to place 
all of the migrating objects that are being scattered onto a special obj 
chain which scatter() could easily be changed to accomodate.

Occasionally an eating attempt which gets interrupted will produce a
food object that is not flagged as partially eaten, even though it did
get split out of a merged group.  (Observed in both 3.1.3 and 3.2.2), 
for ordinary food rations carried in the player's inventory.)

Occasionally player will get messages about become encumbered while eating,
when they didn't begin eating encumbered, but they return to proper encum-
berance when finished eating.  There is also a problem with partly eaten
food rations carrying the wrong nutritional value (player can start out weak,
get interrupted, finish the partly eaten ration, and end up satiated) which is
likely the same bug.

For "traditional" menu style, pickup and #loot/apply can't accept an 'm'
response to bring up a menu upon request when all items involved are of
the same class, because the prompt where that response is allowed only
gets issued when multiple classes are present.

Slower decay for corpses on ice has been re-implemented, but slowing down
the rate at which they become unfit for consumption has to be looked at.

Several special levels exhibit lit-wall anomalies.

float_down() messages conflict with drown() and lava_effects() messages.
There's a kludge in place to keep drown() messages from causing duplicate and
out-or-order float_down() messages, but lava_effects() has cases where you can
float_down w/o any messages being printed at all.  These should be very rare,
but it should still get fixed in a less kludgy way.

The resistance delays are very slow on some machines and fine on others, with
no apparent pattern.  There is a proposal to do timing in a different manner.

Monsters do not get affected by special properties of many types of armor,
like levitation boots.  They do get affected by speed boots, but do not
consider such items to be any better than other shoes which grant 1 point
of AC when deciding whether to wear them.

Corpses buried under ice ought to be handled as if they were inside an
ice box.

If you dig through the walls of two shops at the same time, only one shk
will come seeking payment for damage. If you then beat him back into his
shop, leaving the other shop behind, the angry shopkeeper suddenly calms 
down and welcomes you to his shop.

Throwing, dropping, or kicking a land mine object ought to have a chance
of setting it off.  Ditto for hitting it with striking magic or rolling
a boulder over it.  Likewise for armed land mine traps.

There are several TODOs and one fixme still in the code.  They tend to stay
around for a long time.

Teleporting while using tiles may place you one tile beyond the edge of
the display screen, and place the crosshair on empty space.

Engraving requiring multiple turns ought to be recoded as an occupation
so that it could become interruptable.

Being punished on the Plane of Water does not work correctly.  The ball
& chain always remain at your current location whether you're dragging
them around or whether you're just floating along with an air bubble.
(This is bad, but better than the previous behavior of panicking when
an air bubble tried to move them.)

Monster extinction is now a little better, but some cases are not covered
which would logically not "use up" the supply of wild monsters.  Monster
cloning is explicitly such a case; there are some cases that have been
missed for now.

Some of the new monsters (especially water monsters) never appear at random.

"The combat suddenly awakens you" printed when player was asleep from a
sleeping gas trap and woke up.  No combat was present.

The region code displays a fog cloud glyph for clouds, but '/' identifies it
as a vortex.

Reported but unconfirmed bugs:
-- Strange things happen to items in chests pets carry downstairs.
-- Several reports of core dumps when monsters resist an effect.
-- There seem to be more reports of death by trickery than can be accounted
   for by misset NETWORKs.
-- newexplevel() called rnd(-1).  I seem to remember this being a Xenix
   compiler bug, but I'm not sure.
-- Reports of minor terminal weirdnesses especially after NetHack dies after
   catching a signal.
-- Reported problem with loss of hit points for no apparent reason until
   player was left with 1 out of 1 hit points.
-- Walking around in the Gnomish Town, when I suddenly noticed my cat
   wasn't following me around anymore. It appeared to be hanging around
   somewhere near an outer wall of a food shop, on the other side of which
   was lying a tripe ration and would not move. [Boudewijn Waijers]
-- Monsters were displayed as 'I' (unseen monster) but were referred to by
   name.  [Irina]
-- A wand of secret door detection self-identified while engraving even
   though it didn't find anything.  [Irina]

Riding bugs:
-- If you have see invisible and your invisible steed becomes truly 
   invisible (potion timeout or ring removal) we need to revert to 
   showing the player in that situation. The u.usteed check in the 
   display_self() macro could become u.usteed && !u.usteed.minvis 
   to accomodate that.
-- Land mine traps cause wounded legs when the character is riding, and 
   don't do any harm to the steed.  
-- Wielding Stormbringer while riding should result in it attacking
   your steed on occasion.
-- There are several inappropriate items around riding a steed
   with wounded legs: 
   -Dexterity is periodically abused.
   -Wounded legs are a minor prayer trouble.
   -Wounded legs are considered an unfixable unicorn horn trouble.
   -Falling/being thrown from steed doesn't incur usual wounded-legs DEX hit.
-- The steed might want to wander about when you are paralyzed (of course the
   knight's well-trained pony wouldn't)
   [eino.keskitalo@purkki.mbnet.fi]


Platform specific bugs:
-----------------------
MAC
      - Doesn't work well when switching between foreground and background.
      - Gives a "type 1" error for some people on startup (unconfirmed --
	may be due to MW compiler bug).
MSDOS
      - The Rogue level is unable to use the proper characters for armor or
	rings, since they would get interpreted as control characters.
      - "RAMDISK" feature in defaults.nh hasn't worked for some time 
	and is past much of its usefulness. A temp directory would be 
	more appropriate.
      - The MSC7 compile results in "stack plus data exceeds 640k" messages.
      - Clearing the screen doesn't necessarily work.  For instance, a bad
	options line can leave "Hit <Enter> to continue." on the bottom of the
	screen, which ^R will not redraw.
      - Compiling without DLB using DJGPP does not work with the supplied
	Makefile.
      - On the djgpp version, a large number of arguments to "nethack -s"
	can crash the program.  "nethack -s *" in a directory with a lot of
	filenames can trigger this problem.
      - set_bonestemp_name() needs to be fixed for the #if MICRO configuration.  
        It currently uses the device+directory path for level files, but bones 
        can be placed elsewhere so renaming from the temp name to the final 
        bones file name isn't reliable.
NT
      - With console window larger than 80x25 (80x43) some commands that 
	display text underneath the map don't clear to eol, so you get 
	stray chars left there (?a, ?b, ?c, ?g and ?i, but not others).
      - When a game is started on a console larger than 80x25, the game
	only occupies the first 25 lines, leaving whatever junk happened
	to be on the screen prior to starting NetHack still there.
Unix

X11
      - It is possible to get a prompt which does not vanish from the screen.
      - Anything which gives two prompts in a row at which one may type a single
        character, has a several second delay between when the single character is
        read for the first prompt and the first prompt is erased, and the second prompt
        is printed.

tty

Guidebook
      - various mentions of spellcasting are all based on the old system
        rather than the present wizard patch implementation.

------------------------------------------------------------------------------
Problems/tradeoffs which are probably not going to get fixed
------------------------------------------------------------------------------
Some quest messages get delivered when they no longer make sense, such as
the dying threat of a quest nemesis being given after it's been beheaded,
petrified, or disintegrated.  Likewise, at least one of the quests gives
"you sense the presence of the {quest artifact}" message upon return to
the goal level, even when it happens to already be in your possession.

If a quest leader gets polymorphed and then killed before quest completion,
the code which suppresses the call for assistance when he's dead doesn't
notice.

Energy monsters, like yellow lights, ghosts, and wraiths, are treated like
solid monsters inappropriately in several ways.

Because there is no record of which squares a leash is in, leashed
pets can follow you through a different door than you left a room
from, or teleport through a door you closed between yourself and it.

"baby red dragon", &c. is a kludge.  The "correct" way to do it would be to
use monsters with a small mlevel for baby monsters, but this has several
problems such as name_to_mon() not working, random generation being unable to
create them earlier, and inability to create them with worse armor classes or
attacks which do less damage.

The "/" command, when used on areas outside of rooms, guesses (dark part of
a room) incorrectly. Correcting will require a new glyph type (ie, unknown
or unexplored area).

There are hooks for invisible objects, but they're not really implemented.  It
has complicated ramifications involving which monsters can see and pick them
up (and whether the player notices), ensuring snakes cannot hide under them,
and whether they can be taken out of containers.

Missile weapons not hitting their targets always drop to the floor where
the targets are.  What should happen is that it sometimes drops and sometimes
whizzes by (possibly to hit a monster behind it) depending on several factors:
Is the monster's AC because of scales, hide, etc... (so missiles which "miss"
actually hit and dropped but didn't injure) or is it because the monster is
small and quick (so the missile whizzed by)?  Is the monster flying or on the
ground?  Is the player levitating?  Is the player unusually short or tall
(i.e., if the player is polymorphed), etc....

There is a problem with alignment: if you change alignment, peaceful monsters
all stay the same and killing them is now bad for your new alignment--and thus
good for your old alignment.  The "obvious" solution is to change the
peacefulness and relative alignment of the monsters whenever your alignment
changes.  This does not work because since monsters only have a percentage
chance of peacefulness due to alignment, you can change and change back,
whereupon the monster peacefulness will be distributed differently than when
you started.  This also ignores monsters on other levels, whose peacefulness
distribution would not change--for consistency, if you changed from lawful to
chaotic and back, since peacefulness of monsters on your own level got
redistributed, so would peacefulness on those other levels.

You can open/close doors diagonally, but cannot enter them diagonally.  This
seems inconsistent.  [Comment:  The main reason why this is blocked is
because of shop behavior.  Allowing diagonal entry will nullify the body
block by the shk, when you carry unpaid items.  If diagonal moves are
allowed, shopkeepers should close the door when you're inside.  IM]

Some of the data.base descriptions are either misleading or downright false
when applied to the NetHack monsters.  (I'd hate to try counting the number of
times people posted to rec.games.hack mentioning using a mirror on a
cockatrice, for instance).  On the other hand, these descriptions are based
on the traditional properties of monsters, so it's not clear people are trying
things based on the descriptions.

Monsters cannot use AD_STCK or AD_WRAP on other monsters.  The complications
are too great, and would add little to the game.

Polymorphed players, as well as monsters, who swallow monsters either totally
digest them or immediately regurgitate them; unlike monsters who swallow
players, they cannot have their victim inside them for several moves.

You cannot stop eating, transcribing, or removing armor, save the game, restore
it, then expect to continue.  These use static data structures which aren't
saved.

Problems can arise when your movement is being stopped by two different
things, both of which use nomul() and/or nomovemsg.  (Still possible, though
much less likely.)

There is no option to not hit certain monsters such as floating eyes.  This
is not likely to be "fixed" as the resulting risk is inherited directly from
rogue's floating eyes and ice monsters.

If you're blind, or the swallower is invisible, you still see the interior
of a monster when swallowed. [I think that the monster should show up when
blind.  After all, you can feel it around you.  For invisible swallowers,
it depends on what is meant by invisible.  If invisible means "bend light
around you" then the interior _should_ show up.  If invisible means "you
are transparent" then the interior should not be displayed, and, in fact,
the dungeon should be displayed around the hero.  -Dean]

The color display on color screens is not really integrated into object
visibility.  Seeing the color does not cause dknown to be set even for a
colored object.  Similarly, if dknown is not set (i.e. when blind) the object
shows up in color anyway.

The monster movement rate is also used to decide when the monster attacks.
Therefore, a monster with half normal movement rate (6") also attacks only
half the time.  This gets ridiculous in some cases (mimics, puddings), as
well as making soldiers less tough than they probably were meant to be.
The monster difficulty level calculation doesn't take into account infrequent
attacks due to a low movement rate, either, and many monsters are obvious
ports from AD&D where the rate does _not_ reduce the number of attacks.
The fix itself is fairly simple, but some balance testing will be needed.

The Amulet of Yendor and artifacts are not allowed in containers; it becomes
harder to check if you are carrying one, harder for monsters to steal one,
and a pain to handle if the container gets destroyed.

Polymorphed players who end up in doors or walls upon rehumanization, and have
2 places to go to, can go to either of them.

The !verbose option has not been tested for a long time.  A quick test shows
that most messages except for hitting a monster are unaffected by it.  It
should be either removed, or modified to do something useful.

Invisible monster markers ('I') use the hero's memory (levl[x][y].glyph).
So does remembering what objects are on the ground.  This means that the
presence of an unseen monster causes the player to forget what was on the
ground.

Kicked objects which hit other objects give a message when the other objects
are on a hole and don't fall, but not when there is no hole, even though the
exact same thing happens.  This is intentional.

If someone identifies a ring by wearing it, while blind, dknown is not set.
This means that they can put on, say, a ring of levitation, levitate, and know
what other rings of levitation are without knowing this one, until they become
unblinded and recognize the type.  There is no real way to fix this because
there is no way to say "they don't know that this type is associated with this
material now, but they'll know it as soon as they can see".

Shades cannot be attacked by players unless they have silver or blessed
weapons.  Monsters who attack shades are not subject to similar restrictions.

The idea of giants carrying boulders, and the idea of boulders being huge
objects that block passages, really don't mesh very well.  At worst, a boulder
fills the full height of a passage and for a giant to carry one is the
equivalent of a human carrying a boulder his own height in a passage no higher
than the boulder is tall.  At best, the grid squares are taller than they are
wide, and it is still the equivalent of a human carrying a rock that is at
least two feet wide, not to mention that you can't fly or levitate over the
boulder and giants that carry them don't block light.
-------------------------------------------------------------------------
3.'s Doomed Agenda  (which doesn't mean they're reserved!)
-------------------------------------------------------------------------
Integration:
    Allow crystal balls to detect furniture types.

    #offer items to shopkeeper in shops for price quotes.

    #force doors.

    open (#force, #loot) boxes next to you, bags in inventory.

    Integrate cans of grease more.  Fumbling with greased objects.
    Towels degreasing objects.  Greased shields of reflection and mirrors
    don't reflect well.  Greasy paper and cloth are especially combustible.

    Non-swimmers move extra slow underwater.  Being underwater reduces
    AC.  Lighting works differently underwater.

    Mark food dipped in potions of sickness as poisoned, and cause
    players/monsters that eat it to take damage accordingly.  (Here,
    Spot!  I have this nice tripe ration for you!)

Artifacts:
    Magicbane drains magic.

    Make Stormbringer willfully steer you toward monters when you're
    stunned, on some occasions curse itself when it doesn't want to be
    unwielded, and turn on you if you still wield it at the end of the
    astral level or summon brethren to the chaotic minions.  "Blood and
    souls for my lord Arioch!"  Perhaps mark Stormbringer kills as
    unsacrificible, and give Stormy some of the XP.

    Excalibur breaks when used for evil or after being stolen from a
    shop, but can be repaired by dipping in an appropiate place if your
    alignment is good.  And/or refuses to attack peaceful creatures.

    Perhaps replace Dragonbane with Dragonslicer.

    Consider unique, less useful Saberhagen swords like the healing
    sword or the one that only touches your opponent's weapon.

Religion:
    Using a non-aligned artifact is bad religion.

    Greater alignment adjustments for killing very tame monsters (such
    as your children), and adjustments for killing angels.

    Lower or remove alignment bonus for killing monsters much weaker
    than you that don't pose much challenge.

    Moloch's wrath is nastier than your gods'.

    Sacrificing temple priests should be more than the ordinary human
    sacrifice.  Sacrificing angels should be special too.  Sacrificing
    the Wizard of Yendor should be extraordinary.  Perhaps just a lesser
    demon for sacrificing some humans, and demon lords for sacrificing
    priests. The Wizard, hmm...

    At same level where gods would give you a passtune, have gods help you
    find an unfound portal on the level.

    Consider tameness of corpses when eating.  Fix tameness reset by cloning.

Special levels:
    Install homeless demon lords in their own distinct lairs, with
    appropriate monsters surrounding them.  Add support for the Styx
    level.

    Level compiler wishlist:
        monster inventory
        desecrated altars
        special level filler lit option
        wall on left edge bug when non-rock filler used

    Special levels of special sizes.  Small tower levels only stored as
    a small region.  Perhaps the bigroom level is larger than the normal
    screen size, so with clipping you only see one or two walls at once.

Balance:
    Adjust object creation probabilities and monster equipment by level,
    so there is a progression from "low level" objects up near the
    entrance and "higher level" objects the deeper you go.  Don't
    generate figurines on high levels for the same reason as not making
    statue traps; who needs a figurine of a newt?  [No to the first!
    I've played Moria.  Waiting for those two rings of speed at 2500
    feet was a *pain*. --KAA]

    Balance fountain/sink effects on low levels (restrict them to deeper
    ones?) like preventing water moccasins and water demons from
    happening, as with exploding doors.

    Make quest leaders and nemeses less prone to instant deaths, and/or
    tone down instant deaths in the game (beheading/bisecting, stoning,
    eating, crushing, burying, drowning).

Monsters:
    Make intelligent monsters use wands of teleport on you if you're at
    where they're going (like demon lords to up stairs, or if you're
    standing on a quest artifact).

    Lawful pets don't attack lawful creatures.

    Keraunophobic pets.  Photophobic monsters.

    Give Wizard of Yendor magic resistance, and make quest monsters and
    demon lords less prone to instant death.  (Perhaps give some quest
    monsters reflection objects.  Perhaps make the Amulet of Yendor turn
    weapons like the vorpal blade.)

    mfloat/mlevit for levitated monsters, make monsters wearing levitation
    boots levitate (extend floating monster checks for traps, picking up
    objects, &c.).

    Separate monster sleep from paralysis.

    Jellocubes can eat doors.

    Allow shamans to animate corpses into zombies.

    Orcus animates the dead.

    Perhaps shopkeepers could fill in pits too.  Players who vandalize
    the store while shopkeepers are repairing other vandalism makes 'em
    angry.

    Killing shopkeepers/priests makes watchmen angry.

    Make shopkeepers smarter in general, using their weapons and armor
    when angry, lowering their awesome strength and AC commensurate to their
    initial equipment, picking up their stock in trade (and perhaps gold) when
    they leave their shop (dropping it when they return), and making them
    attack monsters looting their shops (ones carrying unpaid objects).

    Make shopkeepers catch their wares when thrown.  (And throw credit cards
    back.)  Make guards catch gold and put it back in the vault.

    Make vampires change to bats and vice versa.

    Perhaps give Kops a distance bonus when throwing pies.

    Lizards hide.

    Give orcs something to #chat about.

    Monsters shy away if you're too tough.

    Correct marilith weapon attacks.

    Smart monsters loot containers.  Dwarves could force containers with
    their pick-axes.

    Some monsters have natural enemies, that they will avoid/be attacked
    by (rat -> cat -> dog).  Your rat and cat may be tame, but they
    would chase and fight.

    Set real destinations for monsters instead of aimless wandering,
    especially dwarves, so their tunnels have direction.

    Allow zombies/mummies/skeletons/etc. of many types with a monster
    number field like objects.

    Make Nazgul the heavies they should be.

    Monster wishes.  [Are you mad?  --KAA]

    Kops attach iron balls.

    When grid bugs grow up, they split into clones.

Objects:
    ocan field for general object cancellation.

    Perhaps allow low-damage bullwhips to strike two positions away.

Game play:
    Make starting under MS-DOS initialize IBMgraphics and lit_corridor
    TRUE, and maybe video:autodetect, when appropriate.

    Display a helpful message pointing you to the right command if you
    try to remove armor instead of take off, or take off rings instead
    of remove.  Or apply wands, books, scrolls, etc.  (Or just do what
    you meant.)

    Divide score by # times killed.

    "A" to select among all for Drop, identify, and other ggetobj() calls.

    Commands from inventory menu.

    Highlight low HP

    Command to wait until you are healed up.  ("g."?)

    Touch type mode to shift [hjkl] to [jkl;].

    Null options unset.

    Separate put-in and take-out commands.  Or open . on chests.

    Break some of the object classes into separate groups, like
    containers to "]", ammo to "\", cadavers from other food, gems from
    other rocks.

    Perhaps use special background colors (or outline tiles) for glyphs
    of tame or seen invisible monsters.

    Let cave dwellers detect rotten food for another class difference.

    Name objects on ground, for all those kicked loadstones.

    "Feel apprehensive..." warning adjectives

Realism:
    Prevent snakes/giant spiders from hiding under gems or other too-small
    objects.

    Limit large mimics to large objects and small mimics to smaller ones
    and from doors.

    Limit the merging of food so that very fresh and very spoiled food
    don't mix.

    Eating zombies and mummies should likely make you sick.

    Make exploding drawbridges do explosion damage, not instant kills.
    Perhaps be pinned by drawbridges (and boulders) that fall on you.
    Perhaps add junk objects like broken doors/drawbridges.

    Make certain wild animals like jackals eat corpses left lying around,
    and perhaps only aggressive when hungry (but hunger is only measured
    for pets now).

    An acid blob should corrode what it picks up, and maybe what it
    passes over on the floor.

    Trap doors ought to go to consistent places in the next level, but
    what about branching dungeons?  Make holes in the floor and holes in
    the ceiling deterministic dungeon features.

    Weapon traps (dart, arrow) should have a finite supply of missiles.
    (Perhaps darts buried in the floor?  Or in the wall if we prevent
    such traps in the middle of the floor.)

    Open tins that rot like corpses and that pets can eat.  Partly-eaten
    tins are open.

    Damp swamps that damage scrolls and books and maybe rust items left
    there a long time.

    Damp scrolls that can't be written on until they dry.

    Embedded gems in rings and jeweled items left behind by eating.

    Use pick-axes on iron chains.

    Use axe as an axe to chop up doors, chests, etc.

    Split AC into evasion AC and damage AC, so that dragons are easy to
    hit (low evasion AC) but hard to hurt (high damage AC), to make
    combat seem more realistic, with some indication of ineffectual
    blows.

    Split encumbrance into weight and bulk (which affects how much you
    can put in containers, and a direct limit on carrying capacity).

Atmosphere:
    Perhaps make all class-specific anachronisms like credit cards,
    Hawaiian shirts, expensive cameras, fedoras, stethoscopes all 0
    random creation probability.

    Change fake mail on micros to a note from the Wizard or a bill from
    a shopkeeper triggered in the appropriate circumstances.

    Put in a special message for huge special-level shops.

    Draw out poison effects with a Poisoned timeout.

    Have awakened monsters in special rooms growl() to wake other nearby
    monsters.

    Some newly-generated monsters tend to appear on stairways, others to
    appear in pools, etc.

    Put a chest of sunken treasure underwater, now that we can specify chest
    contents (there are other treasure chests that need this already).

    Creaky doors which wake monsters.  Graveyards should usually have
    creaky doors.

    Players killed and eaten leave bones or partially-eaten corpses.

    Greedy killers snarf your gold.  Nymphs should take everything.
    Shopkeepers pick up gold dropped in their shops.

    Make general "Wow!" function for pline hallucination interjections
    for variety.

    Make A.S. -> engravings that point to stairs

Spell casting enhancements:

    Add something like bracers of defense so that spell casters do not have
    to wear armor.

    Add some sort of a "mute" spell to silence monster's cursing abilities,
    and players spell casting abilities.

    Make a detect magic spell.	There are hooks marking magic items in
    objects[] for this.

Silly:
    Cute hallucination message about bowling when throwing an iron ball.

    "alligator shoes".

    If you quit in the Wizard of Yendor's presence, he calls you a wimp.

    Hallucinated fist fights have sound effects.  Pow!  Wham!  Biff!
    Sock!  Krak!  Boom!  Zap!  [Blame Kibo, it was his idea!]

Glyphs:
    Redraw mail daemon, grid bug

    Moat different from pool

    Object classes

    Floor engravings

    Use in discovery list?

    A couple hallucinated monsters

    Directed objects (missiles pointing each direction like boomerangs,
    could flip three horizontal/vertical/diagonal tiles as appropriate).

    Quantities of objects -- ex. 1 dart, (few darts,) many darts

    General large pile glyph

    Individual monster statues & corpses (& tins?)

    Glowing?

    Pillars for Delphi temple

New:
    Use flint stone with metal object to light candles.

    Beholders with gaze attacks and anti-magic line of sight (or wimp
    out and just create them by beholder zaps).  Sleep and slow eyes
    aren't beams.  Blinding would probably only work on the center eye,
    Anti-magic is the difficult part.  The right way is to have anti-
    magic field bits for each square on the level.  Players and monsters
    standing in the area would be temporarily cancelled.  Spells and
    zaps in or through the square fizzle and magic scrolls and potions
    don't work.  Plusses don't add.  Also unpoly a la protection from
    shape changers.  Perhaps Wizards can recognize them.  Antimagic
    traps could be replaced with anti-magic squares.  Magical monsters
    should avoid.

    Add a wooden sword (bokken/bokutou?) to the game, naturally safe
    from rust or corrosion (but maybe digested when used against a
    jellocube).

    Magic mouth engraving/trap for special levels.  Either
    engraving-like messages, or just standard discouragements like "Go
    away.", "Scram.", "Beat it.", "Get out.", "None shall pass.", etc.
    Perhaps even putting one on a statue.

Diablo tribute:
    New monster that throws balls of molten lava (that they generate 
    out of thin air) which would at least be different from anything 
    we've presently got.  There are some others which act as hiders 
    (in Diablo, rather than really hide they rely on just being hard 
    to see when stationary against the murky background display) which 
    become active if you get too close or hit them with a ranged attack 
    and become dormant again when you move away.  The difference from 
    our existing hiders is that they act more like bats once they're 
    active, instead of being really slow moving engulfers or mimics.
    The venom code may allow for this.  A new lava "venom" sharing the
    same class for generated-on-demand-liquid seems like the right 
    place anyway.


Rename #ifdef SOUNDS -> NOISES

Disintegrate object after it becomes completely corroded?

Don't put food in statues of stoned creatures.

Cancel intrinsics.

Zapping a wand wields it like a pick-axe.

Glowing Orcrist as a light source.

Make statue traps trapped objects, triggered after you step on their
position.  Perhaps bear traps too, but make them turn invisible.

Use oerosion for rings/gems damaged by engraving.  [Perhaps also damp
scrolls? goopy towels?]

Tourist search for lost Luggage.

Eating wood/iron golems whole, should iron golems really be poisonous?

Put -DWIZARD -DHACKDIR comments in makefiles.

Perhaps allow different poisoned weapon effects for different potions.
Change "Interesting..." since it suggests something happens when nothing
does.

Allow you, by #chat, to have shopkeepers identify objects in their specialty
for you, for a fee.  (500zm?)

Dallying with seducers unsets your u.uvirgin bit, which would cause unicorns
to more actively avoid your company.

Hallucinate objects (on floor with /, swung/thrown at you...).

Horn of Geryon summons minotaurs.

Beheading Medusa with vorpal blade.

-------------------------------------------------------------------------
Ken's Doomed Agenda (see, I can have one too...)
-------------------------------------------------------------------------
Add a wand of wonder (like the AD&D item).

Shopkeepers angered when you break their door should be calmable by repairing
the door (using a wand of locking or a spell of wizard lock).

Add SCR_ENCHANT_WEAPON, SCR_REMOVE_CURSE, SCR_ENCHANT_ARMOR, SCR_DESTROY_ARMOR
to items usable by monsters.

Add one (or more) magic items that are mostly useful for monsters against
players (though players _could_ use them).

The code contains several sections which were necessary when removing a
fire resistance item (weapon, armor, ring) was instant death in Hell.  These
could use removal.

Soldiers have no logical reason to possess elven cloaks.  Either create a new,
nonspecial, cloak for this purpose, or change the leather jacket to a cloak
and use it.

Likewise, leather gloves make little sense as healer items.  Add "surgical
gloves" with no base AC protection.

Effects for the blessed scrolls/potions with effects that are absent:
-- destroy armor: (see controversial item section)

"Welcome to Experience Level ___" for pets.

What are all those pieces of glass doing in the dungeon?  Possibly replace
with "worthless colored rock" or specific worthless rock type (quartz,
feldspar, etc.)

Container capacity limits (say, didn't we already have these once?)

Potions should, logically, not suddenly have their flasks disappear when you
drink them.  The main challenge in doing this is to make sure this does not
produce infinite supplies of polymorph fodder and holy water fodder.
-----------------------------------------------------
controversial items
-----------------------------------------------------
Allow scrolls of destroy armor to enable the player to select the (worn)
item to be destroyed if they are blessed.

Wild carnivores should eat corpses.

If all '#' commands are to be typed with a single letter, hitting backspace
should erase the entire command, instead of requiring the player to hit several
backspaces to do so.

When you wear things which get identified by putting them on, they get
identified before being put on, so the on-message prints out the identified
type.  Whether this is reasonable can be argued either way.

Monsters with AT_WEAP attacks do damage equal to the sum of their non-weapon
damage and the damage done by the weapon.  Players polymorphed into such
monsters only do the weapon damage, with no additions.  This is arguably
necessary for game balance.

Very_small non-flyers should have a penalty to hit levitated creatures.  But
this is a lot of work, causes no apparent difference (unless the penalty is
really large), requires too much extra code and special cases (i.e. a
monster with long tentacles or jumping ability shouldn't get the penalty),
and adds nothing to the game, so why put it in?

Charged rings should be priced by their charge.
Wands should be marked down when at 0 charges.
Maybe mark down diluted potions as well.

A hit that misses due to AC should be taken by the armor.  The armor should
turn the blade, absorb the blow, or whatever, with various messages for each
circumstance.  In addition, it would be nice if armor accumulated damage,
and after enough of it, became degraded or useless (or just destroyed).
I imagine an object "hit point" (entropy?) field, which might also be a logical
place to mark wet scrolls, diluted potions, and rotten corpses.

Various food items: mushroom, sandwich, tortilla, cheese, asian pear, pill,
and holy wafer.  Most of them because they are not needed and the latter
because of it's potential to offend.

"Wallet of Perseus" bag of holding may be found in statue of Perseus on 
Medusa level.

Any addition of firearms met with strong opposition.

Flyswatters and paddles; designed to be effective against insects.

Fishing pole; added grapple hook instead.




