diff --git a/OpenRA.Mods.RA/BuildingCaptureNotification.cs b/OpenRA.Mods.RA/BuildingCaptureNotification.cs new file mode 100644 index 0000000000..48f6f6387a --- /dev/null +++ b/OpenRA.Mods.RA/BuildingCaptureNotification.cs @@ -0,0 +1,42 @@ +#region Copyright & License Information +/* + * Copyright 2007-2010 The OpenRA Developers (see AUTHORS) + * This file is part of OpenRA, which is free software. It is made + * available to you under the terms of the GNU General Public License + * as published by the Free Software Foundation. For more information, + * see LICENSE. + */ +#endregion + +using OpenRA.Traits; +namespace OpenRA.Mods.RA +{ + class CaptureNotificationInfo : ITraitInfo + { + public readonly string Race = null; + public readonly string Notification = null; + + public object Create(ActorInitializer init) { return new CaptureNotification(this); } + } + + class CaptureNotification : INotifyCapture + { + CaptureNotificationInfo Info; + public CaptureNotification(CaptureNotificationInfo info) + { + Info = info; + } + + public void OnCapture (Actor self, Actor captor, Player oldOwner, Player newOwner) + { + if (captor.World.LocalPlayer != captor.Owner) + return; + + if (Info.Race != null && Info.Race != oldOwner.Country.Race) + return; + + Sound.PlayToPlayer(captor.World.LocalPlayer, Info.Notification); + } + } +} +