Skip to content

Unify paradrop/airlift as Can instantly move to - #15351

Open
Fanfblrik wants to merge 4 commits into
yairm210:masterfrom
Fanfblrik:feature/airlift-unique
Open

Unify paradrop/airlift as Can instantly move to#15351
Fanfblrik wants to merge 4 commits into
yairm210:masterfrom
Fanfblrik:feature/airlift-unique

Conversation

@Fanfblrik

@Fanfblrik Fanfblrik commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Engine support for RekMOD Airport airlift (and unified paradrop), LekMOD-style.
  • Unify paradrop / airlift: Can instantly move to [tileFilter] tiles up to [positiveAmount] tiles away (UnitAction, Building).
  • Source limits via conditionals; destination via tileFilter + range.
  • Movement cost via UnitActionModifiers: default 1 MP (paradrop); <for all movement> for Airport airlift.
  • UnitActionModifier named [comment] for button labels (<named [Paradrop]> / <named [Airlift]>); applies generally via actionTextWithSideEffects.
  • May Paradrop… deprecated (WARNING); Vanilla/G&K Paratrooper + Great Admiral updated.
  • Building-sourced: land unit; destination city must also have a building with this unique; enterable city center; no adjacent enemy military.
  • GameContext.targetTile for 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

  • AirliftTests green
  • Paratrooper: prepare Paradrop → land tile in range; 1 MP used
  • Airport unique in two cities: unmoved Warrior → Airlift A→B, 0 MP
  • Airlift prepare does not highlight land paradrop tiles
  • Deprecated May Paradrop… still works (WARNING)

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>
@yairm210

Copy link
Copy Markdown
Owner

Not moddable - paradrop and airlift are both instances of the same base functionality, "teleport to selected space".
We should change paradrop to "can instantly move to" for all teleport abilities; Limit source and destination tiles using tilefilters; Restrict "no movement used" with conditionals; and take all movement with "for all movement"

@yairm210

Copy link
Copy Markdown
Owner

Perhaps we need a second tile in GameContext - there's "tile" which is current tile but we should have "target tile" as well
This will also work well with other planned "do X in place Y" abilities

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>
@Fanfblrik

Copy link
Copy Markdown
Contributor Author

Redesign per review

Replaced the separate Allows airlifting building unique with a shared instant-move unique:

Can instantly move to [tileFilter] tiles up to [positiveAmount] tiles away (UniqueTarget.UnitAction, UniqueTarget.Building)

  • Source limits use existing conditionals (e.g. <in [{Friendly} {Land}] tiles> / <in [{your} {City center}] tiles>).
  • Movement cost via UnitActionModifiers: default 1 MP (paradrop); <for all movement> for Civ5 Airport airlift.
  • May Paradrop… is deprecated (WARNING) with auto-replace to the new text; Vanilla/G&K Paratrooper + Great Admiral updated.
  • Allows airlifting removed (never shipped).
  • Building-sourced: land unit only; destination city must also have a building with Can instantly move to; enterable city center; no adjacent enemy military (Civ5 parity).
  • Added GameContext.targetTile for destination-aware conditionals (not folded into relevantTile, so source conditionals stay on the unit tile).
  • Still uses the Paradrop prepare action (no separate Airlift action).

Airport JSON for mods:
Can instantly move to [{your} {City center}] tiles up to [99] tiles away <in [{your} {City center}] tiles> <for all movement>

@yairm210

Copy link
Copy Markdown
Owner

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
That will pair well with other unit actions as well

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>
@Fanfblrik

Copy link
Copy Markdown
Contributor Author

Added UnitActionModifier: named [comment].

  • Same Can instantly move to… unique; button label comes from <named [Paradrop]> / <named [Airlift]> (etc.).
  • Different names → separate prepare buttons; only that name’s uniques are used for destinations while preparing.
  • Vanilla/G&K Paratrooper: <named [Paradrop]>; Great Admiral: <named [Change Port]>; Airport / airlift example: <named [Airlift]>.
  • Default label if omitted: Paradrop (UnitActionType value).

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>
@Fanfblrik

Copy link
Copy Markdown
Contributor Author

Follow-up: named [comment] now applies generally via UnitActionModifiers.actionTextWithSideEffects (Found city, religion actions, create improvement, trigger uniques, …) and Transform titles — not only instant-move.

Tests also cover building-sourced Airlift (Airport unique) separately from unit Paradrop, including that an Airlift prepare does not allow land paradrop tiles.

@Fanfblrik Fanfblrik changed the title Add Civ5 Airport airlift unique Unify paradrop/airlift as Can instantly move to Aug 10, 2026
@github-actions

Copy link
Copy Markdown

This pull request has conflicts, please resolve those before we can evaluate the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants