add AffectOwnUnits flag to DetectCloaked
This commit is contained in:
@@ -27,6 +27,7 @@ namespace OpenRA.Traits
|
|||||||
public readonly int Interval = 12; // ~.5s
|
public readonly int Interval = 12; // ~.5s
|
||||||
public readonly float DecloakTime = 2f; // 2s
|
public readonly float DecloakTime = 2f; // 2s
|
||||||
public readonly int Range = 5;
|
public readonly int Range = 5;
|
||||||
|
public readonly bool AffectOwnUnits = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
class DetectCloaked : ITick
|
class DetectCloaked : ITick
|
||||||
@@ -41,8 +42,10 @@ namespace OpenRA.Traits
|
|||||||
ticks = info.Interval;
|
ticks = info.Interval;
|
||||||
|
|
||||||
var toDecloak = self.World.FindUnitsInCircle(self.CenterLocation, info.Range * Game.CellSize)
|
var toDecloak = self.World.FindUnitsInCircle(self.CenterLocation, info.Range * Game.CellSize)
|
||||||
.Where(a => a.traits.Contains<Cloak>())
|
.Where(a => a.traits.Contains<Cloak>());
|
||||||
.Where(a => self.Owner.Stances[a.Owner] != Stance.Ally);
|
|
||||||
|
if (!info.AffectOwnUnits)
|
||||||
|
toDecloak = toDecloak.Where(a => self.Owner.Stances[a.Owner] != Stance.Ally);
|
||||||
|
|
||||||
foreach (var a in toDecloak)
|
foreach (var a in toDecloak)
|
||||||
a.traits.Get<Cloak>().Decloak((int)(25 * info.DecloakTime));
|
a.traits.Get<Cloak>().Decloak((int)(25 * info.DecloakTime));
|
||||||
|
|||||||
Reference in New Issue
Block a user