Fix squadmanager adding naval units to ground attack forces.
Fix squadmanager adding naval units to ground attack forces. This was breaking the behavior of both naval and ground squads.
This commit is contained in:
@@ -263,7 +263,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
var attackForce = RegisterNewSquad(bot, SquadType.Assault);
|
var attackForce = RegisterNewSquad(bot, SquadType.Assault);
|
||||||
|
|
||||||
foreach (var a in unitsHangingAroundTheBase)
|
foreach (var a in unitsHangingAroundTheBase)
|
||||||
if (!a.Info.HasTraitInfo<AircraftInfo>())
|
if (!a.Info.HasTraitInfo<AircraftInfo>() && !Info.NavalUnitsTypes.Contains(a.Info.Name))
|
||||||
attackForce.Units.Add(a);
|
attackForce.Units.Add(a);
|
||||||
|
|
||||||
unitsHangingAroundTheBase.Clear();
|
unitsHangingAroundTheBase.Clear();
|
||||||
@@ -279,7 +279,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
// TODO: This should use common names & ExcludeFromSquads instead of hardcoding TraitInfo checks
|
// TODO: This should use common names & ExcludeFromSquads instead of hardcoding TraitInfo checks
|
||||||
var ownUnits = activeUnits
|
var ownUnits = activeUnits
|
||||||
.Where(unit => unit.IsIdle && unit.Info.HasTraitInfo<AttackBaseInfo>()
|
.Where(unit => unit.IsIdle && unit.Info.HasTraitInfo<AttackBaseInfo>()
|
||||||
&& !unit.Info.HasTraitInfo<AircraftInfo>() && !unit.Info.HasTraitInfo<HarvesterInfo>()).ToList();
|
&& !unit.Info.HasTraitInfo<AircraftInfo>() && !Info.NavalUnitsTypes.Contains(unit.Info.Name) && !unit.Info.HasTraitInfo<HarvesterInfo>()).ToList();
|
||||||
|
|
||||||
if (!allEnemyBaseBuilder.Any() || ownUnits.Count < Info.SquadSize)
|
if (!allEnemyBaseBuilder.Any() || ownUnits.Count < Info.SquadSize)
|
||||||
return;
|
return;
|
||||||
@@ -288,7 +288,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
// Don't rush enemy aircraft!
|
// Don't rush enemy aircraft!
|
||||||
var enemies = World.FindActorsInCircle(b.CenterPosition, WDist.FromCells(Info.RushAttackScanRadius))
|
var enemies = World.FindActorsInCircle(b.CenterPosition, WDist.FromCells(Info.RushAttackScanRadius))
|
||||||
.Where(unit => IsEnemyUnit(unit) && unit.Info.HasTraitInfo<AttackBaseInfo>() && !unit.Info.HasTraitInfo<AircraftInfo>()).ToList();
|
.Where(unit => IsEnemyUnit(unit) && unit.Info.HasTraitInfo<AttackBaseInfo>() && !unit.Info.HasTraitInfo<AircraftInfo>() && !Info.NavalUnitsTypes.Contains(unit.Info.Name)).ToList();
|
||||||
|
|
||||||
if (AttackOrFleeFuzzy.Rush.CanAttack(ownUnits, enemies))
|
if (AttackOrFleeFuzzy.Rush.CanAttack(ownUnits, enemies))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user