Remove some duplication against WorldUtils.ClosestTo.
This commit is contained in:
@@ -150,7 +150,7 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
var enemies = world.Actors.Where(u => u.Owner == creeps && u.HasTrait<ITargetable>()
|
var enemies = world.Actors.Where(u => u.Owner == creeps && u.HasTrait<ITargetable>()
|
||||||
&& ((u.HasTrait<Building>() && !u.HasTrait<Wall>() && !u.HasTrait<Bridge>()) || u.HasTrait<Mobile>()) && !u.IsDead() && u.IsInWorld);
|
&& ((u.HasTrait<Building>() && !u.HasTrait<Wall>() && !u.HasTrait<Bridge>()) || u.HasTrait<Mobile>()) && !u.IsDead() && u.IsInWorld);
|
||||||
|
|
||||||
var enemy = enemies.OrderBy(u => (attacker.CenterPosition - u.CenterPosition).LengthSquared).FirstOrDefault();
|
var enemy = enemies.ClosestTo(attacker);
|
||||||
if (enemy != null)
|
if (enemy != null)
|
||||||
attacker.QueueActivity(new AttackMove.AttackMoveActivity(attacker, new Attack(Target.FromActor(enemy), WRange.FromCells(3))));
|
attacker.QueueActivity(new AttackMove.AttackMoveActivity(attacker, new Attack(Target.FromActor(enemy), WRange.FromCells(3))));
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -79,12 +79,11 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
{
|
{
|
||||||
var enemies = world.Actors.Where(u => u.IsInWorld && !u.IsDead() && (u.Owner == multi0)
|
var enemies = world.Actors.Where(u => u.IsInWorld && !u.IsDead() && (u.Owner == multi0)
|
||||||
&& ((u.HasTrait<Building>() && !u.HasTrait<Mobile>())));
|
&& ((u.HasTrait<Building>() && !u.HasTrait<Mobile>())));
|
||||||
var targetEnemy = enemies.OrderBy(u => (self.CenterPosition - u.CenterPosition).LengthSquared).FirstOrDefault();
|
|
||||||
|
var targetEnemy = enemies.ClosestTo(self);
|
||||||
if (targetEnemy != null)
|
if (targetEnemy != null)
|
||||||
{
|
|
||||||
self.QueueActivity(new AttackMove.AttackMoveActivity(self, new Attack(Target.FromActor(targetEnemy), WRange.FromCells(6))));
|
self.QueueActivity(new AttackMove.AttackMoveActivity(self, new Attack(Target.FromActor(targetEnemy), WRange.FromCells(6))));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
void SendVehicles()
|
void SendVehicles()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -212,7 +212,7 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
var enemies = self.World.Actors.Where(u => u.AppearsHostileTo(self) && u.Owner == enemyPlayer
|
var enemies = self.World.Actors.Where(u => u.AppearsHostileTo(self) && u.Owner == enemyPlayer
|
||||||
&& ((u.HasTrait<Building>() && !u.HasTrait<Wall>()) || (u.HasTrait<Mobile>() && !u.HasTrait<Aircraft>())) && u.IsInWorld && !u.IsDead());
|
&& ((u.HasTrait<Building>() && !u.HasTrait<Wall>()) || (u.HasTrait<Mobile>() && !u.HasTrait<Aircraft>())) && u.IsInWorld && !u.IsDead());
|
||||||
|
|
||||||
var enemy = enemies.OrderBy(u => (self.CenterPosition - u.CenterPosition).LengthSquared).FirstOrDefault();
|
var enemy = enemies.ClosestTo(self);
|
||||||
if (enemy != null)
|
if (enemy != null)
|
||||||
self.QueueActivity(queued, new AttackMove.AttackMoveActivity(self, new Attack(Target.FromActor(enemy), WRange.FromCells(3))));
|
self.QueueActivity(queued, new AttackMove.AttackMoveActivity(self, new Attack(Target.FromActor(enemy), WRange.FromCells(3))));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,8 +126,7 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
{
|
{
|
||||||
var bridge = world.Actors
|
var bridge = world.Actors
|
||||||
.Where(a => a.HasTrait<Bridge>() && !a.IsDead())
|
.Where(a => a.HasTrait<Bridge>() && !a.IsDead())
|
||||||
.OrderBy(a => (startJeep.CenterPosition - a.CenterPosition).LengthSquared)
|
.ClosestTo(startJeep);
|
||||||
.First();
|
|
||||||
Combat.DoExplosion(bridge, "Demolish", bridge.CenterPosition);
|
Combat.DoExplosion(bridge, "Demolish", bridge.CenterPosition);
|
||||||
world.WorldActor.Trait<ScreenShaker>().AddEffect(15, bridge.CenterPosition, 6);
|
world.WorldActor.Trait<ScreenShaker>().AddEffect(15, bridge.CenterPosition, 6);
|
||||||
bridge.Kill(bridge);
|
bridge.Kill(bridge);
|
||||||
|
|||||||
@@ -211,12 +211,11 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
{
|
{
|
||||||
var enemies = world.Actors.Where(u => u.IsInWorld && !u.IsDead() && (u.Owner == allies)
|
var enemies = world.Actors.Where(u => u.IsInWorld && !u.IsDead() && (u.Owner == allies)
|
||||||
&& ((u.HasTrait<Building>() && !u.HasTrait<Wall>()) || u.HasTrait<Mobile>()));
|
&& ((u.HasTrait<Building>() && !u.HasTrait<Wall>()) || u.HasTrait<Mobile>()));
|
||||||
var targetEnemy = enemies.OrderBy(u => (self.CenterPosition - u.CenterPosition).LengthSquared).FirstOrDefault();
|
|
||||||
|
var targetEnemy = enemies.ClosestTo(self);
|
||||||
if (targetEnemy != null)
|
if (targetEnemy != null)
|
||||||
{
|
|
||||||
self.QueueActivity(new AttackMove.AttackMoveActivity(self, new Attack(Target.FromActor(targetEnemy), WRange.FromCells(3))));
|
self.QueueActivity(new AttackMove.AttackMoveActivity(self, new Attack(Target.FromActor(targetEnemy), WRange.FromCells(3))));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
void ManageSovietUnits()
|
void ManageSovietUnits()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user