[pull] master from beyond-all-reason:master - #251
Merged
Merged
Conversation
Cuts the comments across the keybind editor files back to what cannot be read off the code, changing nothing else. There were 1574 lines of them, mostly one fact wrapped in two or three lines of justification, plus a 27 line block naming each field of a state table and the same note about Lua's 200 local ceiling written out in five places. Left alone: the section banners in the keyboard page, which a few other widgets also use, and the blocks in keyboard_layouts.lua that came from someone else. AI disclosure: written with assistance from Claude Code.
Matches unbind directives the way the engine parses them when migrating a player's uikeys.txt, instead of comparing the keyset text. A modifier bound on its own is the same keyset as its Any+ form, modifier order does not count, an action's command word is lower-cased, and a keychain is stored under its last tap. The reader did none of that, so a player who wrote "unbindkeyset alt" had it quietly do nothing and the binding came back in their migrated profile. It reads as a camera bug because Any+alt and Any+ctrl are what the shipped profiles bind moverotate, movereset and movetilt to. All four rules are measured against a headless recoil_2026.07.04 rather than read off the engine source, which I got wrong twice; the one easy to assume backwards is that "unbindkeyset sc_l" removes the chain sc_l,sc_l,sc_l while "unbindkeyset sc_l,sc_l,sc_l" removes nothing. AI disclosure: written with assistance from Claude Code.
Keeps a copy of any file the keybind store is about to write over, and stops a stored profile standing in for one that ships. The copies matter least: they were written once and never again, so a second migration or an unreadable profiles file destroyed what was there. The shipped-name case is the one that could cost real work, since materialize resolved the store ahead of the builtins and so a keybind_profiles.json naming a profile "Grid" shadowed the real Grid everywhere. That entry is now kept under a free name with the selection following it, rather than the player quietly landing on stock bindings. AI disclosure: written with assistance from Claude Code. --------- Co-authored-by: Floris <ruwetuin@hotmail.com>
### Work done This is a substantial rewrite of game_critters.lua while preserving most of its behaviors. Critters keep the same modoptions, population dynamics, and patrol routes. Improves paired critter (companion) behavior. Commanders can pair to a critter by approaching them, not only by spawning on top of them. You are still limited to one pet apiece. Companions gain extra health and speed, up to the commander's, to keep up with them. Various small improvements: - When critter populations return after being decreased due to unit limits, they are returned from the list of culled critters. A culled seahorse does not become a seagull. - Patrol orders are sent from only one code location. - Unknown critters in map configs no longer break from iter. Everything that can spawn, ought to. - The gadget removes itself in multiplayer when possible. --------- Co-authored-by: efrec <quantumscrewdriver@gmail.com>
### Work done Allows other envDamageTypes to damage commanders when in the protection window for preventcombomb.
### Work done Moves unit attribute definitions to a shared module. This allows them to be reused by both COB and LUS, which is fine but unneeded. I mostly need this for writing tests. Keeping the definitions contained in the gadget made tests rely on parsing, guesswork, or code duplication. It was very smelly in there. Wired an unused LUS, armmar_lus, for an example use case. It is inert in current code.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )