From f066655bb7e58b627fd3a5476865aabfded7db4c Mon Sep 17 00:00:00 2001 From: Mustafa Alperen Seki Date: Fri, 12 Oct 2018 15:50:13 +0300 Subject: [PATCH] Rename CrateAction>Notification to Sound --- OpenRA.Mods.Common/OpenRA.Mods.Common.csproj | 1 + .../Traits/Crates/CrateAction.cs | 4 +- .../20180923/RenameCrateActionNotification.cs | 52 +++++++++++++++++++ 3 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 OpenRA.Mods.Common/UpdateRules/Rules/20180923/RenameCrateActionNotification.cs diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj index 5c3857ff11..caa07b1396 100644 --- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj +++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj @@ -587,6 +587,7 @@ + diff --git a/OpenRA.Mods.Common/Traits/Crates/CrateAction.cs b/OpenRA.Mods.Common/Traits/Crates/CrateAction.cs index 71fcf17a36..d437d009c7 100644 --- a/OpenRA.Mods.Common/Traits/Crates/CrateAction.cs +++ b/OpenRA.Mods.Common/Traits/Crates/CrateAction.cs @@ -27,7 +27,7 @@ namespace OpenRA.Mods.Common.Traits [PaletteReference] public readonly string Palette = "effect"; [Desc("Audio clip to play when the crate is collected.")] - public readonly string Notification = null; + public readonly string Sound = null; [Desc("The earliest time (in ticks) that this crate action can occur on.")] public readonly int TimeDelay = 0; @@ -75,7 +75,7 @@ namespace OpenRA.Mods.Common.Traits public virtual void Activate(Actor collector) { - Game.Sound.PlayToPlayer(SoundType.World, collector.Owner, Info.Notification); + Game.Sound.PlayToPlayer(SoundType.World, collector.Owner, Info.Sound); if (Info.Effect != null) collector.World.AddFrameEndTask(w => w.Add(new CrateEffect(collector, Info.Effect, Info.Palette))); diff --git a/OpenRA.Mods.Common/UpdateRules/Rules/20180923/RenameCrateActionNotification.cs b/OpenRA.Mods.Common/UpdateRules/Rules/20180923/RenameCrateActionNotification.cs new file mode 100644 index 0000000000..cc845002ed --- /dev/null +++ b/OpenRA.Mods.Common/UpdateRules/Rules/20180923/RenameCrateActionNotification.cs @@ -0,0 +1,52 @@ +#region Copyright & License Information +/* + * Copyright 2007-2018 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 System.Collections.Generic; + +namespace OpenRA.Mods.Common.UpdateRules.Rules +{ + public class RenameCrateActionNotification : UpdateRule + { + public override string Name { get { return "*CrateAction>Notification renamed to Sound"; } } + public override string Description + { + get + { + return "'*CrateAction' traits now have an actual `Notification` field.\n" + + "The new `Sound` field does what the old `Notification` did."; + } + } + + string[] traits = + { + "DuplicateUnitCrateAction", + "ExplodeCrateAction", + "GiveCashCrateAction", + "GiveMcvCrateAction", + "GiveUnitCrateAction", + "GrantExternalConditionCrateAction", + "HealUnitsCrateAction", + "HideMapCrateAction", + "LevelUpCrateAction", + "RevelMapCrateAction", + "SupportPowerCrateAction" + }; + + public override IEnumerable UpdateActorNode(ModData modData, MiniYamlNode actorNode) + { + foreach (var trait in traits) + foreach (var action in actorNode.ChildrenMatching(trait)) + action.RenameChildrenMatching("Notification", "Sound"); + + yield break; + } + } +}