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

Make Aeon faction's TMD shoot flare to target height #6619

Open
wants to merge 15 commits into
base: develop
Choose a base branch
from

Conversation

lL1l1
Copy link
Contributor

@lL1l1 lL1l1 commented Jan 14, 2025

Description of the proposed changes

Closes #6459.

  • The flare has gravity and velocity set so that it is launched above the target (to pull the missile upwards), and when it is at the desired height its velocity is set to 0 (the calculation should result in 0 velocity at the target height, but it doesn't for some engine reason) and gravity reset so that it floats at the target height (this helps the missile intercept one of the flare's hitboxes).
volcano.flare.height.mp4
  • Fix and tweak the previously unused rotation animation script of the Volcano.
volcano.rotator.mp4

Testing done on the proposed changes

  • Shoot UEF TML with the volcano at the midpoint of the attack trajectory to test the maximum height. It usually catches the missile although as usual the hitboxes can be finnicky.
  • Shoot other TMLs and MMLs to test the new behavior in general
  • Shoot torrents at naval TMD because torrent missiles are likely to destroy themselves at the same time as the TMD fires

Helpful command:

ConExecute('UI_DebugAltClick') --alt + left click to switch armies
ConExecute('UI_SelectAnything') -- copy enemy units
ConExecute('SallyShears') -- remove fog of war
Spawn TMLs and volcano
CreateUnitAtMouse('urb2108', 1,   35.74,    0.63,  0.00000)
CreateUnitAtMouse('urb2108', 1,  -87.26,   -3.37,  0.00000)
CreateUnitAtMouse('uab2108', 1,  -87.26,   -1.37,  0.00000)
CreateUnitAtMouse('ueb2108', 1,  -87.26,    0.63,  0.00000)
CreateUnitAtMouse('uab2108', 1,  -23.26,   -0.37,  0.00000)
CreateUnitAtMouse('uab4201', 0, -137.26,   -3.37,  0.00000)
CreateUnitAtMouse('xsb2108', 1,  -87.26,   -5.37,  0.00000)
CreateUnitAtMouse('xsb2108', 1,   95.74,   -0.37,  0.00000)
CreateUnitAtMouse('uab2108', 1,   35.74,    2.63,  0.00000)
CreateUnitAtMouse('xsb2108', 1,   35.74,   -1.37,  0.00000)
CreateUnitAtMouse('ueb2108', 1,   35.74,    4.63,  0.00000)
CreateUnitAtMouse('uab2108', 1,   95.74,    3.63,  0.00000)
CreateUnitAtMouse('urb2108', 1,   95.74,    1.63,  0.00000)
CreateUnitAtMouse('xab1401', 1,   26.74,    5.63,  0.00000)
CreateUnitAtMouse('ueb2108', 1,   95.74,    5.63,  0.00000)
CreateUnitAtMouse('xab1401', 0,   26.74,   -4.37,  0.00000)
CreateUnitAtMouse('urb2108', 1,  -23.26,   -2.37,  0.00000)
CreateUnitAtMouse('xsb2108', 1,  -23.26,   -4.37,  0.00000)
CreateUnitAtMouse('ueb2108', 1,  -23.26,    1.63,  0.00000)
Spawn MML + shields + volcanoes
   CreateUnitAtMouse('uab4201', 0,   -9.02,   17.38,  0.00000)
   CreateUnitAtMouse('uab4201', 0,  -12.02,   11.38,  0.00000)
   CreateUnitAtMouse('uab4201', 0,  -10.02,    9.38,  0.00000)
   CreateUnitAtMouse('uab4201', 0,   -7.02,   15.38,  0.00000)
   CreateUnitAtMouse('uab4201', 0,   -9.02,   11.38,  0.00000)
   CreateUnitAtMouse('uab4201', 0,   -6.02,   17.38,  0.00000)
   CreateUnitAtMouse('uab4201', 0,   -8.02,   19.38,  0.00000)
   CreateUnitAtMouse('uab4201', 0,  -11.02,   13.38,  0.00000)
   CreateUnitAtMouse('uab4201', 0,  -14.02,    7.38,  0.00000)
   CreateUnitAtMouse('ual0111', 1,    8.98,   -9.23, -0.51330)
   CreateUnitAtMouse('ual0111', 1,   10.29,   -7.32, -0.57709)
   CreateUnitAtMouse('ual0111', 1,    7.04,  -11.16, -0.42014)
   CreateUnitAtMouse('ual0111', 1,   11.10,  -11.91, -0.52904)
   CreateUnitAtMouse('xab1401', 0,  -19.02,   18.38,  0.00000)
   CreateUnitAtMouse('ual0111', 1,    6.76,   -8.80, -0.45800)
   CreateUnitAtMouse('ual0111', 1,    5.28,  -10.45, -0.39096)
   CreateUnitAtMouse('uab4201', 0,  -13.02,    9.38,  0.00000)
   CreateUnitAtMouse('ual0111', 1,    8.27,   -6.37, -0.52970)
   CreateUnitAtMouse('ual0111', 1,   11.83,  -11.40, -0.54830)
   CreateUnitAtMouse('uab4201', 0,  -10.02,   15.38,  0.00000)
   CreateUnitAtMouse('uab4201', 0,  -12.02,    5.38,  0.00000)
   CreateUnitAtMouse('uab4201', 0,   -8.02,   13.38,  0.00000)
   CreateUnitAtMouse('uab4201', 0,  -11.02,    7.38,  0.00000)
   CreateUnitAtMouse('ual0111', 1,    8.67,  -13.15, -0.44842)
   CreateUnitAtMouse('url0111', 1,   14.19,  -13.59, -0.57730)
   CreateUnitAtMouse('uab4202', 0,  -12.02,   19.38, -0.00000)
   CreateUnitAtMouse('ual0111', 1,    7.43,  -14.72, -0.38934)
   CreateUnitAtMouse('ual0111', 1,    4.98,  -12.86, -0.35998)
   CreateUnitAtMouse('url0111', 1,   11.88,  -13.69, -0.52257)
   CreateUnitAtMouse('uab4202', 0,  -16.02,   11.38, -0.00000)
   CreateUnitAtMouse('url0111', 1,   14.28,   -8.65, -0.66231)
   CreateUnitAtMouse('ual0111', 1,    2.92,  -10.31, -0.30640)
   CreateUnitAtMouse('url0111', 1,   13.61,   -6.03, -0.69781)
   CreateUnitAtMouse('url0111', 1,    8.98,  -10.93, -0.48724)
   CreateUnitAtMouse('url0111', 1,   14.87,  -10.59, -0.64152)
   CreateUnitAtMouse('url0111', 1,    5.98,  -15.62, -0.34014)
   CreateUnitAtMouse('url0111', 1,    9.98,  -15.62, -0.45145)
