TheSuperHackers / GeneralsGamePatch

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

China Horde bonus is not activated with garrisoned units in proximity #1630

Open xezon opened 1 year ago

xezon commented 1 year ago

China Horde bonus is not activated with garrisoned units in proximity.

Setup

  Behavior = HordeUpdate ModuleTag_06
    RubOffRadius = 60    ; if I am this close to a real hordesman, I will get to be an honorary hordesman
    UpdateRate = 1000    ; how often to recheck horde status (msec)
    Radius = 30          ; how close other units must be to us to count towards our horde-ness (~30 feet or so)
    KindOf = INFANTRY    ; what KindOf's must match to count towards horde-ness
    AlliesOnly = Yes     ; do we only count allies towards horde status?
    ExactMatch = No      ; do we only count units of our exact same type towards horde status? (overrides kindof)
    Count = 5            ; how many units must be within Radius to grant us horde-ness
    Action = HORDE       ; when horde-ing, grant us the HORDE bonus
  End

All Options

  Behavior HordeUpdate
    UpdateRate
    KindOf
    Count
    Radius
    RubOffRadius
    AlliesOnly
    ExactMatch
    Action
    FlagSubObjectNames
    AllowedNationalism
xezon commented 1 year ago

Fixing this issue would make all China Generals, but especially Infantry General stronger, because 5+ Tank Hunters loaded in Outpost and Helix would always have Horde bonus.

Currently, China needs to carefully garrison to carry Horde bonus into the garrison.

Stubbjax commented 1 year ago

This could effectively serve as a counterbalance to offset fixing the fire rate bonus described in #1629.

In 1.04, you have an Outpost with 3 guys and add another 2 guys, and they all fire with the default +25% rate of fire.

If the default +25% fire rate is fixed / removed and the garrison horde calculation is fixed, then adding the extra 2 guys will apply horde and reapply that lost +25% fire rate.

penfriendz commented 1 year ago

I don't think this makes inf/china stronger. Anyone who knows about this behaviour uses it. If anything, it might make china weaker. Consider the following situation which I daresay is common: You have an outpost with 4 tank hunters and 1 minigunner. They were loaded horded. You come up against a missile defender. You unload your minigunner and continue driving your outpost around with full horde bonus despite having 4 tank hunters only.

The reverse never adds any benefit for people who know the behaviour.

penfriendz commented 1 year ago

For context, I want to add my thoughts on why I think this is an issue. It's because this issue is a major noob punisher and a barrier to entry. Even many players who are otherwise fairly decent mechanically don't know about this. It's not transparent.

xezon commented 1 year ago

What is the expected behaviour?

Method 1

Units will Horde in close proximity outside garrisons as is. Units will also Horde inside the same garrison. Troops inside garrisons will not Horde with outsiders and vice versa.

Method 2

Troops will Horde in close proximity outside garrisons as is. Troops inside garrisons will also Horde with outsiders and vice versa.

Method 2 would grant more opportunities to Horde than Method 1. For example two Infantry Outposts next to each other could already Horde.

penfriendz commented 1 year ago

Good question.

If we implement either method, it's important to notice that this is a nerf, not buff, to China. This is because players who know this mechanic can create outposts of less than 5 infantry but still with a quasi-permanent horde bonus.

Method 3 (consistency with old behaviour) Have horde activate in a transport/building with >=5 infantry and never deactivate. Pros: keeps current behaviour, keeps pro same and buffs noobs. Cons: this feels wrong.

Despite me suggesting this I probably prefer method 1 or 2.

Stubbjax commented 1 year ago

players who know this mechanic can create outposts of less than 5 infantry but still with a quasi-permanent horde bonus.

For all intents and purposes this can be effectively considered an exploit.

What is the expected behaviour?

I prefer method 1 because it aligns with the original design, is the most intuitive, is closer to existing gameplay and is what players likely already expect to be the case.

xezon commented 1 year ago

I also think Method 1 is reasonable.

MTKing4 commented 1 year ago

Is any of this achievable with INI?

Stubbjax commented 1 year ago

Is any of this achievable with INI?

Executable, unfortunately.