TheSuperHackers / GeneralsGamePatch

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

Workers/Dozers should be allowed to interact with buildings despite the building needing a repair #1881

Open Battlefieldkille opened 1 year ago

Battlefieldkille commented 1 year ago

When a tunnel is damaged and a nearby worker is under attack, the worker has a choice to either repair the tunnel and die successfully hide in it or die flee somewhere else. Dozer is damaged and he needs to be repaired urgently at a war factory but the war factory is damaged too. I sure hope he fully repairs it and then repairs himself.

I always thought this was silly, so, could there be a way for workers/dozers to "force fire" whatever damaged building they need to interact with instead of just doing the mandatory repair?

MTKing4 commented 1 year ago

We could remove Repair Building from the default cursor and add it as a commandset, then it can be activated by a press of a button or a hotkey, that way all other activities like garrison or self repair will be the default cursors

The only issue is i don't think we have enough commandset slots for that unless we add second pages to all worker units

And the downside of it you won't be able to repair a building without pressing a button or a hotkey

xezon commented 1 year ago

Original regular unit control:

  1. Enter structure cursor by default
  2. Force attack cursor by CTRL modifier

Original worker unit control:

  1. Repair structure cursor when structure is damaged
  2. Enter structure cursor when structure is undamaged

Disadvantage: Single worker control is dependent on structure damage level.

Redesigned worker unit control:

  1. Enter structure cursor by default
  2. Repair structure cursor when structure is damaged and by CTRL modifier

Advantage: Full worker control over both actions. Consistent with regular units.

ImTimK commented 1 year ago

@Battlefieldkille Good report, this is an annoying problem indeed.

Redesigned worker unit control:

1. Enter structure cursor by default

2. Repair structure cursor when structure is damaged and by CTRL modifier

Advantage: Full worker control over both actions. Consistent with regular units.

Sounds like a perfect solution without downsides, basically force-repair.

Would it be necessary to have a tooltip about this somewhere though?

MTKing4 commented 1 year ago

Redesigned worker unit control:

  1. Enter structure cursor by default
  2. Repair structure cursor when structure is damaged and by CTRL modifier

That is a better idea indeed if possible

fastAiRR commented 1 year ago

the biggest problem with this is when you have an entire group selected and this symbol blocks like all of the workers. The symbol at the very least should be completely disabled if more then one worker is selected, or dozer watever.

ImTimK commented 1 year ago

the biggest problem with this is when you have an entire group selected and this symbol blocks like all of the workers. The symbol at the very least should be completely disabled if more then one worker is selected, or dozer watever.

Doesn't fully fix the problem though, because then you can't order a single dozer into the repair bay of a damaged war factory for example.

ImTimK commented 1 year ago

Hmmm there's actually one kinda balance problem when fixing this. Some maps have damaged buildings explicitly designed so that gla can't easily save his workers from early truck and dozer rushes, it makes a massive difference when it comes to taking map control.

kABUSE1 commented 1 year ago

Hmmm there's actually one kinda balance problem when fixing this. Some maps have damaged buildings explicitly designed so that gla can't easily save his workers from early truck and dozer rushes, it makes a massive difference when it comes to taking map control.

Damn that's a good point.

But I imagine this to only affect 1 or 2 custom maps? So I think this issue is overruled "for the greater good".

One way to fix these maps would be to have the buildings have 1% start health instead, so you need to repair them to 25(?)% before you can put your workers (or anything else) inside. I think this is also a lot more intuitive. Losing your workers due to engine limitations sounds hella annoying to me.

MTKing4 commented 1 year ago

Hmmm there's actually one kinda balance problem when fixing this. Some maps have damaged buildings explicitly designed so that gla can't easily save his workers from early truck and dozer rushes, it makes a massive difference when it comes to taking map control.

I don't like this mechanic, seems very faulty and unreliable way to balance a map, I'd rather have the fix applied and fix these faulty map designs instead. What are those maps btw?

ImTimK commented 1 year ago

Hmmm there's actually one kinda balance problem when fixing this. Some maps have damaged buildings explicitly designed so that gla can't easily save his workers from early truck and dozer rushes, it makes a massive difference when it comes to taking map control.

Damn that's a good point.

But I imagine this to only affect 1 or 2 custom maps? So I think this issue is overruled "for the greater good".

One way to fix these maps would be to have the buildings have 1% start health instead, so you need to repair them to 25(?)% before you can put your workers (or anything else) inside. I think this is also a lot more intuitive. Losing your workers due to engine limitations sounds hella annoying to me.

It will make gla stronger though.

Last point is true, but at the same time also boosts gla again, because sending workers to repair garrison buildings is pretty much risk-free compared to sending dozers. This will give gla a much easier time garrison buildings with rpgs.

xezon commented 1 year ago

I think this is splitting hairs. You can also say that being able to repair the critically damaged Dozer in the damaged Factory in time is a big boost for China and USA.

ImTimK commented 1 year ago

I think this is splitting hairs.

It is, would love to have better functionality.

But any balance implication, including the one you just mentioned, needs to be considered.