From 85feaf009117c15bffe393c165c195a2dc8ee2d6 Mon Sep 17 00:00:00 2001 From: abc013 Date: Tue, 30 Aug 2016 22:00:26 +0200 Subject: [PATCH] Fix mcv husks losing their faction after being captured --- OpenRA.Mods.Common/Traits/TransformOnCapture.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/TransformOnCapture.cs b/OpenRA.Mods.Common/Traits/TransformOnCapture.cs index 4f6830cceb..66d516ea21 100644 --- a/OpenRA.Mods.Common/Traits/TransformOnCapture.cs +++ b/OpenRA.Mods.Common/Traits/TransformOnCapture.cs @@ -20,19 +20,24 @@ namespace OpenRA.Mods.Common.Traits public readonly int ForceHealthPercentage = 0; public readonly bool SkipMakeAnims = true; - public virtual object Create(ActorInitializer init) { return new TransformOnCapture(this); } + public virtual object Create(ActorInitializer init) { return new TransformOnCapture(init, this); } } public class TransformOnCapture : INotifyCapture { readonly TransformOnCaptureInfo info; + readonly string faction; - public TransformOnCapture(TransformOnCaptureInfo info) { this.info = info; } + public TransformOnCapture(ActorInitializer init, TransformOnCaptureInfo info) + { + this.info = info; + faction = init.Contains() ? init.Get() : init.Self.Owner.Faction.InternalName; + } public void OnCapture(Actor self, Actor captor, Player oldOwner, Player newOwner) { var facing = self.TraitOrDefault(); - var transform = new Transform(self, info.IntoActor) { ForceHealthPercentage = info.ForceHealthPercentage }; + var transform = new Transform(self, info.IntoActor) { ForceHealthPercentage = info.ForceHealthPercentage, Faction = faction }; if (facing != null) transform.Facing = facing.Facing; transform.SkipMakeAnims = info.SkipMakeAnims; self.CancelActivity();