forked from angband/angband
-
Notifications
You must be signed in to change notification settings - Fork 1
/
changes.txt
543 lines (462 loc) · 21.9 KB
/
changes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
Welcome to the changelog for Angband 4. This file tracks the changes made since
3.5.1.
Angband 4.2.5
=============
This version sees the return of the borg automatic player, removed in the major
restructure leading up to version 4.0.0, resurrected by Adam Goodman. In now
standard fashion, it also contains a great many bug fixes and code improvements
by backwardsEric. Headline changes are:
- return of the borg
- fix problems caused by some necromancer spells
- hydras now bash rather than open doors
- clarification of symbols on the character sheet
- torch random artifacts can drop deeper in the dungeon
- improvements to stats and debug commands
- autobuild for NDS, DOS, msys2 and nmake
- too many areas of code improvement to mention individually
Angband 4.2.4
=============
This version contains a LOT of bug-fixing and code improvements, again
mostly by backwardsEric. The main changes were:
- use C99 types instead of the angband special types
- Single Combat maybe finally bug-free
- improvements to the birth process
- improvements to the NDS port
- many improvements to auto-building and all the front ends
- improvements to changing of background colours
- adding of a panic directory for panic saves
- new tests, and improvements to current ones
- re-organisation of effects code
- add a player argument to a lot of functions that needed it
- import a lot of historical documentation
- lots of tidying and neatening
Angband 4.2.3
=============
This version contains considerable bug-fixing - mostly by backwardsEric. There
is also a new offical site, basically the same as the old rephial.org but hosted
on Github at http://angband.github.io/angband. The main changes were:
- updates to necromancer and ranger spells
- improvements to quiver inscriptions
- many improvements to dungeon generation, especially robustness
- many improvements to testing and building the game, especially with SDL2
- make the duration of multiple timed effects exactly the same
- allow selection for effects that used to give a random choice of effects
- fix a bug that made radius of artifact lights too small by one
- improvements to handling in-game information on effects
- better documentation in datafiles
- debugging commands now use the Angband 4 command system
- upgrade of the NDS port to the 3DS with many improvements
Angband 4.2.2
=============
This version is almost entirely bug-fixing and quality-of-life improvements,
plus a few balance tweaks. The game was also set up to automatically build and
run tests on Github.
- many bugfixes and UI improvements
- a further significant overhaul of blackguard spells
- tweaks to some priest spells
- new knowledge menu for player shapes
- increase to chest frequency
- uniques can no longer be trampled
- adjustment to food system, including much quicker reduction of Full status
- afraid monsters with nowhere to run become held
- throwing weapons can be stored in the quiver
- improved method for default stat point allocation at birth
- tweaks to powerful modifiers in randart generation
Angband 4.2.1
=============
This version is maybe best described as consolidating the big changes made in
version 4.2.0. Again, there are too many individual changes to list, so this
is a summary.
- percentage combat is refined to become an actually playable option
- improvements to throwing
- update to town generation
- a major update to the new blackguard class
- several tweaks to the other new classes
- many improvements to the MacOS front-end particularly, but also others
- improvements to tiles
- addition of fancy color-cycling of monsters
- configurability of character sheet
- inclusion of some new, rare level types
- experimental Windows curses and SDL2 console ports added
- many small bugs fixed and quality-of-life improvements made
Angband 4.2.0
=============
This version is mainly a major overhaul of classes and the monster list. As
for the last two 4.x.0 releases, there are too many individual changes to list,
so what follows is a summary.
Classes
-------
Two new realms of magic have been added, nature and shadow, to the existing
divine and arcane realms.
- Nature realm relies on harnessing the power of the earth, and is opposite
to the arcane realm, which uses craft and cunning.
- Divine realm uses harmony and light, and is opposite to the shadow realm
which aligns with darkness, power and sacrifice.
- Rangers now use nature magic, like the new Druid class
- Necromancers are the major shadow caster class
- Blackguards are fighters enhanced by shadow magic
- Pure casters (mages, priests, druids, necromancers) use five books (down
from nine)
- Hybrid casters (rogues, paladins, rangers, blackguards) use two or three
books
- Classes no longer have different rates of gaining experience
Monsters
--------
Each base monster type has had its game niche reconsidered, and there has been
a general push to use Tolkien-inspired monsters where appropriate. Some of the
major changes include:
- Ainur - most of these now align with one of the great Valar, and have
corresponding powers
- Dragons - these have mostly been made stronger and deeper
- Humanoids - dark elves have been replaced with dwarves, gnomes with Drúedain
- Hydras - each hydra type is like the previous type with a new head and
attack added
- People - the association of some of these with player classes has been
expanded to include the new classes
- Snakes - some of these are now dangerous
- Spiders - more dangerous and deeper, with unique abilities
- Trees/Ents - these are new, tough to kill enemies
- Wights/Wraiths - wights are all now shallower than wraiths, and the
Ringwraiths are much deeper
Game Mechanics
--------------
In the course of the class and monster changes, many new mechanics have been
introduced, with some of the major ones being:
- Player and monster shapechanges
- Variable light and darkness are created by monsters, player gear and player
spells, and the player has a meter to measure the light level on their
square
- Mages can drain mana from magic devices
- Rogues can steal from monsters
- Temporary brands and slays (Priests, Paladins, Blackguards)
- Necromancers can see in the dark, and can cast less well in light
- Healing of hitpoints every turn for a time (Druids)
- Control of a monster, including making it attack other monsters
(Necromancers)
- Shield bashes (Warriors, Paladins, Blackguards)
- Decoys which monsters will attack instead of the player (Rangers)
- Blackguards can go into a state of bloodlust which improves their combat at
a price
- Monsters can whip or spit on the player from nearby
- Monster groups act more as a group, with leaders and sometimes bodyguards
- Innate spells (e.g. breaths) and cast spells (e.g. bolts) have separate
frequencies
- Deeper in the dungeon shallow monsters are less likely to appear
- Monsters can teleport to the player
- Spiders can weave webs
- Monsters can have innate darkness around them
- Traps added that trigger on leaving their square
- Ringwraiths can inflict the Black Breath
- Monster spells can have different levels depending on monster spell power
- The player now has a hunger meter, and food is more important
- As with classes, all races gain experience at the same rate, except for
humans who are faster, and high-elves who are slower
- The Temple has been replaced with a Bookseller who sells books of all realms
Code Improvements
-----------------
There have also been some improvements to the codebase, both visible and
invisible to the player. The main ones are:
- Addition of an SDL2 front end
- Change to mostly using a single grid rather than x and y coordinates in
much of the code
- More readability of datafiles
- Some font improvements
- Some new tiles
- A new online (rather than in-game) help system
- A new experimental (and so far unbalanced) birth option for percentage
damage
- An option to start a new game after dying instead of closing the game and
re-opening
- Many fixes to bugs and memory leaks
Angband 4.1.3
=============
More minor changes and bugfixes, the last of the 4.1.x series.
Changes
-------
- Passable rubble tiles distinguished from regular rubble
- Details of different summon types moved to a data file
- Tweaks to some potions and scrolls
- Minor improvements to monster lore
- Reduction in frequency of traps and greater vaults
- Show if monsters are hasted and slowed when targeting
Bugfixes
--------
- Correct weapon damage and blows information
- Fix several minor ID and knowledge bugs
- Correct some spelling errors in text files
- Check bounds properly in targeting, preventing the game hanging
- Fix some interesting room descriptions which were causing disconnected levels
- Small adjustments to object structures
Angband 4.1.2
=============
This version fixes bugs in 4.1.1 and makes some other small improvements
Angband 4.1.1
=============
This version fixes bugs in 4.1.0, and also introduces for the first time in
Angband the option to play with persistent levels
Angband 4.1.0
=============
This version has the first major gameplay changes since 3.5.0. Some of these
changes have significant impact on the game, and affect longstanding parts of
the game quite radically. Given that aver 750 individual changes have been
pushed to the main game repository since the last release, what is presented
here will be more of a summary than a detailed changelog.
Traps
- The general philosophy is that all players will hit traps at some time
- Magical trap detection has been removed, except as a spell for mages
- Active searching has been removed
- Characters have one chance to detect a trap, on seeing the grid it is on;
this chance is dependent on searching skill
- Traps are either physical or magical, and there is a corresponding split
in the player disarming skill
- Many new traps have been introduced, and old ones amended
- Traps are placed almost exclusively at corridor intersections or other
chokepoints
- Trap density in vaults is reduced by 75%
Identify
- ID is now "rune-based"; once an object property is recognised once, it will
always be recognised on all future items
- The only forms of magical identify are scrolls and the mage spell, both of
which identify a single unknown rune
- All scrolls, potions, mushrooms are identified on their first use
- Most wands, staffs and rods are identified on first use, the main exceptions
being when they affect monsters and are tested in the absence of monsters
- Ego item names become known once all the relevant runes are known
Player knowledge
- Changes to previously known terrain outside the player's field of view
(doors opening, etc) are no longer immediately known by the player
- Secret doors are now always found on stepping adjacent (or at a distance
by the mage spell)
Dungeon generation
- A new generation algorithm has been introduced, and appears roughly as often
as the classical generation algorithm
- There are many new vaults in the new algorithm, and also new room types -
huge rooms, rooms of chambers, and interesting rooms (like small vaults)
- There is also an infrequently occurring generation type, the "moria level",
which features large rough-edged rooms and many orcs, trolls and ogres
- Lava has changed from being a visual curiosity in town in 4.0.x to being
generated in the dungeon; it will burn those without fire immunity
- Another new type of terrain has been introduced: passable rubble, which
behaves like regular rubble except it can be walked through
Monsters
- Monster breaths are now cone-shaped starting at the monster, instead of
being indistinguishable from ball spells
- Monster pathfinding has been improved (mostly), with monsters tracking
explicitly by sight, sound or scent
- The relationship between player stealth and monsters waking has changed
Random artifacts
- Lights, rings and amulets are now fully randomised instead of based closely
on the standard special artifacts
- The artifact set generation algorithm has been changed so that random
artifacts no longer correspond to individual standard artifacts, but rather
are generated so as to get a statistically similar distribution
- Calculation of object power has been simplified
- Generating a set of random artifacts now actually writes a data file like
artifact.txt, which can be used for future games
Curses
- Sticky curses have been removed completely
- A large number of new curses have been introduced
- Items can have multiple curses
- Curse removal targets individual known curses on items
- Failed curse removal causes an item to become fragile
- Fragile items have a chance to be destroyed on future failed curse removals
Status effects
- Monster status effects have been redone to rebalance reliability and
effectiveness, so that they may actually be interesting to use
- New types of status-inducing spells and magic devices have been included
Other
- Much more detail has been moved out to text files in lib/gamedata
- Many underlying code improvements
Angband 4.0.5
=============
More bugfixes, the last of the 4.0.x series.
Changes
-------
- Randart diggers always have a digging bonus
- Some improvements to town generation
- Improvements to probing and monster lore
- Improvements to OS X port, including making Command-n bring up window n
- Improvements to object and monster lists
- Make the store names uniform
Bugfixes
--------
- Stop properties of examined items from affecting the real player state
- Make the slay cache work
- Prevent attempting to buy when the pack is full
- Fix bug which allowed repeating a purchase after leaving a store
- Make sure chests are ignored correctly
- Fix some message issues
- Fix some monster friends
- Make Windows sound work properly
- Remove flicker in center_player option
- Remove duplicate labels in death info
- Remove help about bashing and jamming doors
- Code improvements to directory paths
- Fix bug where two players temporarily appeared on panel change while runni$
- Fix subwindow map drawing
- Plug some memory leaks
- Grammatical correction to tombstone
- Stop monster/player/object tiles from disappearing when targeting
Angband 4.0.4
=============
More bugfixes, *maybe* the last of the 4.0.x series.
Changes
-------
- Remove some global variables
- Allow ego types to remove flags from base types
- Make Potions of Resist Poison also cure poison
- Improve pickup of partial stacks
- Disturb on first getting the object feeling
- Minor code improvements
Bugfixes
--------
- Stop crashes where use of an object destroys the object
- Let Windows port accept a filename from the command line again
- Speed up inventory/equipment refresh
- Let hit to shatter move the player again
- Stop autoinscriptions preventing object spoiler generation
- Make study indicator work for books on the ground
- Stop status effects happening after the player's death
- Make randart lights keep the original activations
- Make all new randart sets based on the standard artifacts
- Stop animations interfering with the target path
- Allow group monsters to melee the player in open areas again
- Make info for spells like Banish Evil say "power" rather than "dam"
Angband 4.0.3
=============
More bugfixes, (very) hopefully the last of the 4.0.x series.
Changes
-------
- Add stair-skip constant, making stairs go up or down that number of levels
- Another 200 room templates (for a total of 500)
- A number of code improvements, mainly from PowerWyrm
- Shorten inventory prompt, put overweight info in 'C' screen
Bugfixes
--------
- Correct OOD boost for object feelings
- Really fix lack of artifacts this time
- Make RNexus prevent hostile teleport level
- Stop crash from summoning traps
- Improve object ID from ball spells
- Stop game hanging on empty quiver
- Stop crash during inventory item damage by elements
- Stop auto-ignore from cancelling monster detection
- Make sure all changes to equipment are counted
- Correct monster energy/turn order, stopping double moves by slower monsters
- Correct food descriptions
- Improve quitting in OS X
Angband 4.0.2
=============
Another bugfix version.
Changes
-------
- New monster spell messages - thanks Elsairon
- Put subwindow options in a separate file so they work for all characters
- Order quiver ammo from worst to best
- Make resting and statusline display for deep descent work like for recall
Bugfixes
--------
- Stop wrong timed effect happening
- Make cheating death work
- Make monster lore saving always work
- Correct melee hit chance calculation
- Make artifact knowledge show correctly
- Fix starlight effect (plus some other potential projection issues)
- Make monster lore save properly after probing
- Give correct path to tiles in the SDL port
- Stop monsters shooting other monsters
- Calculate timed effects (notably temporary resists) properly
- Limit visual updates during running and resting, speeding these up
- Track the equipment count correctly
- Stop the charges from a destroyed device being deducted twice
- Small changes to build system to work better for servers and BSD
- Improve bounds checking for grids, preventing some crashes
- Make the quiver command symbol appear in help file display
- Fix lack of artifacts
- Several other minor code improvements
Angband 4.0.1
=============
This is chiefly a bugfix version.
Changes
-------
- Allow barehanded combat to get multiple blows
- Triple the number of room templates
Bugfixes
--------
- Stop spell books from claiming spells like teleport do damage
- A lot of coding style consistency improvements
- Improve device skill boost description
- Fix resistance to side effects of elemental attacks
- Reduce carried weight correctly when items leave the gear
- Remove potential crash when dropping from the equipment
- Some other minor issues identified by PowerWyrm
Angband 4.0.0
=============
Please note that no 3.x characters, living or dead, will move gracefully into this version. Finish off your character in your current version before moving over.
In the normal course of events, this file would contain details of every change that has been made since the previous version. This version is a special case. There are no gameplay changes, or at least only small details. There are, however, massive changes to the code base. The intent is to make the game more modifiable and flexible, and to prepare for big gameplay changes to come.
Summary of Changes
------------------
Core-UI split
- split the game into core and UI, and stop anything in the core from depending on anything in the UI
Modifiability
- put many of the game constants in a text file rather than being compiled in, so they are user alterable
- text data files cleaned up and documented
- help file for modifying added - lib/help/modifying.txt
Dungeon generation
- allow saving of dungeon levels and the town
- allow generation of dungeon levels piece by piece
- generalise level generation algorithms
- allow more control over monster generation for thematic purposes
- allow regions where restrictions apply (eg no ESP or no mapping)
- there is a 'squares' array containing the terrain, locality info, traps, objects, flow info and monster on each grid
Player knowledge
- duplicate the dungeon level "cave" struct, so that there is a reality version and a player version
Objects
- replace pvals (aside from fuel, food etc) by an array of values
- separate resistances, immunities etc from flags to allow for more values of resistance
- separate brands and slays from flags to allow more variablilty
- remove hard-coding of object tvals and svals, so objects can be safely added and moved around in object.txt
- handle special artifacts straight from artifact.txt, so an unrecognised object kind (like Phial) automatically has a new object kind defined for it
- put artifact activations in a text file
- put objects in linked lists tied to the grid, store, monster or player that holds them, rather than indexed in a level-wide list
Inventory, quiver, equipment
- make ordering of the inventory and quiver a UI construct only
- use a Poschengband-style equipment template to specify equipment slots (so there is a standard player body, but more could be added)
Monster memory
- make this a separate file, with full memory obtainable by copying monster.txt
Terrain/traps
- multiple gameplay-identical terrain types now handled by temporary flags during generation
- a full terrain flag system to allow easier addition/removal of terrain types
- make traps separate entities, not terrain
- make locked/jammed doors just closed doors with a trap
- remove code reliance on the numerical value of terrain types
Squelch->Ignoring
- remove all references to 'squelch', replace with 'ignore'
- add ignore by ego type
- emphasise the philosophy that the items are still there, just ignored
ID
- have a separate field for every learnable property of an item
- remove the IDENT_* flags
Effects
- have all effects performed by a single function, and definable from text files
Monster attacks
- put elemental spell effects back in the projection code rather than the spellcasting code
- put blow effects into seprate handler functions
Player spells
- generalise to make it easier to introduce new realms, classes, etc
- have all spell info defined by a text data file
Projection
- have separate functions to handle effects on terrain, objects, player, monsters
- clarify different types of projection
- allow for cone-shaped breaths
- allow for a wider variety of effects (eg player/monsters pushed by force)
Stats, power, etc
- refine and generalise stats where possible
- attempt to clarify all the (frankly) fudge factors so they can more easily be seen and adjusted
General code stuff
- rename files to be more sensible, or create new ones where needed
- update debug commands to reflect the current game
- move data into list-*.h files or edit files where appropriate
- remove archaic stuff
- re-organisation of lib directory
- document!