Spawn Torrents + naval TMD
   CreateUnitAtMouse('uas0202', 0,   37.24,    3.11,  0.25689)
   CreateUnitAtMouse('uas0303ef', 0,   26.50,  -16.63, -0.01904)
   CreateUnitAtMouse('uas0302', 0,   10.20,   -2.60,  0.19097)
   CreateUnitAtMouse('zxa0003', 0,   26.50,  -16.63, -0.01904)
   CreateUnitAtMouse('uas0303ef', 0,   20.57,   14.73, -3.01150)
   CreateUnitAtMouse('uas0302', 0,   12.22,   -8.68, -0.81466)
   CreateUnitAtMouse('uas0303', 0,   26.32,   -7.42, -0.01904)
   CreateUnitAtMouse('uas0303', 0,   19.38,    5.61, -3.01150)
   CreateUnitAtMouse('zxa0003', 0,   20.57,   14.73, -3.01150)
   CreateUnitAtMouse('uas0303ef', 0,   28.98,  -20.11,  0.92941)
   CreateUnitAtMouse('zxa0003', 0,   28.98,  -20.11,  0.92941)
   CreateUnitAtMouse('uas0303ef', 0,   24.63,   10.33,  0.76352)
   CreateUnitAtMouse('uas0302', 0,   12.41,   10.30,  1.29709)
   CreateUnitAtMouse('uas0303', 0,   33.86,   24.56,  2.06790)
   CreateUnitAtMouse('uas0302', 0,   18.08,   19.82,  2.03742)
   CreateUnitAtMouse('uas0303', 0,   24.49,   10.56, -0.67957)
   CreateUnitAtMouse('zxa0003', 0,   30.27,    3.40, -0.67957)
   CreateUnitAtMouse('uas0303ef', 0,   30.27,    3.40, -0.67957)
   CreateUnitAtMouse('zxa0003', 0,   24.98,    5.30,  2.26073)
   CreateUnitAtMouse('uas0303', 0,   32.08,   -0.56,  2.26073)
   CreateUnitAtMouse('uas0303ef', 0,   24.98,    5.30,  2.26073)
   CreateUnitAtMouse('uas0302', 0,   27.37,   -7.32, -0.19808)
   CreateUnitAtMouse('xas0306', 1, -163.60,   -6.02,  0.46226)
   CreateUnitAtMouse('uas0202', 0,   -4.07,    7.28, -3.07330)
   CreateUnitAtMouse('uas0302', 0,   25.60,   12.46,  1.51614)
   CreateUnitAtMouse('uas0303', 0,   36.35,  -14.60,  0.92941)
   CreateUnitAtMouse('uas0303', 0,   41.04,   -2.72, -0.80178)
   CreateUnitAtMouse('zxa0003', 0,   47.66,   -9.12, -0.80178)
   CreateUnitAtMouse('uas0202', 0,   24.09,  -25.97,  0.46592)
   CreateUnitAtMouse('xas0306', 1, -122.81,  -15.49,  0.47110)
   CreateUnitAtMouse('xas0306', 1, -163.02,   -2.89,  0.50272)
   CreateUnitAtMouse('xas0306', 1, -164.38,  -10.24,  0.34809)
   CreateUnitAtMouse('uas0303ef', 0,   47.66,   -9.12, -0.80178)
   CreateUnitAtMouse('uas0302', 0,   21.92,  -20.00,  0.02681)
   CreateUnitAtMouse('xas0306', 1, -161.32,   -2.05,  0.38721)
   CreateUnitAtMouse('xas0306', 1, -164.38,  -10.24,  0.33962)
   CreateUnitAtMouse('uas0302', 0,   26.82,   -5.51,  1.30988)
   CreateUnitAtMouse('zxa0003', 0,   25.77,   28.95,  2.06790)
   CreateUnitAtMouse('uas0303ef', 0,   25.77,   28.95,  2.06790)
   CreateUnitAtMouse('zxa0003', 0,   24.63,   10.33,  0.76352)
   CreateUnitAtMouse('uas0302', 0,   24.39,   -2.06, -2.37505)
   CreateUnitAtMouse('uas0303', 0,   30.99,   16.98,  0.76352)
