Merge pull request #11926 from abc013/JamsRadarStances
Added diplomatic stances to JamsRadar
This commit is contained in:
@@ -14,11 +14,24 @@ using OpenRA.Traits;
|
|||||||
namespace OpenRA.Mods.Common.Traits.Radar
|
namespace OpenRA.Mods.Common.Traits.Radar
|
||||||
{
|
{
|
||||||
[Desc("When an actor with this trait is in range of an actor with ProvidesRadar, it will temporarily disable the radar minimap for the enemy player.")]
|
[Desc("When an actor with this trait is in range of an actor with ProvidesRadar, it will temporarily disable the radar minimap for the enemy player.")]
|
||||||
public class JamsRadarInfo : TraitInfo<JamsRadar>
|
public class JamsRadarInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
[Desc("Range for jamming.")]
|
[Desc("Range for jamming.")]
|
||||||
public readonly WDist Range = WDist.Zero;
|
public readonly WDist Range = WDist.Zero;
|
||||||
|
|
||||||
|
[Desc("Which diplomatic stances are affected.")]
|
||||||
|
public readonly Stance Stances = Stance.Enemy | Stance.Neutral;
|
||||||
|
|
||||||
|
public object Create(ActorInitializer init) { return new JamsRadar(this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class JamsRadar { }
|
public class JamsRadar
|
||||||
|
{
|
||||||
|
public readonly JamsRadarInfo Info;
|
||||||
|
|
||||||
|
public JamsRadar(JamsRadarInfo info)
|
||||||
|
{
|
||||||
|
Info = info;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,9 +28,8 @@ namespace OpenRA.Mods.Common.Traits.Radar
|
|||||||
// Check if powered
|
// Check if powered
|
||||||
if (self.IsDisabled()) return false;
|
if (self.IsDisabled()) return false;
|
||||||
|
|
||||||
return self.World.ActorsWithTrait<JamsRadar>().All(a => a.Actor.Owner.Stances[self.Owner] == Stance.Ally
|
return self.World.ActorsWithTrait<JamsRadar>().All(a => !a.Trait.Info.Stances.HasStance(a.Actor.Owner.Stances[self.Owner])
|
||||||
|| (self.CenterPosition - a.Actor.CenterPosition).HorizontalLengthSquared
|
|| (self.CenterPosition - a.Actor.CenterPosition).HorizontalLengthSquared > a.Trait.Info.Range.LengthSquared);
|
||||||
> a.Actor.Info.TraitInfo<JamsRadarInfo>().Range.LengthSquared);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user