TheSuperHackers / GeneralsGamePatch

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

USA Alpha Aurora Damage Output #1839

Open ImTimK opened 1 year ago

ImTimK commented 1 year ago

So overall the explosion radius and ability to one-shot any vehicle in the game shouldn't be nerfed.

However, imo Overlords and Airfields should be exceptions to that rule. These are extremely valuable targets (especially full airfields) that have no way to avoid a hit at all, it just feels cheap and too OP/game-changing.

Not sure how to achieve this, whether there's any headroom to lower the Alpha's damage output without nerfing it's overall performance? Or whether it's possible for Overlords/Airfields to have a special type of resistance vs Alpha bombs?

xezon commented 1 year ago

I would not change this. Superweapon General is already struggling enough as is.

ImTimK commented 1 year ago

At the stage of the game where SW already has Alpha's and can take out these targets, it usually struggles no longer, in fact most of time the tables have turned 180 degrees when this happens.

Add the cheaper 800 Vees and opponents like China and Nuke have no chance whatsoever anymore, even the less accessible Nuke Migs offer no hope.

It just feels wrong to wipe an 8k+ investment with one click, it's pretty much China's entire lifeline.

It would also a some more strategical depth if these targets survive at low HP, as it requires either two alpha's (still worth the trade if you lose both) or another combo to take out these targets.

xezon commented 1 year ago

The only thing I would change about Aurora is its invulnerability on lock on. Making it vulnerable will give opponents a chance to overpower Aurora spam by unit spam. So for example being able to overpower a single Aurora with 10 Gattling Tanks would allow the China to protect its valuable units, even if 10 Gattlings are harder to acquire than a single Aurora.

ImTimK commented 1 year ago

Such change is much higher profile and less likely to be accepted.

xezon commented 1 year ago

Removing the invulnerability is the only way to get the Aurora off the banned unit list (No Superweapon, No Demobike, No Aurora). Decreasing damage or radius will never achieve this.

ImTimK commented 1 year ago

Is it desirable to change the base game to get it off this list though?

Same as your gameplay modifiers/handicaps idea, I think it's much better to offer a feature/option to restrict specific units/upgrades/buildings.

xezon commented 1 year ago

When a large portion of players (noobs and semis) ban certain units (Aurora, Demobike) then this indicates that something is wrong with these units. For Aurora the design problem is fairly obvious: it cannot be killed while it attacks. Therefore banning it is reasonable. Ideally no unit is practically unstoppable.

Getting the Aurora off the universially agreed banned unit list would be a worthwhile achievement I do think yes.

ImTimK commented 1 year ago

Yet it's a nonsense list based on lack of knowledge, it's an invalid complaint for anyone who slightly attempts to understand the balance concepts of a strategy game. Even the lowest semi tournies on gamereplays have no rules.

It's not reasonable at all to patch these units/upgrades/buildings to such extent so that noobs accept them. People who play these rules just (want to) play a different game, where everybody chills, bunkers, sits back and makes second eco. It's simple logic that SW is alot better at this in the base game.

Offering options/features to let people play however they want is reasonable though and exactly what you expect a modern game to offer.

MTKing4 commented 1 year ago

I have to agree with Xezon here, that's the only way to fix this issue, keep in mind that even experts ban Auroras in FFAs, Ask dominator, he'll tell you. He plays pro rules most of the time and that's telling something

I do think removing or maybe reducing its invulnerability somehow will be the most beneficial outcome for us even for experts, sure they wouldn't like it at first, but after buffing SWG in other ways where it's not a desperate alpha rusher anymore they'll come to like it a lot more than before

What I'm thinking of is maybe that it can still outrun rockets, but not bullets or lasers, (Seriously like lasers are at the speed of light yet it's faster than that? come on)

Or maybe all Units can miss, but not defenses, think that option is better to put more emphasis on defences like patriots and make other USAs competitive with lategame SWG

xezon commented 1 year ago

I think Hypersonic Aurora would just need to be able to tank a lot of damage and be destructible when flying over an absolute fortress. Basically it should be strong enough to be able to attack big defenses without problems but not fly over an abundance of Turrets to enter the enemy base as if its nothing.

MTKing4 commented 1 year ago

If that's even possible, is also a good solution to the problem

xezon commented 1 year ago

Not clear to me if this is possible to do from INI.

The only exposed setting I can see is SneakyOffsetWhenAttacking.

  Behavior = JetAIUpdate ModuleTag_07
    OutOfAmmoDamagePerSecond    = 10%    ; amount of damage to take per SEC (not per frame) when out of ammo
                                         ; note that it's expressed as a percent of max health, not an absolute
    TakeoffDistForMaxLift       = 0%   ; larger numbers give more lift sooner when taking off
    TakeoffPause                = 500
    MinHeight                   = 5
    SneakyOffsetWhenAttacking   = -20.0  ; this is how far behind us people aim when we are in attack mode
    AttackLocomotorType         = SET_SUPERSONIC
    AttackLocomotorPersistTime  = 100    ; we start slowing down almost immediately
    AttackersMissPersistTime    = 2000   ; but remain untargetable fer a bit longer
    ReturnForAmmoLocomotorType  = SET_SLUGGISH
    ReturnToBaseIdleTime        = 10000         ; if idle for this long, return to base, even if not out of ammo
  End

I would have expected that there is a way to set a new ArmorSet during attack.

ImTimK commented 1 year ago

Ask dominator, he'll tell you. He plays pro rules most of the time and that's telling something

Dominator:

If you are asking about the ffas I play, yes they are banned in that. But actually I find it fun to allow them and play no rules but most guys won’t accept that It’s hard to change Aurora now, of course when making a new game you don’t go and add a hypersonic indestructible wrecking machine as it’s way OP but also it became iconic in zero hour now after 20 years. If people suddenly couldn’t kill an air field I don’t know what people will say

xezon commented 1 year ago

If this unit was not banned, then this unit would be practically much more useful. Paradoxically, by nerfing the Aurora the right way it would actually become a better unit. Think about it.

ImTimK commented 1 year ago

Let's admit, the only reason the Alpha is trully OP is the damage output vs EVERYTHING except air units. Vanilla Aurora proofs this, without the secondary blast it's underpowered and overpriced. Now take away it's hypersonic ability, it got nothing left going for it...

You might think the teleportation mechanic (that's basically what it is) is completely broken, however it's all about the trading concept. It's worth trading an Alpha ($2K, 200XP) vs many different kinds of targets worth way more than itself. The vAurora has to pick off several targets and survive before it becomes worth the investment.

ImTimK commented 1 year ago

Btw, there are more similar mechanics in the game that should be considered broken aswell. Quick examples: China Artillery Genpower: unstoppable 1 click destruction. GLA Ambush: Instant destruction, even level 1 vanilla ambush can take out every single Aurora on an airfield. USA Specter Gunship: Pretty much invincible before it reaches its target. Tunnel networks: Instant healing and teleportation around the map.

xezon commented 1 year ago

We cannot compare Apples with Oranges here. You try to compare Aurora to other things which are not identical to the Aurora. While both China Artillery and Aurora are invincible on the attack, the Aurora can be spammed, whereas the Artillery cannot be spammed. This is an important distiction.

There is no discrimination of the regular Aurora when it comes to bans. The regular Aurora is equally banned, because it can kill target in the enemy base without stopping.

The core issue is that this unit cannot be reasonably stopped. It really is that simple. Being unable to stop a unit on the attack while it simply flies over hundreds of defenses is a major frustration. It is therefore very reasonable to ban this unit from bunker games, because it is the Bunker breaker that just makes any efforts to defend the base useless.

It is apparent that you do not agree it being banned for this reason, but this is the unfortunate but logical reality and ignoring this aspect does not solve the problem. Nerfing the Alpha Aurora will just make Super Weapon General weaker, but the Aurora Jet will remain banned in Noob and Semi matches afterwards and the Aurora will remain an underused unit because if you use it you will be banned from matches too.

MTKing4 commented 1 year ago

It is indeed the supersonic speed is the issue as Vanilla auroras are still used to knock down your power or snipe your Superweapons without you being able to do anything about it, that's the main reason it's banned

ImTimK commented 1 year ago

You both clearly don't understand the trading and balance concepts I've explained so far.

No rules ffa and 2v2v2 is also balanced, but not how people want to play the game, because they got the wrong idea like you guys do.

Changing the regular game to accomodate for players who play irregular gamemodes just isn't right.

xezon commented 1 year ago

I think you misunderstand position. I do not think Aurora is overpowered in Pro game. King Raptor is much more dangerous in comparison. I am just explaining why Aurora is banned in Noob and Semi games. You look at Aurora from Pro perspective and therefore are oblivious to the fundamental issue. Addressing the invincible design would have less detrimental impact in Pro matches and more positive impact in Noob and Semi matches.

Instead you suggest to nerf Alpha Aurora for Superweapon General, which is already one of the saddest General in Pro matches, when essentially would make Superweapon even weaker in Pro matches and would change nothing in Noob and Semi matches.

ImTimK commented 1 year ago

Addressing the invincible design would have less detrimental impact in Pro matches and more positive impact in Noob and Semi matches.

Haven't seen one suggestion yet where I can see this outcome.

Instead you suggest to nerf Alpha Aurora for Superweapon General, which is already one of the saddest General in Pro matches, when essentially would make Superweapon even weaker in Pro matches and would change nothing in Noob and Semi matches.

What I'm suggesting is a relavively small nerf, to make the overall balance better.

Another question, what about SW's? Do their core mechanics also need to be reworked so they are accepted in pro and noob matches?

xezon commented 1 year ago

Haven't seen one suggestion yet where I can see this outcome.

It is logical. In Pro matches there simply rarely are huge defensive lines waiting to stop the Aurora. Nor do players use Aurora's much to begin with, because Humvee spam is enough for USA.

What I'm suggesting is a relavively small nerf, to make the overall balance better.

Balance what? Make Superweapon General weaker because it dominates other factions?

Another question, what about SW's? Do their core mechanics also need to be reworked so they are accepted in pro and noob matches?

This question implies that you see the invicibility of Aurora as a core mechanic, as opposed to it being a fast plane with a big bomb. Does it need invincibility to be useful? Aka would this unit be useless if it could not move over 100 enemy Laser Turrets for unlimited time?

There is an option to limit number of Superweapons in the Match Room. Superweapon Design is irrelevant for Aurora design.

ImTimK commented 1 year ago

It is logical. In Pro matches there simply rarely are huge defensive lines waiting to stop the Aurora. Nor do players use Aurora's much to begin with, because Humvee spam is enough for USA.

That's the thing, all money goes into useless defenses and they don't know how to properly win over SWG. SWG breaks their own strategy, thus they don't like it. I also do have some understanding though, it's kind of boring when everyone just camps and spams SW every game.

Actaully, also in pro matches you would see 'AOD' strategies more often than you think, because GLA can actually outcamp SW if done properly (usually requires more money/map control), since Scudstorms are a whole lot stronger. Only one Scud has to hit and GLA has great chances to win from there.

My very last game I played happens to be a good example of this: https://gentool.net/data/zh/2023_04_April/13_Thursday/SUP%5bExiLe%5d_8C3195F04A3E/18-24-42_2v2_SUPExiLe_BSToNED_BaMBoo_MoNsTeR.rep

Had the other GLA not invested in useless Buggies but rather in Scuds aswell, it would be very challenging for SWG to prevent getting Scud'ed. Without Alpha's it would be completely impossible actually, while it's supppossed to be better at camping.

Balance what? Make Superweapon General weaker because it dominates other factions?

I already answered and motivated my answer to this, but I'll explain again: SW has different stages of when it's weak and strong, you very well know this. My suggestion only weakens SWG at the stage it's very strong and a bit too much so. Especially now with the cheaper Vees (which makes SWG stronger in all stages).

This question implies that you see the invicibility of Aurora as a core mechanic, as opposed to it being a fast plane with a big bomb. Does it need invincibility to be useful? Aka would this unit be useless if it could not move over 100 enemy Laser Turrets for unlimited time?

There is an option to limit number of Superweapons in the Match Room. Superweapon Design is irrelevant for Aurora design.

Aurora is a mini SW, it's the exact same concept. You click and destroy something at the other side of the map and both are spammable.

The option to limit SW's is good (though still not enough for noobs because they don't want any). Anyways, more advanced options is exactly what a modern game needs! So anyone can play the game how they want. It's literally the best solution for everyone.

MTKing4 commented 1 year ago

You both clearly don't understand the trading and balance concepts I've explained so far.

No rules ffa and 2v2v2 is also balanced, but not how people want to play the game, because they got the wrong idea like you guys do.

Changing the regular game to accomodate for players who play irregular gamemodes just isn't right.

That is a wild Assumption to make, what you stated is that the invincibility is not the reason the auroras are banned which is totally incorrect, the only reason you don't see Vanilla auroras as much is its cost, and the fact that it's not very good against moving targets, but it still very strong vs buildings, and no this isn't to cater noob games, it reads to me that you hate to admit that it's a broken unit in all gamemodes even in 1v1, while not as effective, it's still very obnoxious if you know how to use it, for example, you can hunt the enemy dozers and CC and he will have no response whatsoever

This isn't about money investment, it's not fair because firstly it's uncountrable secondly it can still get away and you get to keep the unit

Let's compare it to other investment units that you throw money at the unit killing the enemy and losing the unit in the process: Bomb Truck, two main takeaways: 1- it can be countered 2- it's inevitable to die

So how does that compare to an Aurora? Do you really still think it's an investment if you keep the aurora? And the fact that it's sure shot?

There are many other examples in 1v1s that I'll try to mention here besides the dozer hunt

  1. Killing Oils
  2. Killing airfields
  3. Killing Superweapons
  4. Killing Power
  5. Killing Army Steal
  6. Killing Secondary Eco

All those are well over worth hitting with a ~$2000 Potential loss

Also you're wrong about the no rules FFAs, usually the SW if left untouched which tends to happen a lot on ffas they own the game

ImTimK commented 1 year ago

