Unify paradrop/airlift as Can instantly move to - #15351
Conversation
Building unique Allows airlifting enables land units to teleport between owned cities with the unique, consuming all movement. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Not moddable - paradrop and airlift are both instances of the same base functionality, "teleport to selected space". |
|
Perhaps we need a second tile in GameContext - there's "tile" which is current tile but we should have "target tile" as well |
Unify paradrop and airport airlift under one UnitAction/Building unique with tileFilter, UnitActionModifiers for movement cost, and GameContext.targetTile. Deprecate May Paradrop; drop Allows airlifting. Co-authored-by: Cursor <cursoragent@cursor.com>
Redesign per reviewReplaced the separate
Airport JSON for mods: |
|
You know what we need? A unitactionmodifier to set the action name, so we can call this one "paradrop" and the other one "airlift" etc |
Allow <named [comment]> so the same Can instantly move to action shows as Paradrop, Airlift, etc., with separate prepare buttons per name. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Added
This modifier is available for other unit actions that want a custom button title as well. |
Route named through actionTextWithSideEffects (and Transform), and cover building Airlift plus FoundCity naming in tests. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Follow-up: Tests also cover building-sourced Airlift (Airport unique) separately from unit Paradrop, including that an Airlift prepare does not allow land paradrop tiles. |
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Summary
Can instantly move to [tileFilter] tiles up to [positiveAmount] tiles away(UnitAction,Building).<for all movement>for Airport airlift.named [comment]for button labels (<named [Paradrop]>/<named [Airlift]>); applies generally viaactionTextWithSideEffects.May Paradrop…deprecated (WARNING); Vanilla/G&K Paratrooper + Great Admiral updated.GameContext.targetTilefor destination-aware conditionals.Airport example:
Can instantly move to [{your} {City center}] tiles up to [99] tiles away <in [{your} {City center}] tiles> <for all movement> <named [Airlift]>Test plan
AirliftTestsgreenMay Paradrop…still works (WARNING)