Change Squad.IsEmpty -> IsValid.

This commit is contained in:
Paul Chote
2013-08-24 10:29:00 +12:00
parent fd311502f5
commit 233ba81976
6 changed files with 28 additions and 18 deletions

View File

@@ -483,7 +483,7 @@ namespace OpenRA.Mods.RA.AI
void CleanSquads() void CleanSquads()
{ {
squads.RemoveAll(s => s.IsEmpty); squads.RemoveAll(s => !s.IsValid);
foreach (var s in squads) foreach (var s in squads)
s.units.RemoveAll(a => a.Destroyed || a.IsDead()); s.units.RemoveAll(a => a.Destroyed || a.IsDead());
} }
@@ -647,7 +647,7 @@ namespace OpenRA.Mods.RA.AI
if (!protectSq.TargetIsValid) if (!protectSq.TargetIsValid)
protectSq.Target = attacker; protectSq.Target = attacker;
if (protectSq.IsEmpty) if (!protectSq.IsValid)
{ {
var ownUnits = world.FindActorsInCircle(baseCenter.CenterPosition, WRange.FromCells(15)) var ownUnits = world.FindActorsInCircle(baseCenter.CenterPosition, WRange.FromCells(15))
.Where(unit => unit.Owner == p && !unit.HasTrait<Building>() .Where(unit => unit.Owner == p && !unit.HasTrait<Building>()

View File

@@ -61,14 +61,11 @@ namespace OpenRA.Mods.RA.AI
public void Update() public void Update()
{ {
if (IsEmpty) return; if (IsValid)
fsm.Update(this); fsm.Update(this);
} }
public bool IsEmpty public bool IsValid { get { return units.Any(); } }
{
get { return !units.Any(); }
}
public Actor Target public Actor Target
{ {

View File

@@ -151,7 +151,8 @@ namespace OpenRA.Mods.RA.AI
public void Tick(Squad owner) public void Tick(Squad owner)
{ {
if (owner.IsEmpty) return; if (!owner.IsValid)
return;
if (MayBeFlee(owner)) if (MayBeFlee(owner))
{ {
@@ -178,7 +179,8 @@ namespace OpenRA.Mods.RA.AI
public void Tick(Squad owner) public void Tick(Squad owner)
{ {
if (owner.IsEmpty) return; if (!owner.IsValid)
return;
if (!owner.TargetIsValid) if (!owner.TargetIsValid)
{ {
@@ -229,7 +231,8 @@ namespace OpenRA.Mods.RA.AI
public void Tick(Squad owner) public void Tick(Squad owner)
{ {
if (owner.IsEmpty) return; if (!owner.IsValid)
return;
foreach (var a in owner.units) foreach (var a in owner.units)
{ {

View File

@@ -35,7 +35,9 @@ namespace OpenRA.Mods.RA.AI
public void Tick(Squad owner) public void Tick(Squad owner)
{ {
if (owner.IsEmpty) return; if (!owner.IsValid)
return;
if (!owner.TargetIsValid) if (!owner.TargetIsValid)
{ {
var t = owner.bot.FindClosestEnemy(owner.units.FirstOrDefault().CenterPosition); var t = owner.bot.FindClosestEnemy(owner.units.FirstOrDefault().CenterPosition);
@@ -71,7 +73,8 @@ namespace OpenRA.Mods.RA.AI
public void Tick(Squad owner) public void Tick(Squad owner)
{ {
if (owner.IsEmpty) return; if (!owner.IsValid)
return;
if (!owner.TargetIsValid) if (!owner.TargetIsValid)
{ {
@@ -128,7 +131,8 @@ namespace OpenRA.Mods.RA.AI
public void Tick(Squad owner) public void Tick(Squad owner)
{ {
if (owner.IsEmpty) return; if (!owner.IsValid)
return;
if (!owner.TargetIsValid) if (!owner.TargetIsValid)
{ {
@@ -161,7 +165,8 @@ namespace OpenRA.Mods.RA.AI
public void Tick(Squad owner) public void Tick(Squad owner)
{ {
if (owner.IsEmpty) return; if (!owner.IsValid)
return;
GoToRandomOwnBuilding(owner); GoToRandomOwnBuilding(owner);
owner.fsm.ChangeState(owner, new GroundUnitsIdleState(), true); owner.fsm.ChangeState(owner, new GroundUnitsIdleState(), true);

View File

@@ -27,7 +27,9 @@ namespace OpenRA.Mods.RA.AI
public void Tick(Squad owner) public void Tick(Squad owner)
{ {
if (owner.IsEmpty) return; if (!owner.IsValid)
return;
if (!owner.TargetIsValid) if (!owner.TargetIsValid)
{ {
var circaPostion = AverageUnitsPosition(owner.units); var circaPostion = AverageUnitsPosition(owner.units);
@@ -53,7 +55,8 @@ namespace OpenRA.Mods.RA.AI
public void Tick(Squad owner) public void Tick(Squad owner)
{ {
if (owner.IsEmpty) return; if (!owner.IsValid)
return;
GoToRandomOwnBuilding(owner); GoToRandomOwnBuilding(owner);
owner.fsm.ChangeState(owner, new UnitsForProtectionIdleState(), true); owner.fsm.ChangeState(owner, new UnitsForProtectionIdleState(), true);

View File

@@ -28,7 +28,9 @@ namespace OpenRA.Mods.RA.AI
protected virtual bool MayBeFlee(Squad owner, Func<List<Actor>, bool> flee) protected virtual bool MayBeFlee(Squad owner, Func<List<Actor>, bool> flee)
{ {
if (owner.IsEmpty) return false; if (!owner.IsValid)
return false;
var u = owner.units.Random(owner.random); var u = owner.units.Random(owner.random);
var units = owner.world.FindActorsInCircle(u.CenterPosition, WRange.FromCells(dangerRadius)).ToList(); var units = owner.world.FindActorsInCircle(u.CenterPosition, WRange.FromCells(dangerRadius)).ToList();