Files
OpenRA/OpenRA.Mods.Common/Traits/Sound/CaptureNotification.cs
abcdefg30 c8cfb10ab1 Reduce the usage of different ways to determine the new owner
We don't need the LocalPlayer check if we only play the sound to the new owner,
and captor.Owner == newOwner in this case.
2016-04-17 15:26:53 +02:00

39 lines
1.2 KiB
C#

#region Copyright & License Information
/*
* Copyright 2007-2016 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, either version 3 of
* the License, or (at your option) any later version. For more
* information, see COPYING.
*/
#endregion
using OpenRA.Traits;
namespace OpenRA.Mods.Common.Traits.Sound
{
public class CaptureNotificationInfo : ITraitInfo
{
public readonly string Notification = "BuildingCaptured";
public readonly bool NewOwnerVoice = true;
public object Create(ActorInitializer init) { return new CaptureNotification(this); }
}
public class CaptureNotification : INotifyCapture
{
readonly CaptureNotificationInfo info;
public CaptureNotification(CaptureNotificationInfo info)
{
this.info = info;
}
public void OnCapture(Actor self, Actor captor, Player oldOwner, Player newOwner)
{
var faction = info.NewOwnerVoice ? newOwner.Faction.InternalName : oldOwner.Faction.InternalName;
Game.Sound.PlayNotification(self.World.Map.Rules, newOwner, "Speech", info.Notification, faction);
}
}
}