GeneralsGamePatch icon indicating copy to clipboard operation
GeneralsGamePatch copied to clipboard

Fix: Dragon Tanks can now force fire close Allies, Neutral targets with their primary weapon

Open Stubbjax opened this issue 3 years ago • 59 comments

  • Closes #1589

1.04:

The projectile travels through units in close proximity.

https://user-images.githubusercontent.com/11547761/199525027-88273bd9-89b8-4d18-9a06-8cf769b60880.mp4

Patch:

The projectile collides with units in close proximity.

https://user-images.githubusercontent.com/11547761/199525042-589595a5-3dd9-4508-b82f-5d76e0bff464.mp4

There is also a discrepancy between the minimum range of the Black Napalm and standard flame weapons, which is a question of design and needs further discussion.

Weapon DragonTankFlameWeapon
  MinimumAttackRange = 0; 10.0
End
Weapon DragonTankFlameWeaponUpgraded
  MinimumAttackRange = 10.0
End

Stubbjax avatar Nov 02 '22 15:11 Stubbjax

Oh wow this is great. I do wonder, could there be any reason EA did this? Could the fixed behaviour have unintended side effects?

xezon avatar Nov 02 '22 15:11 xezon

Does this also solve https://github.com/TheSuperHackers/GeneralsGamePatch/issues/48 ?

I think neither normal nor Black Napalm should have minimum range. Similar thing as the Toxin Truck. Obviously a bug (you can tell by the comment that minimum range was removed at some point during development), and it makes no sense for upgrades to regress certain aspects of a weapon.

commy2 avatar Nov 02 '22 17:11 commy2

This should be tested vs fast moving Technicals moving past the Dragon before and after change.

commy2 avatar Nov 02 '22 17:11 commy2

This is great, i wonder if this fixes the jankiness of dragon tanks flame walls as well, as a flame wall less than minimum range could be the reason why it starts moving like a dumbass

MTKing4 avatar Nov 03 '22 00:11 MTKing4

Does this also solve #48 ?

After coincidentally encountering some enemy red guard upon a hill while trying to test this and realising the flames weren't affecting them either, I believe I might have the solution to this. The key is the MaxThrustAngle in the DragonTankFlameLocomotor, which is set to a measly value of 1.

1.04:

A MaxThrustAngle of 1 prevents the projectile from hitting targets that are on a different height / angle to the Dragon Tank.

https://user-images.githubusercontent.com/11547761/199674100-9406518a-81ec-4807-a07d-791a79e7d52f.mp4

Patch:

A MaxThrustAngle of 30 allows the projectile to hit targets at a different height / angle to the Dragon Tank.

https://user-images.githubusercontent.com/11547761/199674127-275a265a-3d46-414e-8753-720f01d37867.mp4

I also tried applying values of 20 and 25 but not all the Red Guard were effectively burned.

Stubbjax avatar Nov 03 '22 08:11 Stubbjax

Nice find. I assume 90 would be the max, but would then allow the Dragon Tank flame to shoot up a cliff possibly? Though I wonder, wouldn't the MinTargetPitch, MaxTargetPitch range prevent such an attack before MaxThrustAngle has any relevance? Does Dragon Tank have MinTargetPitch, MaxTargetPitch setup?

xezon avatar Nov 03 '22 08:11 xezon

Nice find. I assume 90 would be the max, but would then allow the Dragon Tank flame to shoot up a cliff possibly? Though I wonder, wouldn't the MinTargetPitch, MaxTargetPitch range prevent such an attack before MaxThrustAngle has any relevance? Does Dragon Tank have MinTargetPitch, MaxTargetPitch setup?

The MinTargetPitch and MinTargetPitch values strangely result in the Dragon Tank doing nothing if the target is outside the pitch range. I tried adding MaxTargetPitch = 10 and this was the outcome:

https://user-images.githubusercontent.com/11547761/199686470-c36cf4f8-7362-4e70-9130-35cca45a5138.mp4

Stubbjax avatar Nov 03 '22 09:11 Stubbjax

Other tanks also have this setup and will not be able to shoot up and down more than 15 degrees. This can be very awkward on steep terrain and gives Rocket Men a big advantage.

xezon avatar Nov 03 '22 09:11 xezon

Drive by test

Original Fast Drive By

Technical takes no damage when speeding past attacking Dragon Tank.

https://user-images.githubusercontent.com/4720891/199827127-387e454c-4eac-406e-a089-632a40bc5586.mp4

Patched Fast Drive By

Technical takes around 50% damage consistently when passing Dragon Tank.

https://user-images.githubusercontent.com/4720891/199827147-64749361-19bc-48c4-9944-60548bb554af.mp4

Original Slow Drive By

Gattling takes no damage when speeding past attacking Dragon Tank.

https://user-images.githubusercontent.com/4720891/199828668-f36da4ec-3606-4d4b-bf0f-4a0bea410095.mp4

Patched Slow Drive By

Gattling takes 100% damage when speeding past attacking Dragon Tank.

https://user-images.githubusercontent.com/4720891/199828710-6fa9cf0e-a29d-4dfb-95cf-638327bbe502.mp4

Conclusion

This change would make Dragon Tank much better against ground units. Opponent would need to keep safe distance to Dragon Tank at all times. In Original game Dragon Tank cannot keep up with quick vehicles. This is why players often try to use Flame Wall ability to try hit something.

xezon avatar Nov 03 '22 20:11 xezon

I think the 1.04 Dragon Tank is very janky. I also think this change makes it too strong. It already is a mass produced unit in some matchups. Especially Stealthgen with the lack of Scorpions may get in trouble with this.

