1## xNetHack 6.0 Changelog 2 3This is a major version of xNetHack. It is based directly on xNetHack 5.1, and 4is a fork off the vanilla NetHack 3.7.0 development version release. 5 6The last vanilla commit incorporated into xNetHack 6.0 prior to its release was 7d6d42f5. Note that this contains some major changes including new monsters, new 8objects, themed rooms, and other things *not* documented in this file. See 9doc/fixes37.0 for the devteam's changes. 10 11The xNetHack page at the NetHackWiki, https://nethackwiki.com/wiki/XNetHack, 12attempts to describe these changes in a way that's better formatted and more 13friendly to players. However, the wiki page might be out of date; in case of 14conflicting information, this changelog and others in this directory are more 15up-to-date than the wiki page, and the commit messages are more up-to-date than 16this changelog. 17 18On top of any changes made by the NetHack devteam on 3.7, and any changes 19made in previous xNetHack versions, xNetHack 6.0 contains the following 20changes: 21 22### Gameplay changes 23 24- The geyser spell will rust armor and instakill you if you are an iron golem. 25- Vault guards grudge leprechauns. 26- Vampires grudge werewolves and vice versa. 27- Potions of acid no longer freeze when hit with cold damage. 28- Add two new random wand appearances "gold" and "gilded". Both are made out of 29 gold and can therefore be stolen by leprechauns. 30- All nymphs are now herbivorous (mainly meaning that pet nymphs will eat veggy 31 food and polymorphing into one does not make you inediate). 32- Salamanders, all Kops, and all corpse-leaving i-class monsters (imps, tengu, 33 quasits, homunculi, and leprechauns) are now carnivorous. This mainly means 34 that they are capable of eating meat when tamed and prefer it over veggy 35 food, and polymorphing into one does not make you inediate. 36- Ghosts cannot be renamed. 37- Reading a scroll of identify while confused will "identify yourself" and give 38 enlightenment. 39- Port L's Cursed Wand Backfire Patch: zapping a cursed directional wand will 40 cause it to backfire and zap you 10% of the time. This is independent of the 41 1% chance that a cursed wand will blow up upon use. 42- Martial arts users, sasquatches, and players wearing kicking boots can no 43 longer miss a monster completely with a clumsy kick. 44- Statues hit by a wand of opening will drop their contents without breaking. 45- Watch captains generate with a key. 46- The Gnomish Sewer now contains a couple figurines of jellies. 47- The Gnomish Sewer's land spaces are now exclusively room spaces ("."); all 48 corridor spaces ("#") have been replaced with them. The land/water/stone 49 layout of the map is not changed. 50- Genetic engineers (added in vanilla 3.7.0) are in the U monster class like 51 quantum mechanics are. 52- Attempting to use a crystal ball while hallucinating will paralyze you for d2 53 turns if the ball is uncharged or d4 turns if it is charged. (This and 54 crystal balls detecting dungeon features now are the only parts of the vanilla 55 3.7.0 crystal ball overhaul that have been included in xNetHack.) 56- Monsters prefer to wear an amulet of life saving or reflection rather than an 57 amulet of ESP or guarding. 58- Metal armor won't provide less than 1 AC (not counting enchantments) if it 59 has a decreased AC from being a different material. For instance, copper 60 gauntlets of power will provide 1 AC instead of 0. 61- Some themed rooms have minimum and maximum level difficulty cutoffs. Notably, 62 the spider room will not appear above level 10. 63- The "Fake Delphi" themed room now has one fountain in its center. 64- 27 new themed rooms: 65 - A cluster of four square interconnected 3x3 rooms. 66 - A barbell-shaped room connecting two 3x3 rooms with a doored, walled 67 corridor (vertical and horizontal). 68 - A room containing a bunch of graffiti. 69 - A room filled with small 1x1 pillars. Sometimes, these pillars will be 70 trees instead, and then the room will contain wood nymphs, and possibly 71 statues and a figurine of wood nymphs. This only happens at depths at or 72 above wood nymphs' difficulty. 73 - A boomerang-shaped room (left and right rotations). 74 - A 1-wide rectangular corridor (surrounding a chunk of normal stone). 75 - A room featuring an O, M, Z, or T monster in a cage of iron bars. 76 It can also be a D below level 12. From EvilHack. 77 - A room split horizontally or vertically into two subrooms. From EvilHack. 78 - A room containing a 2x2 subroom in any corner. From EvilHack. 79 - A vault containing 1-2 chests with random contents, not connected to the 80 rest of the dungeon like a gold vault. 81 - A room containing an X of water connecting its corners. 82 - A miniature 7x7 maze. 83 - A horizontal corridor with a bunch of closets along the top and bottom, 84 some of them containing monsters or objects. 85 - A wide room containing 1 to 3 2x2 beehives. 86 - A large honeycomb-shaped room with randomly connected cells, which is a 87 beehive. 88 - A room where each square becomes cloud, ice, grass, lava, pool, or tree 89 with a 30% chance. From UnNetHack. 90 - A room containing a ring of floor tiles surrounding a "swimming pool" 91 filled with water, which contains a few random sea monsters and possibly a 92 chest with gold and gems. (Unlike the Gehennom submerged special room, 93 there is no magic lamp.) 94 - A long, narrow (height only 1 or 2) room. From UnNetHack. 95 - A room populated with several random F, b, j, P and gas spore monsters. 96 From UnNetHack. 97 - Ozymandias' Tomb, a 7x7 room with a throne, some traps, a couple statue 98 traps and an engraving. Only appears deep in the dungeon. From UnNetHack. 99 - A room filled mostly or entirely with gas spores, which should prove 100 extremely fun to blow up. 101 - A room imitating the Pool challenge from the /dev/null/nethack tournament, 102 a 9x9 room with six holes for "pockets" and nine numbered boulders. (It 103 does not contain a way to launch the boulders or bounce them off each 104 other.) 105 - A room containing two 3x3 shops, one weapons and one armor, with an aisle 106 around them. 107 - A four-way circle-and-cross room, possibly containing a central tree or 108 fountain. 109 - Four square 3x3 rooms, but all directly connected as part of one larger 110 room instead of separated by corridors. 111 - A prison cell in the corner of a room, possibly containing a prisoner and 112 rat. 113 - A large room containing some type of obstacle terrain in a vertically 114 symmetric shape. 115- If you ride a steed into a polymorph trap, unchanging will not protect the 116 steed (but magic resistance still will). 117- Canceled or beheaded zombies or trolls don't rise from the dead. 118- You can opt to cast the non-advanced version of fireball or cone of cold if 119 you are Skilled or above in attack spells. If you do cast the non-advanced 120 version, the energy cost is reduced by up to half. 121- You can no longer be permanently expelled from the quest. Doing the things 122 that got you permanently expelled still expel you, but temporarily, and the 123 leader will get mad if you return. 124- You can enter the quest if your quest leader is dead. 125- When your quest leader is dead, your Luck will time out to -4 (regardless of 126 Friday the 13th or a full moon), good luck always times out for you, and bad 127 luck never times out for you, regardless of any luck items you are carrying. 128 Luckstones continue to be able to provide +3 or -3 luck. 129- Directly killing your quest leader sets your Luck to its minimum and 130 increments god anger by 7 in addition to its huge alignment penalty. 131- You only gain an alignment bonus for killing your quest nemesis if your quest 132 leader is still alive. 133- Directly killing a quest guardian decreases your Luck by 4 and increments god 134 anger by 1 in addition to its sizeable alignment penalty. 135- Monsters will ignore Elbereth and scare monster scrolls if you are generating 136 conflict. 137- A cursed amulet of life saving only works 50% of the time. 138- Leather items can no longer generate as paper. 139- Cloth weapon and armor items and towels can no longer generate as paper. 140- More tools are made eligible for material randomization; in particular, bags 141 can now be leather, plastic, or paper. Leashes, saddles, and blindfolds can 142 also now get different materials. 143- Orcish items can no longer generate as plastic or glass, but can now generate 144 as stone. 145- Nazgul are ungenocideable. 146- In wizard mode, you can choose to teleport into locations that you can't 147 teleport into in normal play (e.g. into a wall or across no-teleport zones). 148- In wizard mode, a message prints when you teleport on a non-teleport level. 149- Grass is restored to the Barbarian quest goal level. 150- Undead iron-haters do not recoil from the touch of iron. 151- Wood and paper golems instakilled by Fire Brand do not drop items. 152- A lot of the doors in Fort Ludios are now iron. 153- All A-class monsters are now immune to death magic. 154- Couatls and ki-rin are now shock, sleep, and poison resistant. Ki-rin are 155 additionally cold resistant. 156- Mindless monsters and werewolves are now sleep resistant. 157- Randomly named weapons can now use names from the top 10 list. 158- Creating Excalibur via fountain will set its enchantment to +0 if it was 159 negative, and obtaining it via crowning will set its enchantment to +3 if it 160 was lower than that. 161- Tame V-class monsters won't shapeshift from vampire form into something else. 162- Potion vapor effects are buffed: 163 - Full healing vapors restore 13 HP, extra healing 3, and healing 1. 164 - Booze vapors no longer do anything except cause you to smell alcohol. 165 - Confusion confuses you for 5+d10 turns. 166 - Sleeping makes you fall asleep for 5+d5 turns. 167 - Speed gives you fast speed for d10 turns. 168 - Blindness and hallucination make you blind/hallucinating for 20+d20 turns. 169- Monsters can now generate with a potion of hallucination as an offensive 170 item, and will throw it at the player. They generate with a potion of 171 sleeping a little less often. 172- Monsters can displace peacefuls out of their way like the player can, unless 173 the peaceful is larger than them. 174- Having unchanging while turning to slime only pauses the slime timer; it does 175 not cancel the slime effect entirely. Unchanging conferred by dying and 176 corrupting or polyinit mode does not pause sliming at all. 177- You can determine the species of a non-stale egg by listening to it with a 178 blessed stethoscope. 179- Monsters will not wear objects made of a material they hate. 180- Monsters will not equip gear when they think the player is close by. 181- Monsters can no longer start equipping gear in zero turns after doing other 182 actions. 183- Cancelled thiefstones can be reactivated by dipping them in a non-cursed 184 potion of restore ability. This will key them to the level and space where 185 the player is currently standing. 186- Monkeys get a short, one-time burst of speed after stealing an item. 187- 1/40 of randomly generated erodable items will have some amount of erosion. 188- Lieutenants count as lords, preventing them from getting bad gear and 189 increasing their multishot by 1. 190- Captains count as princes, giving them slightly better gear and increasing 191 their multishot by 2. 192- The chance of a falling piercer missing its target is now a Dex% chance for 193 the player, and monster speed% chance for monsters. 194- Monsters fighting the player in melee with weapon attacks will use ranged 195 weapons if they have no melee weapon available. 196- Candles, lamps, and other ignitable things can be ignited by sources of fire 197 (typically in situations when other burnables also catch fire). 198- Quasits are buffed: 199 - Speed raised from 15 to 18. 200 - Their bite attacks can drain 1d4 points of Dexterity (up from 1d2). 201 - They generate in small groups. 202 - 25% of them generate invisible. 203 - They can see invisible. 204 - Difficulty is raised from 7 to 9. 205- The amount of backstab bonus Rogues can get is capped based on their skill 206 level in the weapon they attack with, but also gains a flat bonus based on 207 skill level. 208- Rogues get backstab bonus on trapped, frozen, unmoving, sleeping, stunned, 209 confused, and blinded monsters in addition to fleeing ones. 210- Orcish Town's general store shopkeeper is replaced with Izchak. 211- Dropping a ring of polymorph control into a sink causes it to change into 212 another sink, which allows a new pudding and foocubus to be generated from it. 213- Cleaver does not hit enemies in an arc if there is a known peaceful or tame 214 monster at either of the two additional spots it hits. 215- Grimtooth confers poison resistance when wielded. 216- Piranha now have two 2d6 bite attacks instead of one. Their speed is raised 217 from 12 to 18. 218- The Big Room now appears (if it appears at all) on levels 13-15 instead of 219 10-12. 220- Kicking open secret doors and corridors is easier, and never causes you to 221 hurt your legs. 222- A tiny fraction of erodable items will generate greased. 223- Dwarvish characters can always reach Skilled in pick-axe skill. 224- Gnomish characters can always reach Basic in club and crossbow skill. 225- Elvish characters can always reach Basic in enchantment spell skill. 226- Orcish characters can always reach Skilled in scimitar skill. 227- Flint stones and hard gems break 50% less often when used as projectiles due 228 to hardness. 229- Hobbits that generate with a sling will also generate with a stack of 4 + 1d6 230 flint stones (75% of the time) or rocks (25% of the time). 231- The caveperson role no longer starts with rocks. Instead, they now start with 232 20 + 1d10 flint stones (formerly 10 + 1d10). 233- Flint stones weigh 2 (up from previous weight of 1, but still lower than the 234 10 they weigh in vanilla NetHack). 235- The melee strength bonus is applied to ammunition thrown from a sling. 236- Skilled and above slingers can instakill any H monster on a critical hit. 237- Statues may generate near cockatrices that generate at level creation time 238 and not in a special room. 239- Tool shops now stock touchstones as 2% of items rather than 7%. 240- Tool shops stock potions of oil as 3% of items. 241- Yellow lights and fire elementals emit light in a radius of 2. 242- Fruits generate with holiday-themed names for a number of different holidays. 243- Mimics have additional special-cased things to mimic in special rooms. 244- The scroll of stinking cloud can be centered at a little over 7 spaces away 245 instead of slightly over 5. Strictly speaking, the radius is sqrt(50). 246- Gas clouds block line-of-sight. 247- Hallucination prevents petrification (because you are already stoned). 248- Mordor orcs and Uruk-hai can generate with orcish spears. 249- Any monster that generates with a spear can generate with a stack of them. 250- If a monster dies to damage from a trap on the player's turn, the player is 251 considered responsible. 252- Pit fiends' hug attack now creates a pit underneath their target, followed by 253 them hurling the target down into the pit. Sometimes a pit may be enlarged 254 into a hole. Levitation and flying prevent getting trapped in the pit, but 255 do not prevent damage dealt by being hurled down to the bottom. 256- Anything that polymorphs into a snaky form that is nonhumanoid and not 257 Gigantic will not break its armor. Instead, it will slither out of its armor. 258- Chaotics no longer incur a -1 alignment record penalty for angering peaceful 259 monsters. 260- Chaotics no longer incur a -1 alignment record penalty for casting healing 261 spells at their pets (but they still do for healing peacefuls). 262- There are no alignment record adjustments at all for casting healing spells 263 at a monster which is already at maximum HP. 264- Summon nasties scales based on the summoner's level, not the player's, and 265 always creates at least 3 monsters. 266- Add L's Wounds patch, which allows healers to receive messages showing how 267 wounded a monster is, and obtain the same information from farlook. 268- When disarming a shooting trap, its ammo is placed directly into your 269 inventory. 270- Spheres' explosions are now real explosions, hitting the 8 squares around 271 them and items on the floor in addition to their target. Note: real 272 explosions can destroy items! 273- When the player explodes as a sphere, their carried gear is safe from any 274 elemental damage the explosion would normally cause. 275- Flaming and freezing spheres are difficulty 9 (up from 8), and shocking 276 spheres are difficulty 10 (up from 8). 277- Digging out of an engulfer's stomach cuts its HP in half rather than setting 278 it to 1. If the engulfer is amorphous, its HP is only cut by 25%. There's no 279 longer a special case for unique engulfers (Juiblex counts under the 280 amorphous rule). 281- Getting lifesaved lowers current and maximum Con by 2, to a minimum of 3. 282- Mold grows on corpses roughly 5% of the time rather than 50%. 283- When a container is polymorphed, its contents are spilled out rather than 284 silently deleted. 285- Anaraxis the Black wears a cloak of magic resistance. 286- Sokoban levels are not eligible to be flipped. 287- Magic missile damage is no longer completely negated by magic resistance. 288 Instead, it halves the damage. 289- Half spell damage reduces the damage taken by magic missiles by half. This 290 stacks with the halving from magic resistance. 291- Half physical damage no longer applies when you zap yourself with a wand 292 unless the wand is striking. 293- Alchemic blasts deal twice as much damage ((# mixing potions + d9) * 2), but 294 acid resistance halves this (bringing it back to its vanilla level). 295- Vorpal Blade now deals +1d8 bonus damage instead of +1. 296- When you kill the Wizard or perform the Invocation, the upper limit on which 297 difficulty monsters can randomly generate is removed. 298- The 3.6.1 change in which your Int+Cha is capped at 32 for the purposes of 299 foocubus encounters is removed; there is no longer a cap. 300- The denominator of the seduction success formula is no longer a constant 35; 301 it is now 25 + 5 times the seducer's level, plus 20 if in Gehennom. 302- Secret corridors never randomly generate except as part of some closets. 303- Wood nymphs are slower than an unhasted player (10 speed). 304- Water nymphs have a slightly increased base level (4) and difficulty (6). 305- Mountain nymphs have an increased base level (5), speed (15), and difficulty 306 (7). 307- Being inside an abattoir can inflict you with nausea, with a Con-dependent 308 chance. Entering an abattoir for the first time also triggers this with a 309 higher chance. 310- The items inside Vlad's Tower are no longer guaranteed (except the candles, 311 which there will still be at least 8 of). 312- If you pray while Weak, not carrying much food, and at critically low HP, 313 your god will fix your HP rather than your hunger. (If you're Fainting and 314 don't have enough food, they'll still fix your hunger first.) 315- When evaluating if you're carrying enough food, your god will ignore any food 316 you're carrying if you have maintained the foodless conduct. 317- The Amulet now blocks teleport control instead of all intra-level teleports. 318 (It still blocks 1/3 of intra-level teleports, as in vanilla.) 319- Paper and straw golems (in addition to wood and leather golems) will rot and 320 instantly die when hit with a decay attack. 321- A wished-for thiefstone will be keyed to the spot the player is currently 322 standing on. 323- Blessed gain ability potions now increase a single attribute by 1-2 points 324 (the player chooses which) instead of raising all by 1 point. 325- Gain ability (uncursed or blessed) trying to raise an attribute randomly will 326 always succeed provided there is something raiseable. "Innate improvement" 327 attributes, e.g. strength while wearing gauntlets of power but when the base 328 value isn't maxed yet, now count as raiseable. 329- Item destruction is significantly nerfed; each source of cold, fire, and shock 330 damage can only destroy up to 1/5 of that damage in items. 331- New Big Room "Tea Party", containing a number of obstacles. 332- 8 polearms are removed: ranseur, spetum, bardiche, voulge, fauchard, 333 guisarme, bill-guisarme, lucern hammer. 334- The bec de corbin's damage stats are now those of the lucern hammer 335 (2d4 vs small / d6 vs large) instead of its former d8/d6. 336- Wielded rings can be enchanted with a scroll of enchant weapon, which has 337 identical effects to a charging scroll of the same beatitude. 338- Certain tools that have corresponding magical counterparts can be enchanted 339 with a scroll of enchant weapon while wielded, turning them into their 340 counterparts. 341- The "dtsund-DSM" proposal is implemented, which replaces dragon scale mail 342 with dragon-scaled armor of other types. 343 - All dragon scale mail is removed and no longer exists as objects. Wishing 344 for dragon scale mail will produce a "that doesn't exist" message. 345 - Dragon scales are now worn in the cloak slot. Their stats are unchanged: 346 3 AC, 0 MC, providing the same extrinsics. 347 - Reading enchant armor with scales equipped will always target the scales. 348 - Enchanting scales with body armor underneath will meld the scales into the 349 body armor, causing that piece of armor to provide the dragon extrinsic 350 associated with the scales as well as gaining 3 AC. 351 - The armor does not become erodeproof, but will become uneroded and 352 blessed if the scroll is blessed. 353 - This process does not change the enchantment of the armor. 354 - If the scroll is cursed, the resulting scaled armor proceeds to lose a 355 point of enchantment and become cursed, like normal for a cursed enchant 356 armor scroll. 357 - If you are confused, the scales will meld and then you will polymorph 358 into the associated type of dragon (see below). This skips the cursed 359 behavior. 360 - Melding scales into armor that already has scales will replace the old 361 color of scales with the new one. 362 - Enchanting scales without body armor underneath causes a polymorph into the 363 type of dragon matching the scales. Wearing a shirt does not affect this, 364 but polymorph control allows you to choose whether you wish to become a 365 dragon. A blessed scroll gives you a longer duration as a dragon and a 366 cursed scroll gives you a shorter duration. 367 - Reading a scroll of enchant armor while wearing a set of scales will always 368 try to do something with that set of scales; it will not choose an armor 369 piece randomly. 370 - Merging with scaled armor while polymorphing does not unfuse the scales 371 from the armor or cause any other sort of reversion; changing back will 372 restore the armor as it was. 373 - Scales' enchantment does not get transferred onto armor. It should not be 374 possible to obtain a set of scales with some enchantment other than +0, 375 apart from wishing for one. 376 - Player monsters that would receive dragon scale mail now instead receive a 377 standard body armor suit that is scaled with a random color of dragon 378 scales. 379 - Scaled armor cannot be wished for, it must be crafted. 380- Worn armor weighs 75% of its listed weight. 381- You can use #loot on adjacent pets to give them items and take items from 382 them. They will reevaluate their gear choices if you give or take anything. 383 Equipped items are valid selections; trying to take one will get the pet to 384 take it off. In wizard mode, this can be done to anyone, not just pets. 385- You can #rub a thiefstone on your hand as a gold golem in order to teleport 386 yourself to your stash with it. 387- Thiefstones no longer teleport themselves along with a gold golem that they 388 steal away, unless you are a gold golem rubbing it on your own hand, in which 389 case it stays with you. 390- Thiefstones now can be used to teleport any gold item to their stash, not just 391 coins. 392- Revert some of version 3.0's monster letter and color changes: 393 - Sea monsters moved back to ';' 394 - Zruties reintroduced as 'z' 395 - Lizards moved back to ':' 396 - Leprechauns moved back to 'l' 397 - Kop Sergeants/Lieutenants/Kaptains returned to blue/cyan/magenta 398- Mummy wrappings are no longer eligible for object materials and are always 399 cloth. 400 401### Interface changes 402 403- Light armor, studded armor, jackets, plain cloaks, and identified plain 404 gloves will display their default leather material when made out of leather. 405- Engravings now render as ~ (tilde) instead of " (quotation mark) by default. 406- The Vibrating Square is colored yellow instead of purple. 407- When water walking boots are identified by walking on liquid with them, a 408 message is printed. 409- The code is brought to parity with the interface improvements in the 410 NHTangles/NetHack36 github repository, branch 3.7-hdf. 411- Killing "player remnant" monsters (e.g. ghosts) from bones files is 412 livelogged. 413- Player remnant monsters cannot be renamed. 414- The 'checkpoint' option now defaults to true. 415- When you wear a cursed piece of gear, it will print a message about welding 416 to your body and immediately become identified as cursed. 417- Dying on a corridor or grass space now leaves a gravestone in the bones file. 418- You can no longer push a boulder in the course of running or traveling. 419- Monster and object lookup now print a heading which displays the monster or 420 object that it is printing details for. 421- Viewing an encyclopedia entry now prints the string that was used to find an 422 entry in the encyclopedia and the string in data.base that matched it. 423- The livelog for life saving prints the would-be cause of death. 424- The #conduct command (and thus the dumplog) shows how many items you have 425 polymorphed during your game, outside of wizard mode. 426- If you have nothing quivered but are wielding a weapon that can return to 427 your hand when thrown, the f (fire) command will choose that to throw (unless 428 autoquiver is on and it finds something else to quiver). 429- Riders now have unique messages for when they resurrect. 430- A couple more major Oracle consultations. 431- Monks now have role-specific hello/goodbye messages like several other roles. 432- An offscreen pet death will make you feel "woebegone" if hallucinating. 433- If you had a travel destination saved that you hadn't yet reached, a 434 controlled teleport will suggest that destination at its prompt. 435- Wielded weapons you are not at least Basic in are treated as non-weapons for 436 the purpose of "You begin bashing" messages. 437- When a monster wakes up, a message is printed indicating that, unless there 438 is a more specific message already being shown. 439- When you #loot while standing over a single container, and there is no 440 adjacent monster for you to loot, it will automatically loot that container 441 without prompting. 442- Monster lookup additionally shows the base level of the monster. 443- The xlogfile now contains a "polyinit=" field for all games, showing the 444 monster species the player polyinitted as, or "none" if the game was not in 445 polyinit mode. 446- New SERVERSEED sysconf option, which is intended for server operators to 447 obfuscate the values returned by the game's deterministic hash functions so 448 players can't compute them. 449- Conduct flags in the xlogfile are moved around (xNetHack flags now start at 450 the highest bit and count down) and conductX is extended to include xNetHack 451 conducts. 452- Bonesless conduct is determined by not loading any bones files, rather than 453 simply having the bones option off. 454- The xlogfile "flags" field is rearranged (xNetHack flags now start at the 455 highest bit and count down, and it no longer stores the number of bones). 456- You can now set monster colors to recolor a monster species: either via 457 "MONSTERCOLOR=species:color" in the configuration file, or via in-game 458 options. They do not persist when the game is saved and restored, but 459 configuration file changes will be reloaded upon restore. 460- More hallucinatory monsters, shirts, epitaphs, random engravings, rumors, 461 hallucinatory gods, hallucinatory blasts, tin labels, weapon names, and 462 taunts. 463- A number of new encyclopedia entries are added, mostly for things that vanilla 464 did not have an entry for, such as conducts and object materials. 465- The 'color' option is now on by default. 466 467### Architectural changes 468 469- tipcontainer() is generalized to work for spilling objects out of a container 470 on some space other than the player' other than the player's. 471- A bunch of enhancements, fixes, and refactors of the level parser, initially 472 implemented as patches versus vanilla. In particular, themed room subrooms 473 and special rooms can now be filled. 474- Monsters created in a bones file to represent a dead player (ghost, mummy, 475 etc) are tracked with a new "ebones" mextra struct. 476- A new body part, TORSO, is added. 477- Overhaul special_dmgval(); it now checks all possible sources of special 478 damage and returns the one that had the highest damage roll. 479- New function attack_contact_slots, which returns the worn gear slots which 480 will come in contact with a monster being attacked. 481- searmsg(), special_dmgval(), and mon_hates_material() are all 482 xhity-compatible. 483- polymon() now takes a second argument of a bitmask of flags, rather than a 484 boolean, for finer-grained control of which types of messages it will print. 485- New function invalid_obj_material(), used only by other object material 486 functions to check for a specific otyp-to-material invalidity. 487 valid_obj_material remains the main function accessible outside mkobj.c. 488- New macro livelog_mon_nam(), which is a wrapper around x_monnam() 489 specifically suppressing hallucination so that livelogs don't print a 490 hallucinatory monster. 491- New monster flag alias golem_destroyed, which is actually mrevived and 492 indicates that the monster was completely wiped out and should drop no items 493 from its body. Only should be used on monsters for which mrevived is never 494 set. 495- New function tt_name(), which returns a random name from the top 10 list. 496- artifact_hit now returns a bitmask of two flags: one for having printed any 497 special message (and the caller doesn't need to print a normal hit message), 498 and one for specifically printing an instakill message (for the caller to 499 suppress more messages in certain circumstances). 500- Rearrange the logic in mm_displacement() into a series of if statements 501 rather than one big if. 502- New function autoreturning_wep(), an xhity-compatible function that 503 determines if a thrown weapon should return to its user. 504- The its_dead() function now takes a fourth argument, the stethoscope being 505 used to listen to floor objects. 506- New function can_slime_with_unchanging(), which determines whether you have a 507 certain form of unchanging that should not impede turning to slime (such as 508 polyinit mode). 509- New function faulty_lifesaver(), which unifies the logic for deciding when an 510 amulet of life saving will fail. 511- New function check_gear_next_turn(), which sets a flag on a monster that it 512 should reassess its worn equipment for anything better at the beginning of its 513 next turn. 514- New function piercer_hit(), an xhity-compatible function that handles what 515 happens when a piercer attacks something by falling. 516- The thrwmu function now returns boolean instead of void, used to determine 517 whether the monster actually took any action. 518- New function ignite_items, which makes items in an object chain (candles, 519 lamps, etc) light on fire. 520- New function adj_monnam(), which contains the logic from Adjmonnam but 521 doesn't force the first character to be uppercase. Adjmonnam now calls this. 522- New function should_cleave(), which determines whether there would be 523 peaceful monsters in the path of Cleaver. 524- Move will_weld() macro up to obj.h so that it can be used outside wield.c. 525- Gas clouds are now capped at 150 squares (nothing that creates a cloud 526 currently uses this much area). 527- Convert the emits_light macro into a function in mondata.c. 528- New function weekday(), which returns the day of the week in a 0-6 range. 529- New function days_since_epoch(), which returns the number of days since 530 1/1/0000. 531- Externify the inside_region function. 532- Externify the cant_wield_corpse function. 533- New function create_pit_under(), an xhity-compatible function that has an 534 aggressor create a pit beneath a target monster and throw them down into it. 535- New function is_fleshy(), which determines if a monster has flesh or not. 536- New function dump_container(), which contains the logic extracted from 537 tipcontainer() that deals with actually dumping the items out on the floor. 538 Various item-spillage bits of code now call this. 539- Add nh.mon_difficulty() as a Lua function which returns the difficulty of a 540 given monster species. 541- Add door_into_nonjoined() which checks if a potential door location would 542 connect to an area marked as non-joined. 543- Unify the probabilities for random door generation between regular dungeon 544 levels and other levels: how often they generate closed, trapped, iron, etc. 545 into a new function random_door_mask(). 546- New function clear_nonsense_doortraps() to delete traps on doors where the 547 trap type doesn't make any sense. 548- Remove the rnddoor() function. 549- retouch_object() now takes a third argument which indicates the caller thinks 550 the object isn't in contact with your body and there should be no damage due 551 to hating the material. 552- New function armor_bonus(), which is converted from the ARM_BONUS macro. 553- New function dragon_scales_color(), which returns just the color string from 554 a set of dragon scales or dragon-scaled armor. 555- armor_to_dragon() is externified and takes a monst instead of an otyp. It 556 unifies player and monster logic of figuring out what dragon a creature 557 should polymorph into based on what it's wearing. 558- New function armor_provides_extrinsic(), which finds the extrinsic property a 559 piece of dragon-scaled armor should provide. 560- Define constants FIRST_DRAGON, LAST_DRAGON, FIRST_DRAGON_SCALES and 561 LAST_DRAGON_SCALES for better semantics where they are used in the code. 562- The Is_dragon_mail and Dragon_to_scales macros are removed. 563- The Dragon_scales_to_pm and Dragon_mail_to_pm macros are replaced by 564 Dragon_armor_to_pm, which unifies them. 565- New macros Is_dragon_scaled_armor, Dragon_armor_to_scales, 566 Dragon_armor_to_pm, and mndx_to_dragon_scales. 567- An argument of 4 to polyself() indicates a polymorph from trying to enchant 568 dragon scales onto oneself (so that polymorph control only allows the player 569 to decline to turn into a dragon rather than being able to become anything). 570