TheSuperHackers / GeneralsGamePatch

Community Patch to fix and improve original Generals Zero Hour 1.04
Other
58 stars 19 forks source link

USA Particle Cannon deals inconsistent damage when shutdown during fire #674

Open Battlefieldkille opened 2 years ago

Battlefieldkille commented 2 years ago

Details

I was playing against USA Superweapon AI once, the bot had like 4 superweapons and 1 was about to fire, I managed to destroy his Cold Fusion Reactor to cut his power right when his superweapon fired, thought I just averted having my stuff destroyed I ignored it, until I saw that he completly fried my Strategy Center, the cannon was active for atleast 1 second, yet that was enough to destroy it.

Explaination

After some digging I made a map where I compared the damage output from a fully active Particle Cannon with a 3 second Particle Cannon. Video: https://www.youtube.com/watch?v=WySaomm3g1o&ab_channel=Battlefieldkille The first Particle Cannon is fired like any other, I used it to fire on the Scud Storm that has 80% HP which is just enough to completly destroy it, so as you see, with the Particle Cannon being active for 11 seconds - the Scud Storm is gone. Now for the second Particle Cannon, I first disabled my Nuclear Reactor with my Microwave Tank and then fired the Particle Cannon right away, the Particle Cannon was active for 3 seconds and somehow that was enough for an 80% HP Scud Storm to go down. So if a Particle Cannon functions by going from "fade in" > "sustain" > "fade out", my guess is that the "fade in" & "fade out" do higher damage for some reason, meaning for the second Particle Cannon that fired theres no "sustain", only "fade in" & "fade out", which is why it was able to destroy the Scud Storm, if any of that makes any sense. Map: ParticleCannonTest.zip

xezon commented 2 years ago

This looks very odd indeed. In the video the full particle cannon blow took 12 seconds to kill the building, but the short particle blow just took 6 seconds to kill it. Logically this makes no sense. I think it fair to classify this as bug and implement a solution if there is one.