1## xNetHack 1.0 Changelog
2
3This is the first version of xNetHack, forked off the NetHack 3.6.1
4development version. See doc/fixes36.1 for the devteam's changes.
5
6The xNetHack page at the NetHackWiki, https://nethackwiki.com/wiki/XNetHack,
7attempts to describe these changes in a way that's better formatted and more
8friendly to players. However, it might be out of date; in case of conflicting
9information, this changelog is more up-to-date than the wiki page, and the
10commit messages are more up-to-date than this changelog.
11
12On top of any changes made by the NetHack devteam on 3.6.1, xNetHack 1.0
13contains the following changes:
14
15### Gameplay changes
16
17- Add "artifactless" conduct: never touch an artifact (14th bit of xlogfile
18  conduct).
19- Add "petless" conduct: zero tame monsters the whole game (13th bit of
20  xlogfile conduct).
21- Change magic traps' taming effect to pacification.
22- Bribing demons demand 50d500 gold, regardless of what the hero is carrying,
23  and may be successfully shortchanged depending on the hero's Charisma.
24- 7% of objects in hardware stones are touchstones.
25- Exploding bag of holding scatters 12/13 of its contents instead of destroying
26  them outright.
27- Generate a lot more monsters when a level is created, and slow down the
28  normal generation rates.
29- Add a barricaded shop with an alive shopkeeper to Orcish Town, and scatter
30  around a lot of gear that should be dropped by the dead denizens.
31- Drop the XL threshold for the Quest to 10.
32- Wielding a mirror confers a 50% chance of reflecting any reflectable attack.
33- Add the Gnomish Sewer Mines' End (dark twisty water level with many rings).
34- Remove random chance of extra-powerful poison (instadeath in vanilla) from
35  all poison sources.
36- Scroll of light now gives 11 radius when uncursed and lights up the entire
37  level when blessed.
38- Scroll of teleport now gives a controlled teleport when blessed.
39- Make scroll of remove curse type-IDed when one successfully changes the
40  beatitude of items in inventory.
41- Green slimes have an engulfing attack that starts sliming.
42- Candle light radius is now sqrt(x)+1 instead of log_7(x)+1.
43- Non-spiked pits occasionally generate in graveyards, and they are flavored as
44  open graves.
45- Remove the mysterious force.
46- Blessed scroll of destroy armor asks the player which piece of armor to
47  destroy.
48- You can rub rocks together or on touchstones to break them, occasionally
49  producing flint stones.
50- Flint stones' weight is reduced to 1 aum.
51- Orc-captains are considered a lord to their kind, and their speed is
52  increased from 5 to 9.
53- The wand of speed monster on the player gives temporary very fast speed but
54  not intrinsic speed.
55- The potion of speed gives intrinsic speed and a short duration of very fast
56  speed.
57- Remove spell failure; instead, Pw cost is divided by what the success rate
58  would have been.
59- Wielding a spellbook cuts the Pw cost of casting its spell in half.
60- The amulet of life saving does not work if the player is polymorphed into a
61  nonliving form.
62- Occasionally when you die to vampires, green slimes, mummies, or anything
63  else that would have made you arise from the grave, you turn into that
64  monster but retain your sanity, and continue playing with permanent intrinsic
65  unchanging.
66- The player can now displace peaceful monsters (with a few small exceptions:
67  Oracle, shopkeepers, priests, quest leader).
68- Add thiefstones, a gray stone which steals magic items and treasure back to a
69  location on the level it generates. If the player tracks it down and removes
70  its curse, they can use it to their own benefit.
71- Unicorn horn is a poorer weapon (1d8/1d10), and no longer restores lost
72  ability points, but is made one-handed and applies itself passively if
73  wielded in the bare main hand.
74- Potions may be #dipped in sinks to pour them down the drain, causing the hero
75  to suffer its vapor effects.
76- Add vapor effects for all potions, and make most of them unambiguously
77  identify the potion.
78- Rebalance spellbook failure effects; notably a failure causes confusion
79  instead of paralysis, and paralysis only happens as a side effect of level 5+
80  books. The steal gold effect is also replaced with the book biting you. A new
81  level 1+ effect is the book dropping one level in BUC.
82- Spellbooks disintegrate if and only if they are already cursed.
83- Blessed and cursed spellbooks act as +/- 10 Int, instead of guaranteeing
84  success and failure.
85- Ghosts of Dudley can now be encountered.
86- Magic lamps can be wished for.
87- Throw out the complicated spellbook delay formula; all spellbook delays are
88  now 10\*level.
89- Chargeable rings will never generate at +0.
90- "Klunk!" from kicking a sink is less likely.
91- "Flupp!" effect from kicking a sink will dislodge and spit up one ring buried
92  under the sink.
93- All sinks on non-special levels now generate with one ring buried beneath them
94- Dropping a ring down a sink has an 80% chance of being buried beneath it,
95  rather than 20%.
96- Confused scroll of light will conjure several tame cancelled lights, which
97  cannot explode but are useful as a light source. Will be yellow lights if
98  non-cursed and black lights if cursed.
99- Treasure zoos generate only animal monsters.
100- Wielding a quarterstaff or wand of nothing reduces the Pw cost of a spell
101  just like a robe would do, and not stacking with it. Wielding a wand that
102  corresponds to a certain spell (e.g. wand of death for the finger of death
103  spell) does the same thing, but for that spell only.
104- All roles now have a standardized "cutoff level" of 12 for maxHP and maxPw
105  gains.
106- Scrolls of identify always identify 7/4/1 items for B/U/C; full inventory ID
107  is no longer possible from scroll.
108- Throne insight always gives a full inventory identify.
109- Spell of identify is removed.
110- Replace the KABOOM!! door trap with several different interesting traps that
111  scale with dungeon level: screeching hinges, self-locking mechanisms,
112  statically charged doorknob, falling bucket of water, removed hinges, boulder
113  dropping out of the ceiling, hot doorknob, and fiery explosion.
114- Hitting a gremlin with light will anger it.
115- Add ring of carrying: chargeable 200zm ring that increases or decreases
116  carrying capacity by 5% per enchantment.
117- Change can of grease material to plastic and color it bright blue.
118- Change hexagonal wand material to quartz (gemstone).
119- Potions of oil cannot be diluted.
120- Uncursed food no longer gives "Blecch! Rotten food!"; cram and lembas never
121  do even when cursed.
122- Spellbooks of cure blindness, invisibility, and detect food no longer
123  randomly generate (can still be wished for or written).
124- Change some spell levels:
125  - Dig: 5 -> 3
126  - Detect monsters: 1 -> 3
127  - Clairvoyance: 3 -> 2
128  - Charm monster: 3 -> 6
129  - Detect unseen: 3 -> 2
130  - Turn undead: 6 -> 2
131  - Jumping: 1 -> 2
132- Dwarvish and Uruk-hai shields count as bulky.
133- Replace old spell formula with a more straightforward one; see the xNetHack
134  wiki page for details.
135- Upper Mines levels are always lit; Lower Mines levels are always dark.
136- Use a new, more continuous, Pw regeneration formula from FIQHack (see commit
137  56c5bbbb).
138- Wizards get four spellbooks in starting inventory (force bolt, magic missile,
139  and two random). This replaces the scrolls, potions, rings and wand they
140  previously started with.
141- Shriekers will spawn a baby purple worm if regular purple worms are too hard.
142- Scalpels do 1d5 damage versus small and 1d7 versus large monsters.
143- Land mine weight is reduced to 40; beartrap weight is reduced to 50.
144- Rangers start the game with two beartraps.
145- 1/40 of random non-artifact weapons generate erodeproof.
146- The player does not trigger rolling boulder traps unless on the ground.
147- Add iron doors: they mostly act like normal doors, able to be opened, closed,
148  locked, unlocked, and untrapped like wooden doors, but they cannot be
149  destroyed by brute force. They render as cyan instead of brown, and random
150  doors on filler levels with higher than 10 difficulty may be generated as
151  iron.
152- Convert several Castle doors to iron.
153- Certain appropriate kinds of traps (those that can be triggered by closing as
154  well as opening) can generate on doors that generate in the "open" state.
155- Pets may no longer be displaced (and untamed) out of traps.
156- Pets now refuse to be displaced into bad terrain (a trap that harms them, or
157  liquid).
158- Hitting a gold golem with a blessed thiefstone (only if thrown due to a bug)
159  will teleport that golem to the keyed location. Works on players polyselfed
160  into gold golems. Does not work on a monster carrying the Amulet.
161- Rare candy from Pokemon; when you eat a candy bar there is a 1% chance of
162  gaining a level.
163- Spiders have a small probability of spinning a web with each step they take.
164  This chance is doubled if it is in a doorway. If you observe this happen, the
165  web is identified.
166- Stinking clouds expand to fit their terrain rather than using a rhombus
167  shape. Be careful with them in confined spaces.
168- If the player has followed petless conduct, the guardian angel on Astral will
169  spawn peaceful rather than tame.
170- The Astral Plane is fully lit.
171- Rogues start with thiefstones identified (but they don't get one in
172  inventory).
173- Allow tins to be read (you read the label). On 1/5 of labeled tins it tells
174  you the contents honestly, otherwise it will give a random false label. Tins
175  made by the player are not labeled.
176- Rebalance some starting attributes and distributions. Healers have higher
177  Int, lower Wis, and lower Cha, Monks have higher Wis, and Priests have higher
178  Int. Priests' Int and Wis distributions are now equal.
179- Polymorph traps disappear whenever they polymorph anything, not just the
180  player.
181- Random doors are secret less of the time. No doors on the first three levels
182  will be secret, and the chance of secret doors remains well below vanilla
183  levels for most of the Dungeons of Doom.
184
185### Interface changes
186
187- Using the open command to target "." (self) is an alias for #loot.
188- When you ascend with a non-starting alignment, the end-of-game reason is
189  "ascended (in dishonor)".
190- The Ranger pantheon changes Mercury (lawful) to Apollo and Venus (neutral) to
191  Diana.
192- Sinks render as blue \, drawbridges as orange +.
193- Recolor royal jelly to magenta.
194- Whenever monsters polymorph in sight of the hero, print a message saying what
195  they turned into.
196- After sacrificing the Amulet to Moloch, you get flavor text of an invisible
197  choir chanting in Latin and being bathed in darkness.
198- Correct "Thou cannot escape my wrath, mortal!" to "canst not".
199- Priests will give you bitcoins for an ale while hallucinating.
200- After being crowned, thrones give you the "very comfortable here" message.
201- Paying exactly 1/10 of your gold to a priest will "pay your tithe".
202- Port monster lookup from FIQHack: when you are looking up a specific monster
203  in the encyclopedia, a full description of its stats, abilities, and attacks
204  will be shown above the encyclopedia entry.
205- The Candelabrum reads (n/7 candles attached) to make explicit that it holds 7
206  candles.
207- Gravestone color is now white; this probably doesn't matter for a lot of
208  fonts.
209- Implement object lookup: when you are looking up a specific object in the
210  encyclopedia, a full description of its stats and other properties will be
211  shown above the encyclopedia entry.
212- Bones levels now have a level sound: the same "eerie feeling" as in walking
213  into an abandoned temple.
214- Move the entire ":" monster class, lizards, to "l" (leprechauns are displaced
215  to green "i").
216- Move the entire " " monster class, ghosts, to "W".
217- Move bugbears from the "h" monster class to the "o" monster class.
218- Recolor many monsters:
219  - Werejackals are green, wererats are yellow, and werewolves are orange, in
220    both their human and were forms.
221  - Wolves are recolored from brown to gray.
222  - Wargs are recolored from brown to black.
223  - Floating eyes are recolored from blue to cyan, and there was much
224    rejoicing.
225  - Mind flayers are recolored from magenta to cyan.
226  - Master mind flayers are recolored from magenta to bright cyan.
227  - Kobolds (and mummies and zombies thereof) are recolored from brown to gray.
228  - Titanotheres are recolored from gray to yellow.
229  - Baluchitheria are recolored from gray to orange.
230  - Giant rats are recolored from brown to red.
231  - Rabid rats are recolored from brown to green.
232  - Aleaxes are recolored from yellow to gray.
233  - Shriekers are recolored from magenta to bright magenta.
234  - Minotaurs are recolored from brown to orange.
235  - Arch-liches are recolored from magenta to bright magenta.
236  - Gnome mummies are recolored from red to brown.
237  - Orc mummies (and orc zombies and the "orc" monster) are recolored from gray
238    to blue.
239  - Mordor orcs are recolored to red.
240  - Human mummies are recolored from gray to white.
241  - Ettins, ettin mummies, and ettin zombies are recolored from brown to
242    yellow.
243  - Cobras are recolored from blue to bright blue.
244  - Owlbears are recolored from brown to orange.
245  - Sasquatches are moved from gray to red.
246  - "Boss" monsters (Wizard of Yendor, all demon lords, and the Riders) are
247    recolored from magenta to bright magenta.
248  - Imps are recolored from red to orange.
249  - Kops are recolored according to their equivalent Yendorian Army ranks.
250  - Erinyes are recolored from red to green.
251  - Barbed devils are recolored from red to cyan.
252  - Mariliths are recolored from red to bright cyan.
253  - Vrocks are recolored from red to orange.
254  - Nalfeshnees are recolored from red to bright blue.
255  - Pit fiends are recolored from red to black.
256  - Piranhas are recolored from red to orange.
257  - Geckos are recolored from green to bright green.
258  - Crocodiles and baby crocodiles are recolored from brown to red.
259  - Chameleons (in their default form) are recolored from brown to gray.
260  - Fiery monsters (fire giants, fire vortices, fire elementals) are changed
261    from yellow to red.
262  - Ghosts are recolored from nothing to white.
263  - Shades are recolored from nothing to black.
264  - Wraiths are recolored from black to gray.
265  - Barrow wights are recolored from gray to bright blue.
266  - Acid blobs are recolored to bright green.
267- It is now impossible to enter water or lava unless you are impaired, know you
268  are safe, or use the 'm' command.
269- Add "swim" to the list of paranoid_confirmation options. When enabled, you
270  will be prompted before unsafely entering water when you try to move there
271  with the 'm' command.
272- Add "trap" to the list of paranoid_confirmation options, and always prompt
273  before stepping onto a trap, unless impaired, or unless the player is
274  obviously immune to the trap's effects.
275- Merge FIQ's getobj patch: more developer-customizable prompts for objects,
276  and these prompts also accept , representing "object or dungeon feature on
277  the floor".
278- Water walking boots self-identify if they obviously prevent you from entering
279  water. If they prevent you from entering lava, their fireproofness is also
280  identified.
281- Branch stairs are colored yellow.
282- Engravings display visibly on the floor when you are able to see them. The
283  default symbol is " but it may be set manually via S_engraving. A new
284  engraving tile is also added to the default tileset.
285- Add some thiefstone-related true and false rumors.
286- Reference the famous Monty Hall Problem on the two dud Sokoban engravings.
287- Pressing Escape while being held or engulfed by a monster gives "You cannot
288  escape from the monster!" YAFM.
289- Death rises from a "short nap" instead of "the dead" when reincarnating.
290- The invisible choir is "visible" if you ascend while seeing invisible.
291
292### Architectural changes
293
294- Priest quest and Castle use FLAGS:graveyard instead of hardcoding in source.
295- Object probabilities no longer have to add up to 1000 for each object class.
296- Add two new coordinates to struct obj (to allow thiefstones to migrate to a
297  certain spot).
298- Touchstones are no longer a magical item.
299- Valley entrance message is moved into gehennom.des instead of hardcoding.
300- Move most paralysis sources into a new make_paralyzed function.
301- Refactor testing for whether an object has a specific randomized description
302  into a new function objdescr_is().
303- Rename cost() to ink_cost().
304- Remove enermod() function since it was only being called in one place.
305- Comprehensive doors overhaul: "locked" and "trapped" are no longer separate
306  states, but simply flags; actual state of a door (none, broken, open, closed)
307  are reduced to 2 bits, freeing up one bit for later use.
308- The b_trapped and mb_trapped are removed; the new door traps make them
309  unused.
310- Import livelogging, dgamelaunch simplemail, and dgamelaunch extrainfo.
311- impossible() now asks the player to report the message to the developer.
312- Add immune_to_trap() function which works symmetrically on monsters and
313  players. Currently used only in conjunction with paranoid trap mechanics, but
314  intended to be used for monster AI in the future.
315- Merge a lot of (is_floater() || is_flyer() || is_clinger()) logic into a new
316  !grounded() macro, which cleans up some edge cases that weren't previously
317  covered.
318- Add incomplete "material" field to the wish parser. Predecessor of object
319  materials, perhaps?.
320- Create coord_hash function for deterministic hashing of xyz coordinates.
321- Allow engravings in des files to specify random instead of a literal string;
322  this will generate regular random engraving text.
323- Allow get_rnd_text to choose a specific byte offset in the file.
324- Add up_all_words() as a library function: it turns "string-thing like this"
325  into "String-thing Like This".
326- Create hash1() function: same logic as coord_hash, but only 1 parameter
327  instead of 3.
328- Full documentation of all level generation code except for sp_lev.c.
329
330