diff --git a/OpenRA.Mods.Common/Traits/Cargo.cs b/OpenRA.Mods.Common/Traits/Cargo.cs index f82bf2bd40..6ccc41ca6d 100644 --- a/OpenRA.Mods.Common/Traits/Cargo.cs +++ b/OpenRA.Mods.Common/Traits/Cargo.cs @@ -142,6 +142,19 @@ namespace OpenRA.Mods.Common.Traits { aircraft = self.TraitOrDefault(); conditionManager = self.TraitOrDefault(); + + if (conditionManager != null && cargo.Any()) + { + foreach (var c in cargo) + { + string passengerCondition; + if (Info.PassengerConditions.TryGetValue(c.Info.Name, out passengerCondition)) + passengerTokens.GetOrAdd(c.Info.Name).Push(conditionManager.GrantCondition(self, passengerCondition)); + } + + if (!string.IsNullOrEmpty(Info.LoadedCondition)) + loadedTokens.Push(conditionManager.GrantCondition(self, Info.LoadedCondition)); + } } static int GetWeight(Actor a) { return a.Info.TraitInfo().Weight; }