LambdaHack v0.10.2.0 Release Notes

    • 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 @[email protected] 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