commy2 avatar Nov 04 '22 13:11 commy2

The TryToFollowTarget = Yes part is responsible for the increased strength. Perhaps this change should be split into 2 or 3 separate ones. I suspect MaxThrustAngle = 30 will not be as controversial.

xezon avatar Nov 04 '22 13:11 xezon

This needs split.

xezon avatar Jan 21 '23 21:01 xezon

New Pulls

  • #1588
  • #1589

xezon avatar Jan 22 '23 19:01 xezon

In Behavior = MissileAIUpdate there is another setting that is responsible for the way the Dragon Tank projectile behaves the way it does: DistanceToTargetForLock = 0. Removing this setting will make it behave identical to the GLA Toxin Tractor Stream. The Toxin Stream can hit targets much better. Increasing the value of DistanceToTargetForLock to 5, 10 or beyond is also an option, however it performs similarly to the TryToFollowTarget = Yes setting and in turn changes the way the Flame weapon works fundamentally. Setting DistanceToTargetForLock to around 10 also comes with its own issues, where the flames no longer uniformly hit their target, which is caused by the sweep of the turret.

I conclude that Dragon Tank weapon cannot be changed by INI without fundamentally changing the entire weapon performance. I recommend to leave it as is.

This is how the weapon performs right now. It is unable to hit close targets, but it overshoots and can hit targets further away than it can actually target to. This opens nice possibility for Micromanagement, as the effective weapon range can be optimized by firing near the actual target.

https://user-images.githubusercontent.com/4720891/213935621-ab407d15-854a-4163-a0d5-d6efa7e59c64.mp4

xezon avatar Jan 22 '23 19:01 xezon

To be closed if there is no more input for this.

xezon avatar Jan 22 '23 21:01 xezon

Why close? I thought we agreed it's a good change

MTKing4 avatar Jan 22 '23 22:01 MTKing4

Changing the Projectile behavior of Dragon Tank makes it a quite different unit.

xezon avatar Jan 22 '23 22:01 xezon

it still is the same unit to me just less frustrating to use, besides, if we agreed it's a good change what does it matter then?

from what i see is that the angle fix essensial to fix #48 , and the the closer range just makes sense, it doesn't even buff it all that much it just makes it equal with all the other better units that could shoot that close, i don't see this change risky at all.

MTKing4 avatar Jan 22 '23 23:01 MTKing4

This change now is entirely about "Dragon Tanks can now hit close targets with their primary weapon". Changing this makes Dragon Tank a different unit.

xezon avatar Jan 22 '23 23:01 xezon

This change now is entirely about "Dragon Tanks can now hit close targets with their primary weapon". Changing this makes Dragon Tank a different unit.

I've tested this pretty thoroughly. The minimum attack range standardisation has little to no impact on gameplay. How does this make it a different unit?

Stubbjax avatar Jan 22 '23 23:01 Stubbjax

I've tested this pretty thoroughly. The minimum attack range standardisation has little to no impact on gameplay. How does this make it a different unit?

That change you mention is isolated with #1588. This pull is just about the projectile (aka TryToFollowTarget = Yes & co).

xezon avatar Jan 23 '23 08:01 xezon

The only thing is that the minimum range prevented friendly fire quite a lot, can sometimes be hard controlling this with bigger armies, or when it's a little laggy.

ImTimK avatar Jan 23 '23 11:01 ImTimK

The only thing is that the minimum range prevented friendly fire quite a lot

How? Friendly fire doesn't hit close-proximity allies in 1.04, as demonstrated in the first video. That's all this change does if you take out the other fixes.

Stubbjax avatar Jan 23 '23 12:01 Stubbjax

The only thing is that the minimum range prevented friendly fire quite a lot, can sometimes be hard controlling this with bigger armies, or when it's a little laggy.

I think you are refering to Fire Wall. That is Secondary weapon. Primary weapon was touched only.

xezon avatar Jan 23 '23 12:01 xezon

I agree to not changing the mechanics of primary weapon Dragon tanks, except that I would remove the minimum range from the Napalm versions, because the weapon has no minimum range before the upgrade, and having upgrades introduce regressions is weird.

commy2 avatar Jan 23 '23 23:01 commy2

Is everyone fine with closing this? Fire will continue to travel through explicitly targeted close-proximity allies without damaging them.

Stubbjax avatar Jan 24 '23 11:01 Stubbjax

I'm not ok with this, but it seems that it's getting closed regardless of our opinions

MTKing4 avatar Jan 24 '23 12:01 MTKing4

I conclude that Dragon Tank weapon cannot be changed by INI without fundamentally changing the entire weapon performance. I recommend to leave it as is.

This refers to changes to TryToFollowTarget, DistanceToTargetForLock. What this change does. Touching this will fix the issue yes, but it will also significantly buff the Dragon Tank in other ways (unintended).

If you find a way to fix the close proximity issue without changing the missile behaviour in other ways, feel free to open a Pull for it.

xezon avatar Jan 24 '23 12:01 xezon

I conclude that Dragon Tank weapon cannot be changed by INI without fundamentally changing the entire weapon performance. I recommend to leave it as is.

This refers to changes to TryToFollowTarget, DistanceToTargetForLock. What this change does. Touching this will fix the issue yes, but it will also significantly buff the Dragon Tank in other ways (unintended).

In what ways? I observed no fundamental changes in performance or significant buffs.

Stubbjax avatar Jan 24 '23 13:01 Stubbjax

For example when a Quad drives by the Dragon Fire. In Original, Quad would take no damage. With this change, Quad dies. See above "Drive by Test".

xezon avatar Jan 24 '23 13:01 xezon