You both clearly don't understand the trading and balance concepts I've explained so far. No rules ffa and 2v2v2 is also balanced, but not how people want to play the game, because they got the wrong idea like you guys do. Changing the regular game to accomodate for players who play irregular gamemodes just isn't right.

That is a wild Assumption to make, what you stated is that the invincibility is not the reason the auroras are banned which is totally incorrect, the only reason you don't see Vanilla auroras as much is its cost, and the fact that it's not very good against moving targets, but it still very strong vs buildings, and no this isn't to cater noob games, it reads to me that you hate to admit that it's a broken unit in all gamemodes even in 1v1, while not as effective, it's still very obnoxious if you know how to use it, for example, you can hunt the enemy dozers and CC and he will have no response whatsoever

This isn't about money investment, it's not fair because firstly it's uncountrable secondly it can still get away and you get to keep the unit

It's all about investment, investing well is big part of why good players win more. Why make a fragile Aurora's that are easily lost instead of much more versatile Vees, or SDZ/SW?

Let's compare it to other investment units that you throw money at the unit killing the enemy and losing the unit in the process: Bomb Truck, two main takeaways: 1- it can be countered 2- it's inevitable to die

So how does that compare to an Aurora? Do you really still think it's an investment if you keep the aurora? And the fact that it's sure shot?

There are many other examples in 1v1s that I'll try to mention here besides the dozer hunt

1. Killing Oils

Need two and when you have stabilized well on a campy map it could be worth in the long run, IF you can make them return safely, otherwise just make 2 SDZ / 1 SW yourself. In most games Vees are the better more versatile investment.

2. Killing airfields

Also need two and can only be applied in same situation I described above. But yes, it's a very good kill if you kill all aircraft aswell. But again, there are safer investments.

3. Killing Superweapons

Most likely a trade and a bad one, $10k and 800xp+. 2 SW for yourself is much better.

4. Killing Power

This is a tactical move I very much like, if you time it correctly with a gamechanging base push or to desperately deny their SW usage. On it's own it's a bad trade.

5. Killing Army Steal

What is that?

6. Killing Secondary Eco

Again, only if you can return your aircraft safely it's worth, trading is definitely not. I only see SDZ's as worthy targets, they only need one hit, less risk. Why make multiple to take out Markets? Just invest in SDZ yourself, much safer.

All those are well over worth hitting with a ~$2000 Potential loss

Also you're wrong about the no rules FFAs, usually the SW if left untouched which tends to happen a lot on ffas they own the game

Strategical error to let SWG get big.

xezon commented 1 year ago

Bottom line is you will not be able to properly fix Aurora by just looking at it from Pro Player prespective. It is important to consider Noob and Semi Player perspective. They ban Aurora. Listen to why they ban it.

ImTimK commented 1 year ago

If you want to 'fix' it, the whole challenge is to come up with a redesign idea that will be accepted by pros and noobs, which I think is simply impossible. That's not shut down anything, keep coming with the suggestions. I mean, I even made my own suggestion in the other topic.

The best suggestion so far and by far is the rule customization idea.

xezon commented 1 year ago

Adding options to disable Aurora and similar units indicates that the unit design has failed. It would be a mistake to go this route.

ImTimK commented 1 year ago

Can see that perspective, but failing to be part of casual matches, just like it is now, is not so bad. Can't cater a whole game's design to casual gamers. It's what many modern games do, they don't make games like ZH anymore with learning curves.

But it's always good offering options and not to specifically disable aurora, but rather full customization to disable any unit/building/upgrade. Like if people want to play with Tanks only, they can do so. Could be very fun and interesting having this.

Like it would be sick if the gamelobby was webbased (like modern games using a launcher). That would probably the best way to implement such advanced features, if ever possible at all.

xezon commented 1 year ago

Survey comments:

remove aurora and demo bikes

Imbalance like: Aurora Alpha Nuke MIG Pathfinders are extremely strong

Aurora balance is welcome

