Invisible Objects Patch v1.4
This patch extends the incomplete compile time option implementation of invisible objects in Nethack version 3.4.2. Save and bones files are compatible with vanilla Nethack versions 3.4.x.
Thanks to all the denizens of rec.games.roguelike.nethack who gave suggestions and advice.
I left all of the invisible object code inside #ifdefs so if you want to turn the patch off you can comment out the #define INVISIBLE_OBJECTS in config.h and recompile.
Here's what was already coded by the Dev Team:
If you don't have see invisible, you can't see an invisible object. You can
feel it though, just as when blind ("You feel here an invisible dusty
1 of 1250 randomly generated objects will be invisible.
Invisible monsters leave invisible corpses.
Monsters without see invisible won't pick up invisible objects.
Dipping an object in a potion of invisible makes it invisible.
Dipping an invisible object in a potion of see invisible makes it
Monsters without see invisible won't steal invisible objects.
Invisible weapons against monsters without see invisible get +3 to-hit
Cancellation will turn objects visible.
Zapping a wand of make invisible will turn objects invisible.
Here's what I added and changed:
If you don't have see invisible:
You can't tell what an invisible object is when a monster picks it up. "Spot picks something up." as opposed to "Spot picks up an invisible long sword". Likewise when a monster drops, quaffs, zaps, wears, wields, etc. invisible objects.
Invisible Mjollnir will hit you or fall at your feet rather than be caught on its return.
Returning invisible boomerangs will hit you rather than be caught.
A kicked or thrown invisible object won't been seen in flight.
In order to side-step the whole moving-a-boulder-you-didn't-know-was-there issue, boulders just can't be invisible.
You can't read an invisible object (unless it's a scroll and you know the words already).
An invisible object that you haven't seen appears as when you are blind. ("an invisible ring" not "an invisible emerald ring")
(Changes not affected by see invisible:)
An invisible touchstone doesn't work and a touchstone doesn't work on invisible objects. (No streaks are created.)
Invisible tinning kits and horns of plenty make invisible objects.
Invisible mirrors don't work.
Invisible figurines yield invisible monsters.
Mummy wrappings are immune to being turned invisible.
Dying invisible creatures leave invisible body parts (unicorn horns, dragon scales, teeth).
A monster revived from a corpse which was made invisible post mortem is invisible upon resurrection.
Similarly, a monster revived from a corspe made visible post mortem is visible upon resurrection.
Monsters made flesh from invisible statues are invisible and invisible monsters make invisible statues when stoned.
Invisible fortune cookies have invisible fortunes.
Polymorphed objects retain invisible status.
Breaking a wand of make invisible affects objects.
Magicbane resists being made invisible.
Invisible towels/blindfolds don't blind you (despite Tina's objections).
Cursed invisible towels/blindfolds aren't considered trouble for praying purposes.
Creatures born from invisible eggs are invisible.
Invisible lenses don't improve searching and reading chances (but still work for blocking blinding attacks).
Eggs you lay have your invisibility status.
Gold pieces are never invisible.
Level builder can make invisible objects. (Thanks to Pasi Kallinen for helping me figure this out.)
Chance of randomly generated object being invisble is now 1 in 500.
Some changes I considered but decided against:
Traps on invisible chests are NOT harder to detect or disarm. Reason: It's currently not harder when you're blind.
Invisible scrolls of scare monster still work the same. Reason: blind monsters are still affected.
Zapping yourself with a wand of make invisible does NOT affect your inventory. Reason: Zapping yourself with a wand of polymorph doesn't affect your inventory either.
An invisible cornuthaum still affects your charisma. So sayeth Pat Rankin:
"Well obviously wearing a cornuthaum boosts (for wizards) or
lowers (for non-wizards) the character's self-esteem. The resulting
resulting change in demeanor is what the other creatures notice, not
the hat itself. :-}" (part of) The Dev Team hath spoken.
Changes in version 1.1
I added some "monster swings something!" type messages for artifacts. I also put in a few little things in the writing code and other places that I missed in v1.0. Nothing big.
Changes in version 1.2
Updated to 3.4.1 code base.
I moved the oinvis bit in the object struct to be after all the other bitfields. This allows save/bones file compatability with vanilla 3.4.1.
Took out kicking unseen object penalty, since there is none for being blind.
Invisible pies will now blind you again. I was swayed by the argument that invisible glop still gets in your eyes.
Changes in version 1.2.1
Fixed bug with Frost Brand message.
Changes in version 1.2.2
Fixed a few dknown inconsistencies.
Changes in version 1.3
Updated to 3.4.2 code base.
Changes in version 1.4
Updated to 3.4.3 code base.