1## xNetHack 5.0 Changelog 2 3This is a major version of xNetHack. It is a fork off of the vanilla NetHack 43.6.5 development version release, and is also based directly on xNetHack 4.1. 5See the doc/fixes36.\* files for the devteam's changes. 6 7The xNetHack page at the NetHackWiki, https://nethackwiki.com/wiki/XNetHack, 8attempts to describe these changes in a way that's better formatted and more 9friendly to players. However, the wiki page might be out of date; in case of 10conflicting information, this changelog and others in this directory are more 11up-to-date than the wiki page, and the commit messages are more up-to-date than 12this changelog. 13 14On top of any changes made by the NetHack devteam on 3.6.1, and any changes 15made in previous xNetHack versions, xNetHack 5.0 contains the following 16changes: 17 18### Gameplay changes 19 20- You can sometimes recover from food poisoning with a Con/100 chance. 21- If you have hungerless casting, you will never be too hungry to cast a spell. 22- Corpses dropped by zombies can revive on their own. 23- When you are killed by a zombie, you will arise from the grave as one in 24 bones (25% chance to keep playing as a zombie, similar to other undead). 25- When a zombie or lich kills a monster that has a zombie counterpart in melee, 26 it resurrects as a zombie that is either tame or hostile depending on the 27 attacking zombie. 28- Zombies will grudge monsters that they can zombify, and vice versa. 29- The pet-off-level-untaming timer is fuzzed so it's not totally predictable. 30- Pets' willingness to attack foes of a certain level decreases linearly with 31 their hit point percentage. 32- Trees can generate in the rooms of room-and-corridor levels. 33- Lord monsters' weapons and armor is never negatively enchanted. 34- If you're carrying sufficient food, being Weak isn't a major trouble. 35- If you're turning to slime and opening a tin of chameleon meat, you won't be 36 interrupted (you could turn into something fiery). 37- Blessed potions of hallucination grant enlightenment 50% of the time; cursed 38 ones do 20% of the time, uncursed ones never do. 39- Grimtooth is now permanently poisoned and has a base cost of 1000. 40- Poisoned weapons in melee do d10+6 damage to non-resistant creatures, but 41 only 25% of the time. 42- Dragonbane now gives vision of dragons when wielded and does +d10 damage to 43 dragons. Its cost is raised to 2500. 44- Demonbane now gives vision of demons when wielded, glowing white. 45- Werebane now gives vision of weres when wielded and does +d10 damage to 46 weres. 47- Giantslayer now gives vision of giants when wielded and does +d10 damage to 48 giants. Its cost is raised to 500. 49- Trollsbane now gives hungerless regeneration when wielded, gives vision of 50 trolls when wielded, and does +d10 damage to trolls. Its cost is raised to 51 1000. 52- Ogresmasher's cost is raised to 1200. 53- Sitting or manually teleporting via ^T while standing on a known level 54 teleporter will activate it, bypassing magic resistance. 55- Intelligent monsters in the Castle know about the trapdoors. 56- Reading a confused scroll of earth will summon earth elementals and dust 57 vortices rather than mostly harmless rocks. 58- Hobbits may generate carrying produce. 59- Fire Brand instakills flammable golems and green slimes 60- Elven items use their base material 60% of the time and become wood 20% of 61 the time rather than defaulting to wood 80% of the time. 62- The throne monster in throne rooms has a shiny expensive mace rather than a 63 boring iron one. 64- The Bell of Opening will turn into a silver regular bell in a bones file, 65 rather than a copper one. 66- All types of orc monsters (all o) resist poison. 67- Pets won't fight each other even if they grudge each other. 68- Port RPresser's epitaph patch, enabling you to write your own gravestone 69 text. 70- Wizard mode players now always get the option to leave bones unless the level 71 is ineligible. 72- Monsters can gain intrinsics from corpses they eat, identically to players, 73 except that they can currently only get resistance-type intrinsics and 74 telepathy. The only non-pet monster that can currently eat corpses is the 75 gelatinous cube. 76- Dragons will roar of their own accord from time to time, which wakes nearby 77 monsters. 78- Implement cooperative telepathy: if you have any sort of telepathy, even 79 extrinsic and you are not blind, you are able to see telepathic monsters. 80- Pets will attack monsters they grudge even if they are of too high a level. 81- Pets will not attack gas spores that you're adjacent to. 82- Magic-liking monsters will pick up all magical items, not just objects from 83 classes where all items are magical. 84- Monsters can use magic flutes. 85- Dissolving a cursed mold corpse in fruit juice will create sickness. 86- Port the Free Fortune Cookie Patch: half of szechuan tins, if eaten, give you 87 a free fortune cookie. 88- Getting a critical hit on a vampire with a wooden piercing weapon can stake 89 it through the heart and destroy it instantly. 90- Magic lamps always release a djinni when rubbed instead of 1/3 of the time. 91- 1/30 of randomly generated tins are booby-trapped and will explode when 92 opened. 93- 1/5 of nurses carry a scalpel. 94- Wearing a charged ring of carrying will auto-identify it. 95- Hobbits and Nazguls grudge each other. 96- All s-class monsters grudge x-class and a-class monsters, but not vice versa. 97- Bats grudge all flying x-class and a-class monsters (currently just bees). 98- Guarantee graffiti of a true rumor in the first room of the dungeon. 99- When hallucinating, all rays appear as blasts of something nonsensical. 100- Rings that aren't obviously iron by their appearance are made of metal 101 instead. 102- Helms made of wood, bone and stone protect your head the same as a metal 103 helm. 104- Helms made of glass may be shattered if a heavy object drops on them. 105- Helms reduce a lot less of the damage if the falling object is very heavy. 106- Helms only protect you from half of the damage from a falling piercer. 107- Acidic corpses can go moldy, but produce only green mold. 108- Plastic has a much lower relative cost as a material. 109- Group size now throttles on low dungeon levels rather than experience levels. 110- Glass body armor may shatter if you are hit with a heavy object moving 111 sideways. 112- Hallucination is effective at blocking all gaze attacks made by monsters. 113- Falling rock traps no longer generate on outdoors levels. 114- Amulets are worth 150 zorkmids each when the game ends regardless of 115 material. 116- Amulets of life saving will not set your HP or max HP higher than 100. 117- Chopping a web with a blade now factors in the weapon's enchantment. 118- Shopkeepers' base level is adjusted from 12 to 13. 119- Cockatrice hissing attacks begin stoning 1/5 of the time, but deafness blocks 120 the attack entirely. 121- Aligned priests' maces are never cursed. 122- Ghosts generate invisible 1/3 of the time. 123- Gas clouds are a little random in how they spread out from a point; the edges 124 of the cloud may be fuzzy and hard to predict. 125- The chest that generates with a thiefstone now contains random contents. 126- Random statues can occasionally be copper, or rarely gold. 127- Quarterstaves no longer block spellcasting if a cursed one is welded to both 128 of your hands. 129- Quarterstaves only do d4 damage to small monsters. 130- Felines now attack rats. 131- The portal to Fort Ludios now generates in the first vault generated below 132 level 10. 133- The titan on one Medusa level has been replaced with two golden nagas. 134- Drop the level of the spellbook of invisibility from 4 to 1. 135- Yeenoghu's magic missile attack damage is increased to 6d6. 136- Revise ammo breakage rules: as in NetHack Fourk, the chance of breakage 137 decreases with higher skill and skill cap. Negatively enchanted and cursed 138 ammo breaks much more often; positively enchanted and blessed ammo breaks 139 much less often. 140- Demon princes gate in twice as many demons as lesser demons do; demon lords 141 gate in some intermediate amount. 142- Goblins now generate in small groups (but won't on very shallow levels due to 143 automatic group size scaling). 144- The Wizard of Yendor now has a 2d6 weapon attack. 145- Restore passive rust attack to water elementals. 146- Scale the size of monsters' hit dice by their in-game size. Medium monsters 147 still use a d8; smaller monsters use smaller dice and larger monsters use 148 larger dice. 149- Adjust the special monster maximum HP formula for Riders to 40 + 8d8. Remove 150 the special monster maximum HP formla for dragons (they follow normal rules 151 for any gigantic creature of their level). 152- Adjust monster sizes: 153 - Giant ants are Small rather than Tiny. 154 - Lemures are Small rather than Medium. 155 - Baby crocodiles are Small rather than Medium. 156 - Mumakil are Gigantic rather than Large. 157 - Mastodons are Huge rather than Large. 158 - Giant rats are Small rather than Tiny. 159 - Centipedes are Small rather than Tiny. 160 - All v-class monsters are Large rather than Huge. 161 - Electric eels are Large rather than Huge. (Giant eels remain Huge.) 162 - Krakens are Gigantic rather than Huge. 163 - All baby dragons are Large rather than Huge. 164 - All elementals are Large rather than Huge. 165 - All naga hatchlings are Small rather than Large. 166 - Cobras are Large rather than Medium. 167 - Xorns are Large rather than Medium. 168 - Medusa is Medium rather than Large. 169 - Balrogs are Huge rather than Large. 170 - Juiblex is Gigantic rather than Large. 171- Mumaks' base level is now 10, and their difficulty is increased to 15. 172- Material hatred damage is assessed for monsters made of a certain material 173 touching (hitting, kicking, etc) a monster that hates that material. 174- Stone to fleshed objects now turn into an appropriate amount of meatballs, 175 proportional to the monster's weight if a statue and proportional to the 176 object's base weight otherwise. 177- There is no longer an Elbereth engraving under the Sokoban prize and the 178 Castle chest. (The scrolls of scare monster are still there.) 179- Scrolls of scare monster no longer work on uniques. 180- Pets will not eat food if they are already satiated. 181- Centaurs prefer to keep their distance from you and won't close to melee 182 combat. 183- Intrinsic invisibility and see invisible are no longer obtainable: 184 - Extrinsics (rings, cloak, artifacts) and role-based intrinsics are 185 unchanged. 186 - Stalkers now grant 200+d200 turns of both intrinsics. 187 - Random throne and fountain effects now grant 1000 + d1000 turns. 188 - The potions grant 200+d200 turns, plus 200 if uncursed / 400 if blessed. 189 - The wand grants 50+d50 turns per zap, or (charges)d250 turns if broken. 190- Elven boots will always be leather. 191- Orcish gear will be either iron, wood, bone, plastic, or glass. 192- Gazing into a crystal ball is now an occupation that doesn't leave you 193 helpless. It takes 6-10 turns to use one, rather than 1-10. 194- Crystal balls now have many more charges and weigh only 100. 195- A blessed or cursed crystal ball counts as +5 or -5 to your Int when 196 determining whether you successfully use it. 197- Non-cursed crystal balls will never explode. 198- Uncursed charging a crystal ball, horn of plenty, bag of tricks or can of 199 grease will add d5+5 charges instead of just d5. 200- Dart, arrow, and rock traps produce ammunition from a stack, so it will all 201 have the same material, enchantment, etc. The number of darts/arrows/rocks 202 from a given trap is constant, regardless of whether produced by firing or by 203 untrapping. 204- Dart and arrow traps generate with 15+1d20 ammo, rock traps with 5+1d10. 205- Poison darts from traps deal Con damage more often (60% of the time), and 206 higher HP damage when they don't. However, dart traps won't generate with 207 poison darts until depth 7. 208- Any iron items that elvish players would start with are copper instead. 209- Remove the rogue tribute level. 210- Add Frontier Town (what Orcish Town was before being ransacked) as an eighth 211 variant of Minetown. 212- Monsters that wear helms of telepathy become telepathic. 213- Monsters can wear amulets of ESP, becoming telepathic. 214- Celibate conduct (broken when you lie with an incubus/succubus) 215- The Chromatic Dragon is now named Tiamat. 216- The Caveman quest narration and dialogue have been changed to use caveman 217 speech patterns. 218- The Dark One is now named Anaraxis the Black. 219- Loadstones are removed. 220- Conflictless conduct (broken when you generate conflict). 221- Add homosexual and bisexual orientations. These can be specified by 222 OPTIONS=orientation:[orientation]. It also accepts "straight", "gay" and 223 "bi". The only thing your orientation controls is what sort of foocubi you 224 can interact with. 225- If you are bisexual, foocubi roll twice after each encounter to see if they 226 get a severe headache. 227- The foocubus gained from kicking a sink will always be compatible with your 228 orientation. 229 230### Interface changes 231 232- Potion bottles are called by nonsensical names when hallucinating. 233- Your god will belch, bray, squeak, and so on instead of booming or thundering 234 while you are hallucinating. 235- Confused scrolls of fire underwater evaporate the water like a regular 236 scroll. 237- A message is printed when you fail to walk into liquid, and the first time 238 this happens in the game it informs you that you can use m to walk in. 239- Add a new paranoid confirmation option "throw"; when on, it prompts for 240 confirmation when you try to throw ammo with no matching launcher for it. 241- Dwarves think all rats are delicious. 242- YAFM for hearing a dwarf digging while hallucinating. 243- YAFM for eating long worms. 244- YAFM for dying to green slime (permanently) while hallucinating. 245- YAFM for failing to get a wished-for artifact while hallucinating. 246- YAFM for ascending while hallucinating. 247- YAFM for trying to #chat to a wall. 248- YAFM for a cosmetic magic trap effect if you are a hallucinating valkyrie. 249- YAFM for hearing a wererat change form while hallucinating. 250- YAFM for getting your brains eaten while hallucinating. 251- Usual periodic assortment of new bogusmons, bogus gods, bogus currencies, 252 candy bar labels, t-shirt texts, rumors, engravings, and epitaphs. 253- Give better directions for reporting impossible() calls. 254- Give gnomes a gnomeish message when chatted to. 255- Auto-identify a potion of acid when it explodes due to water contact. 256- Add L's Colored Walls Patch, turning the walls in various special levels and 257 branches different colors. Also in some types of special rooms. 258- Don't unconditionally delete the save file in case of a version mismatch. 259- Zombies groan instead of being silent. 260- Trying to attack a monster in melee with pacifist conduct intact after 100 261 turns will ask you if you really want to attack. 262- Livelog when the player changes alignment (by helm or permaconversion). 263- YAFM for staking a vampire's heart while hallucinating. 264- You can try indefinitely to enter a valid wish, rather than the game giving 265 you a random object after 5 failed tries. 266- YAFM for hitting a devil with an egg (thrown or melee). 267- Message that you can't reenter the dungeon after negative levelport 268- Give a special artifact message when Grimtooth poisons a target. 269- YAFM for playing a cursed magic whistle while hallucinating. 270- YAFM for being startled and dropping a heavy iron ball while hallucinating. 271- YAFM for eating globs of brown pudding. 272- YAFM for playing a magic flute while hallucinating. 273- YAFM for fumbling noisily while hallucinating. 274- YAFM for seeing a lantern on the floor get dim while hallucinating. 275- YAFM for observing something step on a squeaky board while hallucinating. 276- Remove "[Un]lock it?" prompts for applying a key to a door. 277- Failed and cancelled scrolls of stinking cloud give a new message (and also a 278 YAFM for doing this while hallucinating). 279- Stat increase/decrease messages are comparative ("You feel stronger", etc) 280- More explicit hunger messages. 281- YAFM for hallucinating and doing nothing in particular. 282- Add weapon skills and intended launchers to object lookup. 283- Display skill caps and the percent towards the next skill in #enhance. 284- When worn or wielded items become uncursed, you get a message. 285- Crystal balls prompt you again if they don't recognize the character you want 286 to look for. You no longer get vague statements about the location of special 287 levels. 288- Crystal balls give unique messages if they are uncharged or cancelled. 289 290### Architectural changes 291 292- Refactor spell hunger reduction logic into its own function. 293- Refactor confusing logic of what food adjective to choose. 294- Promote obj_nutrition to a non-static function. 295- Allow artifacts which target a monster class (S_\* instead of M2_\*) to warn 296 versus that monster class. The save-stable version of this is kludgy. 297- Change all obj->material = foo statements into a function set_material which 298 handles weight recalculation and erosion differences between the materials. 299- Move bones depth logic out of can_make_bones into really_done. 300- Move corpse-intrinsic-selection logic into its own function. 301- Extract part of givit's logic (the yes/no of whether an intrinsic should be 302 given) into its own function. 303- Define a new MR2_TELEPATHY monster intrinsic and set it by default for all 304 inherently-telepathic monsters. 305- Add a parameter to put_monsters_to_sleep defining the monster that is causing 306 the effect. 307- Refactor mpickstuff to use a callback function rather than a string of object 308 classes, allowing for finer control of objects monsters will pick up. 309- Refactor mm_aggression into clear one-directional and two-directional cases. 310- Pass lines retrieved via get_rnd_text and get_rumor (rumors, bogusmons, 311 graffiti, epitaphs, etc) through the quest text parser, letting them use % 312 arguments. 313- Move angelic and demonic maledictions out of quest.txt into wizard.c string 314 constants, and scrap using com_pager for them. 315- Objects will only be given a randomized object material if called with 316 init=TRUE in mksobj. 317- Add a struct crystalball_info to struct context, and the appropriate bits 318 into the save and restore code to save and restore it. 319- Add an ammo field to struct trap, which represents the object contained in 320 the trap (darts, beartrap, etc). Interactions with the trap draw on this 321 rather than on generic objects. 322- Rename cnv_trap_obj to remove_trap_ammo. It now extracts and places the ammo 323 from a trap. 324- Split monster intrinsics off the mextrinsics field, preventing monsters' worn 325 armor from clobbering their intrinsics from eaten corpses. 326- Generalize loadstone undroppability behavior to work on arbitrary objects. 327