From 5344e60e3d639e4f85dc06bf536fa7ed7677e2a3 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Fri, 23 Jul 2010 22:44:48 +1200 Subject: [PATCH] Forgot a file --- OpenRA.Mods.RA/BuildingCaptureNotification.cs | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 OpenRA.Mods.RA/BuildingCaptureNotification.cs 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); + } + } +} +