diff --git a/OpenRA.Mods.Common/Traits/Cloak.cs b/OpenRA.Mods.Common/Traits/Cloak.cs index 4a2640f12a..00a8e3d2a4 100644 --- a/OpenRA.Mods.Common/Traits/Cloak.cs +++ b/OpenRA.Mods.Common/Traits/Cloak.cs @@ -112,7 +112,7 @@ namespace OpenRA.Mods.Common.Traits public class Cloak : PausableConditionalTrait, IRenderModifier, INotifyDamage, INotifyUnloadCargo, INotifyLoadCargo, INotifyDemolition, INotifyInfiltration, - INotifyAttack, ITick, IVisibilityModifier, IRadarColorModifier, INotifyDockClient, INotifySupportPower + INotifyAttack, ITick, IVisibilityModifier, IRadarColorModifier, INotifyDockClient, INotifyDockHost, INotifySupportPower { readonly float3 cloakedColor; readonly float cloakedColorAlpha; @@ -324,6 +324,21 @@ namespace OpenRA.Mods.Common.Traits isDocking = false; } + void INotifyDockHost.Docked(Actor self, Actor client) + { + if (Info.UncloakOn.HasFlag(UncloakType.Dock)) + { + isDocking = true; + Uncloak(); + } + } + + void INotifyDockHost.Undocked(Actor self, Actor client) + { + if (Info.UncloakOn.HasFlag(UncloakType.Dock)) + isDocking = false; + } + void INotifyLoadCargo.Loading(Actor self) { if (Info.UncloakOn.HasFlag(UncloakType.Load))