All Versions
31
Latest Version
Avg Release Cycle
56 days
Latest Release
-

Changelog History
Page 1

  • v0.11.1.0 Changes

    • Split the long Content.ModeKind texts into lines, #283
    • โœ… In unit tests, re-use values from UnitTestHelpers and Game.LambdaHack.Common.Kind, #286
  • v0.11.0.0 Changes

    • โ†ช Partially work around regression in libsdl2 2.0.16 (https://github.com/LambdaHack/LambdaHack/issues/281); to also avoid deformed boxes around tiles on the game map, please switch to a different SDL2 version
    • ๐Ÿ’… Deduplicate UI code for exiting game, with extra style points
    • โœ… Create monadic test harness and use it for UI and other unit tests
    • โœ… Validate empty content and fix other soundness issues revealed by unit tests
    • โž• Add extra hints in --more and similar lines when tutorial is on
    • ๐Ÿ‘‰ Show full history at SPACE press and let second SPACE close it
    • Spawn insects in the swamp
    • โœ‚ Remove slot letter display in menus and instead display subtle bullets
    • Repurpose item slots to item roles
    • Redo display and control of main menu and its submenus
    • ๐Ÿ‘‰ Make Teletype frontend a bit closer to playable
    • Switch right pane item description display from mono to prop font
    • Ensure score not zero if victory
    • โž• Add a custom SDL cursor, working around a bug in SDL2 bindings
    • Gut out most content symbols; weren't used even in lore menus after all
    • โž• Add a flag to disable the costly optimizations (that give 15-25% speedup)
    • โž• Add faction kind content and redo game mode content to use it
    • ๐Ÿ‘€ Display seen faction lore
    • Simplify and fortify faction and client assignment code
    • ๐Ÿ‘‰ Make a few unique items that were identified meta-game identifiable instead
    • ๐Ÿ›  Fix persistence of meta-game discoveries in save files
    • When assigning a faction, first try the group actor was picked from
    • When assigned faction is dead, don't spawn the actor
    • Don't use benign weapons on projectiles not to lose the fun
    • ๐Ÿ‘‰ Make the unique harpoon worth saving for a unique foe
    • Spawn enemies closer and fix too random spawning location
    • ๐Ÿ‘Œ Improve display of item's range
    • ๐Ÿ Warn when SDL game windows is resized not via config file
    • Ban or force sleep on levels
    • Protect against unset or primitive OS locale
    • โž• Add temporary hearing aids
    • Disallow generating a door beside an opening in room's wall
    • Permit smaller caves and validate cave content more accurately
    • Try harder to generate escape from dungeon in a level corner
    • Avoid exit/escape confusion in content names and descriptions
    • Extend LH game mode a descriptions since people play it instead of Allure
    • ๐Ÿ‘‰ Make sure every cave has a description
    • ๐Ÿ”จ Many fixes, refactorings and tweaks
  • v0.10.3.0 Changes

    • 0๏ธโƒฃ Work around regression https://gitlab.freedesktop.org/freetype/freetype/-/issues/1076 by making the scalable square font the default as the map font; the tiny map fonts, for which there is no such workaround, won't work for anybody with freetype 2.11.0
    • Enable display of details in right pane in many menus
    • ๐Ÿšš Switch mouse wheel to move selection now that it changes right pane display
    • ๐Ÿ”ง Make the line where messages wrap configurable in config file
    • โœ‚ Remove rarely used options from config file and code
    • Prepare client-server for delays when operating over the network
    • Reveal all map at game over and make it explorable
    • Don't run with -threaded, increasing speed by a couple dozen percent
    • Don't show messages during enemy turn (except when under AI control)
    • Spawn many actors at once with probability correlated to spawning at all
    • Gut out Ubuntu Font Family fonts
    • 0๏ธโƒฃ Default to more old-fashioned small fonts in LambdaHack the game
    • โž• Add a few tutorial messages, reword some in-game texts
    • ๐Ÿ‘ท Move with CI from Travis to GitHub Actions (but GHA can't keep up as well)
    • โž• Add hlint to CI
    • ๐Ÿ‘‰ Make place content directly define legends instead of overriding them
    • โž• Add a warning that crosshair is out of flinging range
    • โž• Add ANSI display to SDL2 frontend; remove vty, hcurses and GTK frontends
    • ๐Ÿ‘‰ Make Teletype frontend more usable (input, speed, overlays)
    • โœ‚ Remove sight malus from light sources to avoid micromanagement
    • Keep convenience settings between new games
    • โž• Add an option to mark FOV area with grey background
    • ๐Ÿ”จ Refactor and clean up a lot of the code
    • Unhardwire various constants (hat tip to Jamie)
    • ๐Ÿ›  Fix a couple of bugs and improve documentation
    • โž• Add whole new kinds of tests (even greater hat tip to Jamie)
  • v0.10.2.0 Changes

    • Let '?' scroll help
    • ๐Ÿ– Handle Alt and Shift modifiers together
    • Advertise the C- Tab command instead of A-
    • Ignore empty lines in history, just in case
    • Don't keep trailing endlines in history
    • Don't include placeholders in history.txt
    • Retry explosions 10 instead of 100 times
    • Point crosshair to a modified tile to easily get lore info
    • Point crosshair to a bumped tile to easily get lore info
    • Don't spam when reporting that crafting is forbidden
    • Prevent AI from attempting to fling when challenge forbids it
    • Hint about absolute paths to fonts
    • โœ… Disable testing ubuntu fonts, because they can't be distributed in Debian
    • ๐Ÿšš If any savefile corrupted, move aside all
    • Be more consistent about moving corrupted files aside
    • Stop running when passing a door, etc.
    • ๐Ÿ‘‰ Make the game over lore headers sound more natual
    • Do not mention embeds in minimal detail
    • ๐Ÿ‘‰ Tweak detail in one step to minimal
    • Don't let distant taunts interrupt running
    • โž• Add a comment about fleeing from stash
    • Help AI not to leave a scout guarding the stash
    • Ensure some gems in escape scenario
    • 0๏ธโƒฃ Don't show embed descriptions by default now that ~ does that easily
    • โž• Add one more typical organ symbol
    • Avoid cut off descriptions of conditional effects
    • Prefer weapons with burn or wound
    • Pick up bad weapons if decent projectiles
    • Slightly prefer weapons that have any effects
    • Permit cycling through pointed-at lore with tilde
    • Split chooseItemDialogMode into several functions
    • Permit pointed-at lore display also outside aiming mode
    • Reset the pointed at lore display sequence
    • Maintain current state of lore display
    • ๐Ÿ’พ Save current state of being-aimed-at lore display
    • โฑ Don't use timeout weapon if non-timeout as strong
    • โž• Add delay to pushed frames, to notice things shorter than a turn
    • ๐Ÿ–จ Pretty-print activationFlag to make it more understandable
    • Replace the special periodic activation handling with effect conditions
    • Replace the special effect handling under ranged with effect condition
    • Set ActivationOnCombine in one case for now
    • Replace EffOnSmash by ActivationOnSmash
    • โž• Add effect condition based on activation method
    • โž• Add Unless effect
    • Introduce ActivationFlag in place of EffActivation type
    • ๐Ÿ‘‰ Make server check that melee is done with a legal weapon
    • โž• Add a failure about meleeing with not a weapon
    • Get rid of a lot of spurious instances
    • Don't say a hit was amusing if non-piercing damage was high
    • Vary also the block messages when high armor
    • ๐Ÿ‘‰ Use 'a' and 'the' in dangerous item use confirmations
    • Prevent safe spots near centres of big explosions
    • Permit explosions to sometimes go off inside unwalkable terrain
    • Don't sleep if the only friend on level is guarding the stash
    • Shorten mreason text for crawl to fit in main menu with square fonts
    • Don't hint to press '?' when it does nothing yet
    • Avoid empty manual page at the end with square font
    • ๐Ÿ‘‰ Make sure spot crosshair description fits on the status line
    • Don't display the aim mode prefix when inside a menu
    • Experiment with item menu not insisting on selecting an item
    • Talk about the relevant lore command in manual
    • Hint about the relevant lore command
    • ๐Ÿ‘‰ Make lore display context sensitive in aiming mode
    • ๐Ÿšฆ Signal that lore command is sometimes context-sensitive
    • Don't add the interruption message unless useful
    • Don't wipe key status that opens main menu after automation
    • Permit random flavour assignment with brightCol, etc.
    • Don't make detection modal if not performed by player's faction
    • Don't describe the goal tile when performing mouse goto
    • Simplify turn display code, removing most of the newest additions
    • โœ‚ Remove another spurious source of frames
    • โœ‚ Remove spurious sources of frames
    • Re-add refined interrupted via messages
    • Ensure all frames when inside macro have one-line report only
    • Display interrupted also when messages interrupt macros
    • Factor out oneLineBasicFrame
    • ๐Ÿ†“ Declare the codebase lens-free
    • ๐Ÿ Avoid distributing test.exe in Windows packages
    • ๐Ÿ’ป Use squareToUI for mouse handling in the browser
    • Introduce game map coordinates: PointSquare
    • โšก๏ธ Update wrt PointUI transition in other frontends
    • ๐Ÿ’ป Define UI screen coords in a separate file
    • Silence messages about dead actors activating most embeds
    • ๐Ÿ‘‰ Make it possible to prevent the sleep effect
    • โœ‚ Remove savefiles if config file too old
    • ๐Ÿ‘ฎ Force savegame load result to catch errors ASAP
    • ๐Ÿ’ป Wait until browser finalizes Local Storage in the background
    • ๐Ÿ‘ป Throw a Haskel exception when JS decompression fails on an old savefile
    • ๐Ÿ’ป Now that browser compresses savefiles, permit full history size
    • Limit DOM keyboard focus highjacking, etc.
    • ๐Ÿ’ป Tell player when browser can be closed
    • ๐Ÿ‘‰ Use lz-string.js externs for minification
    • Compress savefiles in GHCJS
    • โฌ†๏ธ Bump base-compat bound to include Data.Semigroup compat
    • Simplify containers for explosions
    • Start embedded explosions inside the tile, not inside projectile
    • Exclude meta game items from combat messages
    • ๐Ÿšš Move snxtScenario to session
    • Avoid 'you are less more tidy'
    • Don't count valuables inside organs to dungeon total
    • Clarify that normal damage is piercing, as opposed to blunt wounding
    • ๐Ÿ”„ Change the misleading 'guards a hoard'
    • When dropped, destroy any organs, not only conditions
    • Don't hint to press ? when it would skip some messages
    • Explain why the fadeout report is rendered in square font
    • ๐Ÿ‘‰ Show each tutorial hint at most once per game
    • Require keypress when another faction killed off
    • Don't show question marks in HUD for MinorAspects items
    • โž• Add MinorAspects flag
    • Get rid of the mechanism for referring expressions across messages
    • Commute freely messages about conditions lasting longer
    • โž• Add NopEffect
    • โž• Add AtMostOneOf effect constructor
    • Assign stable faction IDs to teams with continuity
    • Display also actor initial items, not only organs
    • ๐Ÿ‘‰ Use Condition flag, not group, for speed and simplicity
    • Keep paragraphs of the same width, unless the first really short
    • โž• Add the 'stomachs' irregular plural
    • Don't identify item if PutToSleep applied to sleeping actor
    • Permit question marks in verb effects
    • Do not announce item trigger if explicit and so already told
    • Do not report conditions triggered when they vanish
    • Inform differently when sleep induced by own organ, etc.
    • Reflect that item triggering message appears after the fact
    • Do not spam when backstory can't trigger yet
    • ๐Ÿ”Š Give more details in logs when item triggering does not work
    • Do not spam about water being activated
    • Prevent server failure when triggering a gold piece
    • ๐ŸŒฒ Log item application even from, e.g., periodic activation
    • Don't announce that a dying actors stopped being hungry
    • โž• Add a temporary hack that prevents AI from stealing backstories in Allure
    • Hardwire the player team continuity token
    • Don't identify meta game items at game end
    • Implement conditional effects
    • At death, destroy all organs, not just the trunk
    • Permit non-unique non-singleton flavours
    • Render story flavours specially
    • Announce identification even during melee
    • Inform about discovering meta game organs
    • ๐Ÿ‘‰ Make sure heroes spawned in safari mode are properly numbered
    • โž• Add a few more hero names
    • ๐Ÿ‘Œ Improve the descritpion of MetaGame flag
    • Record meta game gear for future games
    • Consume current, not persistent team gear
    • Create gear according to character preferences, if any
    • ๐Ÿ‘‰ Use server-assigned actor numbers in the client
    • Assign index numbers to actors from continued teams
    • โž• Add continued team character counter
    • Generalize hero gear to each team with continuity
    • Store team continuity in a faction
    • โž• Add team continuity across scenarios to content
    • โž• Add persistent sheroGear to server state
    • โž• Add a comment about why aspects of meta game items are not preserved
    • Keep flavour of MetaGame items between games
    • Keep identity of MetaGame items between games
    • Simplify and speed up serverDiscos
    • โž• Add a flag to keep item identified between games
    • ๐Ÿ‘‰ Make sure pushed actors never hit before flying away
    • ๐Ÿ‘‰ Use lookupActorTime instead of manually inlining
    • Only activate the first effect with UnderRanged and UnderMelee
    • Simplify deflection descriptions given they don't stack in practice, after all
    • Describe the new challenges in the manual
    • Implement disabled flinging challenge
    • Implement disabled crafting challenge
    • โž• Add two more challenges
    • Display tutorial hint only for bad temporary conditions
    • Let AI use items with -1 speed, e.g., shields
    • ๐Ÿ‘Œ Improve valuing of SkDeflectRanged and SkDeflectMelee
    • Try not to recompile dependencies between cabal-plan and LambdaHack
    • โšก๏ธ Try to work around packages not updated for GHC 9.0.1
    • โž• Add deflection temporary conditions
    • โž• Add GHC 9.0.1 to travis and .cabal
    • Implement skills for ranged and melee invulnerability
    • โž• Add skills for ranged and melee invulnerability
    • Implement flags for applying when under attack
    • โž• Add flags for auto-activation when under attack
    • Let AI with low skill target suspect terrain
    • Prevent AI from trying to trigger blocked tiles
    • Explain why we crop surface, not texture, even for prop font
    • Explain the pointman/leader discrepancy
    • Gut out the last remain of 'cabal list-bin'
    • โž• Add some list-bin debug to travis script
    • Explain away a text rendering artifact
    • ๐Ÿ‘‰ Make sure speaking unique messages are not ignored
    • Don't interrupt for taunt messages
    • ๐Ÿšš Move the tutorial hint about hearing taunts to the correct place
    • โž• Add tutorial hints about taking damage
    • ๐ŸŒฒ Only save to log any interruptible messages while in melee
    • โž• Add some more tutorial hint messages
    • Write key names as on the keyboard, button names as in the button
    • When leader stands over an item, say so, not 'notices item'
    • Unify pluralization of skills and challenges
    • โž• Add some tutorial hint messages
    • โž• Add the first tutorial hint
    • Start with tutorial hints, but not in screensaver mode
    • Ignore tutorial hints, as needed
    • Give a more informative message when detecting that AI stuck
    • ๐Ÿšš Move tutorial hint options from state to session because they are UI-only
    • Keep the tutorial override option from game to game
    • Implement the convenience option to override tutorial hint display
    • โž• Add a convenience option to override tutorial hint display
    • Set tutorial messages according to game mode
    • Toggle tutorial messages when starting a game
    • Mark some game modes as tutorials
    • Display manual at the end of help
    • Keep the rest of the manual in content
    • Split manual into paragraphs aware of some markdown formatting
    • Simplify an address in manual not to spill over 80 columns
    • ๐Ÿ›  Make duplicate errors more informative (fixes #204)
    • ๐Ÿšš Factor out movementDefinitions
    • ๐Ÿšš Hint in config file to disable the special movement keys
    • Hint that stealth if possible and AI vs player symmetric
    • ๐Ÿ’พ Save after game over, to preserve history
    • Limit mentions of 'playing' not to break immersion
    • Delimit with colour the known endings section of F1 screen
    • ๐Ÿ”„ Change 'scenario' to 'adventure' to be more immersive
    • Dedupe special item and lore menu overlay handling
    • Strenghten the types in item and lore menu code
    • ๐Ÿ›  Display scenario lore (fixes #157)
    • Factor our scenario description code
    • ๐Ÿ‘€ Mention that scale needs to be configured for high dpi displays, see #164
    • โœ… Shorten some travis tests
    • 0๏ธโƒฃ Make full map position info mode the default
    • Refer to the inspected map position as 'here', not 'there'
    • ๐Ÿ›  Use the actor pronoun when describing items at the same position (fixes #215)
    • Don't switch the subject from enemy actor to self for the same map position
    • Don't chain dependent sentences when examining map position
    • ๐Ÿ‘Œ Improve the wording of actor blurbs when inspecting map postions
    • ๐Ÿ‘€ When inspecting map locations, make items subjects (see #215)
    • ๐Ÿ›  Make it more obvious the game outcomes are fixed terms
    • Compute BFS with Word16, not Word8; slower, but some paths are longs
    • Be more careful avoiding 32bit overflows in frequencies (for JS)
    • Don't interpret the common desktop-switching key combinations
    • Clear the margins also when redrawing after viewpane changed
    • Specify fullscreen in config file and override on commandline
    • Implement both kinds of fullscreen
    • Name variable same as record field
    • โœ‚ Remove help comment regarding SDL-only
    • โž• Add fullscreen CLI option for SDL renderer
    • Indent by 4, not 2, proportional spaces
    • Disable brew-sdl2-osx in travis that now takes too long
    • ๐Ÿ”ง Don't configure the unused data directories when invoking cabal
    • When installing don't create the now empty GameDefinition/fonts/
    • ๐Ÿ‘ท Don't limit jobs to 1 now that cabal shows errors fine
    • ๐ŸŒ Don't embed the fonts in the web frontend version
    • Get rid of datafiles from .cabal
    • Kill the font license files that are duplicated in COPYLEFT file
    • Get rid of the now unused fontDir option
    • ๐Ÿ‘‰ Use embedded fonts, unless absolute path is given
    • Embed game-supplied font files
    • โœ… Try to be more verbose where running cabal test in appveyor
    • โœ… Don't create ~/.test directory when testing
    • ๐Ÿ”– Version config file; fixes #220
    • ๐Ÿ‘€ Don't error out if the effect-causing item is not seen by strangers
    • โž• Add assertionz that, normally, items are known by actors affected by them
    • Hardwire a few less colours
    • Mention the item responsible for an effect, unless spammy
    • Get rid of a left over no-repetition message helper
    • Pass on the item responsible for an effect
    • Start main menus at the first normal item
    • Open game homepage when clicked in Main Menu
    • Write the homepage address in full in Main Menu
    • ๐Ÿ“ฆ Depend on open-browser package
    • ๐Ÿ›  Make the game over messages more colourful; fixes #213
    • ๐Ÿ‘‰ Tweak the display of game over messages
    • ๐Ÿ‘‰ Make one kind of ending message more precise and colourful
    • Display camped and restarted endings in F1 scenario screen
    • ๐Ÿ’พ Save which games are camped or restarted
    • โž• Add default messages for Restart and Camping; fixes #212
    • Sort outcome constructors for best display in F1 scenario screen
    • Colour only outcome name in game over header
    • ๐Ÿ”จ Refactor renderSection in preparation of multi-color lines
    • Avoid 'restart in foggy mode'
    • ๐Ÿ›  Unify rendering of game outcomes; fixes #210
    • โœ‚ Remove a leftover mention of rmainMenuArt
    • ๐Ÿ‘Œ Improve the colours of the F1 scenario description screen
    • ๐Ÿ”ฆ Expose the meaning of colours for the use in other modules
    • Specify also defeat endings
    • ๐Ÿ‘‰ Make headers in F1 scenario screen monospace
    • Factor out attrLinesToFontMap
    • ๐Ÿ›  Render F1 scenario screen better; fixes #208
    • โž• Add tests for many game modes in one session; fixes #228
    • โž• Add slowCrawl make target to observe AI in detail
    • Mention in item description it's unique, because name may not underscore it
    • Ignore the placeholder messages when displaying one message
    • Don't overwrite prop with mono overlay even if the latter empty
    • โž• Add placeholders to history display, fixing #236
    • โž• Add a comment about historyMax divisible by screenful
    • ๐Ÿ‘Œ Improve message class of HP-affecting effects display
    • Mark with dots if the show distinct messages different than the longer
    • Implement distinct messages for becoming more affected by a condition
    • Implement distinct messages for SfxTimerExtended
    • ๐Ÿšš Move messages that are hard to scrap to Distinct class, to fix it
    • Prepare ppSfxMsg for Distinct messages
    • Don't let ESC clear messages in aiming mode; was confusing
    • โž• Add Discord and Matrix addresses to the manual
    • โž• Add links to discord and matrix chat
    • Let MsgRunStopReason suffice for running interruption
    • ๐Ÿ’พ Save spam, but don't show
    • Clean up scraping messages
    • Don't run if ordered to run into solid tile
    • Reword the short post-action messages
    • โš  Don't show both terrain description and a warning about it in yellow
    • Typeset one line of history view the same as whole history
    • ๐Ÿ‘‰ Make some messages longer to look better on a separate line
    • Reverse history to match the order of messages shown on screen normally
    • No longer specify initial repetition of a message
    • Eliminate not saving and not repeating messages using counts
    • ๐Ÿ‘‰ Use allB in a couple more asserts
    • Assert message constructors have proper length
    • Get rid of message class GADT as designed by Alex Byaly, simplifying code
    • Wrap first line of overlay at half the screen, not earlier
    • ๐Ÿ‘‰ Make indentSplitAttrString more accurate
    • ๐Ÿ›  Tweak unique entities in content, adding 'the' as needed; fixes #214
    • Don't capitalize and add 'the' to unique entities
    • Be more verbose when displacing over laying items
    • Align single high score lines
    • Copy-paste-hacked enlarging line-wrap treshold if too long headers then fit
    • Fine-tune display of too long reports
    • Display message classes aligned
    • ๐Ÿ“‡ Rename message class constructors for better display
    • Display message class in grey
    • Indent wrapped messages
    • In messages, replace some magenta risks by bright red harms
    • Be careful measuring length of multi-line texts for wrapping
    • ๐Ÿ‘‰ Use the config option for one message per line on screen
    • Hide the implementation of Msg, again
    • Display message class in history if one per line
    • Don't report HP changes of projectiles
    • ๐Ÿ‘‰ Use the config option for one message per line in history
    • Pass along the config option for one message per line in history
    • โž• Add config options for one message per line
    • ๐Ÿ“‡ Rename the item spotting message
    • Bring back filtering empty messages, to fix checking if report empty
    • โž• Add Show instance to history and its components for debugging
    • ๐Ÿ‘Œ Improve removing EOLs when deduplicating messages
    • โœ‚ Remove MsgItemMoveLog now that one message class suffices for two components
    • Get rid of isSavedToHistory and isDisplayed encoded now in the GADT
    • Customize messages more comfortably
    • Simplify restarting client
    • โœ‚ Remove the code enabling multiple UI clients
    • ๐Ÿ’ป Don't spawn many UI clients, but re-assign a single one
    • ๐Ÿ‘‰ Make MsgClass a GADT
    • Eliminate Binary instance of MsgClass in preparation of GADT
    • ๐Ÿ›  In config file, specify prefixes of message class names
    • ๐Ÿ”„ Change colour of game start message to a nicer one
    • Issue special messages when actor fall to sleep or wake up
    • ๐Ÿ‘‰ Tweak message class use and colour assignment again
    • โœ‚ Remove abuse of MsgTileDisco
    • Recolour enemy spotted animation according to colour meaning table
    • Redo colour assignment to messages
    • โšก๏ธ Update frontends to highlight changes
    • ๐Ÿ”„ Change the colour of names of sleeping actors to blue
    • Reflect changes in highlighting in the manual
    • Swap blue and green highlights
    • Highlight dominated actors more distinctly, as proposed by @bulbousBullfrog
    • ๐Ÿ“‡ Rename confusing message classes
    • ๐Ÿ‘‰ Make sure indented texts are wrapped at earlier position
    • ๐Ÿ‘‰ Make most texts wrap before full screen width
    • ๐Ÿ’ป Extend UI.Content.Screen validation
    • ๐Ÿ‘‰ Tweak texts to fit on screen easily with square font
    • Permit wrapping messages after N columns
    • Prefer stairs in bottom right corners to leave space for messages
    • Prefer levels in bottom right corners to leave space for messages
    • ๐Ÿ“š Update documentation to the config changes
    • Prevent friendly AI from wasting time nosing around our stash
    • ๐Ÿ“‡ Rename an identifier to a consistent form
    • Limit the size of monospace prompts when keypress requested
    • Redo message colours given that some colours get a very thin font, possibly
    • ๐Ÿ‘‰ Use a mixture of fonts in the challenges menu
    • Comment the config file some more
    • Render all titles in mono font
    • Typeset mouse command table in varied font
    • ๐Ÿ“ฆ Gut out Ubuntu Family Fonts from Debian package, because non-free
    • Beautify CREDITS
    • Rand the fontsets differently
    • โœ… Make the fontset tests more random
    • โœ… Don't run noopt travis tests on normal length crawl
    • โœ… Test all fontsets
    • ๐ŸŒฒ Extend client logging
    • ๐Ÿ‘‰ Make the game reentrant
    • Prevent mangled newlines in concurrent screen writes
    • โœ… Permit text usage in tests
    • ๐Ÿ”จ Refactor mkUIOptions to require less content
    • Settile on 'auxiliary fonts' instead of 'long text'
    • Hardwire GTK font size to fix breakage from config format change
    • Simplify FontSetup
    • Implement scaling all fonts easily and safely
    • โž• Add font scaling option to config and commandline
    • Prevent overspill when prop font is, in fact, mono
    • โœ‚ Remove the now unused portions of config and commandline
    • ๐Ÿ‘‰ Make getFontSetup more accurate (not used yet)
    • Eliminate really the last dependency on old config file fields
    • โž• Add a comment about lack of optimization for duplicated fonts
    • Eliminate one last dependency on old config file fields
    • Hardwire the font families to use for GTK frontend
    • ๐Ÿ‘‰ Use the two weights of prop font
    • Recover old SDL frontend functionality using new config
    • ๐Ÿšš Move font types to make importing them in ClientOptions legal
    • Let fontset be chosen on commandline as well
    • Extend config file with font and fontset definitions
    • ๐Ÿ‘• Molify Debian's lintian
    • Legalize all the long text fonts even more
    • Legalize all the long text fonts
    • โž• Add the ubuntu font family set of long text fonts
    • โž• Add another set of long text fonts
    • โž• Add new long text fonts based Adobe Source
    • โœ‚ Remove old long text fonts
    • โž• Add commented out TTF.setHinting directive
    • Crop too high fonts more at the top than bottom
    • Get rid of the last traces of 'exploiting' terrain
    • Simplify and speed up linearInterpolation (not benchmarked)
    • ๐Ÿ”„ Change which test is run in -O0 travis
    • ๐Ÿ‘‰ Make final version of integer casts hardening, using the type-level int-cast
    • Explain the communication overhead concept
    • ๐Ÿ‘‰ Use toIntegralSized to crash when int wrap would occur during conversion
    • ๐Ÿ“œ Parse config at compile time
    • Let foes occupiy exit in escape scenario, etc.
    • โž• Add missing cskip specifications
    • If more info in history, end message with three dots
    • โฌ†๏ธ Bump GHC versions for testing
    • Bring back SPACE as clearning messages
    • โšก๏ธ Update the default config wrt changes to RET keybinding
    • Let ESC cancel the aiming line as well
    • Keep the order, modulo abs, of factions as in the roster
    • Don't switch level away from melee when positions not taken yet
    • ๐Ÿ‘Œ Improve valuing AI displace action a bit
    • Increase expressiveness of initial actor generation
    • Permit tiny rooms if no stairs variety
    • Pick the sole actor for cwolf games ignoring empty specs
    • โœ‚ Remove length that forces the whole psFree, even though most unused
    • Don't drop initial actors if not enough initial faction positions
    • โœ‚ Remove a code check that is already in mode content check
    • Generate initial actors in the order given in content
    • Prepare types for more faithful initial actor generation
    • ๐Ÿ“‡ Rename ES.toList
    • Simplify populateDungeon and catch similar overcomplications
    • Generate initial actors in per-faction positions, not in alliances
    • ๐Ÿ‘‰ Make the use of integral conversion easier to verify
    • Reword ESC description again
    • Settle on apostrophes to denote one-letter keyboard keys
    • โšก๏ธ Update command docs to command help changes
    • Let only ESC clear messages
    • 0๏ธโƒฃ Show newcomer aim mode help also when pressing ? in non-default detail level
    • Simplify how the hint prompt works
    • Align newcomer aiming help with ? help when aiming
    • Try harder to display errors in appveyor runs
    • Simplify and slightly fix linearInterpolation
    • Extend debug information when summoning fails for lack of space
    • Except for DetailLow, always show any description when examining
    • Give feedback of detail level also when item selected
    • ๐Ÿ‘‰ Show item symbol in item lore view in square font
    • ๐Ÿ‘‰ Tweak and fix item examination messages one last time
    • ๐Ÿ”„ Change display of terrain more gradually as detail level rises
    • ๐ŸŽ Simplify two cases of sortBy emulating sortOn performance-wise
    • ๐Ÿ‘Œ Improve describing of items with words limit 1
    • ๐Ÿ‘‰ Use partItemWsDetail for item description when examining
    • 0๏ธโƒฃ Make the second detail level the default
    • โœ… Fine-tune shortest item examination message once more
    • ๐Ÿšš Move SPACE to CmdAim category
    • Document that MMB and RMB cycle detail level
    • Let RMB and MMB cycle detail level
    • โž• Add aiming help line for newcomers with SPACE hint
    • Don't warn about our own actors
    • Reformat lookAtActors
    • Implement detail level for actor descriptions at position
    • ๐Ÿ‘‰ Show position description components according to detail level
    • ๐Ÿ‘‰ Show detail level in HUD
    • Redraw after detail level changed
    • Implement detail level for item descriptions at position
    • Match the new order of descriptions in a couple more places
    • Bind SPACE to cycle detail level in aiming mode
    • โž• Add DetailCycle human command
    • Record detail level in the aiming mode state
    • โž• Add and improve headers for scenario endings messages
    • ๐Ÿ”„ Change sortBy to sortOn in a couple of places
    • โšก๏ธ Optimize truncateOverlay with the best of the sortOn and sortBy worlds
    • ๐ŸŽ Replace some performance-wise wrong uses of sortOn with sortBy
    • Mark the last major outcome in F1 scenario screen
    • ๐Ÿ”„ Change unique actor names to match the upcoming new convention
    • Don't show even deafeat messages in F1 if not experienced
    • โšก๏ธ Update the '?' hints to the new Tab semantics
    • โž• Add dumping history to a text file
    • Advise to replay initial scenarios
    • Adjust the order of spotting to match the order when exploring
    • โš  Swap the order of intrusion warning and enemy spotted message
    • Announce specially foes that have non-trivial items equipped
    • Clean up Content.Input.makeData
    • Destroy the trunk when actor dies, for death effects
    • ๐Ÿ‘‰ Make sure embedded item desc stands out from the following activation info
    • ๐Ÿ‘‰ Make unique speech heard regardless of distance
    • Let uniques taunt in a big way
    • โž• Add type signatures to AI action picking functions
    • Reorder consistenly mode kind component definitions in the file
    • Extend rarity specs to above 10 logical levels
    • ๐Ÿ‘Œ Improve comments and messages about Rarity datatype
    • ๐Ÿ‘€ Avoid spoiling victory game over messges, until seen
    • Factor out victoryOutcomes
    • Display game over messages in F1 scenario screen
    • Shorten a field name to avoid >80 length lines
    • Colour header in the F1 scenario screen
    • โœ… Disable a travis test that still panics
    • โช Revert the scenario choice font frop prop to mono, for typographic consistency
    • Shorten a flavour blurb to make it fit when font is square
    • Extend wrong line break avoidance to colourful texts
    • Display also flavour in scenario choice screen
    • Don't attempt to display F1 scenario blurb in square fonts with two columns
    • Don't display the extra TAB commands in item menu headers
    • Mention the new TAB commands in manual and keys sheet
    • Represent a key not appearing in help by empty categories, not CmdNoHelp
    • Enable pointman cycling key bindings with Control
    • Factor out the pointman cycling key bindings
    • ๐Ÿ‘‰ Make sure item spotting messages are of proper length
    • When spotting new items, write short message to screen and long to history
    • ๐Ÿ”€ Don't merge messages with different classes
    • Enable messages that are not displayed unless from history
    • When spotting items, sort them only once
    • Don't report each item located in stash in a separate sentence
    • โž• Add verbosity flag to UpdSpotItemBag and UpdLoseItemBag
    • ๐Ÿ‘‰ Make new Direction type more general so that it can be used in other cases
    • โž• Add direction type to make cycle function less verbose
    • โž• Add functionality of back-tabbing both across floors and within single levels
    • โž• Add bool flag to cyclying so that direction will be possible
    • ๐Ÿ”„ Change naming of member cycling in-code to be keypress agnostic
    • Swap S-Tab for A-Tab as new binding for cycling members on the same level
    • Swap descriptions in help file so that tab functionality matches description
    • Swap funcionality of Tab and S-Tab without renaming in-code
    • Reverse order of S-Tab so that it doesn't first cycle to another level
    • โž• Add up to two EOLs in tile examination message
    • Order tile examination message elements by decreasing importance
    • ๐Ÿ‘‰ Make terrain names harder to confuse with items
    • ๐Ÿ‘Œ Improve messages and order of stores when moving items
    • ๐Ÿ‘‰ Make ItemNotCalm message applicable to flinging and triggering, too
    • ๐Ÿšš Tighten the result type of moveItems
    • โž• Add a comment to the default config with an example for rebinding a key
    • Clarify that nominal values of burning and wounding are used
    • Don't call robots living
    • Don't display TMI about total condition time if come from explosions
    • Let AI prefer a buckler over a fist
    • Nag about the F1 screen when starting or resuming
    • Display info about scenario in F1 screen
    • Split mode note into motivation and hints to choose where text is displayed
    • Restructure text displayed on challenge menu to make it more clear
    • โž• Add scenario rule notes to be displayed instead of full notes
    • Don't let crosshair obscure terrain, items and actors
    • โ†ช Work around SDL treating tilde as paragraph on some Mac keyboards
    • Speed up DOM rendering by ignoring highlights if possible
    • ๐Ÿ‘€ Permit specifying seeds in the config file
    • ๐Ÿ‘‰ Make attacking animation more subtle to distinguish from harm animation
    • Even in the subtle hit animation indicate who is the victim
    • โž• Add a missing space between 'modify terrain stat' and '5' with square font
    • ๐Ÿ’ป Make Burn as valuable as other damage for consistent UI display
    • ๐Ÿ‘‰ Show very good no-timeouts weapons at the correct position
    • Partially hash-cons ItemQuant, with very modest effect
    • ๐Ÿ”„ Change some occurences of trivial Quant to quantSingle
    • Simplify skill and place menu code
    • Don't multiply initialPlaces when preparing place display
    • Consume places for places menu more eagerly
    • Eliminate space leak when creating items
    • Avoid memory leak due to caves used for levels on a list
    • Fit the short help blurb in 4 lines
    • Start the game with a confirmation prompt
    • โฑ Sort weapons wrt timeout and item kinds ID as well
    • Simplify querying skills of the leader
    • Avoid long animations before the extra burn or wound animations
    • ๐Ÿ”„ Change combat animations to easily distinguish attacker from attacked
    • Let AI displace teammates when no risk of displacing back
    • Restrict AI use of stash guards less harshly
    • โž• Add a comment about allies stealing each other's stashes
    • ๐Ÿ‘ Let AI keep fleeing if no support gained
    • โœ‚ Remove a few redundant TypeFamilies pragmas
    • Explain in a comment why on a level with stash many sleeping may accumulate
    • ๐Ÿ‘‰ Make safari scenario harder now that aliens are buffed up
    • Let AI displace friends less often
    • โœ… Unify the test for item being damaging
    • ๐Ÿ‘Œ Improve module haddocs for content
    • Hide unneeded content group name patterns
    • โž• Add short-caves debug game mode
    • Display melee damage even if there's no ranged damage
    • โฌ‡๏ธ Reduce the number of calls to foeRegularAssocs
    • ๐Ÿ‘‰ Make sure AI actions are not recursive, even shallowly
    • โฌ‡๏ธ Reduce the number of calls to currentSkillsClient
    • Speed up skill arithmetic
    • Math order of cases in processWatchfulness with the order in type definition
    • โœ‚ Remove inlines that stopped helping in GHC 8.8 and that obstruct profiling
    • Compute friendAssocs only once for each actor AI processing
    • Limit and speed up invalidating BFS
    • Speed up a few significantly expensive functions
    • ๐Ÿ‘‰ Use the JS splitmix optimization
    • ๐Ÿ‘‰ Tweak random numbers code a bit
    • ๐Ÿ‘Œ Improve haddocks of the dice mechanism
    • ๐Ÿ‘Œ Improve help display a bit
    • ๐Ÿšš Move ClientOptions.hs to adhere to the convention about module hierarchies
    • Meld LH and Allure content, continued
    • Port over oil explosions that harm the targeted actor from Allure
    • Meld LH and Allure cave and item content
    • State the number of item in equipment even when removing from it
    • Explain the goofy handling of recharging in stash
    • Regenerate tile even if kind not changed, but all embeds gone
    • Permit altering tiles with items on them
    • Don't leave stash unguarded if friends may spawn
    • โž• Add stash detection effect
    • Cap stat bonuses when assigning AI value to items
    • Value skill bonuses differently for each skill
    • Be even more specific when describing what an actor does on a tile
    • โœ… Adjust the SDL test to run without installing fonts, as Debian requires
    • Don't let projectiles ever cause normal tile transitions
    • ๐Ÿ‘‰ Tweak pushing via an embed
    • โž• Add Q&A about hearing
    • ๐Ÿ‘‰ Tweak item valuations to make awkward armours wearable by AI
    • When describing an actor, say if it's pushed
    • ๐Ÿšš Push towards embed, not in direction of previous movement
    • Simplify key bindings display code
    • ๐Ÿ’ป Clean up naming of column offset in UI
    • Ensure no missing space between columns of help text
    • Prevent a trailing space
    • Don't activate barrels via mist
    • Don't treat blasts that damage through effects as mists
    • Don't let on noise distance if nobody can hear it directly
    • Differentiate the sound of projectile and actor hitting a tile
    • Emit sound also when an actor hits a tile
    • Display close and out-of-level noises with special colours
    • Display noise distance information
    • Send noise distance information
    • ๐Ÿ”จ Refactor hearing
    • ๐Ÿคก Mock up extended hearing
    • ๐Ÿ‘ Give better message when not enough skill to melee
    • Disturb resting when calm enough again
    • Don't summon by hitting a projectile
    • ๐Ÿ‘‰ Make actor aggresive if only one is not guarding stash on the level
    • Ban teleporting immobile foes; they come back and their loot is lost
    • Validate that item group names are short enough
    • Cath too long group names
    • Catch empty group names
    • Let more actors start sleeping
    • Consistently create on the ground all items looted from terrain
    • Mark game modes already won in this difficulty
    • Clear screen after start ASAP
    • ๐Ÿ‘‰ Use the AttrLine smart constructor or assertions as appropriate
    • ๐Ÿ“‡ Rename firstParagraph
    • ๐Ÿ‘‰ Tweak types to work with the stricter smart constructor
    • ๐Ÿšš Move assertion about trailing whitespace to a smart constructor
    • Eliminate trailing spaces in help and item menus
    • Replace a momentarily trailing space with nbsp
    • Don't define special messages with space, they are added automatically
    • ๐Ÿšš When splitting lines, remove the trailing spaces
    • Simplify a condition in splitAttrPhrase
    • Don't add a space when appending a report that starts with newline
    • Don't produce backdrop on black background
    • โšก๏ธ Optimize truncateAttrLine and truncateOverlay
    • Mark assertions expensive in menus
    • ๐Ÿ‘‰ Make avoiding SDL frame drawing more fine-grained
    • Simplify SDL frame drawing based on previous frame
    • โšก๏ธ Optimize menu scrolling via an extra texture
    • Don't waste healing items when HP low ceiling
    • Don't display that foes don't know their weapon when only you don't
    • Reflect keybindings change in the start scenario menu
    • Permit hero AI to consume elixirs
    • Don't flee if can kill a blocking enemy instead
    • ๐Ÿ‘‰ Make fast or hasted actors willing to close in for melee
    • Compensate for overhead of animals when creating conditions
    • Mark organs that are ready to expire once applyPeriodicLevel runs
    • Avoid stating that an organ will last for 0s
    • ๐Ÿ‘‰ Tweak slightly AI item preferences
    • Get rid of DropBestWeapon
    • ๐Ÿ›ฐ Don't rechare nor discharge projecile payloads
    • Start dicharging with strongest weapons
    • Let Discharge add to cooldown, not reset
    • โฑ Discharge only items with a timeout
    • ๐Ÿ‘ Consider as support only actors that can harm in melee
    • ๐Ÿ‘‰ Make organs (minimally) accessible from triggering
    • Let AI trigger items among organs
    • ๐Ÿ˜Œ Relax trigger stat 1 restrictions
    • ๐Ÿ‘‰ Tweak AI item use preferences valuation
    • ๐Ÿ‘Œ Improve the gameover item menu message
    • Record duplication of items to avoid absurd gameover messages
    • Discharge not only equipment, but also organs
    • Don't paralyse the last AI stash guard
    • Give AI stash guard more freedom if friends adjacent
    • ๐Ÿ‘‰ Make AI keep guarding even if teammates on the level may leave it
    • Don't let AI leave stash unless foes harm it
    • Don't abandon stash when teammates temporarily immobile
    • Prevent displacing a stash guard
    • Don't abandon stash if temporarily nonmoving
    • Abandon stash if under heavy fire
    • ๐Ÿ‘€ Don't abandon stash unless foes seen
    • Don't use aidTgtToPos unless necessary
    • If enemy in light, pelt him instead of leaving dark
    • Don't stop fleeing into hideout after 5 turns even if foes appear
    • Target dark if fleeing and no foes targetted
    • Efficiently find closest hideout for AI
    • Tabulate hideout tiles predicate
    • Factor out distanceBfs
    • Don't hog leadership just because weak and enemies close
    • When fleeing and soon after target only actors that can't melee
    • Stop fleeing if not hit and possibly friends managed to join
    • Take into account recent fleeing when taking off light
    • Simplify hinders
    • In AI action choice use recent fleeing instead of this and last turn distress
    • Don't overwrite fleeing record if fled recently
    • Don't chase foes if fled recently
    • GC fleeing record when actor lost
    • Extend fleeing state from 1 to 5 turns
    • Store not only fleeing position but also fleeing start time
    • Reorder organs
    • ๐Ÿ‘‰ Make two organs not LH-specific
    • Don't undervalue weapons with drop condition
    • ๐Ÿ‘‰ Make it possible for animals to mark levels as explored
    • ๐Ÿ‘‰ Make slack tactics AI less erratic when focused or distressed
    • โž• Add a comment about animals bad at changing levels
    • Let AI displace any sleeping blockers
    • Don't let AI actors fall asleep if not relaxed
    • Don't force animals to change target just before reaching it
    • ๐Ÿ‘Œ Improve condAimCrucialM for vector targets
    • โœ… Flesh out the crawl survival test scenario
    • ๐Ÿ‘‰ Make crafting act as if on bottom level
    • ๐Ÿšš Move skill checks from pathfinding to targetting and restrict immovable actors
    • Forbid making missiles hungry, asleep, etc.
    • โšก๏ธ Optimize processTileActions
    • ๐Ÿ‘‰ Make sure projectiles can modify terrain even if safe from effects
    • Don't reset TVector target, because it's set manually
    • Create a central staircase
    • Display ranged damage even when limited space in menu line
    • Shorten the display of weapons if not enough space
    • Don't consider enemy projectiles for determining if AI is in melee
    • ๐Ÿ‘‰ Make poison less deadly in corridors
    • Eliminate the stash domination exploit
    • ๐Ÿ‘‰ Make guessing if AI was hit by projectiles more accurate
    • Prevent wounded animals from closing in agains mutliple enemies
    • In messages tell discharge from recharge effects
    • ๐Ÿ‘‰ Make smell more important that stairs, again
    • Clean up vector target code
    • Melee non-targets if target not worth killing
    • Don't perform all monadic actions that compute strategies before choosing one
    • Don't retarget actor if blocked by the very actor and so can melee it
    • Simplify target shoice for slack doctrine factions
    • Sort items in lists in normal texts
    • Help AI unlock the dungeon if stash guard helds the key
    • Prevent animals from eating their own meat
    • Prevent creating new items via throwing others, with ikit
    • ๐Ÿšฆ Signal specially when an item is located in a stash, as well
    • Say when an item appears in a stash, etc.
    • Don't warn if selected missile from stash can't be picked up
    • Don't flee if back next turn
    • When fleeing don't remember the last targetted enemy
    • ๐Ÿšš Move keybinding content definitions to match display order
    • ๐Ÿ’ป Prevent, in UI, removing from equipment if not calm
    • ๐Ÿšš Warn when illegal item movement attempted
    • Display stash blurb also when switching the leader
    • Don't let stash guards leave levels
    • Don't prevent displacing a friend if only half of a loop is present
    • Don't neglect guarding stash unless no buddies to help
    • ๐Ÿ‘‰ Tweak AI conditions
    • Don't flee if own stash close unless completely overwhelmed
    • Easily displace teammates that guard the stash
    • Mention stash when walking over a tile
    • Do not flee and be reluctant to chase when guarding stash
    • Introduce guarding own stash
    • ๐Ÿ‘‰ Make isDoor more accurate
    • Don't make a rumble when door closes
    • Tabulate isOpenable and isClosable
    • ๐Ÿ‘‰ Make tall staircases more likely now that they are often broken
    • ๐Ÿ‘‰ Make types a bit more strict in stairs calculation
    • Simplify stair number computation
    • ๐Ÿ“‡ Rename cextraStairs
    • ๐Ÿ”„ Change the semantics of cextraStairs
    • Separate stair number computation and level generation
    • Compute abandoned stairs earlier
    • ๐Ÿ“š Correct the documentation of cextraStairs
    • Roll extra stairs earlier
    • Roll cave kinds earlier
    • Simplify shuffling caves
    • When transforming walkable tiles, don't insist on embed activations
    • Ban crafting and terrain transformation in the same action
    • Try to make the terrain transformation specs more readable
    • Prevent the exploit of using cover against non-moving shooters
    • ๐Ÿ‘‰ Make makeLine non-monadic
    • Keep the data invariant of @arenas@ for longer
    • Make the interrupted running display look less corrupted
    • โž• Add and tweak comments about item maps
    • โšก๏ธ Update the manual and keybindings printout
    • ๐Ÿ‘‰ Tweak the wording of keybidings descriptions
    • Prevent marking inert items as (charging)
    • โž• Add ANY_FLASK group
    • ๐Ÿ‘‰ Make sure impression is dropped before other conditions
    • ๐Ÿ– Handle failed bump-modification without embed activation
    • ๐Ÿ”„ Change the key for new game, not to mix up with 'n'o
    • โœ‚ Remove misleading comment about tiles being explorable
    • In message fits in one long line, don't wrap it into small lines
    • Don't make consumables with Ascend effect worthless
    • ๐Ÿ”„ Change division by zero into an assertion failure
    • ๐Ÿ‘€ Comment why 'seen' sometimes gets from 100% to 99%
    • Validate HideAs in content instead of asserting its property later on
    • ๐Ÿ‘‰ Tweak (speedup the tiniest bit) updAlterTile
    • Stop leader before leaving dark in a more useful way
    • Don't equip light even if enemy only remembered
    • Simplify the interesting target conditions for AI
    • Flee through dark not only when starting in light
    • Chase and flee through dark even if not starting from light
    • Simplify the chasing ambient light condition
    • Prefer leaders that don't step into light
    • Detour when chasing, to avoid lit spots
    • Prefer fleeing into dark spots
    • Don't flee from projectiles if can't flee into the dark
    • Prevent AI from vainly chasing fast shooters
    • ๐Ÿ‘‰ Tweak and simplify AI fleeing condition
    • Help AI sidestep a blocking meleeing friend
    • Let AI go towards enemy stash even if in melee
    • Join melee from twice longer distance
    • ๐Ÿ“‡ Rename CURIOUS_ITEM
    • Don't display 0 ranged damages
    • โž• Add missing content group definitions
    • Simplify content validation
    • Check that content group names are all listed
    • Let the draft detector emit noise and sound
    • ๐Ÿ‘‰ Tweak the engine to accomodate a detection device that pings
    • Prevent non-humans from hogging key items and so blocking progress
    • Reorder item definition to match those of Allure for diffing
    • Don't emit server leader change messages if known to client
    • Comment about the trade-offs of weapon benefit calculation
    • Mark the lore screen with crafting recipes
    • Don't confusingly refuse to display the pushing effect for shields
    • Increase minimal damage taken, regardless of armor, to 5%
    • Be pendantic when emitting messages about creating items
    • Don't say that a projectile is wounded
    • ๐Ÿ‘‰ Show enemy HP under the selected item
    • Simplify strongestMelee
    • โž• Add an alias for picking up all items, etc.
    • Sort out naming of item and embed activations
    • Simplify revCmdMap
    • Warn when embeds activated, but transformation failed
    • Check dangerous tools use even when nested in transformations
    • Don't transform terrain when bumping
    • Let pathfinding avoid vicinity of enemies
    • ๐Ÿ‘‰ Make it easy to discern an attack on teammate among many messages
    • Don't display misleading condition drop messages
    • Visually distinguish embed names and descriptions
    • Permit fractional FPS, for debugging
    • Colour-code map position descriptions
    • ๐Ÿšš Move the run macro to where all other engine macros are defined
    • โœ… Permit unknown command, for testing
    • ๐Ÿคก Simplify and clarify the mock
    • Unify repeatHumanTransition 1 and macroHumanTransition
    • Reflect in types that macro frame stack is never empty
    • ๐Ÿ‘‰ Make more space for explicit import lists
    • ๐Ÿ“‡ Rename components of the macro data structure
    • Drive the point home that repeatHumanTransition 1 /= macroHumanTransition
    • โž• Add tests that illustrate not creating new buffers for in-game macros
    • Touch up the macro code a bit
    • โž• Add tests showing lack of referential transparency of named macros
    • Don't prompt about recording a macro it's part of macro replay
    • Warn when pick up not to equipment due to low calm
    • Display how many items in equipment when equipping
    • Refuse to equip if equipment full
    • โœ… Separate testing harness import from game content import
    • โž• Add a helper function to shorten tests
    • ๐Ÿ“‡ Rename the semantics functions
    • Implement the desired semantics of RepeatLast
    • โœ… Sketch the desired semantics of RepeatLast via tests
    • โšก๏ธ Use the same updateLastAction function in test mock
    • Collect a more precise last action key
    • ๐Ÿคก Simplify slightly the mock
    • Grey out more (all?) illegal commands
    • โž• Add special messages when illegally flinging or applying
    • Go even through stores that all factions have empty
    • โช Revert banning stores for all actors based on the first checked
    • โž• Add special messages when illegally moving items from or to eqp or ground
    • Forbid unequipping items when not calm, again
    • Don't ignore illegal stores if once shown
    • Display the number of items in equipment even when not calm
    • ๐Ÿ‘€ Write client RNG seed to UI RNG seed numbers at game restart
    • ๐Ÿ’พ Save UI random seed to avoid boring messages if many save/loads
    • โž• Add a comment about stealth viable for tactics, but not strategy
    • Reset C-f when x-hair automatically changed
    • Pick as leaders also the actors that could melee but should not
    • ๐Ÿ‘‰ Make animals unable to catch projectiles
    • Don't cycle xhair through own stash
    • Display slideshows normall unless really too long, not just excessively long
    • Give more time to view a frame when frame level changes
    • Be more verbose when kicking terrain
    • Prevent the inability of taking off max calm draining items
    • Re-assign action repeating keys
    • Clean up macro command's texts
    • Place ikit item in a semi-random way
    • ๐Ÿ‘‰ Tweak content group names for display
    • Avoid 'of gain of gain' in item descriptions
    • Don't talk about blocking when no kinetic damage dealt
    • Match the order of game over lore screens with in-game lore menu
    • Prevent AI from imbibing a potion of panic
    • Don't call a tile alterable if embeds have no effects
    • Prefer leaders that target enemy stashes
    • Don't chase stashes of friends and neutrals
    • When creating items on the floor during dungeon generation, create ikit items
    • When embedding items in tiles, optionally generate more items
    • โฑ Redesign so that charging items can be determined even if timeout unknown
    • Clean up some instance deriving
    • โœ… Factor out two more pure functions about macros to use in unit tests
    • ๐Ÿ“œ Permit creation of input content without parsing a config file
    • โœ… Factor out pure function about macros to use in unit tests
    • Record nested macros on stack
    • Snatch enemy stash ASAP if adjacent
    • โœ… Port tests to tasty
    • Undo the attempt to end game when player kills window
    • โœ‚ Remove a spurious recordHistory
    • ๐Ÿ‘€ Make sure verifyCaches error doesn't obscure RNG seed of the crashing run
    • Don't let big actors auto-craft at death
    • In menus show how long conditions will last
    • Tell how for long an actor is going to be slowed when first affected
    • Tell how for long an actor is slowed in total after extra slowness, etc.
    • Tell how much poisoned actor is in total after extra poison, etc.
    • Don't display the mandatory turn frame if a frame already displayed this turn
    • ๐Ÿ–จ Don't draw (and printscreen) identical frames, even if small fonts used
    • ๐Ÿ›ฐ Don't trigger terrain if projectile has lost its payload
    • Enable cooking of food thrown into fire
    • Don't spam when blasts transform terrain
    • Simplify dieSer
    • Ensure the last step of projectile flight is shown
    • โœ‚ Remove a repeated check
    • Be more verbose when transforming items with scrolls
    • Display level where the stash is, as a reminder
    • Don't displace sleeping immobile actors
    • Simplify checking if an item is identified
    • Prevent AI from putting most weapons in reserve
    • Let AI be eager to equip unidentified and good unique items
    • Don't be too verbose with tile altering when leader stands on it
    • Don't craft from equipment due to possible involuntary harm
    • โœ‚ Remove altering via dropping items; too disaster-prone
    • ๐Ÿ”จ Refactor handleDir
    • Permit indicating the zero vector with mouse
    • Colour and reword the message about consuming items
    • Be a bit more verbose about tile changes
    • Don't inform about a projectile's equipment
    • Avoid hitting 'feebly' with a heavy hammer
    • ๐Ÿ‘‰ Show, e.g., harpoon as an obvious choice for throwing despite usable for melee
    • Don't summon by hitting a friend
    • Don't hit delicately just because the weapon was not identified
    • Prevent AI from wasting time throwing very weak projectiles
    • Avoid 'chip of scientific explanation turns out to be', when identifying
    • ๐Ÿ‘Œ Improve item destruction messages
    • โž• Add OnUser effect constructor
    • Avoid 'the pair turns out to be' when identifying
    • When short name requested, don't append numbers and parens
    • Prevent VerbMsgFail being repeated 99 times
    • Describe how colours correspond to tile properties
    • Let even unskilled actors take over stash
    • Take over stash also when actor dominated or created
    • Target enemy stash in preference even to enemy actors
    • โž• Add comments about salter and pathfinding
    • Avoid 'controlled by Controlled foo'
    • Avoid 'hits delicately' with a 14 HP wounding hammer
    • Ensure in content that Burn is positive
    • Mark weapon burning and wounding on HUD, to avoid hammers all look benign
    • Clarify that chosen weapon needs not be optimal for a foe
    • ๐Ÿ‘Œ Improve display of places lore
    • Pick up enemy summoning periodic items to deny them to foes
    • Don't send the SfxTrigger messages to the client
    • Mention that stats menu summarizes the organ menu
    • โž• Add sample cabal.project.local files
    • Introduce VerbMsgFail effect
    • Let crafting use up terrain, if successful
    • Don't split tile properties description by description of things on the tile
    • Avoid crafting via walking into a worshop tile
    • Introduce SeqEffect to use for crafting creation in place of AndEffect
    • ๐Ÿšš Let components 'disappear', not 'be removed' during crafting
    • ๐Ÿ‘Œ Improve crafting recipe description
    • Automatically identify crafted items
    • When cratfing, use tools but destroy components
    • ๐Ÿ†“ Don't create items in equipment if not enough free slots
    • When crafting, apply as many copies of durable items as required, not just one
    • Don't crash if crafting fails due to unique already generated
    • ๐Ÿ‘Œ Improve debugging of item creation
    • Don't display thrown damage for organs
    • Flesh out projectiles opening terrain and flying through
    • Require embed activation even for item-fueled terrain transformations
    • Don't spam if recording is a part of a macro
    • ๐Ÿ‘‰ Make the summary of killed enemies less confusing
    • Let some explosions destroy terrain
    • โž• Add black backdrop beneath prop font overlays, for readability
    • Be even less verbose in descriptions of items with crafting
    • Validate that item definitions have slots whenever expected
    • ๐Ÿ“‡ Rename the Macro type
    • Record also in-game menu navigation keys
    • Recover macro's recording order invariant
    • Document Macro, swap types in smacroBuffer's Either type
    • Wrap the macro buffer into a newtype
    • Encode recording state in type of macro buffer
    • Be more precise when reporting OnCombine effects
    • Format crafting recipes in a more readable way
    • Gather effects application flags into one record, for redability
    • โž• Add an assertion that catches ItemQuant data invariant violation
    • Ignore timeouts when using tools or transforming terrain
    • Don't apply kinetic damage when using tools or transforming terrain
    • ๐Ÿ–จ Generalize printing crafting recipes to many products
    • ๐Ÿ“‡ Rename the dagger item definition to match Allure
    • ๐Ÿ“œ Help parsing recipes with bullets
    • Avoid spike 2d1 (cooldown 8) of cooldowns at 4
    • Typeset crafting recipes slightly
    • ๐Ÿ“‡ Rename the whetstone item definition to match Allure
    • Don't repeat crafting recipes in OnCombine descriptions
    • ๐Ÿ‘‰ Show full crafting recipes only in lore menu, not when targeting
    • Speed up and simplify the use of countIidConsumed
    • Alter ConsumeItems and unify with ChangeWith
    • โž• Add optional count parameter to effect CreateItem
    • Validate that item definition parameters in content are positive
    • Display details of item crafting effects
    • โž• Add ConsumeItems effect
    • Let AI ignore potentially unopenable entrances, to avoid AI loops
    • ๐Ÿ‘Œ Improve messages related to Discharge effect
    • Simplify checking actor presence on a level
    • โž• Add the Discharge effect
    • Be more verbose when loot created
    • Don't complain about failed transformation if embedded item triggered
    • โช Revert "Break thrown non-unique items, even if durable"
    • Let projectiles trigger only easiest embeds and alterings
    • In tile content specify if projectiles may trigger actions
    • Display when ending a flight, to make harpoon a sensible weapon
    • When actor lacks tools to transform a tile, inform him
    • Break thrown non-unique items, even if durable
    • Squash repeated terrain transformation tools in descriptions
    • Confirm that a weapon is to be used for transformation
    • List tools needed for transformation in terrain description
    • Factor out client altering conditions
    • Unify altering by bumping and altering by pointing and server conditions
    • Don't waste turn when altering fails, but waste when embed triggering fails
    • Factor out listToolsForAltering and subtractGrpfromBag
    • Permit the use of tile altering tools with different durabilities
    • ๐Ÿ“œ Factor out parseTileAction
    • Don't count repetitions in OneOf effect description
    • Prefer non-durable altering tools, even in equipment
    • Avoid message about triggering a 'way' without any more details
    • ๐Ÿ“‡ Rename terrain patterns that denote possibly depleted resource
    • Consider durable tools last for terrain alteration
    • ๐Ÿ–จ Process tile features in order to prefer trap disarming to triggering
    • Prevent embeds triggering each other in a loop
    • Simplify applying embeds
    • Display untruncated (and mangled) messages in teletype mode
    • ๐Ÿ‘‰ Make frontendName to avoid losing message in teletype frontend
    • Clean up the presentation of group name patterns again
    • ๐Ÿ‘Œ Verify that singleton group names are so
    • Separate singleton kind group names
    • Validate that some more kind groups are singletons
    • ๐Ÿ“‡ Rename HideAs to PresentAs for item kinds
    • Simplify individual content validation due to stronger global validation
    • Check that group names unique and not void
    • Supply group names to the content creation and validation function
    • ๐Ÿ‘Œ Improve special gameover messages
    • Clean up the lists of hardwired patterns
    • Get rid of OVER in pattern names
    • Clean up the DEFENSELESS vs VULNERABLE mixup
    • โœ‚ Remove foldl from prelude to prevent space leaks
    • Group the patterns yet slightly differently
    • Catch empty OneOf during item content validation
    • Group the patterns slightly differently
    • Be consistent in taking only first word as game mode name
    • Rename PHD_DEFENSE_QUESTION to VULNERABILITY_BALM for diffing with Allure
    • Group TileKind patterns
    • โœ‚ Remove IsString instance of GroupName to catch typos
    • Reorder code in content files
    • ๐Ÿ‘‰ Make embed content patterns different from tile patterns
    • ๐Ÿ‘‰ Use PatternSynonyms for all content
    • Permit and use PatternSynonyms in some ItemKind-related code
    • Don't crash when some items consumed during dropping
    • Don't warn about untriggered embeds; altering may be the focus
    • Don't report exploiting if not triggered
    • Let terrain be changed with items even when embeds not untriggered
    • Be less verbose when losing items
    • Be more verbose when losing items due to tile altering
    • Report which embedded item was exploited so that 'Nothing happens' makes sense
    • Don't report items appearing under projectiles that are already spent
    • Reword command category headings
    • ๐Ÿšš Don't move away staircase inhabitants if projectile is changing levels
    • Let only visible projectiles discover hidden tiles, etc.
    • Don't display vacuus menu mode switch symbols
    • ๐Ÿš€ Waste items for altering only if voluntary or released as projectile
    • Get rid of spam about inability to modify terrain
    • Identify item lost in order to modify terrain
    • Let projectiles alter terrain, but not when just flying over it
    • Don't check alter skill when projectiles do the altering
    • ๐Ÿ‘Œ Improve comments about the 6 tile modifying constructors
    • Don't modify terrain by just walking over it
    • Permit the use of equipment for modifying terrain
    • Warn when no items to modify terrain
    • Prefer durable items for altering tiles
    • Don't destroy but apply durable items used to alter tiles
    • โž• Add tile alteration that demands and consumes items
    • ๐Ÿ‘Œ Improve description of cooking effects
    • โž• Add OrEffect binary constructor
    • Replace Composite by a binary constructor
    • Display failure message when embed not under feet triggered vacuusly
    • ๐Ÿ†“ Don't light adjacent tiles for free
    • Avoid 'you look less hungry' about the pointman
    • When smashed item exhibits no effect, don't warn
    • Report tile changes under a big actor
    • Generally never alter tile if under feet and embed not triggered
    • Detect when dropping or destroying items is vacuus
    • Only alter tiles via walking on them if any embed triggered
    • Don't spam when embed doesn't trigger when walked over
    • Implement DestroyItem effect
    • Let embedded items react to items dropped over them
    • Explain away only pointman moving
    • Inform about automatic melee in the in-game help
    • Mention that all factions and actors are equal
    • Reverse stars and underscores in HP bar in HUD
    • Stress suvival in the game manual
    • ๐Ÿ‘‰ Make skill check for embedded items on the client consistent with server
    • Give hints when terrain can't be entered nor modified
    • Describe hunger removing items, etc., with more detail
    • Mention leap frog in game manual
    • When scrapping message repetitions, ignore trailing EOLs
    • Don't spam about items underfoot at game start, when they are also 'located'
    • Report moving player's stash on a new line, mostly for starting screen
    • Bring back scenario notes at game start and resume
    • Bring back notes in challenges menu
    • ๐Ÿ– Handle the meta note about scenario separately
    • Mention challenges in the high score entries
    • โœ‚ Remove the Show instance of ScoreRecord
    • Invalidate inMelee when weapons dropped or picked up
    • โœ… Use --assertExplored in makefile tests
    • ๐Ÿ‘Œ Verify the commandline assertion about explored level
    • Don't assert exploration if another game started in a debug run
    • โž• Add a debug commandline option to verify explorers are not stuck
    • ๐Ÿ‘‰ Make projectile-less actors randomly more aggressive
    • โž• Add a bit of histeresis when fleeing
    • Destroy proportional font textures to avoid freezes when they pile up
    • Prevent AI from running away from helpless foe
    • Stop targetting foes once they lose all weapons
    • Let AI do more vs foe with HP <= 0 to avoid stalemate if foe regenerates fast
    • Don't spuriously check if TEnemy is a foe
    • ๐Ÿ‘Œ Improve documentation of targeting
    • Don't attack hapless nonmoving foes at range also
    • Don't normally target nonmoving actors that can only melee
    • ๐Ÿ‘‰ Use actorWorthMelee in inMelee
    • Melee a targeted foe even if not worth meleeing otherwise
    • Don't target hapless uninteresting foes
    • Don't melee a foe with only benign weapons
    • Don't consider foes with benign weapons a threat
    • Only consider actor in melee if adjacent foes worth meleeing
    • Don't interrupt running if benign melee actor adjacent
    • Introduce the count of benign weapons of an actor
    • ๐Ÿ‘‰ Make sure tutorial scenarios have enough melee weapons
    • Avoid checking isModifiable once more, in verifyAlters
    • Consistently check isModifiable together with embeds
    • Mark the new request failures as impossible on the server
    • โž• Add some internal operations, for future easier profiling
    • โœ‚ Removed TileOpenClosed error message
    • Further enhancements in tile closing
    • โœ‚ Removed TriggerTile
    • โœ‚ Remove commandline default that forced Just that is interpreted as game reset
    • Bring back the way dungeon generation perturbed random rolls
    • ๐Ÿ‘€ Make 64bit native and 32bit browser games play the same with the same RNG seed
    • ๐Ÿ‘€ Keep a separate random seed for UI
    • ๐Ÿ‘‰ Use bitmaskWithRejection form randomR
    • โž• Add some BENCHOPTS
    • ๐Ÿ‘‰ Use splitmix
    • ๐Ÿšš Suggest switching to another teammate if movement skill drained
    • 0๏ธโƒฃ Turned off showing of default --maxFps value
    • โž• Additional logPriority value and defaultMaxFps
    • ๐Ÿ’ป Couple command line options are now clamped or checked before they're set
    • Only run with selected actors that are not yet at goal
    • ๐Ÿšš Hint about menus in movement stst too low message
    • ๐Ÿšš Hint to wake up if movement skill drained by sleep
    • Display also own asleep actors green on HUD
    • ๐Ÿ‘‰ Make the heading of item menu when inspecting an organ less confusing
    • Tell that second 'f' projects
    • โž• Add a comment about the 'exploit' verb
    • Do not mention 'trunk' in weapon strike messages
    • Do not mention 'trunk' in armor blocking messages
    • Suggest in history menu to press RET
    • Get rid of Server.EndM
    • ๐Ÿ‘‰ Make sure closing window in rage at defeat/win saves game
    • Mention in the manual that HP starts at half max
    • Reformat game peculiarities list in the manual
    • Don't announce pushing that has no effect
    • Try to make the under AI control prefix less confusing
    • Let animations be toggled in main menu
    • Don't display buttons on a separate line unless message is very long
    • โž• Add a newline after scenario description
    • Avoid blank lines in history
    • Overhaul the order and blurbs of game modes
    • ๐Ÿ‘‰ Make raid scenario squad-based
    • Display scenario descriptions in their submenu
    • Don't show backstory in submenus of the main menu
    • Rework new game start menus
    • โž• Add a visual separator between new games in history
    • Reverse the order history messages are displayed in
    • Copy the list of distinguishing features from Allure homepage
    • Restructure chronologically the game manual with verbs as section titles
    • Avoid empty paragraphs
    • Ignore linebreaks when showing the condensed history line
    • Underline that mouse is optional
    • ๐Ÿ‘‰ Make 'crosshair' on the status line uniform with other headers
    • Bring back the help prompt that doesn't confusingly mention advancing
    • Mark overful HP and Calm specially on HUD
    • โž• Add some blank lines when stacking command lists
    • Stress that mouse is optional
    • ๐Ÿšš Move mouse help screens earlier
    • Don't indent help parts by proportional space width
    • Clarify the structure of help information
    • Don't show 'crosshair' when not aiming
    • Get rid of 'x-hair'
    • ๐Ÿ‘‰ Make collective running less prominent in help; tweak help
    • Mark some text files as out of date
    • โž• Add a paragraph break before nearby item summary
    • Accept longer menu messages
    • โž• Add a paragraph break before cave description
    • Warn that over-max HP gain is transient
    • Mark deaths with paragraphs and display 'Alas' already at incapacitation
    • โž• Add a line break after gameover identification of items
    • โž• Add a couple of line-breaks to reports
    • ๐Ÿ“‡ Rename emptyAttrString, which was misleading
    • Introduce a newtype of attribute lines with no linebreaks
    • Prevent backstory overflow in main menu with proportional font
    • ๐Ÿšš Move O command just after I command in help
    • When toggling autoplay, as with y/n, not SPACE/ESC
    • ๐Ÿšš Let left and right arrow keys move between sides of help screen
    • Fine-tune helps screens for display side-by-side
    • Naively cram help screens side by side
    • ๐Ÿ”€ Merge the two item command help pages
    • ๐Ÿ‘‰ Use proportional font for help, dashboard and item menu
    • ๐Ÿšš Use square font for movement scheme help paragraph
    • ๐Ÿ‘‰ Make it possible to use many fonts in help
    • ๐Ÿšš Get rid of MoveKeys.txt
    • Set up main menu for both proportional and square fonts
    • โœ‚ Remove backstory from help screens
    • โž• Add backstory to main menu, set up for square font, for now
    • With square font, add extra space before item symbol
    • Represent button width as a datatype
    • Parameterize all typesetting by the font setup (multi or single)
    • ๐Ÿ‘ Pass along information about supported fonts
    • Let sdl frontend really handle the setup with no prop nor mono font
    • Gut out ascii art
    • โž• Add blank space around some lines of overlays
    • Take all items with *, not !
    • โšก๏ธ Update the item removal verb
    • Switch a single place lore display to mono font
    • Render skill menu and item lore menu with proper fonts
    • Display item symbol in item menu in square font
    • Display label and symbol in items overlay using square fonts
    • Display at most 3 lines of buttons when too little space for menu
    • ๐Ÿ‘‰ Make a mouse misclick error easier to understand
    • Don't wrap Mono keys after a prompt
    • Overlay in square font when basic frame is under animations
    • ๐Ÿ’ป Introduce a separate UI coordinate system
    • ๐Ÿ‘‰ Make boxSize even
    • Don't highlight wrong overlays when buttons highlighted
    • ๐Ÿ’ป Avoid proportional font in button-like UI areas
    • Permit overlays with gaps
    • Name font kinds consistently
    • Display some overlays in monospace font
    • Display history labels in mono font
    • Specify fonts also in slideshows
    • ๐Ÿšš Move the definitions of DisplayFont and FontOverlayMap
    • Propagate the choice of fonts for overlays
    • Generalize drawOverlay to specify desired font for each overlay
    • Generalize overlays to let them start at arbitrary X offsets
    • Eliminate overlayFrameWithLines
    • ๐Ÿ‘ Document better the overlay types
    • ๐Ÿšš Move ColorMode to another module
    • Specify when to use which kind of main font
    • โž• Add monospace rectangular font to game configuration
    • โœ‚ Remove the old woff font
    • โž• Add new fonts, proportional and monospace
    • Specify size of the message font separately
    • Don't cursor highlight break up proportional font message chunks
    • Don't let space break up prorpotional font message chunks
    • Render the extra overlays in proportional font
    • ๐Ÿ‘ If message font supported, pass overlay over instead of rendering
    • ๐ŸŽ‰ Initialize also the message font in SDL frontend
    • โž• Add message overlay font to game configuration
    • Comment about why animals rarely eat food
    • ๐Ÿ“‡ Rename tactics to doctrine
    • Get rid of the henchman notion
    • ๐Ÿ“‡ Rename leader to pointman
    • ๐Ÿ– Handle UpdTimeItem when container not visible (CStash), but item visible
    • ๐Ÿ‘Œ Improve command descriptions
    • ๐Ÿšš Redefine key bindings not to collide with new movement keys
    • ๐Ÿšš Detect collisions of keybindings with movement keys
    • ๐Ÿšš Use the keys freed by removing the right hand movement setup
    • ๐Ÿšš Replace right hand with left hand movement keys
    • ๐Ÿ’ป Main inventory the main store in game help and UI
    • ๐Ÿšš Move total value display to all posessions menu
    • ๐Ÿšš Identify items at any item move, in case they are thrown at stash
    • Avoid spam about actors getting braced
    • Mention in failure messages that hoard accessed when stading over it
    • Mention in failure messages that too low Calm for Eqp
    • Attempt to display handling of multiple items more succintly
    • ๐Ÿšš Bring back UpdMoveItem to have better messages
    • ๐Ÿšš Properly describe item move actions
    • Lose access to stash when enemy steps on it
    • ๐Ÿšš Say who's stash is an item moved to, unless it's ours
    • Announce that enemy stash found
    • ๐Ÿ‘‰ Make sure to let clients know even the human trinket items at gameover
    • ๐Ÿ‘€ Let new stash correctly overwrite old, even if old not seen
    • Introduce PosSightLevels and use for CStash containers
    • ๐Ÿ‘€ Get rid of seenAtomicGeneralCli
    • Simplify handleAndBroadcast
    • ๐Ÿ‘‰ Make updTimeItem more loose when enemy CStash is considered
    • Don't carry item definitions in commands that don't create items
    • Register on the client the items necessary for commands
    • Analyze what items client needs to know to process a command
    • Clean up creation vs spotting of actors and items
    • โž• Add UpdRegisterItems to be used instead of many ad-hoc calls currently
    • Be permissive when performing atomic action wrt CStash
    • Simplify SfxStrike, etc., and don't require access to store's bag
    • Simplify PosFidAndSight
    • โœ‚ Remove UpdMoveItem atomic command that is not too common without CInv any more
    • Simplify handling of CStash action visiblity
    • Display also enemy stashes in position description
    • Let actors learn stash positions when they come into view
    • Mark on the map enemy stashes as well
    • ๐Ÿ”จ Refactor UpdStashFaction to let enemies see it sometimes
    • โž• Add shared stash position to team's perception
    • Say in position description that stash is there
    • Mark own shared stash position with white box
    • โœ‚ Remove gstash handling in atomic commands
    • ๐Ÿšš Move CStash in server code, not atomic commands
    • Avoid catch-all in cmdAtomicSemSer
    • Introduce UpdStashFaction
    • Do not produce a now unused ItemFull for inventory
    • When moving items, don't cycle to Ground, when over stash
    • ๐Ÿ’ป In UI don't try to use CGround when over CStash
    • Don't let AI consider floor items at it shared stash location
    • When scanning a map, don't consider own stash an ordinary pile of items
    • โšก๏ธ Update atomic position information for shared stash
    • ๐Ÿ‘‰ Make eqp, not stash, unavailable when low Calm
    • 0๏ธโƒฃ Make CStash the new implicit default when picking up items
    • Gut out CInv and CSha and replace it with CStash represented on the map
    • โœ‚ Remove the unused effect ActivateInv
    • โฌ†๏ธ Bump version, anticipating major inventory logic overhaul
    • Reword the MOwned item dialog mode blurbs
    • Simplify the header of the lore menus
    • ๐Ÿ”„ Change meny keys / and ? to > and <
    • โšก๏ธ Update scenario names in the manual
    • Mention the ! key whenever KP_* is mentioned
    • Simplify and fix placement of --more- prompts
    • ๐Ÿ”„ Change the AttrString word gluing operation and fix drawFrameStatus
    • Slightly fix speed calculation to agree with what's on the wiki
    • ๐Ÿ›  Fix a memory leak from tutorial hints repetition avoidance
    • ๐Ÿ›  Fix no frames displayed while resting
    • ๐Ÿ›  Fix missing dot at the end of taunt message
    • ๐Ÿ›  Fix heroes starting on exit in escape scenario
    • ๐Ÿ›  Fix the healing necklace better used from the backpack
    • ๐Ÿ›  Fix which are considered minor effects
    • ๐Ÿ›  Fix spurious double space suffix when rendring on blank
    • ๐Ÿ›  Fix mouse in area help, wrongly typeset with square font
    • ๐Ÿ›  Fix interruption message not appearing on screen, only in history
    • ๐Ÿ›  Fix wrong order of words in the detection effect message
    • ๐Ÿ›  Fix and simplify armor conditions message choice
    • ๐Ÿ›  Fix good conditions displayed in red
    • ๐Ÿ›  Fix broken combat description condition about armor
    • ๐Ÿ›  Fix not updated tutorial switch when game won
    • ๐Ÿ›  Fix a hint wrongly guessing the damage was piercing
    • ๐Ÿ›  Fix failures not stopping macro playback
    • ๐Ÿ›  Fix the lack of 'a' when hearing distant summoning
    • ๐Ÿ›  Fix using the reserved number 0 for faction ID
    • ๐Ÿ›  Fix backing up broken savegames
    • ๐Ÿ›  Fix a spurious space before a sentence ending dot
    • ๐Ÿ›  Fix lack of capitalization in verb messages
    • ๐Ÿ›  Fix genetic flaw activated at death
    • ๐Ÿ›  Fix a typo in identifier names
    • ๐Ÿ›  Fix first lines of message wrapped too late
    • ๐Ÿ›  Fix botched conditions for SfxFizzles, etc.
    • ๐Ÿ›  Fix includeMetaGame computed twice
    • ๐Ÿ›  Fix meta game identification not carrying through to the next game
    • ๐Ÿ›  Fix accumulating meta game item kinds
    • ๐Ÿ›  Fix scenarios with numbered actors but without continued team
    • ๐Ÿ›  Fix an optimization two lines too low in shuffleExcept
    • ๐Ÿ›  Fix a triple copy-pasto with Ability.MetaGame
    • ๐Ÿ›  Fix discoMetaGame for clients with state held by server
    • ๐Ÿ›  Fix displaying deflection when the perpetrator is not seen
    • ๐Ÿ›  Fix tutorial hints disabling
    • ๐Ÿ›  Fix a link to roguebasin
    • ๐Ÿ›  Fix short wrapping of adventure lore
    • ๐Ÿ›  Fix overflowing messages with more than 2 spaces
    • ๐Ÿ›  Fix 4 spaces message indentation with square font
    • ๐Ÿ›  Fix trash on fullscreen borders
    • ๐Ÿ›  Fix not showing aiming line when changing epsilon
    • ๐Ÿ›  Fix trying to describe an item that is not seen by the actor hit with it
    • ๐Ÿ›  Fix whitespace in displayRespSfxAtomicUI
    • ๐Ÿ›  Fix display of message log aligned to newest message
    • ๐Ÿ›  Fix extra SPACE needed to see history after game save command
    • ๐Ÿ›  Fix running broken due to vacuus MsgAtFeetMajor messages
    • ๐Ÿ›  Fix MsgStopPlayback not stopping running
    • ๐Ÿ›  Fix usage of two different widths in splitAttrString
    • ๐Ÿ›  Fix history lines starting with EOL
    • ๐Ÿ›  Fix monospace overlay whitespace spilling onto proportional
    • ๐Ÿ›  Fix wrongly enabled display of MsgRunStop message class
    • ๐Ÿ›  Fix deduplicating shown and saved messages separately
    • ๐Ÿ›  Fix, again, leftover UI clients killing frontend after already killed
    • ๐Ÿ›  Fix the numeric display of HP gain/loss
    • ๐Ÿ›  Fix wrong SDL wrapping markers when using mono fonts only
    • ๐Ÿ›  Fix a missing mouse command description
    • ๐Ÿ›  Fix Tasty tests broken by frontend fixes
    • ๐Ÿ›  Fix screensavers broken by UI faction not being the first
    • ๐Ÿ›  Fix a bug with two UI clients interspersing frames
    • ๐Ÿ›  Fix 'open main menu' command of Dashboard
    • ๐Ÿ›  Fix the GTK frontend again
    • ๐Ÿ›  Fix a syntax error in travis script
    • ๐Ÿ›  Fix license name
    • ๐Ÿ›  Fix linearInterpolation for inflated dungeon depths once more
    • ๐Ÿ›  Fix running disturbed by many boring tiles at open levels
    • ๐Ÿ›  Fix MsgItemMove messages not saved to history
    • ๐Ÿ›  Fix unintentional cap on actor generation level
    • ๐Ÿ›  Fix calling gameover and 'endgame'
    • ๐Ÿ›  Fix lack of EOL before initial separation line of history
    • ๐Ÿ›  Fix mouse coordinates in the browser
    • ๐Ÿ›  Fix assigning number symbols to hero faction projectiles
    • ๐Ÿ›  Fix and improve how deflections are displayed
    • ๐Ÿ›  Fix a 32bit system bug that intCast detected
    • ๐Ÿ›  Fix damage not displayed when other attributes are
    • ๐Ÿ›  Fix flinging from item menu cancelling item selection
    • ๐Ÿ›  Fix the comment about users able to overwrite keys
    • ๐Ÿ›  Fix a crash when impossible command chosen
    • ๐Ÿ›  Fix bitrot that corrupted curses frontend
    • ๐Ÿ›  Fix 'the fallen falling' projectiles
    • ๐Ÿ›  Fix wrong alignment of level percent seen
    • ๐Ÿ›  Fix autoexplore with changing crosshair
    • ๐Ÿ›  Fix goto not interrupted change of crosshair
    • ๐Ÿ›  Fix the valuation of OnUser effect
    • ๐Ÿ›  Fix the lack of the last backdrop line in the game greeting blurb
    • ๐Ÿ›  Fix memory leak in placesFromState
    • ๐Ÿ›  Fix double braced due the hack for skill-less yelling
    • ๐Ÿ›  Fix order of using weapons inconsistent with HUD
    • ๐Ÿ›  Fix actor that can't wait not ignored as a pointman even when inactive
    • ๐Ÿ›  Fix stash guard preferred as pointman
    • ๐Ÿ›  Fix AI leader choice to really prefer old leader and to avoid light more
    • ๐Ÿ›  Fix raid scenario starting with two faction close to escape
    • ๐Ÿ›  Fix random number out of range on 32bit JS
    • ๐Ÿ›  Fix teleport effect from stash item not identifying it
    • ๐Ÿ›  Fix warnings in gtk frontend
    • ๐Ÿ›  Fix the extra blank menu line starting too late
    • ๐Ÿ›  Fix section links in the game manual
    • ๐Ÿ›  Fix and simplify rules for disabling tile transformation
    • ๐Ÿ›  Fix missed blank prefixes of empty lines inside text
    • ๐Ÿ›  Fix and simplify projectiles activating and transforming terrain, again
    • ๐Ÿ›  Fix projectiles not able to lit up oil
    • ๐Ÿ›  Fix padded empty string overwriting UI elements
    • ๐Ÿ›  Fix the position of second column with square font
    • ๐Ÿ›  Fix trailing spaces in dashboard
    • ๐Ÿ›  Fix a trailing space in a message
    • ๐Ÿ›  Fix disable extra empty shadow line at the bottom of menus
    • ๐Ÿ›  Fix determining if item identified in permittedPrecious
    • ๐Ÿ›  Fix an actor pulling himself
    • ๐Ÿ›  Fix desynchronized copy-pasted actorVulnerable code
    • ๐Ÿ›  Fix history message display header
    • ๐Ÿ›  Fix Calm measurement code to match code documentation
    • ๐Ÿ›  Fix sleeping stash guard not considered a guard
    • ๐Ÿ›  Fix reaching escape from below when all levels explored
    • ๐Ÿ›  Fix hero AI sometimes not exploring levels fully
    • ๐Ÿ›  Fix weapon order of Smithhammer
    • ๐Ÿ›  Fix messages about melee-only armor deflecting missiles
    • ๐Ÿ›  Fix wrong condition, wrongly reducing fleeing behaviour
    • ๐Ÿ›  Fix comments about slack doctrine targets
    • ๐Ÿ›  Fix assertion failure when targetting a tile under oneself
    • ๐Ÿ›  Fix code documentation about inventory stores
    • ๐Ÿ›  Fix the unequipping failure message condition
    • ๐Ÿ›  Fix wrong cave reversal when generating dungeon
    • ๐Ÿ›  Fix non-pointman heroes meleeing healing geysers
    • ๐Ÿ›  Fix poisons never activating and never running out
    • ๐Ÿ›  Fix registering if altering failed due to bumping
    • ๐Ÿ›  Fix a bushy patch that can block starting actors
    • ๐Ÿ›  Fix diverging definitions of foes worth killing
    • ๐Ÿ›  Fix barrels not destroyed by bumping
    • ๐Ÿ›  Fix inability to open doors due to no embeds
    • ๐Ÿ›  Fix projectiles not to bump off, but to transform terrain
    • ๐Ÿ›  Fix the display of level in stash menu header
    • ๐Ÿ›  Fix alliance placing to put heroes over stairs
    • ๐Ÿ›  Fix a wrong message when displacing a waking foe
    • ๐Ÿ›  Fix AI not eating and not removing other bad conditions
    • ๐Ÿ›  Fix nested macros
    • ๐Ÿ›  Fix wrong game mode started due to only the first word inspected
    • ๐Ÿ›  Fix the result of AndEffect
    • ๐Ÿ›  Fix the warning when flinging benign items
    • ๐Ÿ›  Fix a loop when actor pushed to another level via stairs
    • ๐Ÿ›  Fix melee disrupting pushed flight
    • ๐Ÿ›  Fix unidentified weapons marked in HUD as without timeout
    • ๐Ÿ›  Fix modelling wear and tear with DestroyItem
    • ๐Ÿ›  Fix mixed up resistance conditions
    • ๐Ÿ›  Fix item dropping crashes when OnSmash effects remove them while dropped
    • ๐Ÿ›  Fix an AI loop when applying a recharging item
    • ๐Ÿ›  Fix some no-fence places not appearing in statistics
    • ๐Ÿ›  Fix display of empty lists of tools for terrain transformations
    • ๐Ÿ›  Fix referring in the server code to definitions from the client internals
    • ๐Ÿ›  Fix embedded items activated twice
    • ๐Ÿ›  Fix an attempt to consume more items than there exist
    • ๐Ÿ›  Fix broken running macro
    • ๐Ÿ›  Fix activating embeds
    • ๐Ÿ›  Fix repeating predefined macros
    • ๐Ÿ›  Fix unsafe recording
    • ๐Ÿ›  Fix in-game macro system
    • ๐Ÿ›  Fix discharging an item that is not recharged
    • ๐Ÿ›  Fix consumeItems missing in an export list
    • ๐Ÿ›  Fix missing spaces in describeToolsAlternative
    • ๐Ÿ›  Fix display of tool alternatives
    • ๐Ÿ›  Fix random results of sortEmbeds
    • ๐Ÿ›  Fix checks if actors in combat
    • ๐Ÿ›  Fix the semantics of Discharge effect
    • ๐Ÿ›  Fix a crash when updating invisible item timer
    • ๐Ÿ›  Fix altering skill check in the client
    • ๐Ÿ›  Fix omission of OpenWith when OpenTo is considered
    • ๐Ÿ›  Fix unidentified embedded items impossible to trigger
    • ๐Ÿ›  Fix usage of outdated state component when altering tiles
    • ๐Ÿ›  Fix an attempt to apply a used up embedded item
    • ๐Ÿ›  Fix the direction of < and > scrolling in ending screens
    • ๐Ÿ›  Fix rubble tile definition wrt order of activated features
    • ๐Ÿ›  Fix old actor body used after altering caused by collision with terrain
    • ๐Ÿ›  Fix wrong condition for alien captured at victory message
    • ๐Ÿ›  Fix moving only all or none items between containers
    • ๐Ÿ›  Fix crash when actor not visible after triggering an item
    • ๐Ÿ›  Fix crash when dopping previous may destroy next items
    • ๐Ÿ›  Fix projectile altering a tile too many times at once
    • ๐Ÿ›  Fix DropItem reporting no activation due to item vanishing earlier
    • ๐Ÿ›  Fix off-by-one when picking projectiles with enough range
    • ๐Ÿ›  Fix trying to destroy an empty item bag when modifying terrain with it
    • ๐Ÿ›  Fix assumption that if last actor is alien, game is won
    • ๐Ÿ›  Fix no identification message sometimes in the first turn
    • ๐Ÿ›  Fix compilation without EXPOSE_INTERNAL
    • ๐Ÿ›  Fix the trap of drain Calm item in equipment that can't be removed
    • ๐Ÿ›  Fix tiles never altered via walking on them
    • ๐Ÿ›  Fix articles incorrectly recognized in words that end similarly
    • ๐Ÿ›  Fix wrong calculation of number of non-durable weapons
    • ๐Ÿ›  Fix incorrect conjugation
    • ๐Ÿ›  Fix a corruption of backstory text
    • ๐Ÿ›  Fix first character of buttons sometimes overwritten by space
    • ๐Ÿ›  Fix wrongly displaying a special ending for small scenarios
    • ๐Ÿ›  Fix other frontends wrt engine and sdl2 frontend changes
    • ๐Ÿ›  Fix proportional overlay overwriting first character of mono one
    • ๐Ÿ›  Fix help setup for large screens
    • ๐Ÿ›  Fix broken item menu with square font
    • ๐Ÿ›  Fix wrong button initial position with square font
    • ๐Ÿ›  Fix distant overlays wrongly getting a highlighted line
    • ๐Ÿ›  Fix SDL frontend truncating proportional font lines
    • ๐Ÿ›  Fix and tweak measuring texts in various fonts
    • ๐Ÿ›  Fix empty menus in single font mode
    • ๐Ÿ›  Fix spurious ending prompt in single-font setup
    • ๐Ÿ›  Fix padding of line chunks overwriting subsequent chunks
    • ๐Ÿ›  Fix display of history
    • ๐Ÿ›  Fix buttons holding other locations of an item
    • ๐Ÿ›  Fix not shown highlight of prop font lines
    • ๐Ÿ›  Fix spurious empty line between header and menu
    • ๐Ÿ›  Fix use of fromAscList where fromDistinctAscList would do
    • ๐Ÿ›  Fix spacing in history display
    • ๐Ÿ›  Fix off-by-one crash in history
    • ๐Ÿ›  Fix mouse clicks on buttons in small font areas
    • ๐Ÿ›  Fix updateLine for the case of multiple overlays
    • ๐Ÿ›  Fix overrun in mouse help table
    • ๐Ÿ›  Fix history highlight restricted to 80 columns
    • ๐Ÿ›  Fix menu highlight splitting proportional text chunks
    • ๐Ÿ›  Fix proportional texts never wiped out
    • ๐Ÿ›  Fix horizontal starting points of message chunks
    • ๐Ÿ›  Fix a syntax error stemming from wrong CPP
    • ๐Ÿ›  Fix illegal containers creeping into item choice
    • ๐Ÿ›  Fix cmdAtomicSemSer for UpdMoveItem
    • ๐Ÿ›  Fix AI not sidestepping explosive tiles, even if it could
    • ๐Ÿ›  Fix AI not sidestepping nearby actors
    • ๐Ÿ›  Fix cmdAtomicSemSer in the presense of CStash that acts like CFloor
    • ๐Ÿ›  Fix broken atomic commands assigned wrong LevelId
    • ๐Ÿ›  Fix visible enemy stash position not updated, because foes not seen
    • ๐Ÿ›  Fix countless typos
    • Start using cabal-plan
    • ๐Ÿ›  Fix and improve Makefile, cabal file and CI scripts
    • ๐Ÿ‘Œ Improve and update game manual and help texts wrt game changes
    • ๐Ÿ— Tweak travis scripts and building docs in README
  • v0.10.0.0 Changes

    • Even in the subtle hit animation indicate who is the victim
    • โž• Add a missing space between 'modify terrain stat' and '5' with square font
    • ๐Ÿ’ป Make Burn as valuable as other damage for consistent UI display
    • ๐Ÿ‘‰ Show very good no-timeouts weapons at the correct position
    • Partially hash-cons ItemQuant, with very modest effect
    • ๐Ÿ”„ Change some occurences of trivial Quant to quantSingle
    • Simplify skill and place menu code
    • Don't multiply initialPlaces when preparing place display
    • Consume places for places menu more eagerly
    • Eliminate space leak when creating items
    • Avoid memory leak due to caves used for levels on a list
    • Fit the short help blurb in 4 lines
    • Start the game with a confirmation prompt
    • โฑ Sort weapons wrt timeout and item kinds ID as well
    • Simplify querying skills of the leader
    • Avoid long animations before the extra burn or wound animations
    • ๐Ÿ”„ Change combat animations to easily distinguish attacker from attacked
    • Let AI displace teammates when no risk of displacing back
    • Restrict AI use of stash guards less harshly
    • โž• Add a comment about allies stealing each other's stashes
    • ๐Ÿ‘ Let AI keep fleeing if no support gained
    • โœ‚ Remove a few redundant TypeFamilies pragmas
    • Explain in a comment why on a level with stash many sleeping may accumulate
    • ๐Ÿ‘‰ Make safari scenario harder now that aliens are buffed up
    • Let AI displace friends less often
    • โœ… Unify the test for item being damaging
    • ๐Ÿ‘Œ Improve module haddocs for content
    • Hide unneeded content group name patterns
    • โž• Add short-caves debug game mode
    • Display melee damage even if there's no ranged damage
    • โฌ‡๏ธ Reduce the number of calls to foeRegularAssocs
    • ๐Ÿ‘‰ Make sure AI actions are not recursive, even shallowly
    • โฌ‡๏ธ Reduce the number of calls to currentSkillsClient
    • Speed up skill arithmetic
    • Math order of cases in processWatchfulness with the order in type definition
    • โœ‚ Remove inlines that stopped helping in GHC 8.8 and that obstruct profiling
    • Compute friendAssocs only once for each actor AI processing
    • Limit and speed up invalidating BFS
    • Speed up a few significantly expensive functions
    • ๐Ÿ‘‰ Use the JS splitmix optimization
    • ๐Ÿ‘‰ Tweak random numbers code a bit
    • ๐Ÿ‘Œ Improve haddocks of the dice mechanism
    • ๐Ÿ‘Œ Improve help display a bit
    • ๐Ÿšš Move ClientOptions.hs to adhere to the convention about module hierarchies
    • Meld LH and Allure content, continued
    • Port over oil explosions that harm the targeted actor from Allure
    • Meld LH and Allure cave and item content
    • State the number of item in equipment even when removing from it
    • Explain the goofy handling of recharging in stash
    • Regenerate tile even if kind not changed, but all embeds gone
    • Permit altering tiles with items on them
    • Don't leave stash unguarded if friends may spawn
    • โž• Add stash detection effect
    • Cap stat bonuses when assigning AI value to items
    • Value skill bonuses differently for each skill
    • Be even more specific when describing what an actor does on a tile
    • โœ… Adjust the SDL test to run without installing fonts, as Debian requires
    • Don't let projectiles ever cause normal tile transitions
    • ๐Ÿ‘‰ Tweak pushing via an embed
    • โž• Add Q&A about hearing
    • ๐Ÿ‘‰ Tweak item valuations to make awkward armours wearable by AI
    • When describing an actor, say if it's pushed
    • ๐Ÿšš Push towards embed, not in direction of previous movement
    • Simplify key bindings display code
    • ๐Ÿ’ป Clean up naming of column offset in UI
    • Ensure no missing space between columns of help text
    • Prevent a trailing space
    • Don't activate barrels via mist
    • Don't treat blasts that damage through effects as mists
    • Don't let on noise distance if nobody can hear it directly
    • Differentiate the sound of projectile and actor hitting a tile
    • Emit sound also when an actor hits a tile
    • Display close and out-of-level noises with special colours
    • Display noise distance information
    • Send noise distance information
    • ๐Ÿ”จ Refactor hearing
    • ๐Ÿคก Mock up extended hearing
    • ๐Ÿ‘ Give better message when not enough skill to melee
    • Disturb resting when calm enough again
    • Don't summon by hitting a projectile
    • ๐Ÿ‘‰ Make actor aggresive if only one is not guarding stash on the level
    • Ban teleporting immobile foes; they come back and their loot is lost
    • Validate that item group names are short enough
    • Cath too long group names
    • Catch empty group names
    • Let more actors start sleeping
    • Consistently create on the ground all items looted from terrain
    • Mark game modes already won in this difficulty
    • Clear screen after start ASAP
    • ๐Ÿ‘‰ Use the AttrLine smart constructor or assertions as appropriate
    • ๐Ÿ“‡ Rename firstParagraph
    • ๐Ÿ‘‰ Tweak types to work with the stricter smart constructor
    • ๐Ÿšš Move assertion about trailing whitespace to a smart constructor
    • Eliminate trailing spaces in help and item menus
    • Replace a momentarily trailing space with nbsp
    • Don't define special messages with space, they are added automatically
    • ๐Ÿšš When splitting lines, remove the trailing spaces
    • Simplify a condition in splitAttrPhrase
    • Don't add a space when appending a report that starts with newline
    • Don't produce backdrop on black background
    • โšก๏ธ Optimize truncateAttrLine and truncateOverlay
    • Mark assertions expensive in menus
    • ๐Ÿ‘‰ Make avoiding SDL frame drawing more fine-grained
    • Simplify SDL frame drawing based on previous frame
    • โšก๏ธ Optimize menu scrolling via an extra texture
    • Don't waste healing items when HP low ceiling
    • Don't display that foes don't know their weapon when only you don't
    • Reflect keybindings change in the start scenario menu
    • Permit hero AI to consume elixirs
    • Don't flee if can kill a blocking enemy instead
    • ๐Ÿ‘‰ Make fast or hasted actors willing to close in for melee
    • Compensate for overhead of animals when creating conditions
    • Mark organs that are ready to expire once applyPeriodicLevel runs
    • Avoid stating that an organ will last for 0s
    • ๐Ÿ‘‰ Tweak slightly AI item preferences
    • Get rid of DropBestWeapon
    • ๐Ÿ›ฐ Don't rechare nor discharge projecile payloads
    • Start dicharging with strongest weapons
    • Let Discharge add to cooldown, not reset
    • โฑ Discharge only items with a timeout
    • ๐Ÿ‘ Consider as support only actors that can harm in melee
    • ๐Ÿ‘‰ Make organs (minimally) accessible from triggering
    • Let AI trigger items among organs
    • ๐Ÿ˜Œ Relax trigger stat 1 restrictions
    • ๐Ÿ‘‰ Tweak AI item use preferences valuation
    • ๐Ÿ‘Œ Improve the gameover item menu message
    • Record duplication of items to avoid absurd gameover messages
    • Discharge not only equipment, but also organs
    • Don't paralyse the last AI stash guard
    • Give AI stash guard more freedom if friends adjacent
    • ๐Ÿ‘‰ Make AI keep guarding even if teammates on the level may leave it
    • Don't let AI leave stash unless foes harm it
    • Don't abandon stash when teammates temporarily immobile
    • Prevent displacing a stash guard
    • Don't abandon stash if temporarily nonmoving
    • Abandon stash if under heavy fire
    • ๐Ÿ‘€ Don't abandon stash unless foes seen
    • Don't use aidTgtToPos unless necessary
    • If enemy in light, pelt him instead of leaving dark
    • Don't stop fleeing into hideout after 5 turns even if foes appear
    • Target dark if fleeing and no foes targetted
    • Efficiently find closest hideout for AI
    • Tabulate hideout tiles predicate
    • Factor out distanceBfs
    • Don't hog leadership just because weak and enemies close
    • When fleeing and soon after target only actors that can't melee
    • Stop fleeing if not hit and possibly friends managed to join
    • Take into account recent fleeing when taking off light
    • Simplify hinders
    • In AI action choice use recent fleeing instead of this and last turn distress
    • Don't overwrite fleeing record if fled recently
    • Don't chase foes if fled recently
    • GC fleeing record when actor lost
    • Extend fleeing state from 1 to 5 turns
    • Store not only fleeing position but also fleeing start time
    • Reorder organs
    • ๐Ÿ‘‰ Make two organs not LH-specific
    • Don't undervalue weapons with drop condition
    • ๐Ÿ‘‰ Make it possible for animals to mark levels as explored
    • ๐Ÿ‘‰ Make slack tactics AI less erratic when focused or distressed
    • โž• Add a comment about animals bad at changing levels
    • Let AI displace any sleeping blockers
    • Don't let AI actors fall asleep if not relaxed
    • Don't force animals to change target just before reaching it
    • ๐Ÿ‘Œ Improve condAimCrucialM for vector targets
    • โœ… Flesh out the crawl survival test scenario
    • ๐Ÿ‘‰ Make crafting act as if on bottom level
    • ๐Ÿšš Move skill checks from pathfinding to targetting and restrict immovable actors
    • Forbid making missiles hungry, asleep, etc.
    • โšก๏ธ Optimize processTileActions
    • ๐Ÿ‘‰ Make sure projectiles can modify terrain even if safe from effects
    • Don't reset TVector target, because it's set manually
    • Create a central staircase
    • Display ranged damage even when limited space in menu line
    • Shorten the display of weapons if not enough space
    • Don't consider enemy projectiles for determining if AI is in melee
    • ๐Ÿ‘‰ Make poison less deadly in corridors
    • Eliminate the stash domination exploit
    • ๐Ÿ‘‰ Make guessing if AI was hit by projectiles more accurate
    • Prevent wounded animals from closing in agains mutliple enemies
    • In messages tell discharge from recharge effects
    • ๐Ÿ‘‰ Make smell more important that stairs, again
    • Clean up vector target code
    • Melee non-targets if target not worth killing
    • Don't perform all monadic actions that compute strategies before choosing one
    • Don't retarget actor if blocked by the very actor and so can melee it
    • Simplify target shoice for slack doctrine factions
    • Sort items in lists in normal texts
    • Help AI unlock the dungeon if stash guard helds the key
    • Prevent animals from eating their own meat
    • Prevent creating new items via throwing others, with ikit
    • ๐Ÿšฆ Signal specially when an item is located in a stash, as well
    • Say when an item appears in a stash, etc.
    • Don't warn if selected missile from stash can't be picked up
    • Don't flee if back next turn
    • When fleeing don't remember the last targetted enemy
    • ๐Ÿšš Move keybinding content definitions to match display order
    • ๐Ÿ’ป Prevent, in UI, removing from equipment if not calm
    • ๐Ÿšš Warn when illegal item movement attempted
    • Display stash blurb also when switching the leader
    • Don't let stash guards leave levels
    • Don't prevent displacing a friend if only half of a loop is present
    • Don't neglect guarding stash unless no buddies to help
    • ๐Ÿ‘‰ Tweak AI conditions
    • Don't flee if own stash close unless completely overwhelmed
    • Easily displace teammates that guard the stash
    • Mention stash when walking over a tile
    • Do not flee and be reluctant to chase when guarding stash
    • Introduce guarding own stash
    • ๐Ÿ‘‰ Make isDoor more accurate
    • Don't make a rumble when door closes
    • Tabulate isOpenable and isClosable
    • ๐Ÿ‘‰ Make tall staircases more likely now that they are often broken
    • ๐Ÿ‘‰ Make types a bit more strict in stairs calculation
    • Simplify stair number computation
    • ๐Ÿ“‡ Rename cextraStairs
    • ๐Ÿ”„ Change the semantics of cextraStairs
    • Separate stair number computation and level generation
    • Compute abandoned stairs earlier
    • ๐Ÿ“š Correct the documentation of cextraStairs
    • Roll extra stairs earlier
    • Roll cave kinds earlier
    • Simplify shuffling caves
    • When transforming walkable tiles, don't insist on embed activations
    • Ban crafting and terrain transformation in the same action
    • Try to make the terrain transformation specs more readable
    • Prevent the exploit of using cover against non-moving shooters
    • ๐Ÿ‘‰ Make makeLine non-monadic
    • Keep the data invariant of @arenas@ for longer
    • Make the interrupted running display look less corrupted
    • โž• Add and tweak comments about item maps
    • โšก๏ธ Update the manual and keybindings printout
    • ๐Ÿ‘‰ Tweak the wording of keybidings descriptions
    • Prevent marking inert items as (charging)
    • โž• Add ANY_FLASK group
    • ๐Ÿ‘‰ Make sure impression is dropped before other conditions
    • ๐Ÿ– Handle failed bump-modification without embed activation
    • ๐Ÿ”„ Change the key for new game, not to mix up with 'n'o
    • โœ‚ Remove misleading comment about tiles being explorable
    • In message fits in one long line, don't wrap it into small lines
    • Don't make consumables with Ascend effect worthless
    • ๐Ÿ”„ Change division by zero into an assertion failure
    • ๐Ÿ‘€ Comment why 'seen' sometimes gets from 100% to 99%
    • Validate HideAs in content instead of asserting its property later on
    • ๐Ÿ‘‰ Tweak (speedup the tiniest bit) updAlterTile
    • Stop leader before leaving dark in a more useful way
    • Don't equip light even if enemy only remembered
    • Simplify the interesting target conditions for AI
    • Flee through dark not only when starting in light
    • Chase and flee through dark even if not starting from light
    • Simplify the chasing ambient light condition
    • Prefer leaders that don't step into light
    • Detour when chasing, to avoid lit spots
    • Prefer fleeing into dark spots
    • Don't flee from projectiles if can't flee into the dark
    • Prevent AI from vainly chasing fast shooters
    • ๐Ÿ‘‰ Tweak and simplify AI fleeing condition
    • Help AI sidestep a blocking meleeing friend
    • Let AI go towards enemy stash even if in melee
    • Join melee from twice longer distance
    • ๐Ÿ“‡ Rename CURIOUS_ITEM
    • Don't display 0 ranged damages
    • โž• Add missing content group definitions
    • Simplify content validation
    • Check that content group names are all listed
    • Let the draft detector emit noise and sound
    • ๐Ÿ‘‰ Tweak the engine to accomodate a detection device that pings
    • Prevent non-humans from hogging key items and so blocking progress
    • Reorder item definition to match those of Allure for diffing
    • Don't emit server leader change messages if known to client
    • Comment about the trade-offs of weapon benefit calculation
    • Mark the lore screen with crafting recipes
    • Don't confusingly refuse to display the pushing effect for shields
    • Increase minimal damage taken, regardless of armor, to 5%
    • Be pendantic when emitting messages about creating items
    • Don't say that a projectile is wounded
    • ๐Ÿ‘‰ Show enemy HP under the selected item
    • Simplify strongestMelee
    • โž• Add an alias for picking up all items, etc.
    • Sort out naming of item and embed activations
    • Simplify revCmdMap
    • Warn when embeds activated, but transformation failed
    • Check dangerous tools use even when nested in transformations
    • Don't transform terrain when bumping
    • Let pathfinding avoid vicinity of enemies
    • ๐Ÿ‘‰ Make it easy to discern an attack on teammate among many messages
    • Don't display misleading condition drop messages
    • Visually distinguish embed names and descriptions
    • Permit fractional FPS, for debugging
    • Colour-code map position descriptions
    • ๐Ÿšš Move the run macro to where all other engine macros are defined
    • โœ… Permit unknown command, for testing
    • ๐Ÿคก Simplify and clarify the mock
    • Unify repeatHumanTransition 1 and macroHumanTransition
    • Reflect in types that macro frame stack is never empty
    • ๐Ÿ‘‰ Make more space for explicit import lists
    • ๐Ÿ“‡ Rename components of the macro data structure
    • Drive the point home that repeatHumanTransition 1 /= macroHumanTransition
    • โž• Add tests that illustrate not creating new buffers for in-game macros
    • Touch up the macro code a bit
    • โž• Add tests showing lack of referential transparency of named macros
    • Don't prompt about recording a macro it's part of macro replay
    • Warn when pick up not to equipment due to low calm
    • Display how many items in equipment when equipping
    • Refuse to equip if equipment full
    • โœ… Separate testing harness import from game content import
    • โž• Add a helper function to shorten tests
    • ๐Ÿ“‡ Rename the semantics functions
    • Implement the desired semantics of RepeatLast
    • โœ… Sketch the desired semantics of RepeatLast via tests
    • โšก๏ธ Use the same updateLastAction function in test mock
    • Collect a more precise last action key
    • ๐Ÿคก Simplify slightly the mock
    • Grey out more (all?) illegal commands
    • โž• Add special messages when illegally flinging or applying
    • Go even through stores that all factions have empty
    • โช Revert banning stores for all actors based on the first checked
    • โž• Add special messages when illegally moving items from or to eqp or ground
    • Forbid unequipping items when not calm, again
    • Don't ignore illegal stores if once shown
    • Display the number of items in equipment even when not calm
    • ๐Ÿ‘€ Write client RNG seed to UI RNG seed numbers at game restart
    • ๐Ÿ’พ Save UI random seed to avoid boring messages if many save/loads
    • โž• Add a comment about stealth viable for tactics, but not strategy
    • Reset C-f when x-hair automatically changed
    • Pick as leaders also the actors that could melee but should not
    • ๐Ÿ‘‰ Make animals unable to catch projectiles
    • Don't cycle xhair through own stash
    • Display slideshows normall unless really too long, not just excessively long
    • Give more time to view a frame when frame level changes
    • Be more verbose when kicking terrain
    • Prevent the inability of taking off max calm draining items
    • Re-assign action repeating keys
    • Clean up macro command's texts
    • Place ikit item in a semi-random way
    • ๐Ÿ‘‰ Tweak content group names for display
    • Avoid 'of gain of gain' in item descriptions
    • Don't talk about blocking when no kinetic damage dealt
    • Match the order of game over lore screens with in-game lore menu
    • Prevent AI from imbibing a potion of panic
    • Don't call a tile alterable if embeds have no effects
    • Prefer leaders that target enemy stashes
    • Don't chase stashes of friends and neutrals
    • When creating items on the floor during dungeon generation, create ikit items
    • When embedding items in tiles, optionally generate more items
    • โฑ Redesign so that charging items can be determined even if timeout unknown
    • Clean up some instance deriving
    • โœ… Factor out two more pure functions about macros to use in unit tests
    • ๐Ÿ“œ Permit creation of input content without parsing a config file
    • โœ… Factor out pure function about macros to use in unit tests
    • Record nested macros on stack
    • Snatch enemy stash ASAP if adjacent
    • โœ… Port tests to tasty
    • Undo the attempt to end game when player kills window
    • โœ‚ Remove a spurious recordHistory
    • ๐Ÿ‘€ Make sure verifyCaches error doesn't obscure RNG seed of the crashing run
    • Don't let big actors auto-craft at death
    • In menus show how long conditions will last
    • Tell how for long an actor is going to be slowed when first affected
    • Tell how for long an actor is slowed in total after extra slowness, etc.
    • Tell how much poisoned actor is in total after extra poison, etc.
    • Don't display the mandatory turn frame if a frame already displayed this turn
    • ๐Ÿ–จ Don't draw (and printscreen) identical frames, even if small fonts used
    • ๐Ÿ›ฐ Don't trigger terrain if projectile has lost its payload
    • Enable cooking of food thrown into fire
    • Don't spam when blasts transform terrain
    • Simplify dieSer
    • Ensure the last step of projectile flight is shown
    • โœ‚ Remove a repeated check
    • Be more verbose when transforming items with scrolls
    • Display level where the stash is, as a reminder
    • Don't displace sleeping immobile actors
    • Simplify checking if an item is identified
    • Prevent AI from putting most weapons in reserve
    • Let AI be eager to equip unidentified and good unique items
    • Don't be too verbose with tile altering when leader stands on it
    • Don't craft from equipment due to possible involuntary harm
    • โœ‚ Remove altering via dropping items; too disaster-prone
    • ๐Ÿ”จ Refactor handleDir
    • Permit indicating the zero vector with mouse
    • Colour and reword the message about consuming items
    • Be a bit more verbose about tile changes
    • Don't inform about a projectile's equipment
    • Avoid hitting 'feebly' with a heavy hammer
    • ๐Ÿ‘‰ Show, e.g., harpoon as an obvious choice for throwing despite usable for melee
    • Don't summon by hitting a friend
    • Don't hit delicately just because the weapon was not identified
    • Prevent AI from wasting time throwing very weak projectiles
    • Avoid 'chip of scientific explanation turns out to be', when identifying
    • ๐Ÿ‘Œ Improve item destruction messages
    • โž• Add OnUser effect constructor
    • Avoid 'the pair turns out to be' when identifying
    • When short name requested, don't append numbers and parens
    • Prevent VerbMsgFail being repeated 99 times
    • Describe how colours correspond to tile properties
    • Let even unskilled actors take over stash
    • Take over stash also when actor dominated or created
    • Target enemy stash in preference even to enemy actors
    • โž• Add comments about salter and pathfinding
    • Avoid 'controlled by Controlled foo'
    • Avoid 'hits delicately' with a 14 HP wounding hammer
    • Ensure in content that Burn is positive
    • Mark weapon burning and wounding on HUD, to avoid hammers all look benign
    • Clarify that chosen weapon needs not be optimal for a foe
    • ๐Ÿ‘Œ Improve display of places lore
    • Pick up enemy summoning periodic items to deny them to foes
    • Don't send the SfxTrigger messages to the client
    • Mention that stats menu summarizes the organ menu
    • โž• Add sample cabal.project.local files
    • Introduce VerbMsgFail effect
    • Let crafting use up terrain, if successful
    • Don't split tile properties description by description of things on the tile
    • Avoid crafting via walking into a worshop tile
    • Introduce SeqEffect to use for crafting creation in place of AndEffect
    • ๐Ÿšš Let components 'disappear', not 'be removed' during crafting
    • ๐Ÿ‘Œ Improve crafting recipe description
    • Automatically identify crafted items
    • When cratfing, use tools but destroy components
    • ๐Ÿ†“ Don't create items in equipment if not enough free slots
    • When crafting, apply as many copies of durable items as required, not just one
    • Don't crash if crafting fails due to unique already generated
    • ๐Ÿ‘Œ Improve debugging of item creation
    • Don't display thrown damage for organs
    • Flesh out projectiles opening terrain and flying through
    • Require embed activation even for item-fueled terrain transformations
    • Don't spam if recording is a part of a macro
    • ๐Ÿ‘‰ Make the summary of killed enemies less confusing
    • Let some explosions destroy terrain
    • โž• Add black backdrop beneath prop font overlays, for readability
    • Be even less verbose in descriptions of items with crafting
    • Validate that item definitions have slots whenever expected
    • ๐Ÿ“‡ Rename the Macro type
    • Record also in-game menu navigation keys
    • Recover macro's recording order invariant
    • Document Macro, swap types in smacroBuffer's Either type
    • Wrap the macro buffer into a newtype
    • Encode recording state in type of macro buffer
    • Be more precise when reporting OnCombine effects
    • Format crafting recipes in a more readable way
    • Gather effects application flags into one record, for redability
    • โž• Add an assertion that catches ItemQuant data invariant violation
    • Ignore timeouts when using tools or transforming terrain
    • Don't apply kinetic damage when using tools or transforming terrain
    • ๐Ÿ–จ Generalize printing crafting recipes to many products
    • ๐Ÿ“‡ Rename the dagger item definition to match Allure
    • ๐Ÿ“œ Help parsing recipes with bullets
    • Avoid spike 2d1 (cooldown 8) of cooldowns at 4
    • Typeset crafting recipes slightly
    • ๐Ÿ“‡ Rename the whetstone item definition to match Allure
    • Don't repeat crafting recipes in OnCombine descriptions
    • ๐Ÿ‘‰ Show full crafting recipes only in lore menu, not when targeting
    • Speed up and simplify the use of countIidConsumed
    • Alter ConsumeItems and unify with ChangeWith
    • โž• Add optional count parameter to effect CreateItem
    • Validate that item definition parameters in content are positive
    • Display details of item crafting effects
    • โž• Add ConsumeItems effect
    • Let AI ignore potentially unopenable entrances, to avoid AI loops
    • ๐Ÿ‘Œ Improve messages related to Discharge effect
    • Simplify checking actor presence on a level
    • โž• Add the Discharge effect
    • Be more verbose when loot created
    • Don't complain about failed transformation if embedded item triggered
    • โช Revert "Break thrown non-unique items, even if durable"
    • Let projectiles trigger only easiest embeds and alterings
    • In tile content specify if projectiles may trigger actions
    • Display when ending a flight, to make harpoon a sensible weapon
    • When actor lacks tools to transform a tile, inform him
    • Break thrown non-unique items, even if durable
    • Squash repeated terrain transformation tools in descriptions
    • Confirm that a weapon is to be used for transformation
    • List tools needed for transformation in terrain description
    • Factor out client altering conditions
    • Unify altering by bumping and altering by pointing and server conditions
    • Don't waste turn when altering fails, but waste when embed triggering fails
    • Factor out listToolsForAltering and subtractGrpfromBag
    • Permit the use of tile altering tools with different durabilities
    • ๐Ÿ“œ Factor out parseTileAction
    • Don't count repetitions in OneOf effect description
    • Prefer non-durable altering tools, even in equipment
    • Avoid message about triggering a 'way' without any more details
    • ๐Ÿ“‡ Rename terrain patterns that denote possibly depleted resource
    • Consider durable tools last for terrain alteration
    • ๐Ÿ–จ Process tile features in order to prefer trap disarming to triggering
    • Prevent embeds triggering each other in a loop
    • Simplify applying embeds
    • Display untruncated (and mangled) messages in teletype mode
    • ๐Ÿ‘‰ Make frontendName to avoid losing message in teletype frontend
    • Clean up the presentation of group name patterns again
    • ๐Ÿ‘Œ Verify that singleton group names are so
    • Separate singleton kind group names
    • Validate that some more kind groups are singletons
    • ๐Ÿ“‡ Rename HideAs to PresentAs for item kinds
    • Simplify individual content validation due to stronger global validation
    • Check that group names unique and not void
    • Supply group names to the content creation and validation function
    • ๐Ÿ‘Œ Improve special gameover messages
    • Clean up the lists of hardwired patterns
    • Get rid of OVER in pattern names
    • Clean up the DEFENSELESS vs VULNERABLE mixup
    • โœ‚ Remove foldl from prelude to prevent space leaks
    • Group the patterns yet slightly differently
    • Catch empty OneOf during item content validation
    • Group the patterns slightly differently
    • Be consistent in taking only first word as game mode name
    • Rename PHD_DEFENSE_QUESTION to VULNERABILITY_BALM for diffing with Allure
    • Group TileKind patterns
    • โœ‚ Remove IsString instance of GroupName to catch typos
    • Reorder code in content files
    • ๐Ÿ‘‰ Make embed content patterns different from tile patterns
    • ๐Ÿ‘‰ Use PatternSynonyms for all content
    • Permit and use PatternSynonyms in some ItemKind-related code
    • Don't crash when some items consumed during dropping
    • Don't warn about untriggered embeds; altering may be the focus
    • Don't report exploiting if not triggered
    • Let terrain be changed with items even when embeds not untriggered
    • Be less verbose when losing items
    • Be more verbose when losing items due to tile altering
    • Report which embedded item was exploited so that 'Nothing happens' makes sense
    • Don't report items appearing under projectiles that are already spent
    • Reword command category headings
    • ๐Ÿšš Don't move away staircase inhabitants if projectile is changing levels
    • Let only visible projectiles discover hidden tiles, etc.
    • Don't display vacuus menu mode switch symbols
    • ๐Ÿš€ Waste items for altering only if voluntary or released as projectile
    • Get rid of spam about inability to modify terrain
    • Identify item lost in order to modify terrain
    • Let projectiles alter terrain, but not when just flying over it
    • Don't check alter skill when projectiles do the altering
    • ๐Ÿ‘Œ Improve comments about the 6 tile modifying constructors
    • Don't modify terrain by just walking over it
    • Permit the use of equipment for modifying terrain
    • Warn when no items to modify terrain
    • Prefer durable items for altering tiles
    • Don't destroy but apply durable items used to alter tiles
    • โž• Add tile alteration that demands and consumes items
    • ๐Ÿ‘Œ Improve description of cooking effects
    • โž• Add OrEffect binary constructor
    • Replace Composite by a binary constructor
    • Display failure message when embed not under feet triggered vacuusly
    • ๐Ÿ†“ Don't light adjacent tiles for free
    • Avoid 'you look less hungry' about the pointman
    • When smashed item exhibits no effect, don't warn
    • Report tile changes under a big actor
    • Generally never alter tile if under feet and embed not triggered
    • Detect when dropping or destroying items is vacuus
    • Only alter tiles via walking on them if any embed triggered
    • Don't spam when embed doesn't trigger when walked over
    • Implement DestroyItem effect
    • Let embedded items react to items dropped over them
    • Explain away only pointman moving
    • Inform about automatic melee in the in-game help
    • Mention that all factions and actors are equal
    • Reverse stars and underscores in HP bar in HUD
    • Stress suvival in the game manual
    • ๐Ÿ‘‰ Make skill check for embedded items on the client consistent with server
    • Give hints when terrain can't be entered nor modified
    • Describe hunger removing items, etc., with more detail
    • Mention leap frog in game manual
    • When scrapping message repetitions, ignore trailing EOLs
    • Don't spam about items underfoot at game start, when they are also 'located'
    • Report moving player's stash on a new line, mostly for starting screen
    • Bring back scenario notes at game start and resume
    • Bring back notes in challenges menu
    • ๐Ÿ– Handle the meta note about scenario separately
    • Mention challenges in the high score entries
    • โœ‚ Remove the Show instance of ScoreRecord
    • Invalidate inMelee when weapons dropped or picked up
    • โœ… Use --assertExplored in makefile tests
    • ๐Ÿ‘Œ Verify the commandline assertion about explored level
    • Don't assert exploration if another game started in a debug run
    • โž• Add a debug commandline option to verify explorers are not stuck
    • ๐Ÿ‘‰ Make projectile-less actors randomly more aggressive
    • โž• Add a bit of histeresis when fleeing
    • Destroy proportional font textures to avoid freezes when they pile up
    • Prevent AI from running away from helpless foe
    • Stop targetting foes once they lose all weapons
    • Let AI do more vs foe with HP <= 0 to avoid stalemate if foe regenerates fast
    • Don't spuriously check if TEnemy is a foe
    • ๐Ÿ‘Œ Improve documentation of targeting
    • Don't attack hapless nonmoving foes at range also
    • Don't normally target nonmoving actors that can only melee
    • ๐Ÿ‘‰ Use actorWorthMelee in inMelee
    • Melee a targeted foe even if not worth meleeing otherwise
    • Don't target hapless uninteresting foes
    • Don't melee a foe with only benign weapons
    • Don't consider foes with benign weapons a threat
    • Only consider actor in melee if adjacent foes worth meleeing
    • Don't interrupt running if benign melee actor adjacent
    • Introduce the count of benign weapons of an actor
    • ๐Ÿ‘‰ Make sure tutorial scenarios have enough melee weapons
    • Avoid checking isModifiable once more, in verifyAlters
    • Consistently check isModifiable together with embeds
    • Mark the new request failures as impossible on the server
    • โž• Add some internal operations, for future easier profiling
    • โœ‚ Removed TileOpenClosed error message
    • Further enhancements in tile closing
    • โœ‚ Removed TriggerTile
    • โœ‚ Remove commandline default that forced Just that is interpreted as game reset
    • Bring back the way dungeon generation perturbed random rolls
    • ๐Ÿ‘€ Make 64bit native and 32bit browser games play the same with the same RNG seed
    • ๐Ÿ‘€ Keep a separate random seed for UI
    • ๐Ÿ‘‰ Use bitmaskWithRejection form randomR
    • โž• Add some BENCHOPTS
    • ๐Ÿ‘‰ Use splitmix
    • ๐Ÿšš Suggest switching to another teammate if movement skill drained
    • 0๏ธโƒฃ Turned off showing of default --maxFps value
    • โž• Additional logPriority value and defaultMaxFps
    • ๐Ÿ’ป Couple command line options are now clamped or checked before they're set
    • Only run with selected actors that are not yet at goal
    • ๐Ÿšš Hint about menus in movement stst too low message
    • ๐Ÿšš Hint to wake up if movement skill drained by sleep
    • Display also own asleep actors green on HUD
    • ๐Ÿ‘‰ Make the heading of item menu when inspecting an organ less confusing
    • Tell that second 'f' projects
    • โž• Add a comment about the 'exploit' verb
    • Do not mention 'trunk' in weapon strike messages
    • Do not mention 'trunk' in armor blocking messages
    • Suggest in history menu to press RET
    • Get rid of Server.EndM
    • ๐Ÿ‘‰ Make sure closing window in rage at defeat/win saves game
    • Mention in the manual that HP starts at half max
    • Reformat game peculiarities list in the manual
    • Don't announce pushing that has no effect
    • Try to make the under AI control prefix less confusing
    • Let animations be toggled in main menu
    • Don't display buttons on a separate line unless message is very long
    • โž• Add a newline after scenario description
    • Avoid blank lines in history
    • Overhaul the order and blurbs of game modes
    • ๐Ÿ‘‰ Make raid scenario squad-based
    • Display scenario descriptions in their submenu
    • Don't show backstory in submenus of the main menu
    • Rework new game start menus
    • โž• Add a visual separator between new games in history
    • Reverse the order history messages are displayed in
    • Copy the list of distinguishing features from Allure homepage
    • Restructure chronologically the game manual with verbs as section titles
    • Avoid empty paragraphs
    • Ignore linebreaks when showing the condensed history line
    • Underline that mouse is optional
    • ๐Ÿ‘‰ Make 'crosshair' on the status line uniform with other headers
    • Bring back the help prompt that doesn't confusingly mention advancing
    • Mark overful HP and Calm specially on HUD
    • โž• Add some blank lines when stacking command lists
    • Stress that mouse is optional
    • ๐Ÿšš Move mouse help screens earlier
    • Don't indent help parts by proportional space width
    • Clarify the structure of help information
    • Don't show 'crosshair' when not aiming
    • Get rid of 'x-hair'
    • ๐Ÿ‘‰ Make collective running less prominent in help; tweak help
    • Mark some text files as out of date
    • โž• Add a paragraph break before nearby item summary
    • Accept longer menu messages
    • โž• Add a paragraph break before cave description
    • Warn that over-max HP gain is transient
    • Mark deaths with paragraphs and display 'Alas' already at incapacitation
    • โž• Add a line break after gameover identification of items
    • โž• Add a couple of line-breaks to reports
    • ๐Ÿ“‡ Rename emptyAttrString, which was misleading
    • Introduce a newtype of attribute lines with no linebreaks
    • Prevent backstory overflow in main menu with proportional font
    • ๐Ÿšš Move O command just after I command in help
    • When toggling autoplay, as with y/n, not SPACE/ESC
    • ๐Ÿšš Let left and right arrow keys move between sides of help screen
    • Fine-tune helps screens for display side-by-side
    • Naively cram help screens side by side
    • ๐Ÿ”€ Merge the two item command help pages
    • ๐Ÿ‘‰ Use proportional font for help, dashboard and item menu
    • ๐Ÿšš Use square font for movement scheme help paragraph
    • ๐Ÿ‘‰ Make it possible to use many fonts in help
    • ๐Ÿšš Get rid of MoveKeys.txt
    • Set up main menu for both proportional and square fonts
    • โœ‚ Remove backstory from help screens
    • โž• Add backstory to main menu, set up for square font, for now
    • With square font, add extra space before item symbol
    • Represent button width as a datatype
    • Parameterize all typesetting by the font setup (multi or single)
    • ๐Ÿ‘ Pass along information about supported fonts
    • Let sdl frontend really handle the setup with no prop nor mono font
    • Gut out ascii art
    • โž• Add blank space around some lines of overlays
    • Take all items with *, not !
    • โšก๏ธ Update the item removal verb
    • Switch a single place lore display to mono font
    • Render skill menu and item lore menu with proper fonts
    • Display item symbol in item menu in square font
    • Display label and symbol in items overlay using square fonts
    • Display at most 3 lines of buttons when too little space for menu
    • ๐Ÿ‘‰ Make a mouse misclick error easier to understand
    • Don't wrap Mono keys after a prompt
    • Overlay in square font when basic frame is under animations
    • ๐Ÿ’ป Introduce a separate UI coordinate system
    • ๐Ÿ‘‰ Make boxSize even
    • Don't highlight wrong overlays when buttons highlighted
    • ๐Ÿ’ป Avoid proportional font in button-like UI areas
    • Permit overlays with gaps
    • Name font kinds consistently
    • Display some overlays in monospace font
    • Display history labels in mono font
    • Specify fonts also in slideshows
    • ๐Ÿšš Move the definitions of DisplayFont and FontOverlayMap
    • Propagate the choice of fonts for overlays
    • Generalize drawOverlay to specify desired font for each overlay
    • Generalize overlays to let them start at arbitrary X offsets
    • Eliminate overlayFrameWithLines
    • ๐Ÿ‘ Document better the overlay types
    • ๐Ÿšš Move ColorMode to another module
    • Specify when to use which kind of main font
    • โž• Add monospace rectangular font to game configuration
    • โœ‚ Remove the old woff font
    • โž• Add new fonts, proportional and monospace
    • Specify size of the message font separately
    • Don't cursor highlight break up proportional font message chunks
    • Don't let space break up prorpotional font message chunks
    • Render the extra overlays in proportional font
    • ๐Ÿ‘ If message font supported, pass overlay over instead of rendering
    • ๐ŸŽ‰ Initialize also the message font in SDL frontend
    • โž• Add message overlay font to game configuration
    • Comment about why animals rarely eat food
    • ๐Ÿ“‡ Rename tactics to doctrine
    • Get rid of the henchman notion
    • ๐Ÿ“‡ Rename leader to pointman
    • ๐Ÿ– Handle UpdTimeItem when container not visible (CStash), but item visible
    • ๐Ÿ‘Œ Improve command descriptions
    • ๐Ÿšš Redefine key bindings not to collide with new movement keys
    • ๐Ÿšš Detect collisions of keybindings with movement keys
    • ๐Ÿšš Use the keys freed by removing the right hand movement setup
    • ๐Ÿšš Replace right hand with left hand movement keys
    • ๐Ÿ’ป Main inventory the main store in game help and UI
    • ๐Ÿšš Move total value display to all posessions menu
    • ๐Ÿšš Identify items at any item move, in case they are thrown at stash
    • Avoid spam about actors getting braced
    • Mention in failure messages that hoard accessed when stading over it
    • Mention in failure messages that too low Calm for Eqp
    • Attempt to display handling of multiple items more succintly
    • ๐Ÿšš Bring back UpdMoveItem to have better messages
    • ๐Ÿšš Properly describe item move actions
    • Lose access to stash when enemy steps on it
    • ๐Ÿšš Say who's stash is an item moved to, unless it's ours
    • Announce that enemy stash found
    • ๐Ÿ‘‰ Make sure to let clients know even the human trinket items at gameover
    • ๐Ÿ‘€ Let new stash correctly overwrite old, even if old not seen
    • Introduce PosSightLevels and use for CStash containers
    • ๐Ÿ‘€ Get rid of seenAtomicGeneralCli
    • Simplify handleAndBroadcast
    • ๐Ÿ‘‰ Make updTimeItem more loose when enemy CStash is considered
    • Don't carry item definitions in commands that don't create items
    • Register on the client the items necessary for commands
    • Analyze what items client needs to know to process a command
    • Clean up creation vs spotting of actors and items
    • โž• Add UpdRegisterItems to be used instead of many ad-hoc calls currently
    • Be permissive when performing atomic action wrt CStash
    • Simplify SfxStrike, etc., and don't require access to store's bag
    • Simplify PosFidAndSight
    • โœ‚ Remove UpdMoveItem atomic command that is not too common without CInv any more
    • Simplify handling of CStash action visiblity
    • Display also enemy stashes in position description
    • Let actors learn stash positions when they come into view
    • Mark on the map enemy stashes as well
    • ๐Ÿ”จ Refactor UpdStashFaction to let enemies see it sometimes
    • โž• Add shared stash position to team's perception
    • Say in position description that stash is there
    • Mark own shared stash position with white box
    • โœ‚ Remove gstash handling in atomic commands
    • ๐Ÿšš Move CStash in server code, not atomic commands
    • Avoid catch-all in cmdAtomicSemSer
    • Introduce UpdStashFaction
    • Do not produce a now unused ItemFull for inventory
    • When moving items, don't cycle to Ground, when over stash
    • ๐Ÿ’ป In UI don't try to use CGround when over CStash
    • Don't let AI consider floor items at it shared stash location
    • When scanning a map, don't consider own stash an ordinary pile of items
    • โšก๏ธ Update atomic position information for shared stash
    • ๐Ÿ‘‰ Make eqp, not stash, unavailable when low Calm
    • 0๏ธโƒฃ Make CStash the new implicit default when picking up items
    • Gut out CInv and CSha and replace it with CStash represented on the map
    • โœ‚ Remove the unused effect ActivateInv
    • โฌ†๏ธ Bump version, anticipating major inventory logic overhaul
    • Reword the MOwned item dialog mode blurbs
    • Simplify the header of the lore menus
    • ๐Ÿ”„ Change meny keys / and ? to > and <
    • โšก๏ธ Update scenario names in the manual
    • Mention the ! key whenever KP_* is mentioned
    • Simplify and fix placement of --more- prompts
    • ๐Ÿ”„ Change the AttrString word gluing operation and fix drawFrameStatus
    • Slightly fix speed calculation to agree with what's on the wiki
    • ๐Ÿ›  Fix wrong alignment of level percent seen
    • ๐Ÿ›  Fix autoexplore with changing crosshair
    • ๐Ÿ›  Fix goto not interrupted change of crosshair
    • ๐Ÿ›  Fix the valuation of OnUser effect
    • ๐Ÿ›  Fix the lack of the last backdrop line in the game greeting blurb
    • ๐Ÿ›  Fix memory leak in placesFromState
    • ๐Ÿ›  Fix double braced due the hack for skill-less yelling
    • ๐Ÿ›  Fix order of using weapons inconsistent with HUD
    • ๐Ÿ›  Fix actor that can't wait not ignored as a pointman even when inactive
    • ๐Ÿ›  Fix stash guard preferred as pointman
    • ๐Ÿ›  Fix AI leader choice to really prefer old leader and to avoid light more
    • ๐Ÿ›  Fix raid scenario starting with two faction close to escape
    • ๐Ÿ›  Fix random number out of range on 32bit JS
    • ๐Ÿ›  Fix teleport effect from stash item not identifying it
    • ๐Ÿ›  Fix warnings in gtk frontend
    • ๐Ÿ›  Fix the extra blank menu line starting too late
    • ๐Ÿ›  Fix section links in the game manual
    • ๐Ÿ›  Fix and simplify rules for disabling tile transformation
    • ๐Ÿ›  Fix missed blank prefixes of empty lines inside text
    • ๐Ÿ›  Fix and simplify projectiles activating and transforming terrain, again
    • ๐Ÿ›  Fix projectiles not able to lit up oil
    • ๐Ÿ›  Fix padded empty string overwriting UI elements
    • ๐Ÿ›  Fix the position of second column with square font
    • ๐Ÿ›  Fix trailing spaces in dashboard
    • ๐Ÿ›  Fix a trailing space in a message
    • ๐Ÿ›  Fix disable extra empty shadow line at the bottom of menus
    • ๐Ÿ›  Fix determining if item identified in permittedPrecious
    • ๐Ÿ›  Fix an actor pulling himself
    • ๐Ÿ›  Fix desynchronized copy-pasted actorVulnerable code
    • ๐Ÿ›  Fix history message display header
    • ๐Ÿ›  Fix Calm measurement code to match code documentation
    • ๐Ÿ›  Fix sleeping stash guard not considered a guard
    • ๐Ÿ›  Fix reaching escape from below when all levels explored
    • ๐Ÿ›  Fix hero AI sometimes not exploring levels fully
    • ๐Ÿ›  Fix weapon order of Smithhammer
    • ๐Ÿ›  Fix messages about melee-only armor deflecting missiles
    • ๐Ÿ›  Fix wrong condition, wrongly reducing fleeing behaviour
    • ๐Ÿ›  Fix comments about slack doctrine targets
    • ๐Ÿ›  Fix assertion failure when targetting a tile under oneself
    • ๐Ÿ›  Fix code documentation about inventory stores
    • ๐Ÿ›  Fix the unequipping failure message condition
    • ๐Ÿ›  Fix wrong cave reversal when generating dungeon
    • ๐Ÿ›  Fix non-pointman heroes meleeing healing geysers
    • ๐Ÿ›  Fix poisons never activating and never running out
    • ๐Ÿ›  Fix registering if altering failed due to bumping
    • ๐Ÿ›  Fix a bushy patch that can block starting actors
    • ๐Ÿ›  Fix diverging definitions of foes worth killing
    • ๐Ÿ›  Fix barrels not destroyed by bumping
    • ๐Ÿ›  Fix inability to open doors due to no embeds
    • ๐Ÿ›  Fix projectiles not to bump off, but to transform terrain
    • ๐Ÿ›  Fix the display of level in stash menu header
    • ๐Ÿ›  Fix alliance placing to put heroes over stairs
    • ๐Ÿ›  Fix a wrong message when displacing a waking foe
    • ๐Ÿ›  Fix AI not eating and not removing other bad conditions
    • ๐Ÿ›  Fix nested macros
    • ๐Ÿ›  Fix wrong game mode started due to only the first word inspected
    • ๐Ÿ›  Fix the result of AndEffect
    • ๐Ÿ›  Fix the warning when flinging benign items
    • ๐Ÿ›  Fix a loop when actor pushed to another level via stairs
    • ๐Ÿ›  Fix melee disrupting pushed flight
    • ๐Ÿ›  Fix unidentified weapons marked in HUD as without timeout
    • ๐Ÿ›  Fix modelling wear and tear with DestroyItem
    • ๐Ÿ›  Fix mixed up resistance conditions
    • ๐Ÿ›  Fix item dropping crashes when OnSmash effects remove them while dropped
    • ๐Ÿ›  Fix an AI loop when applying a recharging item
    • ๐Ÿ›  Fix some no-fence places not appearing in statistics
    • ๐Ÿ›  Fix display of empty lists of tools for terrain transformations
    • ๐Ÿ›  Fix referring in the server code to definitions from the client internals
    • ๐Ÿ›  Fix embedded items activated twice
    • ๐Ÿ›  Fix an attempt to consume more items than there exist
    • ๐Ÿ›  Fix broken running macro
    • ๐Ÿ›  Fix activating embeds
    • ๐Ÿ›  Fix repeating predefined macros
    • ๐Ÿ›  Fix unsafe recording
    • ๐Ÿ›  Fix in-game macro system
    • ๐Ÿ›  Fix discharging an item that is not recharged
    • ๐Ÿ›  Fix consumeItems missing in an export list
    • ๐Ÿ›  Fix missing spaces in describeToolsAlternative
    • ๐Ÿ›  Fix display of tool alternatives
    • ๐Ÿ›  Fix random results of sortEmbeds
    • ๐Ÿ›  Fix checks if actors in combat
    • ๐Ÿ›  Fix the semantics of Discharge effect
    • ๐Ÿ›  Fix a crash when updating invisible item timer
    • ๐Ÿ›  Fix altering skill check in the client
    • ๐Ÿ›  Fix omission of OpenWith when OpenTo is considered
    • ๐Ÿ›  Fix unidentified embedded items impossible to trigger
    • ๐Ÿ›  Fix usage of outdated state component when altering tiles
    • ๐Ÿ›  Fix an attempt to apply a used up embedded item
    • ๐Ÿ›  Fix the direction of < and > scrolling in ending screens
    • ๐Ÿ›  Fix rubble tile definition wrt order of activated features
    • ๐Ÿ›  Fix old actor body used after altering caused by collision with terrain
    • ๐Ÿ›  Fix wrong condition for alien captured at victory message
    • ๐Ÿ›  Fix moving only all or none items between containers
    • ๐Ÿ›  Fix crash when actor not visible after triggering an item
    • ๐Ÿ›  Fix crash when dopping previous may destroy next items
    • ๐Ÿ›  Fix projectile altering a tile too many times at once
    • ๐Ÿ›  Fix DropItem reporting no activation due to item vanishing earlier
    • ๐Ÿ›  Fix off-by-one when picking projectiles with enough range
    • ๐Ÿ›  Fix trying to destroy an empty item bag when modifying terrain with it
    • ๐Ÿ›  Fix assumption that if last actor is alien, game is won
    • ๐Ÿ›  Fix no identification message sometimes in the first turn
    • ๐Ÿ›  Fix compilation without EXPOSE_INTERNAL
    • ๐Ÿ›  Fix the trap of drain Calm item in equipment that can't be removed
    • ๐Ÿ›  Fix tiles never altered via walking on them
    • ๐Ÿ›  Fix articles incorrectly recognized in words that end similarly
    • ๐Ÿ›  Fix wrong calculation of number of non-durable weapons
    • ๐Ÿ›  Fix incorrect conjugation
    • ๐Ÿ›  Fix a corruption of backstory text
    • ๐Ÿ›  Fix first character of buttons sometimes overwritten by space
    • ๐Ÿ›  Fix wrongly displaying a special ending for small scenarios
    • ๐Ÿ›  Fix other frontends wrt engine and sdl2 frontend changes
    • ๐Ÿ›  Fix proportional overlay overwriting first character of mono one
    • ๐Ÿ›  Fix help setup for large screens
    • ๐Ÿ›  Fix broken item menu with square font
    • ๐Ÿ›  Fix wrong button initial position with square font
    • ๐Ÿ›  Fix distant overlays wrongly getting a highlighted line
    • ๐Ÿ›  Fix SDL frontend truncating proportional font lines
    • ๐Ÿ›  Fix and tweak measuring texts in various fonts
    • ๐Ÿ›  Fix empty menus in single font mode
    • ๐Ÿ›  Fix spurious ending prompt in single-font setup
    • ๐Ÿ›  Fix padding of line chunks overwriting subsequent chunks
    • ๐Ÿ›  Fix display of history
    • ๐Ÿ›  Fix buttons holding other locations of an item
    • ๐Ÿ›  Fix not shown highlight of prop font lines
    • ๐Ÿ›  Fix spurious empty line between header and menu
    • ๐Ÿ›  Fix use of fromAscList where fromDistinctAscList would do
    • ๐Ÿ›  Fix spacing in history display
    • ๐Ÿ›  Fix off-by-one crash in history
    • ๐Ÿ›  Fix mouse clicks on buttons in small font areas
    • ๐Ÿ›  Fix updateLine for the case of multiple overlays
    • ๐Ÿ›  Fix overrun in mouse help table
    • ๐Ÿ›  Fix history highlight restricted to 80 columns
    • ๐Ÿ›  Fix menu highlight splitting proportional text chunks
    • ๐Ÿ›  Fix proportional texts never wiped out
    • ๐Ÿ›  Fix horizontal starting points of message chunks
    • ๐Ÿ›  Fix a syntax error stemming from wrong CPP
    • ๐Ÿ›  Fix illegal containers creeping into item choice
    • ๐Ÿ›  Fix cmdAtomicSemSer for UpdMoveItem
    • ๐Ÿ›  Fix AI not sidestepping explosive tiles, even if it could
    • ๐Ÿ›  Fix AI not sidestepping nearby actors
    • ๐Ÿ›  Fix cmdAtomicSemSer in the presense of CStash that acts like CFloor
    • ๐Ÿ›  Fix broken atomic commands assigned wrong LevelId
    • ๐Ÿ›  Fix visible enemy stash position not updated, because foes not seen
    • ๐Ÿ›  Fix countless typos
    • Start using cabal-plan
    • ๐Ÿ›  Fix and improve Makefile, cabal file and CI scripts
    • ๐Ÿ‘Œ Improve and update game manual and help texts wrt game changes
    • ๐Ÿ— Tweak travis scripts and building docs in README
  • v0.9.5.0 Changes

    May 02, 2019

    ๐Ÿ Please see README.md for installation and configuration information and PLAYING.md for gameplay tips. The windows binaries no longer work on Windows XP. Additional binaries, in particular for Android and iOS are very welcome.

    ๐Ÿ”„ Changes

    • ๐Ÿ›  Fix NumLock disabled in the browser
    • In screen reader frontend, highlight active menu line with the cursor
    • ๐Ÿ‘ฏ Clone the main main menu commands as map mode commands
    • โž• Add C-RMB and C-S-LMB as alternatives of MMB
    • Announce prominently MMB binding for describing map positions
    • 0๏ธโƒฃ Clean up the default config file, keeping compatibility
    • ๐Ÿ‘‰ Make scenario names longer and slighlty more informative
    • ๐Ÿšš Make Vi movement keys the default in addition to keypad and mouse
    • ๐Ÿ›  Fix a bug where death prompt when autoplaying was capturing a keypress
    • Let ESC from main menu return to insert coin mode, if applicable
    • ๐Ÿ’ป Make various small UI tweaks, especially to main menu and its submenu
    • Let main menu lines have 35, not 30, characters
    • ๐Ÿ‘‰ Make the main menu ASCII art less intrusive (and easier for screen readers)
    • Don't invalidate the score file due to game minor (only) version bump
  • v0.9.4.0 Changes

    April 21, 2019

    ๐Ÿ Please see README.md for installation and configuration information and PLAYING.md for gameplay tips. The windows binaries no longer work on Windows XP. Additional binaries, in particular for Android and iOS are very welcome.

    ๐Ÿ”„ Changes

    • In vty frontend highlight actors more
    • Clean up actor highlighting
    • โž• Add yell/yawn to minimal command set, remove swerving the aiming line
    • ๐Ÿ Invoke yell/yawn exclusively with '%', due tor Windows and terminal woes
    • ๐Ÿšš Move C-c command to C, not to mask C-c on console frontends
    • ๐Ÿ‘‰ Tweak and fix vty console frontends, for screen-readers
    • React specially at gameover under certain special circumstances
    • Simpliy assignSlot now that slots are auto-sorted
    • Get rid of explicit item sorting; let lore and menu slots agree
    • ๐Ÿ‘‰ Make DetectExit non-modal
    • Mark in a game end confirmation message that more treasure can be found
    • โž• Add a description to the escape embedded item
    • Reword gameover text for raid scenario
    • Be more verbose when confirming escape from the game
    • Don't claim to summon, when not possible on this level
    • ๐Ÿ›  Fix missing 'no longer poisoned' when applying antidote
    • Don't ask confirmation for neutral (e.g., not IDed) items
    • ๐Ÿ›  Fix 'you fall down; you stand on a sword'
    • ๐ŸŒ Prevent selecting regions via mouse down in web frontend
    • Deselect item if player declines to apply or fling
    • โš  Hand-hold the player, warning if flung item is beneficial
    • โš  Hand-hold the player, warning if applied item is harmful
    • ๐Ÿ’ป Rewrite the condition in UI applyItem check
    • ๐Ÿ‘Œ Improve the lobable item skill failure message
    • Let mouse buttons describe tiles, etc.
    • Unblock S-MouseButton in SDL2 frontend
    • Always describe things under mouse button
    • ๐Ÿ‘‰ Make the message when hitting dead foe more varied
  • v0.9.3.1

    April 12, 2019
  • v0.9.3.0 Changes

    April 12, 2019

    ๐Ÿ Please see README.md for installation and configuration information and PLAYING.md for gameplay tips. The windows binaries no longer work on Windows XP, since Cygwin and MSYS2 dropped support for XP. Additional binaries, in particular for Android and iOS are very welcome.

    ๐Ÿ”„ Changes

    • ๐Ÿ”ง Introduce message classes with configurable behaviour
    • Create a new 16x16 font and use it everywhere; tweak smaller fonts
    • ๐Ÿ”’ Lock some levels or otherwise make ascending tricky
    • โž• Add cooldown to most melee weapons, display that in HUD, adjust AI
    • โž• Add per-scenario and per-outcome end-game messages in content
    • โž• Add duplicate and reroll item effects in preparation for crafting
    • โž• Add actor and item analytics as a preparation for XP gain quests
    • Implement piercing projectiles that may share a tile with a big actor
    • Increase the spawn speed now that monsters sleep a lot
    • Introduce actors falling asleep and yelling
    • ๐Ÿ‘ Allow any level size and position
    • Mention places when looking at tiles and add place lore menu
    • Expand all kinds of content and rebalance
    • Create and rework all item, cave and plot prose (Dan Keefe @Peritract)
    • ๐Ÿ‘‰ Make explosives in cramped spaces twice weaker
    • ๐Ÿ‘‰ Tweak player fling command
    • ๐Ÿ‘‰ Tweak equipping when equipment overfull
    • Start cycling stores at equipment since that's the one mentioned in help
    • ๐Ÿ‘ท Overhaul CI scripts
    • Restructure and clean up codebase
    • ๐Ÿ“ˆ Extend balance debugging tools, using item and actor analytics, places, etc.
    • โฌ‡๏ธ Drop the gameplay option that first death means defeat
    • Avoid idle-GC between slow keystrokes
    • Put content data into a compact region to limit GC
    • โœ‚ Remove the border around web frontend game screen; seems unneeded now
    • Don't draw aiming line nor path in vty frontend
    • Highlight xhair by cursor in vty frontend
    • Highlight player by cursor in vty frontend
    • 0๏ธโƒฃ Switch the default FPS to 24 for tradition's sake
    • Highlight current high score
    • โœ‚ Remove most stopPlayBack, now spurious, because message classes used
    • Overhaul cabal file: define common options, split into internal libraries
    • ๐Ÿ›  Fix confusion of nub and uniq
    • ๐Ÿ“‡ Rename short wait to lurk and many lurks to heed
    • ๐Ÿ‘‰ Show a red message when HP or Calm dip too low or when foe appears
    • Lose Calm and so alert AI even at weakest non-zero HP draining attacks
    • Enable screenshots while in menus
    • ๐Ÿ“‡ Rename config options related to fonts
    • Recolour aiming line not to clash with the red crosshair
    • Exchange the functions of yellow and red highlight
    • ๐Ÿ‘‰ Tweak all colours, in particular to differentiate blues/cyans
    • Cap bright colours at 85 CIELAB Lightness at D65
    • Normalize dark colours to be between 42 and 57 CIELAB Lightness at D65
    • Get rid of colorIsBold option; KISS
    • Tint white in alternating lines with different hue for long text readability
    • Don't split lines at articles
    • ๐Ÿ‘€ Set xhair to currently meleed foe to see his HP
    • Display speed on HUD; tweak status lines in other ways
    • Don't show description of leader target in HUD; TMI
    • Help AI flee in a consistent direction over many turns
    • ๐Ÿ”ฆ Expose the save backup command, for browser games
    • Don't display target info when item selected
    • Let AI actors spawn even quite far from the player
    • Auto-select all new team members, to help new players
    • Replace O by zero on the map display; make zero distinct from O in all fonts
    • Flesh out the initial ? prompt
    • โž• Add 'I' alias for pack-related commands, unless laptop key-scheme used
    • ๐Ÿšš Turn off movementLaptopKeys by default not to confuse new players
    • ๐Ÿ‘‰ Make sure AI attacks bosses even if distant and fleeing or non-moving
    • Lower bonus HP at extreme difficulty
    • โž• Add a separate frame for each projectiles start
    • Don't go modal at the frequent and weak hidden tile detection effect
    • ๐Ÿ‘‰ Make AI pick closest stairs more often
    • Let apply-unskilled actors activate embedded items
    • Don't boost damage by speed unless actor is projectile
    • If everything else fails, let AI flee by opening doors
    • Help AI actor prevent being dominated
    • ๐Ÿ‘‰ Make computing gameplay benefit to items more accurate
    • ๐Ÿ‘ฏ Rename, clone and fine-tune effect Temporary
    • Simplify code and content by getting rid of Recharging effect
    • Let applying periodic items only produce the first effect
    • ๐Ÿ‘‰ Tweak item detection to help in skipping boring level portions and in stealth
    • Invoke and display embedded items in the order specified in tile definitions
    • ๐Ÿš… Let lit trails illuminate colonnades
    • Prevent an exploit for avoiding self-invoked firecrackers
    • Don't let AI attempt summoning if not enough Calm
    • ๐Ÿ‘Œ Improve item label bracket codes in menus
    • Pick randomly destination stairs if teleporting level
    • Display the number of items in store
    • Summarize value of player loot in shared stash menu's header
    • Start history menu at the close-up of the last message
    • ๐Ÿ‘‰ Make fast-dying insects aggressive
    • Overhaul game score DSL and particular scoring definitions in content
    • โž• Add and extend messages, e.g., tell if victim blocks and with what armor
    • Extend and rework menu manipulation keys
    • โœ‚ Remove specialized quaff, read and throw commands; KISS
    • Split walls of text into more paragraphs and/or make them narrower
    • โšก๏ธ Extend and update help and manual
    • Don't let AI waste time looting distant lone projectiles
    • ๐Ÿ‘‰ Make Enum instances of Point and Vector contiguous, hackily
    • ๐Ÿ‘‰ Make dominated actor drop all his items, for ID and in case he defects ASAP
    • ๐Ÿ‘ Try to find a non-waiting action, if better AI leader can't be found
    • Prevent summoning OoD actors
    • Let animals eat food and add several foods
    • ๐Ÿ‘‰ Make Domination effect harder to activate
    • Let only actors and items with SkOdor property leave smell and add perfumes
    • Let spawning rate level out after a few dozen spawns
    • Describe smell, if present in an inspected tile
    • Let pushed actor fly after crashing a door open
    • ๐Ÿ’ป Show passing time and heard events even if no actors in the UI faction
    • ๐Ÿšš When movement impossible, describe the tile with SHIFT-direction
    • Catch and steal projectiles when braced instead of when weaponless
    • ๐Ÿšš Let actors that are pushed perform any action in addition to movement
    • ๐Ÿ‘Œ Improve deduplication of messages
    • When describing actor on map, tell if it has loot
    • Represent being braced as having an organ; also add other pseudo-organs
    • Overhaul hearing to facilitate triangulation based on sound cues
    • Prefer to spawn aquatic actors on aquatic tiles
    • โž• Add swimming and flying skills and shallow water tile features
    • Boost/drain skills via many new items
    • Rework and extend skills and their effects as a preparation for XP rewards
    • Enable specifying each side of outer cave fence separately
    • ๐Ÿ‘‰ Make definition of caves of a scenario more precise
    • Specify more properties of levels in content
    • Extend content validation
    • ๐Ÿ‘Œ Improve placement and fitting stairs and rooms on levels
    • Don't hardwire level size
    • Simplify game rules content
    • ๐Ÿ”„ Change the format of game client content
    • ๐Ÿ›  Fix an arbitrary delay in killing dying actors
    • ๐Ÿ›  Fix arbitrary branch of a corridor chosen when running
    • ๐Ÿ›  Fix bush patches blocking off a level's corner
    • ๐Ÿ›  Fix config file ignored at game reinit
    • ๐Ÿ›  Fix running disturbed by flavours of walls
    • ๐Ÿ›  Fix splitting lines one character too early
    • ๐Ÿ›  Fix Calm drain from nearby foes occurring only every other turn
    • ๐Ÿ›  Fix some AI looping movement, in particular when fleeing
    • ๐Ÿ›  Fix running into own periodic explosions, e.g., from necklaces
    • ๐Ÿ›  Fix 'she painfullies collide'
    • ๐Ÿ›  Fix AI with vector targets unwilling to change them
    • ๐Ÿ›  Fix crash when attempting to fling at a target on remote level
    • ๐Ÿ›  Fix wrong timestamps in history
    • ๐Ÿ›  Fix, again, various kinds of frames intruding between fadeout and fadein
    • ๐Ÿ›  Fix wrong pluralization of some item names, compound and exceptions
    • ๐Ÿ›  Fix disabled items benefit recalculation after item kind learned
    • ๐Ÿ›  Fix in many ways too close initial faction and item positions
    • ๐Ÿ›  Fix performance in many ways and places, particularly for JS translation
    • ๐Ÿ›  Fix missing perception updates, causing missed AI actions concerning us
    • ๐Ÿ›  Fix uninitialized sarenas, which was probably causing resume to change state
    • ๐Ÿ›  Fix weak AI actors fleeing even if enemy can't melee
    • ๐Ÿ›  Fix and optimize sifting free tiles for spawn/summon location
    • ๐Ÿ›  Fix various cases of excessive summoning
    • ๐Ÿ›  Fix recording of item first seen level
    • ๐Ÿ›  Fix many problems with item descriptions and other messages
    • ๐Ÿ›  Fix reporting of reduction and elimination of actor conditions
    • ๐Ÿ›  Fix reading and interpreting old format config files
    • ๐Ÿ›  Fix synced initial item timeouts and actor times, leading to artificial feel
    • ๐Ÿ›  Fix actors erratically following their leader
    • ๐Ÿ›  Fix lifts continuing as stars and the other way around
    • ๐Ÿ›  Fix various 32bit overflows
    • ๐Ÿ›  Fix other errors, probably not present or not visible in previous version
  • v0.8.3.0 Changes

    June 30, 2018

    ๐Ÿš€ This release fixes an SDL crash on OS X and comes with OS X binaries included (you need SDL2 installed, e.g., from libsdlorg). See README.md for installation and configuration information and PLAYING.md for gameplay tips.

    ๐Ÿ”„ Changes

    • โž• Add a hack to run SDL2 on the main thread, fixing the OS X crash
    • Warn visually when impressed and Calm running low, risking domination
    • Display actor as red when low Calm and impressed or when low HP
    • ๐Ÿ›  Fix, complete and fine tune UI, AI and server skill and weapon checks
    • ๐Ÿ›  Fix a bug where item aspects look different to clients than to the server
    • ๐Ÿ”„ Change the requirements for the main menu ASCII art