diff --git a/OpenRA.Mods.Common/Traits/Buildings/ProductionAirdrop.cs b/OpenRA.Mods.Common/Traits/Buildings/ProductionAirdrop.cs index 82409c46f8..6e312c41d7 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/ProductionAirdrop.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/ProductionAirdrop.cs @@ -87,7 +87,10 @@ namespace OpenRA.Mods.Common.Traits owner.World.AddFrameEndTask(w => { if (!self.IsInWorld || self.IsDead) + { + owner.PlayerActor.Trait().GiveCash(refundableValue); return; + } var actor = w.CreateActor(info.ActorType, new TypeDictionary { @@ -101,7 +104,10 @@ namespace OpenRA.Mods.Common.Traits actor.QueueActivity(new CallFunc(() => { if (!self.IsInWorld || self.IsDead) + { + owner.PlayerActor.Trait().GiveCash(refundableValue); return; + } foreach (var cargo in self.TraitsImplementing()) cargo.Delivered(self); diff --git a/OpenRA.Mods.Common/Traits/ProductionParadrop.cs b/OpenRA.Mods.Common/Traits/ProductionParadrop.cs index a5b3edbba2..1d116f5336 100644 --- a/OpenRA.Mods.Common/Traits/ProductionParadrop.cs +++ b/OpenRA.Mods.Common/Traits/ProductionParadrop.cs @@ -69,7 +69,10 @@ namespace OpenRA.Mods.Common.Traits owner.World.AddFrameEndTask(w => { if (!self.IsInWorld || self.IsDead) + { + owner.PlayerActor.Trait().GiveCash(refundableValue); return; + } var altitude = self.World.Map.Rules.Actors[actorType].TraitInfo().CruiseAltitude; var actor = w.CreateActor(actorType, new TypeDictionary @@ -83,7 +86,10 @@ namespace OpenRA.Mods.Common.Traits actor.QueueActivity(new CallFunc(() => { if (!self.IsInWorld || self.IsDead) + { + owner.PlayerActor.Trait().GiveCash(refundableValue); return; + } foreach (var cargo in self.TraitsImplementing()) cargo.Delivered(self);