diff --git a/OpenRA.Mods.Common/Traits/Player/ConquestVictoryConditions.cs b/OpenRA.Mods.Common/Traits/Player/ConquestVictoryConditions.cs index 1e65a037af..ebfd8df8a5 100644 --- a/OpenRA.Mods.Common/Traits/Player/ConquestVictoryConditions.cs +++ b/OpenRA.Mods.Common/Traits/Player/ConquestVictoryConditions.cs @@ -9,6 +9,7 @@ */ #endregion +using System.Drawing; using System.Linq; using OpenRA.Traits; @@ -22,6 +23,9 @@ namespace OpenRA.Mods.Common.Traits [Desc("Description of the objective.")] [Translate] public readonly string Objective = "Destroy all opposition!"; + [Desc("Disable the win/loss messages and audio notifications?")] + public readonly bool SuppressNotifications = false; + public object Create(ActorInitializer init) { return new ConquestVictoryConditions(init.Self, this); } } @@ -58,11 +62,13 @@ namespace OpenRA.Mods.Common.Traits public void OnPlayerLost(Player player) { - Game.Debug("{0} is defeated.", player.PlayerName); - foreach (var a in player.World.Actors.Where(a => a.Owner == player)) a.Kill(a); + if (info.SuppressNotifications) + return; + + Game.AddChatLine(Color.White, "Battlefield Control", player.PlayerName + " is defeated."); Game.RunAfterDelay(info.NotificationDelay, () => { if (Game.IsCurrentWorld(player.World) && player == player.World.LocalPlayer) @@ -72,8 +78,10 @@ namespace OpenRA.Mods.Common.Traits public void OnPlayerWon(Player player) { - Game.Debug("{0} is victorious.", player.PlayerName); + if (info.SuppressNotifications) + return; + Game.AddChatLine(Color.White, "Battlefield Control", player.PlayerName + " is victorious."); Game.RunAfterDelay(info.NotificationDelay, () => { if (Game.IsCurrentWorld(player.World) && player == player.World.LocalPlayer) diff --git a/OpenRA.Mods.Common/Traits/Player/StrategicVictoryConditions.cs b/OpenRA.Mods.Common/Traits/Player/StrategicVictoryConditions.cs index 0195500607..c3307df028 100644 --- a/OpenRA.Mods.Common/Traits/Player/StrategicVictoryConditions.cs +++ b/OpenRA.Mods.Common/Traits/Player/StrategicVictoryConditions.cs @@ -10,6 +10,7 @@ #endregion using System.Collections.Generic; +using System.Drawing; using System.Linq; using OpenRA.Traits; @@ -37,6 +38,9 @@ namespace OpenRA.Mods.Common.Traits [Desc("Description of the objective")] [Translate] public readonly string Objective = "Hold all the strategic positions!"; + [Desc("Disable the win/loss messages and audio notifications?")] + public readonly bool SuppressNotifications = false; + public object Create(ActorInitializer init) { return new StrategicVictoryConditions(init.Self, this); } } @@ -103,11 +107,13 @@ namespace OpenRA.Mods.Common.Traits public void OnPlayerLost(Player player) { - Game.Debug("{0} is defeated.", player.PlayerName); - foreach (var a in player.World.Actors.Where(a => a.Owner == player)) a.Kill(a); + if (info.SuppressNotifications) + return; + + Game.AddChatLine(Color.White, "Battlefield Control", player.PlayerName + " is defeated."); Game.RunAfterDelay(info.NotificationDelay, () => { if (Game.IsCurrentWorld(player.World) && player == player.World.LocalPlayer) @@ -117,8 +123,10 @@ namespace OpenRA.Mods.Common.Traits public void OnPlayerWon(Player player) { - Game.Debug("{0} is victorious.", player.PlayerName); + if (info.SuppressNotifications) + return; + Game.AddChatLine(Color.White, "Battlefield Control", player.PlayerName + " is victorious."); Game.RunAfterDelay(info.NotificationDelay, () => { if (Game.IsCurrentWorld(player.World) && player == player.World.LocalPlayer) diff --git a/OpenRA.Mods.Common/Widgets/UnitCommandWidget.cs b/OpenRA.Mods.Common/Widgets/UnitCommandWidget.cs index a904f31e1c..38103532b2 100644 --- a/OpenRA.Mods.Common/Widgets/UnitCommandWidget.cs +++ b/OpenRA.Mods.Common/Widgets/UnitCommandWidget.cs @@ -158,7 +158,7 @@ namespace OpenRA.Mods.Common.Widgets return new Order("SetUnitStance", a, false) { ExtraData = (uint)nextStance }; }); - Game.Debug("Unit stance set to: {0}".F(nextStance)); + Game.AddChatLine(Color.White, "Battlefield Control", "Unit stance set to: {0}".F(nextStance)); return true; } diff --git a/OpenRA.Mods.Common/Widgets/WorldInteractionControllerWidget.cs b/OpenRA.Mods.Common/Widgets/WorldInteractionControllerWidget.cs index e82c351a71..7ded7477b9 100644 --- a/OpenRA.Mods.Common/Widgets/WorldInteractionControllerWidget.cs +++ b/OpenRA.Mods.Common/Widgets/WorldInteractionControllerWidget.cs @@ -250,12 +250,12 @@ namespace OpenRA.Mods.Common.Widgets // Check if selecting actors on the screen has selected new units if (ownUnitsOnScreen.Count > World.Selection.Actors.Count()) - Game.Debug("Selected across screen"); + Game.AddChatLine(Color.White, "Battlefield Control", "Selected across screen"); else { // Select actors in the world that have highest selection priority ownUnitsOnScreen = SelectActorsInWorld(World, null, player).SubsetWithHighestSelectionPriority().ToList(); - Game.Debug("Selected across map"); + Game.AddChatLine(Color.White, "Battlefield Control", "Selected across map"); } World.Selection.Combine(World, ownUnitsOnScreen, false, false); @@ -276,12 +276,12 @@ namespace OpenRA.Mods.Common.Widgets // Check if selecting actors on the screen has selected new units if (newSelection.Count > World.Selection.Actors.Count()) - Game.Debug("Selected across screen"); + Game.AddChatLine(Color.White, "Battlefield Control", "Selected across screen"); else { // Select actors in the world that have the same selection class as one of the already selected actors newSelection = SelectActorsInWorld(World, selectedClasses, player).ToList(); - Game.Debug("Selected across map"); + Game.AddChatLine(Color.White, "Battlefield Control", "Selected across map"); } World.Selection.Combine(World, newSelection, true, false); @@ -369,12 +369,12 @@ namespace OpenRA.Mods.Common.Widgets if (Game.Settings.Sound.Mute) { Game.Sound.MuteAudio(); - Game.Debug("Audio muted"); + Game.AddChatLine(Color.White, "Battlefield Control", "Audio muted"); } else { Game.Sound.UnmuteAudio(); - Game.Debug("Audio unmuted"); + Game.AddChatLine(Color.White, "Battlefield Control", "Audio unmuted"); } return true;