From 6cedc424edb5355a807f8c028f58def5896301b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Thu, 21 Mar 2013 17:36:10 +0100 Subject: [PATCH] dump the actor the unit tried to retiliate against to syncreport --- OpenRA.Mods.RA/AutoTarget.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/OpenRA.Mods.RA/AutoTarget.cs b/OpenRA.Mods.RA/AutoTarget.cs index 5b0a380807..552473e420 100644 --- a/OpenRA.Mods.RA/AutoTarget.cs +++ b/OpenRA.Mods.RA/AutoTarget.cs @@ -37,6 +37,7 @@ namespace OpenRA.Mods.RA public UnitStance stance; [Sync] public int stanceNumber { get { return (int)stance; } } public UnitStance predictedStance; /* NOT SYNCED: do not refer to this anywhere other than UI code */ + [Sync] public int AggressorID; public AutoTarget(Actor self, AutoTargetInfo info) { @@ -68,6 +69,8 @@ namespace OpenRA.Mods.RA if (e.Damage < 0) return; // don't retaliate against healers + AggressorID = (int)e.Attacker.ActorID; + attack.AttackTarget(Target.FromActor(e.Attacker), false, Info.AllowMovement && stance != UnitStance.Defend); } @@ -134,4 +137,16 @@ namespace OpenRA.Mods.RA [Desc("Will not get automatically targeted by enemy (like walls)")] class AutoTargetIgnoreInfo : TraitInfo { } class AutoTargetIgnore { } + + public class DebugRetiliateAgainstAggressorInfo : ITraitInfo, Requires + { + public object Create(ActorInitializer init) { return new DebugRetiliateAgainstAggressor(init.self); } + } + + public class DebugRetiliateAgainstAggressor : ISync + { + readonly AutoTarget a; + public DebugRetiliateAgainstAggressor(Actor self){ a = self.Trait(); } + [Sync] public int Aggressor { get { return a.AggressorID; } } + } }