volcano.vs.MML.mp4

Checklist

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

@lL1l1 lL1l1 added area: balance related to units balance, but not as a suggestion area: sim Area that is affected by the Simulation of the Game feature: anti projectile weaponry related to torpedo and tactical defense weapons labels Jan 14, 2025
@lL1l1 lL1l1 added this to the Development Iteration I of 2025 milestone Jan 14, 2025
@lL1l1 lL1l1 marked this pull request as ready for review January 14, 2025 08:58
@Garanas
Copy link
Member

Garanas commented Jan 14, 2025

I'm not sure. I understand the problem, but at the moment of writing this solution completely destroys the immersion for me.

@BlackYps
Copy link
Contributor

Can you be more specific what destroys the immersion? Is it the hard set of the velocity to 0 or something else?
I agree that suddenly setting the velocity to 0 looks odd. It looks like the ball hits an invisible ceiling. But other than that I like the solution.

@Garanas
Copy link
Member

Garanas commented Jan 25, 2025

Can you be more specific what destroys the immersion? Is it the hard set of the velocity to 0 or something else? I agree that suddenly setting the velocity to 0 looks odd. It looks like the ball hits an invisible ceiling. But other than that I like the solution.

It looks and feels completely out of place to me. I have no other words to use to describe it I am afraid. I firmly believe this is not the right solution.

And I really think we should first discuss whether this is actually an issue. With these changes the Volcano is in my opinion by far the best TMD because now there are no drawbacks anymore.

@lL1l1
Copy link
Contributor Author

lL1l1 commented Jan 25, 2025

Traditionally the Volcano had much shorter range than other TMD, so while it was powerful with deflecting infinite missiles (until the flare got hit...) you needed to build a lot of them, and they only have 500 HP so they were peppering your front with targets. In my opinion the issue with being able to fly over Volcanoes is that it is difficult to judge the angles from a top down view and it's really only UEF TML/ACU TML that can fly so incredibly high, so it's a very specific interaction. In contrast, the downsides of low range are much more tangible for both the attacker and defender.

So two things to consider:

  • Decrease the height of the UEF TML: this could be done to reduce how intense the Volcano's flare's physics have to catch the missiles as expected. I don't think it would impact the TML's functionality because with the current tactical missile component, as I understand, there is no consistent way that UEF missiles overcome terrain with their high angle of attack because there is no turnrate change near the end of the trajectory.
  • For balance, reduce the range of the Volcano: I don't think this is necessary because I disagree that there would be a significant balance change if the "drawback" is removed, as the drawback only applies with UEF TMLs, and nothing else usually.

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 area: sim Area that is affected by the Simulation of the Game feature: anti projectile weaponry related to torpedo and tactical defense weapons
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Balance Idea]: Make Aeon TMD shoot flare based on target altitude
3 participants