Skip to content

Allow docking/building of mercies on carriers and air staging.#7135

Open
Nuggets75 wants to merge 7 commits into
FAForever:developfrom
Nuggets75:mercy-carrier-docking
Open

Allow docking/building of mercies on carriers and air staging.#7135
Nuggets75 wants to merge 7 commits into
FAForever:developfrom
Nuggets75:mercy-carrier-docking

Conversation

@Nuggets75

@Nuggets75 Nuggets75 commented Jun 5, 2026

Copy link
Copy Markdown

Intended Change
Remove the CANNOTUSEAIRSTAGING category from the Mercy (DAA0206) so it can use air staging facilities and aircraft carriers, like most other air units.

Reasoning
Since the mercy rework, the mercy is now an anti t1/t2 army / structure / buildpower unit and no longer a snipe-unit so I see no reason to lock it out of carriers. I believe the main reason it was locked out was to limit their attack range with low amount of fuel before the rework. Now the mercy, while good, has an incredibly small window of opportunity that can be expanded with this change.

Expected behavior
The Mercy can now land on air staging and dock on / be built by aircraft carriers. No change to its health, damage, cost, build time, or any other stat.

Summary by CodeRabbit

  • Gameplay Changes

    • Air unit staging behavior adjusted; unit can no longer use air-staging right-click interactions and gains expanded command capabilities (transport/docking/guard/patrol).
    • Unit fuel recharge rate increased.
    • Primary weapon now continuously re-evaluates targets more frequently and had its tracking radius behavior simplified.
  • Documentation

    • Clarifying comment added to engine category documentation about air-staging behavior.

@coderabbitai

coderabbitai Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8e8d624b-13a7-4669-bb43-8c0635d7795f

📥 Commits

Reviewing files that changed from the base of the PR and between db9e092 and 7dfce09.

📒 Files selected for processing (2)
  • engine/Core/Categories.lua
  • units/DAA0206/DAA0206_unit.bp
✅ Files skipped from review due to trivial changes (1)
  • engine/Core/Categories.lua

📝 Walkthrough

Walkthrough

Removes the CANNOTUSEAIRSTAGING category from DAA0206, adds transport/dock/guard/patrol command caps, raises FuelRechargeRate to 5, and tightens the primary weapon's target re-evaluation (AlwaysRecheckTarget = true, TargetCheckInterval = 1). Adds a documentation comment in engine categories and adjusts file formatting.

Changes

DAA0206 unit updates

Layer / File(s) Summary
Categories removal and formatting
units/DAA0206/DAA0206_unit.bp, engine/Core/Categories.lua
Removes "CANNOTUSEAIRSTAGING" from the unit Categories, updates closing brace formatting, and adds a documentation comment in engine/Core/Categories.lua about the category's engine behavior.
Command capability additions
units/DAA0206/DAA0206_unit.bp
Adds RULEUCC_CallTransport, RULEUCC_Dock, RULEUCC_Guard, RULEUCC_Patrol to General.CommandCaps.
Physics fuel recharge
units/DAA0206/DAA0206_unit.bp
Sets Physics.FuelRechargeRate from 0 to 5.
Weapon target re-evaluation
units/DAA0206/DAA0206_unit.bp
Adds AlwaysRecheckTarget = true and changes TargetCheckInterval from 999999 to 1 on the first weapon.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Suggested reviewers

  • Hdt80bro
  • lL1l1
  • speed2CZ

Poem

I hop through code with carrot cheer,
A category lost, new flags appear,
Fuel grows steady, weapons glance more true,
Small edits hum — the battlefield anew. 🐰✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The description includes intended change, reasoning, and expected behavior, but lacks testing details and changelog documentation per template requirements. Add explicit testing methodology and confirm changelog snippet was created per guidelines at https://faforever.github.io/fa/development/changelog#format-of-a-snippet.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately captures the main change: removing CANNOTUSEAIRSTAGING from Mercy to enable carrier docking and air staging use.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@lL1l1 lL1l1 added the area: balance idea related to suggestions for unit balance label Jun 9, 2026
lL1l1 added 6 commits June 12, 2026 13:15
needed for carrier deploy command to work
Tracking radius 0.5 -> 1.25 (bomber default)
This doesn't work because of a bug in target priorities causing parentheses-using expressions to not be parsed properly, thus the unit does not have ALLUNITS in priorities so it will not target units that aren't T1-T3 structures. Set the priorities by hotkey to get them to work.
@lL1l1

lL1l1 commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

I tested it and found that nothing actually worked. I implemented the proposed changes of docking in air staging and building in carriers, but this necessarily comes with the side effect of mercy recharging fuel while on the ground. It's the standard 1s fuel per 2s landed time since that rate is multiplied by air staging when refueling, and the unit needs to refuel fully to leave air staging, so a low base refuel rate is unacceptable. I also needed to add the guard order for mercies to be able to leave carriers using the deploy command, which issues a guard (assist) command on the ground where you click the deploy order.

Since it can now refuel, I thought it made sense to add the patrol ability.

When I was testing patrol, I discovered that it wasn't working because of a long target check interval, low tracking radius, and missing AlwaysRecheckTarget = true, so I fixed all of that. This also fixes the attack behavior on guard and attack move commands, so it is quite necessary for those commands, not just patrol.

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

Labels

area: balance idea related to suggestions for unit balance

Projects

Status: To Discuss

Development

Successfully merging this pull request may close these issues.

2 participants