Remove get attack activities from the AttackBase and the derivatives.
AttackController returns the activities.
AttackController takes charge of all the firing control of the unit.
Attack activity:
Target in range? y/n
y: fire all that can fire.
If not in range
if the actor can't move at all (static actor), drop target
If the actor can move,
move into range, with the longest range weapon that works on target.
For each weapon in range:
Does body need to turn?
Does turret need to turn?
These can be done simultaneously with multiple child activities but let the body turn first so that turning of the body will turn the turret passively, then the turret can rotate even more on top of that action.
Attack move, guard, attack follow...?
ORA can handle this seamlessly if I implement attack?
Targets Hunt.cs, GI deploy https://github.com/OpenRA/OpenRA/issues/12738 https://github.com/OpenRA/OpenRA/pull/13716 https://github.com/OpenRA/OpenRA/pull/13687
Attack activity:
For each weapon in range:
Attack move, guard, attack follow...?