if there was a fix that balanced the factions out more I would be happy, (like aurora's and nuke migs being very OP etc).

Make the aurora vulnerable to damage when targeting

So that you can deal a little damage to the Aurora while she is flying.

some factions really need to be rebalanced. For example, vanilla china should be raised, while aurora in SVG should be slightly fixed

SWG aurora are way too op and should be much more expensive or cheaper and nerfed by getting rid of the secondary explosion.

I really hate that all USA gameplay boils down to spamming humvees with missile defenders inside of them. And i really hate that USA has auroras. USA never uses tanks. Pls fix.

I am also very concerned about the situation with the USA and the Aurora aircraft in particular. A lot of problems from one aircraft, which can always pay for itself by causing damage. If full invincibility before the bomb is dropped is replaced by, say, 50% damage reduction, then it would make sense.

The only thing that i can think of that is most definitely unfair are the alpha auroras, but as soon as you put down a emp patriot, everyone targets you before you can even get auroras (this is talking about defcon ffa btw).

xezon commented 1 year ago

https://youtu.be/oRd6akDSUh0

;------------------------------------------------------------------------------
Object AmericaJetAurora

;BuildCost               = 1500
;BuildTime               = 25             ;in seconds
 ExperienceValue         = 50 50 100 150  ;Experience point value at each level

 ReplaceModule ModuleTag_07
  Behavior = JetAIUpdate ModuleTag_07_Override
    OutOfAmmoDamagePerSecond    = 10%    ; amount of damage to take per SEC (not per frame) when out of ammo
                                         ; note that it's expressed as a percent of max health, not an absolute
    TakeoffDistForMaxLift       = 0%   ; larger numbers give more lift sooner when taking off
    TakeoffPause                = 500
    MinHeight                   = 5
    SneakyOffsetWhenAttacking   = -20.0  ; this is how far behind us people aim when we are in attack mode
    AttackLocomotorType         = SET_SUPERSONIC
    AttackLocomotorPersistTime  = 100    ; we start slowing down almost immediately
    AttackersMissPersistTime    = 10     ; but remain untargetable fer a bit longer
    ReturnForAmmoLocomotorType  = SET_SLUGGISH
    ReturnToBaseIdleTime        = 10000         ; if idle for this long, return to base, even if not out of ammo
  End
  Locomotor = SET_NORMAL      AuroraJetLocomotor
  Locomotor = SET_SUPERSONIC  AuroraJetSupersonicLocomotor
  Locomotor = SET_SLUGGISH    AuroraJetSluggishLocomotor
  Locomotor = SET_TAXIING     BasicJetTaxiLocomotor
 End
End

;------------------------------------------------------------------------------
Object AirF_AmericaJetAurora

;BuildCost               = 1500
;BuildTime               = 25             ;in seconds
 ExperienceValue         = 50 50 100 150  ;Experience point value at each level

 ReplaceModule ModuleTag_01
  Draw = W3DModelDraw ModuleTag_01_Override

    DefaultConditionState
      Model               = AVAuroraAG
      HideSubObject       = BurnerFX03 BurnerFX04
      WeaponLaunchBone = PRIMARY WeaponA
    End

    ConditionState        = JETEXHAUST
      ; exhaust
      ParticleSysBone     = Wingtip01 JetContrail
      ParticleSysBone     = Wingtip02 JetContrail
    End

    ConditionState        = JETEXHAUST JETAFTERBURNER
      ; exhaust
      ParticleSysBone     = Wingtip01 JetContrail
      ParticleSysBone     = Wingtip02 JetContrail
      ; afterburner
      ShowSubObject       = BurnerFX03 BurnerFX04
      ParticleSysBone     = Engine01 JetLenzflare
      ParticleSysBone     = Engine02 JetLenzflare
    End

    ConditionState        = REALLYDAMAGED
      Model               = AVAuroraAG_D
      ; damage
      ParticleSysBone     = Smoke01 JetSmoke
      ParticleSysBone     = Engine01 JetEngineDamagedSmoke
    End

    ConditionState        = REALLYDAMAGED JETEXHAUST
      Model               = AVAuroraAG_D
      ; damage
      ParticleSysBone     = Smoke01 JetSmoke
      ParticleSysBone     = Engine01 JetEngineDamagedSmoke
      ; exhaust
      ParticleSysBone     = Wingtip01 JetContrail
      ParticleSysBone     = Wingtip02 JetContrail
    End

    ConditionState        = REALLYDAMAGED JETEXHAUST JETAFTERBURNER
      Model               = AVAuroraAG_D
      ; damage
      ParticleSysBone     = Smoke01 JetSmoke
      ParticleSysBone     = Engine01 JetEngineDamagedSmoke
      ; afterburner
      ShowSubObject       = BurnerFX03 BurnerFX04
      ParticleSysBone     = Engine01 JetLenzflare
      ParticleSysBone     = Engine02 JetLenzflare
      ; exhaust
      ParticleSysBone     = Wingtip01 JetContrail
      ParticleSysBone     = Wingtip02 JetContrail
    End

    ConditionState        = RUBBLE
      Model               = AVAurora_D1
      HideSubObject       = None 
      ShowSubObject       = None
    End

    ConditionState        = RUBBLE JETEXHAUST JETAFTERBURNER
      Model               = AVAurora_D1
      ;HideSubObject is needed cause there're inherited from default condition state      
      HideSubObject       = None 
      ShowSubObject       = None
      ParticleSysBone     = Engine01 JetExhaust
      ParticleSysBone     = Engine02 JetExhaust
      ; exhaust
      ParticleSysBone     = Wingtip01 JetContrail
      ParticleSysBone     = Wingtip02 JetContrail
    End

    OkToChangeModelColor = Yes
  End
 End

 ReplaceModule ModuleTag_07
  Behavior = JetAIUpdate ModuleTag_07_Override
    OutOfAmmoDamagePerSecond    = 10%    ; amount of damage to take per SEC (not per frame) when out of ammo
                                         ; note that it's expressed as a percent of max health, not an absolute
    TakeoffDistForMaxLift       = 0%   ; larger numbers give more lift sooner when taking off
    TakeoffPause                = 500
    MinHeight                   = 5
    SneakyOffsetWhenAttacking   = -20.0  ; this is how far behind us people aim when we are in attack mode
    AttackLocomotorType         = SET_SUPERSONIC
    AttackLocomotorPersistTime  = 100    ; we start slowing down almost immediately
    AttackersMissPersistTime    = 10     ; but remain untargetable fer a bit longer
    ReturnForAmmoLocomotorType  = SET_SLUGGISH
    ReturnToBaseIdleTime        = 10000         ; if idle for this long, return to base, even if not out of ammo
  End
  Locomotor = SET_NORMAL      AuroraJetLocomotor
  Locomotor = SET_SUPERSONIC  AuroraJetSupersonicLocomotor
  Locomotor = SET_SLUGGISH    AuroraJetSluggishLocomotor
  Locomotor = SET_TAXIING     BasicJetTaxiLocomotor
 End
End

;------------------------------------------------------------------------------
Object Lazr_AmericaJetAurora

;BuildCost               = 1500
;BuildTime               = 25             ;in seconds
 ExperienceValue         = 50 50 100 150  ;Experience point value at each level

 ReplaceModule ModuleTag_07
  Behavior = JetAIUpdate ModuleTag_07_Override
    OutOfAmmoDamagePerSecond    = 10%    ; amount of damage to take per SEC (not per frame) when out of ammo
                                         ; note that it's expressed as a percent of max health, not an absolute
    TakeoffDistForMaxLift       = 0%   ; larger numbers give more lift sooner when taking off
    TakeoffPause                = 500
    MinHeight                   = 5
    SneakyOffsetWhenAttacking   = -20.0  ; this is how far behind us people aim when we are in attack mode
    AttackLocomotorType         = SET_SUPERSONIC
    AttackLocomotorPersistTime  = 100    ; we start slowing down almost immediately
    AttackersMissPersistTime    = 10   ; but remain untargetable fer a bit longer
    ReturnForAmmoLocomotorType  = SET_SLUGGISH
    ReturnToBaseIdleTime        = 10000         ; if idle for this long, return to base, even if not out of ammo
  End
  Locomotor = SET_NORMAL      AuroraJetLocomotor
  Locomotor = SET_SUPERSONIC  AuroraJetSupersonicLocomotor
  Locomotor = SET_SLUGGISH    AuroraJetSluggishLocomotor
  Locomotor = SET_TAXIING     BasicJetTaxiLocomotor
 End
End

;------------------------------------------------------------------------------
Object SupW_AmericaJetAurora

;BuildCost               = 2000
;BuildTime               = 30             ;in seconds
 ExperienceValue         = 50 50 100 150  ;Experience point value at each level

 ReplaceModule ModuleTag_07
  Behavior = JetAIUpdate ModuleTag_07_Override
    OutOfAmmoDamagePerSecond    = 10%    ; amount of damage to take per SEC (not per frame) when out of ammo
                                         ; note that it's expressed as a percent of max health, not an absolute
    TakeoffDistForMaxLift       = 0%   ; larger numbers give more lift sooner when taking off
    TakeoffPause                = 500
    MinHeight                   = 5
    SneakyOffsetWhenAttacking   = -20.0  ; this is how far behind us people aim when we are in attack mode
    AttackLocomotorType         = SET_SUPERSONIC
    AttackLocomotorPersistTime  = 100    ; we start slowing down almost immediately
    AttackersMissPersistTime    = 10     ; but remain untargetable fer a bit longer
    ReturnForAmmoLocomotorType  = SET_SLUGGISH
    ReturnToBaseIdleTime        = 10000         ; if idle for this long, return to base, even if not out of ammo
  End
  Locomotor = SET_NORMAL      AuroraJetLocomotor
  Locomotor = SET_SUPERSONIC  AuroraJetSupersonicLocomotor
  Locomotor = SET_SLUGGISH    AuroraJetSluggishLocomotor
  Locomotor = SET_TAXIING     BasicJetTaxiLocomotor
 End
End

;------------------------------------------------------------------------------
Object Boss_JetAurora

;BuildCost               = 1500
;BuildTime               = 25             ;in seconds
 ExperienceValue         = 50 50 100 150  ;Experience point value at each level

 ReplaceModule ModuleTag_01
  Draw = W3DModelDraw ModuleTag_01_Override

    DefaultConditionState
      Model               = AVAuroraAG
      HideSubObject       = BurnerFX03 BurnerFX04
      WeaponLaunchBone = PRIMARY WeaponA
    End

    ConditionState        = JETEXHAUST
      ; exhaust
      ParticleSysBone     = Wingtip01 JetContrail
      ParticleSysBone     = Wingtip02 JetContrail
    End

    ConditionState        = JETEXHAUST JETAFTERBURNER
      ; exhaust
      ParticleSysBone     = Wingtip01 JetContrail
      ParticleSysBone     = Wingtip02 JetContrail
      ; afterburner
      ShowSubObject       = BurnerFX03 BurnerFX04
      ParticleSysBone     = Engine01 JetLenzflare
      ParticleSysBone     = Engine02 JetLenzflare
    End

    ConditionState        = REALLYDAMAGED
      Model               = AVAuroraAG_D
      ; damage
      ParticleSysBone     = Smoke01 JetSmoke
      ParticleSysBone     = Engine01 JetEngineDamagedSmoke
    End

    ConditionState        = REALLYDAMAGED JETEXHAUST
      Model               = AVAuroraAG_D
      ; damage
      ParticleSysBone     = Smoke01 JetSmoke
      ParticleSysBone     = Engine01 JetEngineDamagedSmoke
      ; exhaust
      ParticleSysBone     = Wingtip01 JetContrail
      ParticleSysBone     = Wingtip02 JetContrail
    End

    ConditionState        = REALLYDAMAGED JETEXHAUST JETAFTERBURNER
      Model               = AVAuroraAG_D
      ; damage
      ParticleSysBone     = Smoke01 JetSmoke
      ParticleSysBone     = Engine01 JetEngineDamagedSmoke
      ; afterburner
      ShowSubObject       = BurnerFX03 BurnerFX04
      ParticleSysBone     = Engine01 JetLenzflare
      ParticleSysBone     = Engine02 JetLenzflare
      ; exhaust
      ParticleSysBone     = Wingtip01 JetContrail
      ParticleSysBone     = Wingtip02 JetContrail
    End

    ConditionState        = RUBBLE
      Model               = AVAurora_D1
      HideSubObject       = None 
      ShowSubObject       = None
    End

    ConditionState        = RUBBLE JETEXHAUST JETAFTERBURNER
      Model               = AVAurora_D1
      ;HideSubObject is needed cause there're inherited from default condition state      
      HideSubObject       = None 
      ShowSubObject       = None
      ParticleSysBone     = Engine01 JetExhaust
      ParticleSysBone     = Engine02 JetExhaust
      ; exhaust
      ParticleSysBone     = Wingtip01 JetContrail
      ParticleSysBone     = Wingtip02 JetContrail
    End

    OkToChangeModelColor = Yes
  End
 End

 ReplaceModule ModuleTag_07
  Behavior = JetAIUpdate ModuleTag_07_Override
    OutOfAmmoDamagePerSecond    = 10%    ; amount of damage to take per SEC (not per frame) when out of ammo
                                         ; note that it's expressed as a percent of max health, not an absolute
    TakeoffDistForMaxLift       = 0%   ; larger numbers give more lift sooner when taking off
    TakeoffPause                = 500
    MinHeight                   = 5
    SneakyOffsetWhenAttacking   = -20.0  ; this is how far behind us people aim when we are in attack mode
    AttackLocomotorType         = SET_SUPERSONIC
    AttackLocomotorPersistTime  = 100    ; we start slowing down almost immediately
    AttackersMissPersistTime    = 10     ; but remain untargetable fer a bit longer
    ReturnForAmmoLocomotorType  = SET_SLUGGISH
    ReturnToBaseIdleTime        = 10000         ; if idle for this long, return to base, even if not out of ammo
  End
  Locomotor = SET_NORMAL      AuroraJetLocomotor
  Locomotor = SET_SUPERSONIC  AuroraJetSupersonicLocomotor
  Locomotor = SET_SLUGGISH    AuroraJetSluggishLocomotor
  Locomotor = SET_TAXIING     BasicJetTaxiLocomotor
 End
End

;------------------------------------------------------------------------------
Object AuroraBomb
 ReplaceModule ModuleTag_01
  Draw = W3DModelDraw ModuleTag_01_Override
    DefaultConditionState
      Model = ExMsslTm
    End
  End
 End
 Scale = 1.50
End

;------------------------------------------------------------------------------
Object SupW_AuroraFuelAirBomb
 ReplaceModule ModuleTag_01
  Draw = W3DModelDraw ModuleTag_01_Override
    DefaultConditionState
      Model = ExMsslTm
    End
  End
 End
 Scale = 2.0
End

;------------------------------------------------------------------------------
PlayerTemplate FactionAmerica
  ProductionCostChange = AmericaJetAurora -40%
  ProductionCostChange = AirF_AmericaJetAurora -40%
  ProductionCostChange = Lazr_AmericaJetAurora -40%
  ProductionCostChange = Boss_JetAurora -40%
  ProductionTimeChange = AmericaJetAurora -17%
  ProductionTimeChange = AirF_AmericaJetAurora -17%
  ProductionTimeChange = Lazr_AmericaJetAurora -17%
  ProductionTimeChange = Boss_JetAurora -17%
End
;------------------------------------------------------------------------------
PlayerTemplate FactionChina
  ProductionCostChange = AmericaJetAurora -40%
  ProductionCostChange = AirF_AmericaJetAurora -40%
  ProductionCostChange = Lazr_AmericaJetAurora -40%
  ProductionCostChange = Boss_JetAurora -40%
  ProductionTimeChange = AmericaJetAurora -17%
  ProductionTimeChange = AirF_AmericaJetAurora -17%
  ProductionTimeChange = Lazr_AmericaJetAurora -17%
  ProductionTimeChange = Boss_JetAurora -17%
End
;------------------------------------------------------------------------------
PlayerTemplate FactionGLA
  ProductionCostChange = AmericaJetAurora -40%
  ProductionCostChange = AirF_AmericaJetAurora -40%
  ProductionCostChange = Lazr_AmericaJetAurora -40%
  ProductionCostChange = Boss_JetAurora -40%
  ProductionTimeChange = AmericaJetAurora -17%
  ProductionTimeChange = AirF_AmericaJetAurora -17%
  ProductionTimeChange = Lazr_AmericaJetAurora -17%
  ProductionTimeChange = Boss_JetAurora -17%
End
;------------------------------------------------------------------------------
PlayerTemplate FactionAmericaSuperWeaponGeneral
  ProductionCostChange = AmericaJetAurora -40%
  ProductionCostChange = AirF_AmericaJetAurora -40%
  ProductionCostChange = Lazr_AmericaJetAurora -40%
  ProductionCostChange = Boss_JetAurora -40%
  ProductionTimeChange = AmericaJetAurora -17%
  ProductionTimeChange = AirF_AmericaJetAurora -17%
  ProductionTimeChange = Lazr_AmericaJetAurora -17%
  ProductionTimeChange = Boss_JetAurora -17%
End
;------------------------------------------------------------------------------
PlayerTemplate FactionAmericaLaserGeneral
  ProductionCostChange = AmericaJetAurora -40%
  ProductionCostChange = AirF_AmericaJetAurora -40%
  ProductionCostChange = Lazr_AmericaJetAurora -40%
  ProductionCostChange = Boss_JetAurora -40%
  ProductionTimeChange = AmericaJetAurora -17%
  ProductionTimeChange = AirF_AmericaJetAurora -17%
  ProductionTimeChange = Lazr_AmericaJetAurora -17%
  ProductionTimeChange = Boss_JetAurora -17%
End
;------------------------------------------------------------------------------
PlayerTemplate FactionAmericaAirForceGeneral
  ProductionCostChange = AmericaJetAurora -40%
  ProductionCostChange = AirF_AmericaJetAurora -40%
  ProductionCostChange = Lazr_AmericaJetAurora -40%
  ProductionCostChange = Boss_JetAurora -40%
  ProductionTimeChange = AmericaJetAurora -17%
  ProductionTimeChange = AirF_AmericaJetAurora -17%
  ProductionTimeChange = Lazr_AmericaJetAurora -17%
  ProductionTimeChange = Boss_JetAurora -17%
End
;------------------------------------------------------------------------------
PlayerTemplate FactionChinaTankGeneral
  ProductionCostChange = AmericaJetAurora -40%
  ProductionCostChange = AirF_AmericaJetAurora -40%
  ProductionCostChange = Lazr_AmericaJetAurora -40%
  ProductionCostChange = Boss_JetAurora -40%
  ProductionTimeChange = AmericaJetAurora -17%
  ProductionTimeChange = AirF_AmericaJetAurora -17%
  ProductionTimeChange = Lazr_AmericaJetAurora -17%
  ProductionTimeChange = Boss_JetAurora -17%
End
;------------------------------------------------------------------------------
PlayerTemplate FactionChinaInfantryGeneral
  ProductionCostChange = AmericaJetAurora -40%
  ProductionCostChange = AirF_AmericaJetAurora -40%
  ProductionCostChange = Lazr_AmericaJetAurora -40%
  ProductionCostChange = Boss_JetAurora -40%
  ProductionTimeChange = AmericaJetAurora -17%
  ProductionTimeChange = AirF_AmericaJetAurora -17%
  ProductionTimeChange = Lazr_AmericaJetAurora -17%
  ProductionTimeChange = Boss_JetAurora -17%
End
;------------------------------------------------------------------------------
PlayerTemplate FactionChinaNukeGeneral
  ProductionCostChange = AmericaJetAurora -40%
  ProductionCostChange = AirF_AmericaJetAurora -40%
  ProductionCostChange = Lazr_AmericaJetAurora -40%
  ProductionCostChange = Boss_JetAurora -40%
  ProductionTimeChange = AmericaJetAurora -17%
  ProductionTimeChange = AirF_AmericaJetAurora -17%
  ProductionTimeChange = Lazr_AmericaJetAurora -17%
  ProductionTimeChange = Boss_JetAurora -17%
End
;------------------------------------------------------------------------------
PlayerTemplate FactionGLAToxinGeneral
  ProductionCostChange = AmericaJetAurora -40%
  ProductionCostChange = AirF_AmericaJetAurora -40%
  ProductionCostChange = Lazr_AmericaJetAurora -40%
  ProductionCostChange = Boss_JetAurora -40%
  ProductionTimeChange = AmericaJetAurora -17%
  ProductionTimeChange = AirF_AmericaJetAurora -17%
  ProductionTimeChange = Lazr_AmericaJetAurora -17%
  ProductionTimeChange = Boss_JetAurora -17%
End
;------------------------------------------------------------------------------
PlayerTemplate FactionGLADemolitionGeneral
  ProductionCostChange = AmericaJetAurora -40%
  ProductionCostChange = AirF_AmericaJetAurora -40%
  ProductionCostChange = Lazr_AmericaJetAurora -40%
  ProductionCostChange = Boss_JetAurora -40%
  ProductionTimeChange = AmericaJetAurora -17%
  ProductionTimeChange = AirF_AmericaJetAurora -17%
  ProductionTimeChange = Lazr_AmericaJetAurora -17%
  ProductionTimeChange = Boss_JetAurora -17%
End
;------------------------------------------------------------------------------
PlayerTemplate FactionGLAStealthGeneral
  ProductionCostChange = AmericaJetAurora -40%
  ProductionCostChange = AirF_AmericaJetAurora -40%
  ProductionCostChange = Lazr_AmericaJetAurora -40%
  ProductionCostChange = Boss_JetAurora -40%
  ProductionTimeChange = AmericaJetAurora -17%
  ProductionTimeChange = AirF_AmericaJetAurora -17%
  ProductionTimeChange = Lazr_AmericaJetAurora -17%
  ProductionTimeChange = Boss_JetAurora -17%
End
;------------------------------------------------------------------------------
PlayerTemplate FactionBossGeneral
  ProductionCostChange = AmericaJetAurora -40%
  ProductionCostChange = AirF_AmericaJetAurora -40%
  ProductionCostChange = Lazr_AmericaJetAurora -40%
  ProductionCostChange = Boss_JetAurora -40%
  ProductionTimeChange = AmericaJetAurora -17%
  ProductionTimeChange = AirF_AmericaJetAurora -17%
  ProductionTimeChange = Lazr_AmericaJetAurora -17%
  ProductionTimeChange = Boss_JetAurora -17%
End
xezon commented 1 year ago

AttackersMissPersistTime = 10 instead of AttackersMissPersistTime = 2000

Redmeow2

The explanation is about its short-term invulnerability after dropping the bomb but when value is less than 34 aurora starts taking damage even it has bomb. There seems to be a slight difference between 0 and 33. And yes it take more damage. But it doesn't seem like much difference to me.

Changing this settings makes the Aurora too weak in Hypersonic.

commy2 commented 1 year ago

33 msec the length of a frame at 30 FPS.

ImTimK commented 1 year ago

What I haven't highlighted yet is that the proposal is meant to rebalance SWG by the approach of buffing it early game and nerfing it late game. Which I believe is the way to go, however to be done subtly in order to preserve the factions identity and uniqueness.

ReLaX82 commented 1 year ago

https://youtu.be/oRd6akDSUh0

Just saw that vid.

I like the idea, but I don't like that it changes so much. Its very easy to kill and will potentially be less used to take out scuds or whatever buildings, only units in the front line.

Here is another idea: Implement an upgrade so that it will be as before with the upgrade and make a it a little harder to catch then the usual alphas in the first place. It can be an update on each AA which might be visible after the upgrade, so that everyone sees, which is in supersonic mode and which not.

This upgrade is maybe easier to say no to in such pro games instead of building an AA.

If that idea is not fine I am also on Exile's side to reduce fire power a little.

xezon commented 1 year ago

MEGAHUGEEWHOOPN:

I really like the latest suggestion by you(Relax) of an individual upgrade for the Alpha to bring it to its normal state(can not be killed when targeting).

'Implement an upgrade so that it will be as before with the upgrade and make a it a little harder to catch then the usual alphas in the first place. It can be an update on each AA which might be visible after the upgrade, so that everyone sees, which is in supersonic mode and which not.

This upgrade is maybe easier to say no to in such pro games instead of building an AA.'

If i remember correctly, 1.06 tried nerfing the AA and I was not a fan of it at all. This may be the best option for a change as with just some extra cash and a little time it is back to its high powered state.

xezon commented 1 year ago

I do not like this upgrade, because it would imply that the invulnerable behaviour is still desirable, when it should not be, because it allows to fly over an infinite amount of defenses.

xezon commented 1 year ago

Dominator:

I do not know the best answer here - yea Swg is weak early, and yes Swg owns late game. Killing 2-3 overlords at once is annoying.

But other generals are strong throughout the game, early mid and late game.

Maybe it is kinda good that one army is weak early and owns later. Aurora alphas and their crazy power output have a special place in this game

AlfieAcE commented 1 year ago

Hi guys. It's my first comment on Github and I've just made an account so go easy on me please lol 🙂 I think to leave it as it is. We all know how poor and vulnerable the Blond Bombshell, aka General Alexis is in early game and you have to be good to survive to the late game to get the benefits of the bad boy, AA's. If anything, I would drop V's down to at least $800 but I'm uncomfortable with changing the meta of this great game too much. Thanks.

Float1ngFree commented 6 months ago

There is a way to be able to hit aurora depending on how far away from the attacker it is. Doesn't work with lazers though, since their WeaponSpeed is ignored and the damage is dealt instantly.

The key here are 4 variables:

  1. Aurora's SneakyOffsetWhenAttacking - should be within Aurora's object radius
  2. Aurora's speed
  3. Attacking weapon's PrimaryDamageRadius - keep in mind that with 0 primary radius means "hits only intended victim and aurora's SneakyOffsetWhenAttacking we are hitting not the object, but the point. Therefore, it has to be > 0, a small logical value for a bullet.
  4. Attacking weapon's weapon(projectile) speed.

The main reason why we can't hit Aurora in attack mode is no because of "SneakyOffsetWhenAttacking", but due to most anti-air having "PrimaryDamageRadius = 0.0"!

No damage radius means that we hit only intended target, and in combination with SneakyOffsetWhenAttacking that means that our target is a point, not an object. You can change the SneakyOffsetWhenAttacking to 0 or positive (firing ahead) and you still won't hit it because of the PrimaryDamageRadius = 0.0.

It all changes when you introduce any PrimaryDamageRadius value that is > 0.0 -- as long as the damage is dealt within Aurora's object radius (aprox -15 < SneakyOffsetWhenAttacking < 15) it will get hit.

So now it becomes only a question of two speeds - Aurora's and the weapon that's attacking it.

Most AA weapons are set up to 999999, i.e. instant. If we want to be able to hit Aurora when it is, say, within 150 range, we calculate and reduce the AA weapon speed to appropriate value, so it will miss when Aurora is too far, but will hit when it is too close or above it.

The only weapon that cannot be manipulated like this is the Laser Turret and Avengers - they use laser objects that ignore weapon speed parameter and don't have locomotors.

To me, this is an answer on how to get rid of not only "guaranteed hit" nature of Aurora, but mainly the ability to circle right over endless amount of AA at minimal speed (we all saw that) and still not getting hit because of the attack mode.

xezon commented 6 months ago

Interesting findings. Let us say we were making changes to PrimaryDamageRadius of Anti Air weapons, what else would it affect, if anything?

Float1ngFree commented 6 months ago

Interesting findings. Let us say we were making changes to PrimaryDamageRadius of Anti Air weapons, what else would it affect, if anything?

Only the stacking of the planes/helicopters, but IMO that's how is should've been from the get go. With something like 0.25 radius that would need to be on top of each other. No harm, rather a fix.

Calculating the aurora/weapon speed on the other hand is the important part. Let's take Gattling Tank:

Given: Gattling Tank with 350 attack range. Aurora is flying @ 480/s = 4800/1000 = 0.48 distance point per ms. Aurora SneakyOffsetWhenAttacking = 3.0 (starts getting hit at ~15 points of offset due to its object radius)

When: If gat AA weapon speed is 7000

Obviously, if aurora moves slower - it will get hit sooner. This also depends on the weapon PrimaryDamageRadius you decide to go for at each AA unit. @xezon your Thyme Diagonal movement speed fix makes this a lot easier to calculate and balance.

Float1ngFree commented 6 months ago

The PrimaryDamageRadius is quite tricky since the object radius (geometry radius param?) of the object is quite larger than the model suggests, therefore some units can overlap even though they aren't stacked on what the 3D model would suggest.

I've noticed it with Lazr_PatriotMissileWeaponAir - the radius 3.0 doesn't seem much, but the resulting 6.0 diameter requires considerable Comanche spread to avoid splash damage.

Float1ngFree commented 5 months ago

As for the issue topic itself - Aurora Alpha's damage:

The answer always seemed obvious to me - it has to be a single, instant thermobaric explosion with some obvious tweaks (slower bomb speed, smaller primary/secondary radius).

Having 2 instances of damage as well as of two different types (Aurora Bomb + Explosion) always seemed OP and silly: either the bomb is exploding with thermobaric effect, or it's just a regular Aurora bomb, but not both and with same power. It just doesn't work that way.

This also addresses questions of balance and veterancy: https://github.com/TheSuperHackers/GeneralsGamePatch/issues/283

My tweaks: image

Produces smaller FX AirF_AuroraBombExplosion instantly & faster (from all of your changes).

This brings distinct differences vs regular Aurora:

But I recognize that this is probably not a solution for this project/patch as it drastically changes the expected behavior. Just wanted to share my thoughts on these 2 open issues.

xezon commented 5 months ago

Only the stacking of the planes/helicopters, but IMO that's how is should've been from the get go. With something like 0.25 radius that would need to be on top of each other. No harm, rather a fix.

Calculating the aurora/weapon speed on the other hand is the important part. Let's take Gattling Tank:

Given: Gattling Tank with 350 attack range. Aurora is flying @ 480/s = 4800/1000 = 0.48 distance point per ms. Aurora SneakyOffsetWhenAttacking = 3.0 (starts getting hit at ~15 points of offset due to its object radius)

When: If gat AA weapon speed is 7000

  • it misses on the max range -- takes 50 ms for damage to arrive (350/7000 = 0.05s), while Aurora has moved 0.48 * 50 = 24 units of distance + 3 units offset we were aiming at.

  • it starts hitting aurora when it comes into 175 range -- 175/7000 = 0.025s, 0.48 * 25 = 12 + 3 offset = 15 which is within Aurora's model.

Obviously, if aurora moves slower - it will get hit sooner. This also depends on the weapon PrimaryDamageRadius you decide to go for at each AA unit. @xezon your Thyme Diagonal movement speed fix makes this a lot easier to calculate and balance.

Did you verify that the calculations reflect accurately in the game? Does this kind of design make sense to you? If I understand this correctly, if would mean if the invulnerability was turned off, then hypersonic Aurora would be an instant kill as long as it flies close enough to the weapon. Is that right?

Would you be able to propose reasonable baseline values for Aurora and Quad/Gattling/Others?

Float1ngFree commented 5 months ago

Did you verify that the calculations reflect accurately in the game?

Its quite hard to set a target and calculate that out, rather on the contrary - it needs a number of test runs to make up a reasonable "feeling" of when aurora gets too close to gatt/quad and starts getting hit with their fire.

Besides, as I've mentioned, without Thyme parallel movement speed fix - it gets harder, increasing the max speed and therefore speed spread overall.

ATM I have all AA weapon speed set up to 3800 with Aurora's SneakyOffsetWhenAttacking of +3 (slightly ahead instead of behind). So it starts getting hit when within ~100-125 range, which is quite close, but that was the point. I'm in a testing stage right now for my project so I'll get a better idea of it & how much "feels" right.

Does this kind of design make sense to you?

Well, I'm working on my project so my hands are not tied by community opinion. But I wanted to share these findings for your team as I appreciate all the work that's been done here.

Full invulnerability is ridiculous, even factoring "trade" aspect. My implementation adds a quite hard counter to Aurora (Laser Turrents & Avengers), but even then it can destroy the counter with a direct hit, so it's a mutual destruction.

This definitely requires more skill & tactics in using Auroras, not only the return path, but the entry as well. Especially against Laser or Avengers. As a side effect, this increases demand for Laser Turrets & Avengers.

Lastly, it gives a fighting chance to Gatt/Quad, especially if they continue to move towards incoming Aurora.

If I understand this correctly, if would mean if the invulnerability was turned off, then hypersonic Aurora would be an instant kill as long as it flies close enough to the weapon. Is that right?

No, it is proximity based. When aurora is far from gatt/quad - it won't be hit in supersonic mode. When it get's too close (attempt to fly over) - it will, even at supersonic.

There's no such thing as "invulnerability" - even in base game you can kill aurora with some area damage (moab, nuke) while it is in attack mode. Aurora takes no damage from direct fire because "it makes anti-air fire at a point behind it" -- that's it.

After attack SneakyOffsetWhenAttacking persist for AttackersMissPersistTime specified time. BUT! Aurora itself will start slowing down after AttackLocomotorPersistTime. So even though AA units will continue to shoot "behind" Aurora - it will pull less and less from that point because it is slowing down. Then when the AttackersMissPersistTime expires AA units shoot at Aurora object itself.

Despite having low HP, due to high movement speed, it is still quite hard to ditch consistent damage due to AA turent rotation. So making a supersonic pass over a single Gatt will result in minor damage, but not if over a group.

Would you be able to propose reasonable baseline values for Aurora and Quad/Gattling/Others?

Try Gatt tank or cannon with 0.25 PrimaryDamageRadius and 3800 attack speed & fly over with Aurora in supersonic mode (force firing somewhere far back).

Set Aurora's SneakyOffsetWhenAttacking to 0.0 to get an initial feeling of it. But Aurora should start getting hit when damage is within <16 units off it due to its geometry size. So the offset needs to be less than 16. Tested with lasers)

Over all, should you really consider this solution (Auroras getting hit when too close) the first side effect that you need to be aware of for this is the fact that lasers will hit Aurora all the time. This is because they are instant and cannot be tweaked with weapon speed. In my case, I could do so that gatt/quad can hit, but avenger cannot. This just doesn't make sense. So I've settled that Laser Turrets and Avengers are direct counters.

xezon commented 5 months ago

Ok in principle it does not sound like bad design too me. So basically hypersonic Aurora can be shutdown, if it comes close enough to fast bullets shooting at it. I assume there will be a discrepancy between fast bullets and slow rockets, correct? Aka fast bullets will hit, but slow rockets will not hit? Or rockets may hit, because of larger splash damage?

So Lasers = 100% hit hypersonic Aurora Bullets = hit hypersonic Aurora in close proximity Rockets = do not hit hypersonic Aurora in close proximity (?)

Float1ngFree commented 5 months ago

Ok in principle it does not sound like bad design too me.

That was one of the goals of my project - get rid of "instant" bullet damage over medium and large distances. It is just not realistic, even considering game balancing.

Lasers hit instantly, shells & rockets take longer to hit, while bullets travel fast, but not instant. So I've tweaked all bullet weapons with 150+ range to hit with 2-3 frame delay. So the closer jets get to AA - the faster they start taking damage and vice versa. It's a minor difference (same amount of damage dealt anyways) but IMO it is important.

That's where I'm coming from and how I found this out.

So basically hypersonic Aurora can be shutdown, if it comes close enough to fast bullets shooting at it. I assume there will be a discrepancy between fast bullets and slow rockets, correct?

Yes, that is correct. The fast bullets AA are gatt/gatt_cannon & quad.

I've nerfed Mini gunners Air weapon to 5 dmg, 225 range and 2250 speed (100ms to hit) because I gave gattlig tank to Inf general at higher price. Minnigunners vs Air in original state was the dumbest thing in the game. They can still hit aurora but only briefly and when directly above.

All rockets will still miss - that remains the strength of Aurora. I have offset of +3 and they still end up far behind due to missiles' slow acceleration and speed relatively to Aurora.

Aka fast bullets will hit, but slow rockets will not hit? Or rockets may hit, because of larger splash damage?

Bullets will hit, correct. Missiles will miss unless aurora is directly above and there's a short Z-axis distance between them (sharp elevation) due to larger splash damage. That's what I'm trying to achieve with positive attack offset.

IMO it should definitely get hit when it stops and starts moving slowly but still in attack mode. Kinda what happens when you cancel the attack and order to hit something directly bellow.

So Lasers = 100% hit hypersonic Aurora Bullets = hit hypersonic Aurora in close proximity Rockets = do not hit hypersonic Aurora in close proximity (?)

Lasers - correct Bullets - correct Rockets - only when super close or slowed down too much. But in 98% - no hit.

This is all in supersonic mode (attacking). Otherwise - it is targeted at the object as any other airborne target.

Float1ngFree commented 5 months ago

@xezon some videos with quads having following weapon settings:

image

Aurora has SneakyOffsetWhenAttacking = 3.0

Diagonal passing:

https://github.com/TheSuperHackers/GeneralsGamePatch/assets/17320562/c73b3fa1-5633-4ce0-a4c4-f83345c07c0d

https://github.com/TheSuperHackers/GeneralsGamePatch/assets/17320562/b9c5a5d0-233c-4137-b318-c7b40d8cf3ae

First one gets less damage because Quads' turrets need to rotate and miss firing when Aurora passes right above them. Second get's more hits despite moving seemingly faster because of better rotation of Quad turrets - Aurora is flying right in from of their rotation window.

Horizontal - not a good example because again we are passing right above and turrets need to re-adjust, wasting time not firing:

https://github.com/TheSuperHackers/GeneralsGamePatch/assets/17320562/78ef307e-5e2f-47e6-8dfb-33e7d4aa6fa0

xezon commented 5 months ago

Looks promising.