Prevent infiltrating allied targets unless explicitly set.

This commit is contained in:
Zimmermann Gyula
2015-08-20 17:05:25 +02:00
parent 20193f086f
commit 3670c003a4
2 changed files with 49 additions and 6 deletions

View File

@@ -10,6 +10,7 @@
using OpenRA.Mods.Common.Activities;
using OpenRA.Mods.Common.Traits;
using OpenRA.Mods.RA.Traits;
using OpenRA.Traits;
namespace OpenRA.Mods.RA.Activities
@@ -20,17 +21,25 @@ namespace OpenRA.Mods.RA.Activities
readonly Cloak cloak;
readonly Infiltrates infiltrates;
public Infiltrate(Actor self, Actor target)
: base(self, target)
{
this.target = target;
cloak = self.TraitOrDefault<Cloak>();
infiltrates = self.TraitOrDefault<Infiltrates>();
}
protected override void OnInside(Actor self)
{
if (target.IsDead || target.Owner == self.Owner)
if (target.IsDead)
return;
var stance = self.Owner.Stances[target.Owner];
if (!infiltrates.Info.ValidStances.HasStance(stance))
return;
if (cloak != null && cloak.Info.UncloakOnInfiltrate)