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:
blackhand1001
2019-11-04 17:05:16 -05:00
committed by abcdefg30
parent a586f10875
commit 70b1df6ce7

View File

@@ -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))
{ {