Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't block death nukes with mobile shields. #6296

Merged
merged 4 commits into from
Jun 24, 2024

Conversation

lL1l1
Copy link
Contributor

@lL1l1 lL1l1 commented Jun 24, 2024

Issue

Mobile shields blocking ACU explosions gives an obvious snowballing advantage to Aeon and UEF T2, and to an extent Seraphim T3. This advantage should no go into live because it would easily unbalance the game and currently there are no changes made to counteract this newfound advantage.
While it creates inconsistency, it's worth it; the original issue was that ACUs in bases would kill all engis, or that teleporting ACUs would kill all engis, and that is still being solved after these changes. Nobody asked for OP mobile shields, it just came as a consequence of an easy, consistent implementation.

Description of the proposed changes

Implements a StaticShield absorption type with automatic mod support based on categories.
The default absorption type no longer blocks DeathNuke damage, instead the StaticShield absorption type does. This means modded mobile shields also do not block death nukes. It also opens up a trivial opportunity to add DeathNuke absorption to the UEF ACU shield, UEF SACU shield, and Fatboy shield.

Testing done on the proposed changes

Spawn all static/mobile shields and an engi target underneath them then blow up ACUs to confirm they don't kill the engis.

Spawn units command:
   CreateUnitAtMouse('url0208', 0,  -54.66,   82.50,  0.00000)
   CreateUnitAtMouse('uab4301', 0,    7.91,  -38.79, -0.00110)
   CreateUnitAtMouse('url0208', 0,   30.34,    7.50,  0.00000)
   CreateUnitAtMouse('uel0307', 0,   51.34,  -31.50,  0.00024)
   CreateUnitAtMouse('uel0401ef', 0,   50.84,  -60.87, -0.00008)
   CreateUnitAtMouse('uel0401ef', 0,   50.41,  -61.29, -0.00008)
   CreateUnitAtMouse('url0208', 0,   41.34,   20.50,  0.00000)
   CreateUnitAtMouse('uel0208', 0,   53.34,  -48.50, -0.00002)
   CreateUnitAtMouse('uel0208', 0,  -59.66,   13.50,  0.09655)
   CreateUnitAtMouse('xac2101', 0, -107.09,    7.21,  0.00682)
   CreateUnitAtMouse('url0208', 0,   -2.66,  -39.50, -0.00000)
   CreateUnitAtMouse('ual0307', 0,   67.34,  -19.50,  0.00015)
   CreateUnitAtMouse('xsl0307', 0,   71.34,  -39.50,  0.00098)
   CreateUnitAtMouse('url0208', 0,   65.34,  -22.50,  0.00005)
   CreateUnitAtMouse('uel0401', 0,   50.84,  -56.00, -0.00008)
   CreateUnitAtMouse('url0208', 0,  -21.66,  -21.50,  0.00000)
   CreateUnitAtMouse('url0208', 0,   40.34,   20.50,  0.00000)
   CreateUnitAtMouse('urb4206', 0,  -51.09,  -39.79,  0.00000)
   CreateUnitAtMouse('xsb4301', 0,  -37.09,   41.21, -0.00030)
   CreateUnitAtMouse('url0208', 0,  -35.66,   75.50,  0.00000)
   CreateUnitAtMouse('uab4202', 0,  -62.09,   65.21, -0.15651)
   CreateUnitAtMouse('urb4204', 0,   28.91,    1.21, -0.01026)
   CreateUnitAtMouse('url0208', 0,   67.34,  -36.50,  0.00043)
   CreateUnitAtMouse('xab1401', 0, -106.85,   11.71, -0.00000)
   CreateUnitAtMouse('ueb4301', 0,  -24.09,   -5.79,  0.00000)
   CreateUnitAtMouse('ueb4202', 0,  -28.09,   78.21,  0.00000)
   CreateUnitAtMouse('url0208', 0,  -57.66,   66.50, -0.00086)
   CreateUnitAtMouse('url0208', 0,  -41.66,  -37.50,  0.00000)
   CreateUnitAtMouse('url0208', 0,   55.34,  -31.50,  0.00017)
   CreateUnitAtMouse('urb4207', 0,  -21.09,  -64.79, -0.01029)
   CreateUnitAtMouse('xsb4202', 0,   49.91,   22.21,  0.00000)
   CreateUnitAtMouse('urb4205', 0,  -56.09,   91.21,  0.00000)
   CreateUnitAtMouse('url0208', 0,  -20.66,  -51.50,  0.00021)
   CreateUnitAtMouse('url0208', 0,   26.34,   21.50,  0.00000)
   CreateUnitAtMouse('urb4202', 0,   21.91,   22.21,  0.00000)
   CreateUnitAtMouse('url0208', 0,  -42.66,   58.50, -0.00040)

Checklist

  • Changes are annotated, including comments where useful
  • Changes are documented in the changelog for the next game version

@lL1l1 lL1l1 added the area: balance related to units balance, but not as a suggestion label Jun 24, 2024
@lL1l1 lL1l1 requested a review from MrRowey June 24, 2024 11:28
@MrRowey
Copy link
Member

MrRowey commented Jun 24, 2024

So Static Builings that have shields absorbes the DeathNuke but for the like of the T2 Aeon/Uef & T3 Sera mobile they don't
?

@lL1l1
Copy link
Contributor Author

lL1l1 commented Jun 24, 2024

yes

@MrRowey MrRowey merged commit e493ae8 into FAForever:develop Jun 24, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: balance related to units balance, but not as a suggestion
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants