Extract text feedback messages.

This commit is contained in:
Matthias Mailänder
2023-08-19 13:03:15 +02:00
committed by Gustas
parent 94c8339e17
commit c609c4af14
77 changed files with 521 additions and 274 deletions

View File

@@ -22,6 +22,9 @@ namespace OpenRA.Network
{
const OrderPacket ClientDisconnected = null;
[TranslationReference("frame")]
const string DesyncCompareLogs = "notification-desync-compare-logs";
readonly SyncReport syncReport;
readonly Dictionary<int, Queue<(int Frame, OrderPacket Orders)>> pendingOrders = new();
readonly Dictionary<int, (int SyncHash, ulong DefeatState)> syncForFrame = new();
@@ -85,7 +88,7 @@ namespace OpenRA.Network
World.OutOfSync();
IsOutOfSync = true;
TextNotificationsManager.AddSystemLine($"Out of sync in frame {frame}.\nCompare syncreport.log with other players.");
TextNotificationsManager.AddSystemLine(DesyncCompareLogs, Translation.Arguments("frame", frame));
}
public void StartGame()

View File

@@ -26,6 +26,18 @@ namespace OpenRA.Network
[TranslationReference("player")]
const string Left = "notification-lobby-disconnected";
[TranslationReference]
const string GameStarted = "notification-game-has-started";
[TranslationReference]
const string GameSaved = "notification-game-saved";
[TranslationReference("player")]
const string GamePaused = "notification-game-paused";
[TranslationReference("player")]
const string GameUnpaused = "notification-game-unpaused";
static Player FindPlayerByClient(this World world, Session.Client c)
{
return world.Players.FirstOrDefault(p => p.ClientIndex == c.Index && p.PlayerReference.Playable);
@@ -161,7 +173,7 @@ namespace OpenRA.Network
FieldLoader.GetValue<int>("SaveSyncFrame", saveSyncFrame.Value.Value);
}
else
TextNotificationsManager.AddSystemLine("The game has started.");
TextNotificationsManager.AddSystemLine(GameStarted);
Game.StartGame(orderManager.LobbyInfo.GlobalSettings.Map, WorldType.Regular);
break;
@@ -179,7 +191,7 @@ namespace OpenRA.Network
case "GameSaved":
if (!orderManager.World.IsReplay)
TextNotificationsManager.AddSystemLine("Game saved");
TextNotificationsManager.AddSystemLine(GameSaved);
foreach (var nsr in orderManager.World.WorldActor.TraitsImplementing<INotifyGameSaved>())
nsr.GameSaved(orderManager.World);
@@ -197,10 +209,7 @@ namespace OpenRA.Network
break;
if (orderManager.World.Paused != pause && world != null && world.LobbyInfo.NonBotClients.Count() > 1)
{
var pausetext = $"The game is {(pause ? "paused" : "un-paused")} by {client.Name}";
TextNotificationsManager.AddSystemLine(pausetext);
}
TextNotificationsManager.AddSystemLine(pause ? GamePaused : GameUnpaused, Translation.Arguments("player", client.Name));
orderManager.World.Paused = pause;
orderManager.World.PredictedPaused = pause;

View File

@@ -43,6 +43,7 @@ namespace OpenRA.Mods.Cnc.Traits
[Desc("Sound the victim will hear when they get robbed.")]
public readonly string InfiltratedNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification the victim will see when they get robbed.")]
public readonly string InfiltratedTextNotification = null;
@@ -50,6 +51,7 @@ namespace OpenRA.Mods.Cnc.Traits
[Desc("Sound the perpetrator will hear after successful infiltration.")]
public readonly string InfiltrationNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification the perpetrator will see after successful infiltration.")]
public readonly string InfiltrationTextNotification = null;

View File

@@ -29,6 +29,7 @@ namespace OpenRA.Mods.Cnc.Traits
[Desc("Sound the victim will hear when they get sabotaged.")]
public readonly string InfiltratedNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification the victim will see when they get sabotaged.")]
public readonly string InfiltratedTextNotification = null;
@@ -36,6 +37,7 @@ namespace OpenRA.Mods.Cnc.Traits
[Desc("Sound the perpetrator will hear after successful infiltration.")]
public readonly string InfiltrationNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification the perpetrator will see after successful infiltration.")]
public readonly string InfiltrationTextNotification = null;

View File

@@ -30,6 +30,7 @@ namespace OpenRA.Mods.Cnc.Traits
[Desc("Sound the victim will hear when they get sabotaged.")]
public readonly string InfiltratedNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification the victim will see when they get sabotaged.")]
public readonly string InfiltratedTextNotification = null;
@@ -37,6 +38,7 @@ namespace OpenRA.Mods.Cnc.Traits
[Desc("Sound the perpetrator will hear after successful infiltration.")]
public readonly string InfiltrationNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification the perpetrator will see after successful infiltration.")]
public readonly string InfiltrationTextNotification = null;

View File

@@ -31,6 +31,7 @@ namespace OpenRA.Mods.Cnc.Traits
[Desc("Sound the victim will hear when technology gets stolen.")]
public readonly string InfiltratedNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification the victim will see when technology gets stolen.")]
public readonly string InfiltratedTextNotification = null;
@@ -38,6 +39,7 @@ namespace OpenRA.Mods.Cnc.Traits
[Desc("Sound the perpetrator will hear after successful infiltration.")]
public readonly string InfiltrationNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification the perpetrator will see after successful infiltration.")]
public readonly string InfiltrationTextNotification = null;

View File

@@ -28,6 +28,7 @@ namespace OpenRA.Mods.Cnc.Traits
[Desc("Experience to grant to the infiltrating player.")]
public readonly int PlayerExperience = 0;
[TranslationReference(optional: true)]
[Desc("Text notification the victim will see when they get sabotaged.")]
public readonly string InfiltratedTextNotification = null;
@@ -35,6 +36,7 @@ namespace OpenRA.Mods.Cnc.Traits
[Desc("Sound the perpetrator will hear after successful infiltration.")]
public readonly string InfiltrationNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification the perpetrator will see after successful infiltration.")]
public readonly string InfiltrationTextNotification = null;

View File

@@ -41,6 +41,7 @@ namespace OpenRA.Mods.Cnc.Traits
[Desc("Notification to play when a target is infiltrated.")]
public readonly string Notification = null;
[TranslationReference(optional: true)]
[Desc("Text notification to display when a target is infiltrated.")]
public readonly string TextNotification = null;

View File

@@ -37,6 +37,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification to play when selecting a primary building.")]
public readonly string SelectionNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification to display when selecting a primary building.")]
public readonly string SelectionTextNotification = null;

View File

@@ -24,6 +24,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification to play when a unit is delivered.")]
public readonly string ReadyAudio = "Reinforce";
[TranslationReference(optional: true)]
[Desc("Text notification to display when a unit is delivered.")]
public readonly string ReadyTextNotification = null;

View File

@@ -49,6 +49,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification to play when setting a new rallypoint.")]
public readonly string Notification = null;
[TranslationReference(optional: true)]
[Desc("Text notification to display when setting a new rallypoint.")]
public readonly string TextNotification = null;

View File

@@ -47,10 +47,11 @@ namespace OpenRA.Mods.Common.Traits
public readonly string RepairCondition = null;
[NotificationReference("Speech")]
[Desc("Speech notification to play when the repair process is started.")]
[Desc("Voice line to play when repairs are started.")]
public readonly string RepairingNotification = null;
[Desc("Text notification to display when the repair process is started.")]
[TranslationReference(optional: true)]
[Desc("Transient text message to display when repairs are started.")]
public readonly string RepairingTextNotification = null;
[NotificationReference("Speech")]

View File

@@ -31,6 +31,7 @@ namespace OpenRA.Mods.Common.Traits
[NotificationReference("Speech")]
public readonly string EnabledSpeech = null;
[TranslationReference(optional: true)]
public readonly string EnabledTextNotification = null;
[NotificationReference("Sounds")]
@@ -39,6 +40,7 @@ namespace OpenRA.Mods.Common.Traits
[NotificationReference("Speech")]
public readonly string DisabledSpeech = null;
[TranslationReference(optional: true)]
public readonly string DisabledTextNotification = null;
public override object Create(ActorInitializer init) { return new ToggleConditionOnOrder(this); }

View File

@@ -39,6 +39,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification to play when the crate is collected.")]
public readonly string Notification = null;
[TranslationReference(optional: true)]
[Desc("Text notification to display when the crate is collected.")]
public readonly string TextNotification = null;

View File

@@ -49,6 +49,7 @@ namespace OpenRA.Mods.Common.Traits
[NotificationReference("Sounds")]
public readonly string LevelUpNotification = null;
[TranslationReference(optional: true)]
public readonly string LevelUpTextNotification = null;
public override object Create(ActorInitializer init) { return new GainsExperience(init, this); }

View File

@@ -31,6 +31,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification type to play.")]
public readonly string Notification = "BaseAttack";
[TranslationReference(optional: true)]
[Desc("Text notification to display.")]
public readonly string TextNotification = null;
@@ -39,6 +40,7 @@ namespace OpenRA.Mods.Common.Traits
"Won't play a notification to allies if this is null.")]
public readonly string AllyNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification to display to allies when under attack.")]
public readonly string AllyTextNotification = null;

View File

@@ -31,6 +31,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification type to play.")]
public readonly string Notification = "HarvesterAttack";
[TranslationReference(optional: true)]
[Desc("Text notification to display.")]
public readonly string TextNotification = null;

View File

@@ -54,16 +54,19 @@ namespace OpenRA.Mods.Common.Traits
[NotificationReference("Speech")]
public readonly string WinNotification = null;
[TranslationReference(optional: true)]
public readonly string WinTextNotification = null;
[NotificationReference("Speech")]
public readonly string LoseNotification = null;
[TranslationReference(optional: true)]
public readonly string LoseTextNotification = null;
[NotificationReference("Speech")]
public readonly string LeaveNotification = null;
[TranslationReference(optional: true)]
public readonly string LeaveTextNotification = null;
public override object Create(ActorInitializer init) { return new MissionObjectives(init.Self.Owner, this); }

View File

@@ -29,6 +29,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification to play after building placement if new construction options are available.")]
public readonly string NewOptionsNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification to display after building placement if new construction options are available.")]
public readonly string NewOptionsTextNotification = null;
@@ -36,6 +37,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification to play if building placement is not possible.")]
public readonly string CannotPlaceNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification to display if building placement is not possible.")]
public readonly string CannotPlaceTextNotification = null;

View File

@@ -45,6 +45,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification to play when the player does not have any funds.")]
public readonly string InsufficientFundsNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification to display when the player does not have any funds.")]
public readonly string InsufficientFundsTextNotification = null;

View File

@@ -61,6 +61,7 @@ namespace OpenRA.Mods.Common.Traits
"The filename of the audio is defined per faction in notifications.yaml.")]
public readonly string ReadyAudio = null;
[TranslationReference(optional: true)]
[Desc("Notification displayed when production is complete.")]
public readonly string ReadyTextNotification = null;
@@ -70,6 +71,7 @@ namespace OpenRA.Mods.Common.Traits
"The filename of the audio is defined per faction in notifications.yaml.")]
public readonly string BlockedAudio = null;
[TranslationReference(optional: true)]
[Desc("Notification displayed when you can't train another actor",
"when the build limit exceeded or the exit is jammed.")]
public readonly string BlockedTextNotification = null;
@@ -80,6 +82,7 @@ namespace OpenRA.Mods.Common.Traits
"The filename of the audio is defined per faction in notifications.yaml.")]
public readonly string LimitedAudio = null;
[TranslationReference(optional: true)]
[Desc("Notification displayed when you can't queue another actor",
"when the queue length limit is exceeded.")]
public readonly string LimitedTextNotification = null;
@@ -95,6 +98,7 @@ namespace OpenRA.Mods.Common.Traits
"The filename of the audio is defined per faction in notifications.yaml.")]
public readonly string QueuedAudio = null;
[TranslationReference(optional: true)]
[Desc("Notification displayed when user clicks on the build palette icon.")]
public readonly string QueuedTextNotification = null;
@@ -103,6 +107,7 @@ namespace OpenRA.Mods.Common.Traits
"The filename of the audio is defined per faction in notifications.yaml.")]
public readonly string OnHoldAudio = null;
[TranslationReference(optional: true)]
[Desc("Notification displayed when player right-clicks on the build palette icon.")]
public readonly string OnHoldTextNotification = null;
@@ -111,6 +116,7 @@ namespace OpenRA.Mods.Common.Traits
"The filename of the audio is defined per faction in notifications.yaml.")]
public readonly string CancelledAudio = null;
[TranslationReference(optional: true)]
[Desc("Notification displayed when player right-clicks on a build palette icon that is already on hold.")]
public readonly string CancelledTextNotification = null;

View File

@@ -27,6 +27,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech to play for the warning.")]
public readonly string Notification = "SilosNeeded";
[TranslationReference(optional: true)]
[Desc("Text to display for the warning.")]
public readonly string TextNotification = null;

View File

@@ -27,6 +27,7 @@ namespace OpenRA.Mods.Common.Traits
public readonly string SpeechNotification = null;
[Desc("The text notification to display when the player is low power.")]
[TranslationReference(optional: true)]
public readonly string TextNotification = null;
public override object Create(ActorInitializer init) { return new PowerManager(init.Self, this); }

View File

@@ -32,6 +32,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification to play when dropping the unit.")]
public readonly string ReadyAudio = null;
[TranslationReference(optional: true)]
[Desc("Text notification to display when dropping the unit.")]
public readonly string ReadyTextNotification = null;

View File

@@ -42,6 +42,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification to play when a bridge is repaired.")]
public readonly string RepairNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification to display when a bridge is repaired.")]
public readonly string RepairTextNotification = null;

View File

@@ -31,6 +31,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification played when starting to repair a unit.")]
public readonly string StartRepairingNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification displayed when starting to repair a unit.")]
public readonly string StartRepairingTextNotification = null;
@@ -38,6 +39,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification played when repairing a unit is done.")]
public readonly string FinishRepairingNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification displayed when repairing a unit is done.")]
public readonly string FinishRepairingTextNotification = null;

View File

@@ -30,6 +30,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification to play.")]
public readonly string Notification = null;
[TranslationReference(optional: true)]
[Desc("Text notification to display.")]
public readonly string TextNotification = null;

View File

@@ -20,6 +20,7 @@ namespace OpenRA.Mods.Common.Traits.Sound
public readonly string Notification = "UnitLost";
[Desc("Text notification to display.")]
[TranslationReference(optional: true)]
public readonly string TextNotification = null;
public readonly bool NotifyAll = false;

View File

@@ -26,6 +26,7 @@ namespace OpenRA.Mods.Common.Traits.Sound
[Desc("Speech notification to play.")]
public readonly string Notification = null;
[TranslationReference(optional: true)]
[Desc("Text notification to display.")]
public readonly string TextNotification = null;

View File

@@ -20,6 +20,7 @@ namespace OpenRA.Mods.Common.Traits.Sound
[Desc("Speech notification to play to the new owner.")]
public readonly string Notification = "BuildingCaptured";
[TranslationReference(optional: true)]
[Desc("Text notification to display to the new owner.")]
public readonly string TextNotification = null;
@@ -30,6 +31,7 @@ namespace OpenRA.Mods.Common.Traits.Sound
[Desc("Speech notification to play to the old owner.")]
public readonly string LoseNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification to display to the old owner.")]
public readonly string LoseTextNotification = null;

View File

@@ -30,6 +30,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification to play when entering the drop zone.")]
public readonly string ReinforcementsArrivedSpeechNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification to display when entering the drop zone.")]
public readonly string ReinforcementsArrivedTextNotification = null;

View File

@@ -32,6 +32,7 @@ namespace OpenRA.Mods.Common.Traits
"The filename of the audio is defined per faction in notifications.yaml.")]
public readonly string ReadyAudio = null;
[TranslationReference(optional: true)]
[Desc("Text notification displayed when production is activated.")]
public readonly string ReadyTextNotification = null;
@@ -40,6 +41,7 @@ namespace OpenRA.Mods.Common.Traits
"The filename of the audio is defined per faction in notifications.yaml.")]
public readonly string BlockedAudio = null;
[TranslationReference(optional: true)]
[Desc("Text notification displayed when the exit is jammed.")]
public readonly string BlockedTextNotification = null;

View File

@@ -53,6 +53,7 @@ namespace OpenRA.Mods.Common.Traits
[NotificationReference("Speech")]
public readonly string DetectedSpeechNotification = null;
[TranslationReference(optional: true)]
public readonly string DetectedTextNotification = null;
public readonly string BeginChargeSound = null;
@@ -60,6 +61,7 @@ namespace OpenRA.Mods.Common.Traits
[NotificationReference("Speech")]
public readonly string BeginChargeSpeechNotification = null;
[TranslationReference(optional: true)]
public readonly string BeginChargeTextNotification = null;
public readonly string EndChargeSound = null;
@@ -67,6 +69,7 @@ namespace OpenRA.Mods.Common.Traits
[NotificationReference("Speech")]
public readonly string EndChargeSpeechNotification = null;
[TranslationReference(optional: true)]
public readonly string EndChargeTextNotification = null;
public readonly string SelectTargetSound = null;
@@ -74,6 +77,7 @@ namespace OpenRA.Mods.Common.Traits
[NotificationReference("Speech")]
public readonly string SelectTargetSpeechNotification = null;
[TranslationReference(optional: true)]
public readonly string SelectTargetTextNotification = null;
public readonly string InsufficientPowerSound = null;
@@ -81,6 +85,7 @@ namespace OpenRA.Mods.Common.Traits
[NotificationReference("Speech")]
public readonly string InsufficientPowerSpeechNotification = null;
[TranslationReference(optional: true)]
public readonly string InsufficientPowerTextNotification = null;
public readonly string LaunchSound = null;
@@ -88,6 +93,7 @@ namespace OpenRA.Mods.Common.Traits
[NotificationReference("Speech")]
public readonly string LaunchSpeechNotification = null;
[TranslationReference(optional: true)]
public readonly string LaunchTextNotification = null;
public readonly string IncomingSound = null;
@@ -95,6 +101,7 @@ namespace OpenRA.Mods.Common.Traits
[NotificationReference("Speech")]
public readonly string IncomingSpeechNotification = null;
[TranslationReference(optional: true)]
public readonly string IncomingTextNotification = null;
[Desc("Defines to which players the timer is shown.")]

View File

@@ -42,6 +42,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification to play when transforming.")]
public readonly string TransformNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification to display when transforming.")]
public readonly string TransformTextNotification = null;
@@ -49,6 +50,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Speech notification to play when the transformation is blocked.")]
public readonly string NoTransformNotification = null;
[TranslationReference(optional: true)]
[Desc("Text notification to display when the transformation is blocked.")]
public readonly string NoTransformTextNotification = null;

View File

@@ -20,16 +20,19 @@ namespace OpenRA.Mods.Common.Traits
[NotificationReference("Speech")]
public readonly string Notification = "StartGame";
[TranslationReference(optional: true)]
public readonly string TextNotification = null;
[NotificationReference("Speech")]
public readonly string LoadedNotification = "GameLoaded";
[TranslationReference(optional: true)]
public readonly string LoadedTextNotification = null;
[NotificationReference("Speech")]
public readonly string SavedNotification = "GameSaved";
[TranslationReference(optional: true)]
public readonly string SavedTextNotification = null;
public override object Create(ActorInitializer init) { return new StartGameNotification(this); }

View File

@@ -316,7 +316,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
if (actionManager != null)
actionManager.Modified = false;
TextNotificationsManager.AddTransientLine(world.LocalPlayer, TranslationProvider.GetString(SaveCurrentMap));
TextNotificationsManager.AddTransientLine(world.LocalPlayer, SaveCurrentMap);
}
catch (Exception e)
{

View File

@@ -27,6 +27,12 @@ namespace OpenRA.Mods.Common.Widgets.Logic.Ingame
public readonly string ClickSound = ChromeMetrics.Get<string>("ClickSound");
[TranslationReference("units")]
const string SelectedUnitsAcrossScreen = "selected-units-across-screen";
[TranslationReference("units")]
const string SelectedUnitsAcrossMap = "selected-units-across-map";
[ObjectCreator.UseCtor]
public SelectAllUnitsHotkeyLogic(Widget widget, ModData modData, WorldRenderer worldRenderer, World world, Dictionary<string, MiniYaml> logicArgs)
: base(widget, modData, "SelectAllUnitsKey", "WORLD_KEYHANDLER", logicArgs)
@@ -48,21 +54,12 @@ namespace OpenRA.Mods.Common.Widgets.Logic.Ingame
// Check if selecting actors on the screen has selected new units
if (newSelection.Count > selection.Actors.Count())
{
if (newSelection.Count > 1)
TextNotificationsManager.AddFeedbackLine($"Selected {newSelection.Count} units across screen.");
else
TextNotificationsManager.AddFeedbackLine("Selected one unit across screen.");
}
TextNotificationsManager.AddFeedbackLine(SelectedUnitsAcrossScreen, Translation.Arguments("units", newSelection.Count));
else
{
// Select actors in the world that have highest selection priority
newSelection = SelectionUtils.SelectActorsInWorld(world, null, eligiblePlayers).SubsetWithHighestSelectionPriority(e.Modifiers).ToList();
if (newSelection.Count > 1)
TextNotificationsManager.AddFeedbackLine($"Selected {newSelection.Count} units across map.");
else
TextNotificationsManager.AddFeedbackLine("Selected one unit across map.");
TextNotificationsManager.AddFeedbackLine(SelectedUnitsAcrossMap, Translation.Arguments("units", newSelection.Count));
}
selection.Combine(world, newSelection, false, false);

View File

@@ -29,6 +29,15 @@ namespace OpenRA.Mods.Common.Widgets.Logic.Ingame
public readonly string ClickSound = ChromeMetrics.Get<string>("ClickSound");
public readonly string ClickDisabledSound = ChromeMetrics.Get<string>("ClickDisabledSound");
[TranslationReference]
const string NothingSelected = "nothing-selected";
[TranslationReference("units")]
const string SelectedUnitsAcrossScreen = "selected-units-across-screen";
[TranslationReference("units")]
const string SelectedUnitsAcrossMap = "selected-units-across-map";
[ObjectCreator.UseCtor]
public SelectUnitsByTypeHotkeyLogic(Widget widget, ModData modData, WorldRenderer worldRenderer, World world, Dictionary<string, MiniYaml> logicArgs)
: base(widget, modData, "SelectUnitsByTypeKey", "WORLD_KEYHANDLER", logicArgs)
@@ -45,7 +54,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic.Ingame
if (!selection.Actors.Any())
{
TextNotificationsManager.AddFeedbackLine("Nothing selected.");
TextNotificationsManager.AddFeedbackLine(NothingSelected);
Game.Sound.PlayNotification(world.Map.Rules, world.LocalPlayer, "Sounds", ClickDisabledSound, null);
return false;
@@ -70,21 +79,12 @@ namespace OpenRA.Mods.Common.Widgets.Logic.Ingame
// Check if selecting actors on the screen has selected new units
if (newSelection.Count > selection.Actors.Count())
{
if (newSelection.Count > 1)
TextNotificationsManager.AddFeedbackLine($"Selected {newSelection.Count} units across screen.");
else
TextNotificationsManager.AddFeedbackLine("Selected one unit across screen.");
}
TextNotificationsManager.AddFeedbackLine(SelectedUnitsAcrossScreen, Translation.Arguments("units", newSelection.Count));
else
{
// Select actors in the world that have the same selection class as one of the already selected actors
newSelection = SelectionUtils.SelectActorsInWorld(world, selectedClasses, eligiblePlayers).ToList();
if (newSelection.Count > 1)
TextNotificationsManager.AddFeedbackLine($"Selected {newSelection.Count} units across map.");
else
TextNotificationsManager.AddFeedbackLine("Selected one unit across map.");
TextNotificationsManager.AddFeedbackLine(SelectedUnitsAcrossMap, Translation.Arguments("units", newSelection.Count));
}
selection.Combine(world, newSelection, true, false);

View File

@@ -38,7 +38,8 @@ namespace OpenRA.Mods.D2k.Traits
[NotificationReference("Speech")]
public readonly string WormAttackNotification = "WormAttack";
public readonly string WormAttackTextNotification = "Worm attack.";
[TranslationReference]
public readonly string WormAttackTextNotification = "notification-worm-attack";
public override object Create(ActorInitializer init) { return new AttackSwallow(init.Self, this); }
}

View File

@@ -13,6 +13,13 @@ checkbox-stealth-deliveries =
.label = Stealth Deliveries
.description = Nod's delivery plane is cloaked
notification-new-construction-options = New construction options.
notification-cannot-deploy-here = Cannot deploy here.
notification-low-power = Low power.
notification-base-under-attack = Base under attack.
notification-ally-under-attack = Our ally is under attack.
notification-silos-needed = Silos needed.
## World
options-starting-units =
.mcv-only = MCV Only
@@ -25,3 +32,30 @@ dropdown-map-creeps =
options-difficulty =
.normal = Normal
## Structures
notification-construction-complete = Construction complete.
notification-unit-ready = Unit ready.
notification-reinforcements-have-arrived = Reinforcements have arrived.
notification-unable-to-build-more = Unable to build more.
notification-unable-to-comply-building-in-progress = Unable to comply. Building in progress.
notification-repairing = Repairing.
notification-ion-cannon-charging = Ion cannon charging.
notification-ion-cannon-ready = Ion cannon ready.
notification-select-target = Select target.
notification-insufficient-power = Insufficient power.
notification-airstrike-ready = Airstrike ready.
notification-enemy-planes-approaching = Enemy planes approaching.
notification-nuclear-weapon-available = Nuclear weapon available.
notification-nuclear-weapon-launched = Nuclear weapon launched.
notification-nuclear-warhead-approaching = Nuclear warhead approaching.
## Defaults
notification-unit-lost = Unit lost.
notification-unit-promoted = Unit promoted.
notification-building-captured = Building captured.
notification-civilian-building-captured = Civilian Building captured.
notification-structure-lost = Structure lost.
## Vehicles
notification-harvester-lost = Harvester lost.

View File

@@ -0,0 +1 @@
civilian-killed = Civilian killed.

View File

@@ -1063,4 +1063,4 @@ Actors:
Rules: cnc|rules/campaign-maprules.yaml, cnc|rules/campaign-tooltips.yaml, cnc|rules/campaign-palettes.yaml, rules.yaml
Translations: cnc|languages/lua/en.ftl, cnc|languages/difficulties/en.ftl
Translations: cnc|languages/lua/en.ftl, cnc|languages/difficulties/en.ftl, en.ftl

View File

@@ -178,5 +178,5 @@ HQ:
MaxMoveDelay: 1000
ActorLostNotification:
Notification: CivilianKilled
TextNotification: Civilian killed.
TextNotification: civilian-killed
NotifyAll: true

View File

@@ -89,10 +89,10 @@ Astk.proxy:
SelectTargetSpeechNotification: SelectTarget
InsufficientPowerSpeechNotification: InsufficientPower
IncomingSpeechNotification: EnemyPlanesApproaching
EndChargeTextNotification: Airstrike ready.
SelectTargetTextNotification: Select target.
InsufficientPowerTextNotification: Insufficient power.
IncomingTextNotification: Enemy planes approaching.
EndChargeTextNotification: notification-airstrike-ready
SelectTargetTextNotification: notification-select-target
InsufficientPowerTextNotification: notification-insufficient-power
IncomingTextNotification: notification-enemy-planes-approaching
UnitType: a10
DisplayBeacon: True
BeaconPoster: airstrike

View File

@@ -68,10 +68,10 @@ airstrike.proxy:
SelectTargetSpeechNotification: SelectTarget
InsufficientPowerSpeechNotification: InsufficientPower
IncomingSpeechNotification: EnemyPlanesApproaching
EndChargeTextNotification: Airstrike ready.
SelectTargetTextNotification: Select target.
InsufficientPowerTextNotification: Insufficient power.
IncomingTextNotification: Enemy planes approaching.
EndChargeTextNotification: notification-airstrike-ready
SelectTargetTextNotification: notification-select-target
InsufficientPowerTextNotification: notification-insufficient-power
IncomingTextNotification: notification-enemy-planes-approaching
UnitType: a10
DisplayBeacon: True
BeaconPoster: airstrike

View File

@@ -48,7 +48,7 @@
^GainsExperience:
GainsExperience:
LevelUpNotification: LevelUp
LevelUpTextNotification: Unit promoted.
LevelUpTextNotification: notification-unit-promoted
Conditions:
250: rank-veteran
500: rank-veteran
@@ -246,7 +246,7 @@
Passenger:
CargoType: Vehicle
ActorLostNotification:
TextNotification: Unit lost.
TextNotification: notification-unit-lost
HiddenUnderFog:
AttackMove:
WithDamageOverlay:
@@ -305,7 +305,7 @@
HiddenUnderFog:
Type: GroundPosition
ActorLostNotification:
TextNotification: Unit lost.
TextNotification: notification-unit-lost
Explodes:
Weapon: HeliExplode
EmptyWeapon: HeliExplode
@@ -390,7 +390,7 @@
Margin: 5, 6
RequiresCondition: hazmatsuits
ActorLostNotification:
TextNotification: Unit lost.
TextNotification: notification-unit-lost
SpawnActorOnDeath:
Probability: 5
Actor: vice
@@ -633,7 +633,7 @@
Type: GroundPosition
AlwaysVisibleRelationships: None
ActorLostNotification:
TextNotification: Unit lost.
TextNotification: notification-unit-lost
AttackMove:
WithShadow:
Offset: 43, 128, 0
@@ -657,7 +657,7 @@
TargetTypes: Ground, Water
HiddenUnderFog:
ActorLostNotification:
TextNotification: Unit lost.
TextNotification: notification-unit-lost
AttackMove:
WithDamageOverlay:
Explodes:
@@ -703,11 +703,11 @@
EmptyWeapon: BuildingExplode
CaptureNotification:
Notification: BuildingCaptured
TextNotification: Building captured.
TextNotification: notification-building-captured
NewOwnerVoice: false
ActorLostNotification:
Notification: BuildingLost
TextNotification: Structure lost.
TextNotification: notification-structure-lost
ShakeOnDeath:
Guardable:
Range: 3c0
@@ -800,7 +800,7 @@
Types: building
CaptureNotification:
Notification: CivilianBuildingCaptured
TextNotification: Civilian building captured.
TextNotification: notification-civilian-building-captured
RepairableBuilding:
RepairPercent: 40
RepairStep: 1400

View File

@@ -271,7 +271,7 @@ PVICE:
UpdatesPlayerStatistics:
AddToArmyValue: true
ActorLostNotification:
TextNotification: Unit lost.
TextNotification: notification-unit-lost
STEG:
Inherits: ^DINO

View File

@@ -14,8 +14,8 @@ Player:
PlaceBuilding:
NewOptionsNotification: NewOptions
CannotPlaceNotification: BuildingCannotPlaceAudio
NewOptionsTextNotification: New construction options.
CannotPlaceTextNotification: Cannot deploy here.
NewOptionsTextNotification: notification-new-construction-options
CannotPlaceTextNotification: notification-cannot-deploy-here
TechTree:
SupportPowerManager:
ScriptTriggers:
@@ -26,7 +26,7 @@ Player:
ConquestVictoryConditions:
PowerManager:
SpeechNotification: LowPower
TextNotification: Low power.
TextNotification: notification-low-power
AllyRepair:
PlayerResources:
CashTickUpNotification: CashTickUp
@@ -36,8 +36,8 @@ Player:
DeveloperMode:
CheckboxDisplayOrder: 9
BaseAttackNotifier:
TextNotification: Base under attack.
AllyTextNotification: Our ally is under attack.
TextNotification: notification-base-under-attack
AllyTextNotification: notification-ally-under-attack
Shroud:
FogCheckboxDisplayOrder: 3
LobbyPrerequisiteCheckbox@GLOBALFACTUNDEPLOY:
@@ -75,7 +75,7 @@ Player:
Id: unrestricted
GrantConditionOnPrerequisiteManager:
ResourceStorageWarning:
TextNotification: Silos needed.
TextNotification: notification-silos-needed
PlayerExperience:
GameSaveViewportManager:
PlayerRadarTerrain:

View File

@@ -49,11 +49,11 @@ FACT:
Group: Building
LowPowerModifier: 150
ReadyAudio: ConstructionComplete
ReadyTextNotification: Construction complete.
ReadyTextNotification: notification-construction-complete
BlockedAudio: NoBuild
BlockedTextNotification: Unable to build more.
BlockedTextNotification: notification-unable-to-build-more
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Building
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -64,11 +64,11 @@ FACT:
Group: Building
LowPowerModifier: 150
ReadyAudio: ConstructionComplete
ReadyTextNotification: Construction complete.
ReadyTextNotification: notification-construction-complete
BlockedAudio: NoBuild
BlockedTextNotification: Unable to build more.
BlockedTextNotification: notification-unable-to-build-more
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Building
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -79,11 +79,11 @@ FACT:
Group: Defence
LowPowerModifier: 150
ReadyAudio: ConstructionComplete
ReadyTextNotification: Construction complete.
ReadyTextNotification: notification-construction-complete
BlockedAudio: NoBuild
BlockedTextNotification: Unable to build more.
BlockedTextNotification: notification-unable-to-build-more
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Building
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -94,11 +94,11 @@ FACT:
Group: Defence
LowPowerModifier: 150
ReadyAudio: ConstructionComplete
ReadyTextNotification: Construction complete.
ReadyTextNotification: notification-construction-complete
BlockedAudio: NoBuild
BlockedTextNotification: Unable to build more.
BlockedTextNotification: notification-unable-to-build-more
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Building
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -350,11 +350,11 @@ PYLE:
Group: Infantry
LowPowerModifier: 150
ReadyAudio: UnitReady
ReadyTextNotification: Unit ready.
ReadyTextNotification: notification-unit-ready
BlockedAudio: NoBuild
BlockedTextNotification: Unable to build more.
BlockedTextNotification: notification-unable-to-build-more
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Training
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -410,11 +410,11 @@ HAND:
Group: Infantry
LowPowerModifier: 150
ReadyAudio: UnitReady
ReadyTextNotification: Unit ready.
ReadyTextNotification: notification-unit-ready
BlockedAudio: NoBuild
BlockedTextNotification: Unable to build more.
BlockedTextNotification: notification-unable-to-build-more
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Training
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -464,7 +464,7 @@ AFLD:
ProductionAirdrop:
Produces: Vehicle.Nod
ActorType: c17
ReadyTextNotification: Reinforcements have arrived.
ReadyTextNotification: notification-reinforcements-have-arrived
WithBuildingBib:
WithIdleOverlay@DISH:
RequiresCondition: !build-incomplete
@@ -477,9 +477,9 @@ AFLD:
Group: Vehicle
LowPowerModifier: 150
BlockedAudio: NoBuild
BlockedTextNotification: Unable to build more.
BlockedTextNotification: notification-unable-to-build-more
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Training
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -538,11 +538,11 @@ WEAP:
Group: Vehicle
LowPowerModifier: 150
ReadyAudio: UnitReady
ReadyTextNotification: Unit ready.
ReadyTextNotification: notification-unit-ready
BlockedAudio: NoBuild
BlockedTextNotification: Unable to build more.
BlockedTextNotification: notification-unable-to-build-more
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Training
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -590,7 +590,7 @@ HPAD:
HpPerStep: 1000
PlayerExperience: 5
StartRepairingNotification: Repairing
StartRepairingTextNotification: Repairing.
StartRepairingTextNotification: notification-repairing
WithResupplyAnimation:
RequiresCondition: !build-incomplete
RallyPoint:
@@ -603,11 +603,11 @@ HPAD:
Group: Aircraft
LowPowerModifier: 150
ReadyAudio: UnitReady
ReadyTextNotification: Unit ready.
ReadyTextNotification: notification-unit-ready
BlockedAudio: NoBuild
BlockedTextNotification: Unable to build more.
BlockedTextNotification: notification-unable-to-build-more
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Training
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -618,11 +618,11 @@ HPAD:
Group: Aircraft
LowPowerModifier: 150
ReadyAudio: UnitReady
ReadyTextNotification: Unit ready.
ReadyTextNotification: notification-unit-ready
BlockedAudio: NoBuild
BlockedTextNotification: Unable to build more.
BlockedTextNotification: notification-unable-to-build-more
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Training
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -686,10 +686,10 @@ HQ:
SelectTargetSpeechNotification: SelectTarget
InsufficientPowerSpeechNotification: InsufficientPower
IncomingSpeechNotification: EnemyPlanesApproaching
EndChargeTextNotification: Airstrike ready.
SelectTargetTextNotification: Select target.
InsufficientPowerTextNotification: Insufficient power.
IncomingTextNotification: Enemy planes approaching.
EndChargeTextNotification: notification-airstrike-ready
SelectTargetTextNotification: notification-select-target
InsufficientPowerTextNotification: notification-insufficient-power
IncomingTextNotification: notification-enemy-planes-approaching
UnitType: a10
DisplayBeacon: True
BeaconPoster: airstrike
@@ -741,7 +741,7 @@ FIX:
Interval: 15
PlayerExperience: 5
StartRepairingNotification: Repairing
StartRepairingTextNotification: Repairing.
StartRepairingTextNotification: notification-repairing
RallyPoint:
CommandBarBlacklist:
DisableStop: false
@@ -800,10 +800,10 @@ EYE:
EndChargeSpeechNotification: IonCannonReady
SelectTargetSpeechNotification: SelectTarget
InsufficientPowerSpeechNotification: InsufficientPower
BeginChargeTextNotification: Ion cannon charging.
EndChargeTextNotification: Ion cannon ready.
SelectTargetTextNotification: Select target.
InsufficientPowerTextNotification: Insufficient power.
BeginChargeTextNotification: notification-ion-cannon-charging
EndChargeTextNotification: notification-ion-cannon-ready
SelectTargetTextNotification: notification-select-target
InsufficientPowerTextNotification: notification-insufficient-power
OnFireSound: ion1.aud
DisplayRadarPing: True
CameraActor: camera.small
@@ -859,11 +859,11 @@ TMPL:
InsufficientPowerSpeechNotification: InsufficientPower
LaunchSpeechNotification: NuclearWeaponLaunched
IncomingSpeechNotification: NuclearWarheadApproaching
SelectTargetTextNotification: Select target.
EndChargeTextNotification: Nuclear weapon available.
InsufficientPowerTextNotification: Insufficient power.
LaunchTextNotification: Nuclear weapon launched.
IncomingTextNotification: Nuclear warhead approaching.
SelectTargetTextNotification: notification-select-target
EndChargeTextNotification: notification-nuclear-weapon-available
InsufficientPowerTextNotification: notification-insufficient-power
LaunchTextNotification: notification-nuclear-weapon-launched
IncomingTextNotification: notification-nuclear-warhead-approaching
MissileWeapon: atomic
MissileImage: atomic
MissileDelay: 11

View File

@@ -28,7 +28,7 @@ MCV:
Facing: 432
TransformSounds: constru2.aud, hvydoor1.aud
NoTransformNotification: BuildingCannotPlaceAudio
NoTransformTextNotification: Cannot deploy here.
NoTransformTextNotification: notification-cannot-deploy-here
Voice: Unload
MustBeDestroyed:
RequiredForShortGame: true
@@ -76,7 +76,7 @@ HARV:
Range: 4c0
ActorLostNotification:
Notification: HarvesterLost
TextNotification: Harvester lost.
TextNotification: notification-harvester-lost
SpawnActorOnDeath:
Actor: HARV.Husk
OwnerType: InternalName

View File

@@ -87,6 +87,12 @@ notification-slot-closed = Your slot was closed by the host.
notification-joined = { $player } has joined the game.
notification-lobby-disconnected = { $player } has left.
## UnitOrders
notification-game-has-started = The game has started.
notification-game-saved = Game saved.
notification-game-paused = The game is paused by { $player }
notification-game-unpaused = The game is un-paused by { $player }
## Server
notification-game-started = Game started
@@ -561,6 +567,22 @@ dialog-incompatible-replay =
.prompt-unavailable-map = { -incompatible-replay-recorded } an unavailable map:
{ $map }.
# SelectUnitsByTypeHotkeyLogic
nothing-selected = Nothing selected.
## SelectUnitsByTypeHotkeyLogic, SelectAllUnitsHotkeyLogic
selected-units-across-screen =
{ $units ->
[one] Selected one unit across screen.
*[other] Selected { $units } units across screen.
}
selected-units-across-map =
{ $units ->
[one] Selected one unit across map.
*[other] Selected { $units } units across map.
}
## ServerCreationLogic
label-internet-server-nat-A = Internet Server (UPnP/NAT-PMP
label-internet-server-nat-B-enabled = Enabled
@@ -754,3 +776,11 @@ notification-opened = Opened
## ActorEditLogic
notification-edited-actor = Edited { $name } ({ $id })
## ConquestVictoryConditions, StrategicVictoryConditions
notification-player-is-victorious = { $player } is victorious.
notification-player-is-defeated = { $player } is defeated.
## OrderManager
notification-desync-compare-logs = Out of sync in frame { $frame }.
Compare syncreport.log with other players.

View File

@@ -9,6 +9,18 @@ checkbox-automatic-concrete =
.label = Automatic Concrete
.description = Concrete foundations are automatically created beneath buildings
notification-insufficient-funds = Insufficient funds.
notification-new-construction-options = New construction options.
notification-cannot-deploy-here = Cannot deploy here.
notification-low-power = Low power.
notification-base-under-attack = Base under attack.
notification-ally-under-attack = Our ally is under attack.
notification-harvester-under-attack = Harvester under attack.
notification-silos-needed = Silos needed.
notification-no-room-for-new-units = No room for new unit.
notification-cannot-build-here = Cannot build here.
notification-one-of-our-buildings-has-been-captured = One of our buildings has been captured.
## World
dropdown-map-worms =
.label = Worms
@@ -21,3 +33,28 @@ options-starting-units =
options-difficulty =
.normal = Normal
## Arrakis
notification-worm-attack = Worm attack.
notification-worm-sign = Worm sign.
## Structures
notification-construction-complete = Construction complete.
notification-unit-ready = Unit ready.
notification-repairing = Repairing.
notification-unit-repaired = Unit repaired.
notification-select-target = Select target.
notifciation-missile-launch-detected = Missile launch detected.
notification-airstrike-ready = Airstrike ready.
notification-building-lost = Building lost.
notification-reinforcements-have-arrived = Reinforcements have arrived.
notification-death-hand-missile-prepping = Death Hand missile prepping.
notification-death-hand-missile-ready = Death Hand missile ready.
notification-fremen-ready = Fremen ready.
notification-saboteur-ready = Saboteur ready.
## Defaults
notification-unit-lost = Unit lost.
notification-unit-promoted = Unit promoted.
notification-enemy-building-captured = Enemy Building captured.
notification-primary-building-selected = Primary building selected.

View File

@@ -113,7 +113,7 @@ sandworm:
IgnoresCloak:
AnnounceOnSeen:
Notification: WormSign
TextNotification: Worm sign.
TextNotification: notification-worm-sign
PingRadar: True
RevealsShroud:
Range: 5c0

View File

@@ -15,7 +15,7 @@
^GainsExperience:
GainsExperience:
LevelUpNotification: LevelUp
LevelUpTextNotification: Unit promoted.
LevelUpTextNotification: notification-unit-promoted
Conditions:
200: rank-veteran
400: rank-veteran
@@ -221,7 +221,7 @@
AttackMove:
HiddenUnderFog:
ActorLostNotification:
TextNotification: Unit lost.
TextNotification: notification-unit-lost
Repairable:
RepairActors: repair_pad
Guard:
@@ -376,7 +376,7 @@
CargoType: Infantry
HiddenUnderFog:
ActorLostNotification:
TextNotification: Unit lost.
TextNotification: notification-unit-lost
Crushable:
CrushSound: CRUSH1.WAV
Guard:
@@ -417,7 +417,7 @@
HiddenUnderFog:
Type: GroundPosition
ActorLostNotification:
TextNotification: Unit lost.
TextNotification: notification-unit-lost
AttackMove:
WithFacingSpriteBody:
WithShadow:
@@ -481,11 +481,11 @@
RequiredForShortGame: true
FrozenUnderFog:
CaptureNotification:
TextNotification: Enemy building captured.
LoseTextNotification: One of our buildings has been captured.
TextNotification: notification-enemy-building-captured
LoseTextNotification: notification-one-of-our-buildings-has-been-captured
ActorLostNotification:
Notification: BuildingLost
TextNotification: Building lost.
TextNotification: notification-building-lost
ShakeOnDeath:
Demolishable:
Condition: being-demolished
@@ -629,7 +629,7 @@
PrimaryCondition: primary
ProductionQueues: Building
SelectionNotification: PrimaryBuildingSelected
SelectionTextNotification: Primary building selected.
SelectionTextNotification: notification-primary-building-selected
WithTextDecoration@primary:
RequiresCondition: primary
Position: Top

View File

@@ -16,9 +16,9 @@ Player:
DisplayOrder: 0
LowPowerModifier: 300
ReadyAudio: BuildingReady
ReadyTextNotification: Construction complete.
ReadyTextNotification: notification-construction-complete
BlockedAudio: NoRoom
BlockedTextNotification: No room for new unit.
BlockedTextNotification: notification-no-room-for-new-units
QueuedAudio: Building
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -29,9 +29,9 @@ Player:
DisplayOrder: 1
LowPowerModifier: 300
ReadyAudio: UnitReady
ReadyTextNotification: Unit ready.
ReadyTextNotification: notification-unit-ready
BlockedAudio: NoRoom
BlockedTextNotification: No room for new unit.
BlockedTextNotification: notification-no-room-for-new-units
QueuedAudio: Training
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -42,9 +42,9 @@ Player:
DisplayOrder: 2
LowPowerModifier: 300
ReadyAudio: UnitReady
ReadyTextNotification: Unit ready.
ReadyTextNotification: notification-unit-ready
BlockedAudio: NoRoom
BlockedTextNotification: No room for new unit.
BlockedTextNotification: notification-no-room-for-new-units
QueuedAudio: Building
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -55,9 +55,9 @@ Player:
DisplayOrder: 3
LowPowerModifier: 300
ReadyAudio: UnitReady
ReadyTextNotification: Unit ready.
ReadyTextNotification: notification-unit-ready
BlockedAudio: NoRoom
BlockedTextNotification: No room for new unit.
BlockedTextNotification: notification-no-room-for-new-units
QueuedAudio: Building
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -68,7 +68,7 @@ Player:
DisplayOrder: 4
BuildDurationModifier: 212
BlockedAudio: NoRoom
BlockedTextNotification: No room for new unit.
BlockedTextNotification: notification-no-room-for-new-units
QueuedAudio: OrderPlaced
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -77,9 +77,9 @@ Player:
DisplayOrder: 5
LowPowerModifier: 300
ReadyAudio: UnitReady
ReadyTextNotification: Unit ready.
ReadyTextNotification: notification-unit-ready
BlockedAudio: NoRoom
BlockedTextNotification: No room for new unit.
BlockedTextNotification: notification-no-room-for-new-units
QueuedAudio: Building
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -88,17 +88,17 @@ Player:
ClassicProductionQueue@Upgrade: # Upgrade is defined after others so it won't be automatically selected by ProductionQueueFromSelection.
Type: Upgrade
ReadyAudio: NewOptions
ReadyTextNotification: New construction options.
ReadyTextNotification: notification-new-construction-options
BlockedAudio: NoRoom
BlockedTextNotification: No room for new unit.
BlockedTextNotification: notification-no-room-for-new-units
QueuedAudio: Upgrading
OnHoldAudio: OnHold
CancelledAudio: Cancelled
PlaceBuilding:
NewOptionsNotification: NewOptions
CannotPlaceNotification: BuildingCannotPlaceAudio
NewOptionsTextNotification: New construction options.
CannotPlaceTextNotification: Cannot build here.
NewOptionsTextNotification: notification-new-construction-options
CannotPlaceTextNotification: notification-cannot-build-here
SupportPowerManager:
ScriptTriggers:
MissionObjectives:
@@ -109,19 +109,19 @@ Player:
PowerManager:
AdviceInterval: 26000
SpeechNotification: LowPower
TextNotification: Low power.
TextNotification: notification-low-power
AllyRepair:
PlayerResources:
SelectableCash: 2500, 5000, 7000, 10000, 20000
InsufficientFundsNotification: InsufficientFunds
InsufficientFundsTextNotification: Insufficient funds.
InsufficientFundsTextNotification: notification-insufficient-funds
CashTickUpNotification: CashTickUp
CashTickDownNotification: CashTickDown
DeveloperMode:
CheckboxDisplayOrder: 8
BaseAttackNotifier:
TextNotification: Base under attack.
AllyTextNotification: Our ally is under attack.
TextNotification: notification-base-under-attack
AllyTextNotification: notification-ally-under-attack
Shroud:
FogCheckboxDisplayOrder: 3
LobbyPrerequisiteCheckbox@AUTOCONCRETE:
@@ -133,7 +133,7 @@ Player:
Prerequisites: global-auto-concrete
FrozenActorLayer:
HarvesterAttackNotifier:
TextNotification: Harvester under attack.
TextNotification: notification-harvester-under-attack
PlayerStatistics:
PlaceBeacon:
ProvidesPrerequisite@atreides:
@@ -178,7 +178,7 @@ Player:
GrantConditionOnPrerequisiteManager:
ResourceStorageWarning:
AdviceInterval: 26000
TextNotification: Silos needed.
TextNotification: notification-silos-needed
PlayerExperience:
GameSaveViewportManager:
PlayerRadarTerrain:

View File

@@ -661,7 +661,7 @@ starport:
ProductionAirdrop:
Produces: Starport
ActorType: frigate
ReadyTextNotification: Reinforcements have arrived.
ReadyTextNotification: notification-reinforcements-have-arrived
RenderSprites:
Image: starport.ordos
FactionImages:
@@ -907,9 +907,9 @@ repair_pad:
Interval: 10
HpPerStep: 800
StartRepairingNotification: Repairing
StartRepairingTextNotification: Repairing.
StartRepairingTextNotification: notification-repairing
FinishRepairingNotification: UnitRepaired
FinishRepairingTextNotification: Unit repaired.
FinishRepairingTextNotification: notification-unit-repaired
PlayerExperience: 10
RallyPoint:
CommandBarBlacklist:
@@ -1011,8 +1011,8 @@ high_tech_factory:
UseDirectionalTarget: True
DirectionArrowAnimation: ornidirection
SupportPowerPaletteOrder: 10
EndChargeTextNotification: Airstrike ready.
SelectTargetTextNotification: Select target.
EndChargeTextNotification: notification-airstrike-ready
SelectTargetTextNotification: notification-select-target
Power:
Amount: -75
GrantConditionOnPrerequisite@UPGRADEABLE:
@@ -1160,10 +1160,10 @@ palace:
BeginChargeSpeechNotification: DeathHandMissilePrepping
EndChargeSpeechNotification: DeathHandMissileReady
IncomingSpeechNotification: MissileLaunchDetected
BeginChargeTextNotification: Death Hand missile prepping.
EndChargeTextNotification: Death Hand missile ready.
IncomingTextNotification: Missile launch detected.
SelectTargetTextNotification: Select target.
BeginChargeTextNotification: notification-death-hand-missile-prepping
EndChargeTextNotification: notification-death-hand-missile-ready
IncomingTextNotification: notifciation-missile-launch-detected
SelectTargetTextNotification: notification-select-target
MissileWeapon: deathhand
MissileImage: deathhand
MissileDelay: 18
@@ -1191,11 +1191,11 @@ palace:
Actors: fremen, fremen
Type: Fremen
ChargeInterval: 2250
EndChargeTextNotification: Fremen ready.
EndChargeTextNotification: notification-fremen-ready
ReadyAudio: Reinforce
ReadyTextNotification: Reinforcements have arrived.
ReadyTextNotification: notification-reinforcements-have-arrived
BlockedAudio: NoRoom
BlockedTextNotification: No room for new unit.
BlockedTextNotification: notification-no-room-for-new-units
OrderName: ProduceActorPower.Fremen
SupportPowerPaletteOrder: 20
ProduceActorPower@saboteur:
@@ -1208,11 +1208,11 @@ palace:
Actors: saboteur
Type: Saboteur
ChargeInterval: 2250
EndChargeTextNotification: Saboteur ready.
EndChargeTextNotification: notification-saboteur-ready
ReadyAudio: Reinforce
ReadyTextNotification: Reinforcements have arrived.
ReadyTextNotification: notification-reinforcements-have-arrived
BlockedAudio: NoRoom
BlockedTextNotification: No room for new unit.
BlockedTextNotification: notification-no-room-for-new-units
OrderName: ProduceActorPower.Saboteur
SupportPowerPaletteOrder: 30
Exit@1:

View File

@@ -39,7 +39,7 @@ mcv:
Offset: -1,-1
TransformSounds: BUILD1.WAV
NoTransformNotification: CannotDeploy
NoTransformTextNotification: Cannot deploy here.
NoTransformTextNotification: notification-cannot-deploy-here
SpawnActorOnDeath:
Actor: mcv.husk
OwnerType: InternalName

View File

@@ -18,6 +18,14 @@ checkbox-reusable-engineers =
.label = Reusable Engineers
.description = Engineers remain on the battlefield after capturing a structure
notification-insufficient-funds = Insufficient funds.
notification-new-construction-options = New construction options.
notification-cannot-deploy-here = Cannot deploy here.
notification-low-power = Low power.
notification-base-under-attack = Base under attack.
notification-ally-under-attack = Our ally is under attack.
notification-silos-needed = Silos needed.
## World
options-starting-units =
.mcv-only = MCV Only
@@ -26,3 +34,39 @@ options-starting-units =
options-difficulty =
.normal = Normal
## Structures
notification-construction-complete = Construction complete.
notification-unit-ready = Unit ready.
notification-unable-to-build-more = Unable to build more.
notification-unable-to-comply-building-in-progress = Unable to comply. Building in progress.
notification-repairing = Repairing.
notification-unit-repaired = Unit repaired.
notification-select-target = Select target.
notification-insufficient-power = Insufficient power.
notification-reinforcements-have-arrived = Reinforcements have arrived.
notification-abomb-prepping = A-bomb prepping.
notification-abomb-ready = A-bomb ready.
notification-abomb-launch-detected = A-bomb launch detected.
notification-iron-curtain-charging = Iron curtain charging.
notification-iron-curtain-ready = Iron curtain ready.
notification-chronosphere-charging = Chronosphere charging.
notification-chronosphere-ready = Chronosphere ready.
notification-satellite-launched = Satellite launched.
notification-credits-stolen = Credits stolen.
notifcation-spy-plane-ready = Spy plane ready.
## Defaults
notification-unit-lost = Unit lost.
notification-airborne-unit-lost = Airborne Unit lost.
notification-naval-unit-lost = Naval Unit lost.
notification-unit-promoted = Unit promoted.
notification-primary-building-selected = Primary building selected.
notification-structure-captured = Structure captured.
notification-unit-stolen = Unit stolen.
## Infantry
notification-building-infiltrated = Building infiltrated.
## Misc
notification-sonar-pulse-ready = Sonar pulse ready.

View File

@@ -101,8 +101,8 @@ Player:
InsufficientPowerSpeechNotification: InsufficientPower
BeginChargeSpeechNotification: IronCurtainCharging
EndChargeSpeechNotification: IronCurtainReady
SelectTargetTextNotification: Select target.
InsufficientPowerTextNotification: Insufficient power.
SelectTargetTextNotification: notification-select-target
InsufficientPowerTextNotification: notification-insufficient-power
BeginChargeTextNotification: Iron curtain charging.
EndChargeTextNotification: Iron curtain ready.
Condition: invulnerability

View File

@@ -164,7 +164,7 @@ MOBILETENT:
Facing: 384
TransformSounds: placbldg.aud, build5.aud
NoTransformNotification: BuildingCannotPlaceAudio
NoTransformTextNotification: Cannot deploy here.
NoTransformTextNotification: notification-cannot-deploy-here
RenderSprites:
Image: TRUK

View File

@@ -59,8 +59,8 @@ powerproxy.spyplane:
OneShot: true
SelectTargetSpeechNotification: SelectTarget
EndChargeSpeechNotification: SpyPlaneReady
SelectTargetTextNotification: Select target.
EndChargeTextNotification: Spy plane ready.
SelectTargetTextNotification: notification-select-target
EndChargeTextNotification: notifcation-spy-plane-ready
CameraActor: camera.spyplane
CameraRemoveDelay: 150
UnitType: u2

View File

@@ -47,7 +47,7 @@
^GainsExperience:
GainsExperience:
LevelUpNotification: LevelUp
LevelUpTextNotification: Unit promoted.
LevelUpTextNotification: notification-unit-promoted
Conditions:
200: rank-veteran
400: rank-veteran
@@ -268,7 +268,7 @@
AttackMove:
HiddenUnderFog:
ActorLostNotification:
TextNotification: Unit lost.
TextNotification: notification-unit-lost
ProximityCaptor:
Types: Vehicle
GpsDot:
@@ -285,9 +285,9 @@
CancelActivity: True
CaptureNotification:
Notification: UnitStolen
TextNotification: Unit stolen.
TextNotification: notification-unit-stolen
LoseNotification: UnitLost
LoseTextNotification: Unit lost.
LoseTextNotification: notification-unit-lost
MustBeDestroyed:
Voiced:
VoiceSet: VehicleVoice
@@ -371,7 +371,7 @@
RequiresCondition: disable-experience
HiddenUnderFog:
ActorLostNotification:
TextNotification: Unit lost.
TextNotification: notification-unit-lost
GpsDot:
String: Infantry
Crushable:
@@ -519,7 +519,7 @@
AttackMove:
ActorLostNotification:
Notification: NavalUnitLost
TextNotification: Naval unit lost.
TextNotification: notification-naval-unit-lost
ProximityCaptor:
Types: Ship
Chronoshiftable:
@@ -604,7 +604,7 @@
Guardable:
ActorLostNotification:
Notification: AirUnitLost
TextNotification: Airborne unit lost.
TextNotification: notification-airborne-unit-lost
ProximityCaptor:
Types: Plane
EjectOnDeath:
@@ -639,9 +639,9 @@
RequiresCondition: !airborne
CaptureNotification:
Notification: UnitStolen
TextNotification: Unit stolen.
TextNotification: notification-unit-stolen
LoseNotification: UnitLost
LoseTextNotification: Unit lost.
LoseTextNotification: notification-unit-lost
^Plane:
Inherits: ^NeutralPlane
@@ -700,7 +700,7 @@
Weapon: BuildingExplode
EmptyWeapon: BuildingExplode
CaptureNotification:
TextNotification: Structure captured.
TextNotification: notification-structure-captured
ShakeOnDeath:
ProximityCaptor:
Types: Building
@@ -1344,7 +1344,7 @@
PrimaryBuilding:
PrimaryCondition: primary
SelectionNotification: PrimaryBuildingSelected
SelectionTextNotification: Primary building selected.
SelectionTextNotification: notification-primary-building-selected
WithDecoration@primary:
RequiresCondition: primary
Position: Top

View File

@@ -350,7 +350,7 @@ SPY:
Infiltrates:
Types: SpyInfiltrate
Notification: BuildingInfiltrated
TextNotification: Building infiltrated.
TextNotification: notification-building-infiltrated
AutoTarget:
InitialStance: HoldFire
InitialStanceAI: HoldFire
@@ -645,7 +645,7 @@ THF:
Infiltrates:
Types: ThiefInfiltrate
Notification: BuildingInfiltrated
TextNotification: Building infiltrated.
TextNotification: notification-building-infiltrated
Voiced:
VoiceSet: ThiefVoice
-TakeCover:

View File

@@ -352,7 +352,7 @@ powerproxy.parabombs:
AllowMultiple: true
UnitType: badr.bomber
SelectTargetSpeechNotification: SelectTarget
SelectTargetTextNotification: Select target.
SelectTargetTextNotification: notification-select-target
QuantizedFacings: 8
DisplayBeacon: True
BeaconPoster: pbmbicon
@@ -371,8 +371,8 @@ powerproxy.sonarpulse:
ChargeInterval: 750
EndChargeSpeechNotification: SonarPulseReady
SelectTargetSpeechNotification: SelectTarget
EndChargeTextNotification: Sonar pulse ready.
SelectTargetTextNotification: Select target.
EndChargeTextNotification: notification-sonar-pulse-ready
SelectTargetTextNotification: notification-select-target
Actor: sonar
Terrain: Water
AllowUnderShroud: false
@@ -391,7 +391,7 @@ powerproxy.paratroopers:
Description: A Badger drops a squad of infantry\nanywhere on the map.
DropItems: E1,E1,E1,E3,E3
SelectTargetSpeechNotification: SelectTarget
SelectTargetTextNotification: Select target.
SelectTargetTextNotification: notification-select-target
AllowImpassableCells: false
QuantizedFacings: 8
CameraActor: camera.paradrop

View File

@@ -17,11 +17,11 @@ Player:
DisplayOrder: 0
LowPowerModifier: 300
ReadyAudio: ConstructionComplete
ReadyTextNotification: Construction complete.
ReadyTextNotification: notification-construction-complete
BlockedAudio: NoBuild
BlockedTextNotification: Unable to build more.
BlockedTextNotification: notification-unable-to-build-more
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Building
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -31,11 +31,11 @@ Player:
DisplayOrder: 1
LowPowerModifier: 300
ReadyAudio: ConstructionComplete
ReadyTextNotification: Construction complete.
ReadyTextNotification: notification-construction-complete
BlockedAudio: NoBuild
BlockedTextNotification: Unable to build more.
BlockedTextNotification: notification-unable-to-build-more
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Building
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -45,11 +45,11 @@ Player:
DisplayOrder: 3
LowPowerModifier: 300
ReadyAudio: UnitReady
ReadyTextNotification: Unit ready.
ReadyTextNotification: notification-unit-ready
BlockedAudio: NoBuild
BlockedTextNotification: Unable to build more.
BlockedTextNotification: notification-unable-to-build-more
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Building
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -60,11 +60,11 @@ Player:
DisplayOrder: 2
LowPowerModifier: 300
ReadyAudio: UnitReady
ReadyTextNotification: Unit ready.
ReadyTextNotification: notification-unit-ready
BlockedAudio: NoBuild
BlockedTextNotification: Unable to build more.
BlockedTextNotification: notification-unable-to-build-more
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Training
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -74,11 +74,11 @@ Player:
DisplayOrder: 5
LowPowerModifier: 300
ReadyAudio: UnitReady
ReadyTextNotification: Unit ready.
ReadyTextNotification: notification-unit-ready
BlockedAudio: NoBuild
BlockedTextNotification: Unable to build more.
BlockedTextNotification: notification-unable-to-build-more
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Building
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -88,11 +88,11 @@ Player:
DisplayOrder: 4
LowPowerModifier: 300
ReadyAudio: UnitReady
ReadyTextNotification: Unit ready.
ReadyTextNotification: notification-unit-ready
BlockedAudio: NoBuild
BlockedTextNotification: Unable to build more.
BlockedTextNotification: notification-unable-to-build-more
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Building
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -100,8 +100,8 @@ Player:
PlaceBuilding:
NewOptionsNotification: NewOptions
CannotPlaceNotification: BuildingCannotPlaceAudio
NewOptionsTextNotification: New construction options.
CannotPlaceTextNotification: Cannot deploy here.
NewOptionsTextNotification: notification-new-construction-options
CannotPlaceTextNotification: notification-cannot-deploy-here
SupportPowerManager:
ScriptTriggers:
MissionObjectives:
@@ -111,11 +111,11 @@ Player:
ConquestVictoryConditions:
PowerManager:
SpeechNotification: LowPower
TextNotification: Low power.
TextNotification: notification-low-power
AllyRepair:
PlayerResources:
InsufficientFundsNotification: InsufficientFunds
InsufficientFundsTextNotification: Insufficient funds.
InsufficientFundsTextNotification: notification-insufficient-funds
CashTickUpNotification: CashTickUp
CashTickDownNotification: CashTickDown
DeveloperMode:
@@ -146,8 +146,8 @@ Player:
Prerequisites: global-reusable-engineers
FrozenActorLayer:
BaseAttackNotifier:
TextNotification: Base under attack.
AllyTextNotification: Our ally is under attack.
TextNotification: notification-base-under-attack
AllyTextNotification: notification-ally-under-attack
PlayerStatistics:
PlaceBeacon:
ProvidesTechPrerequisite@infonly:
@@ -177,7 +177,7 @@ Player:
Image: iconchevrons
Sequence: veteran
ResourceStorageWarning:
TextNotification: Silos needed.
TextNotification: notification-silos-needed
PlayerExperience:
GameSaveViewportManager:
PlayerRadarTerrain:

View File

@@ -44,11 +44,11 @@ MSLO:
SelectTargetSpeechNotification: SelectTarget
InsufficientPowerSpeechNotification: InsufficientPower
IncomingSpeechNotification: AbombLaunchDetected
SelectTargetTextNotification: Select target.
InsufficientPowerTextNotification: Insufficient power.
BeginChargeTextNotification: A-bomb prepping.
EndChargeTextNotification: A-bomb ready.
IncomingTextNotification: A-bomb launch detected.
SelectTargetTextNotification: notification-select-target
InsufficientPowerTextNotification: notification-insufficient-power
BeginChargeTextNotification: notification-abomb-prepping
EndChargeTextNotification: notification-abomb-ready
IncomingTextNotification: notification-abomb-launch-detected
MissileWeapon: atomic
MissileImage: atomic
MissileDelay: 5
@@ -213,9 +213,9 @@ SPEN:
RepairsUnits:
HpPerStep: 1000
StartRepairingNotification: Repairing
StartRepairingTextNotification: Repairing.
StartRepairingTextNotification: notification-repairing
FinishRepairingNotification: UnitRepaired
FinishRepairingTextNotification: Unit repaired.
FinishRepairingTextNotification: notification-unit-repaired
PlayerExperience: 5
RallyPoint:
ForceSetType: Ship
@@ -333,9 +333,9 @@ SYRD:
RepairsUnits:
HpPerStep: 1000
StartRepairingNotification: Repairing
StartRepairingTextNotification: Repairing.
StartRepairingTextNotification: notification-repairing
FinishRepairingNotification: UnitRepaired
FinishRepairingTextNotification: Unit repaired.
FinishRepairingTextNotification: notification-unit-repaired
PlayerExperience: 5
RallyPoint:
ForceSetType: Ship
@@ -441,10 +441,10 @@ IRON:
InsufficientPowerSpeechNotification: InsufficientPower
BeginChargeSpeechNotification: IronCurtainCharging
EndChargeSpeechNotification: IronCurtainReady
SelectTargetTextNotification: Select target.
InsufficientPowerTextNotification: Insufficient power.
BeginChargeTextNotification: Iron curtain charging.
EndChargeTextNotification: Iron curtain ready.
SelectTargetTextNotification: notification-select-target
InsufficientPowerTextNotification: notification-insufficient-power
BeginChargeTextNotification: notification-iron-curtain-charging
EndChargeTextNotification: notification-iron-curtain-ready
DisplayRadarPing: True
Condition: invulnerability
OnFireSound: ironcur9.aud
@@ -516,10 +516,10 @@ PDOX:
InsufficientPowerSpeechNotification: InsufficientPower
BeginChargeSpeechNotification: ChronosphereCharging
EndChargeSpeechNotification: ChronosphereReady
SelectTargetTextNotification: Select target.
InsufficientPowerTextNotification: Insufficient power.
BeginChargeTextNotification: Chronosphere charging.
EndChargeTextNotification: Chronosphere ready.
SelectTargetTextNotification: notification-select-target
InsufficientPowerTextNotification: notification-insufficient-power
BeginChargeTextNotification: notification-chronosphere-charging
EndChargeTextNotification: notification-chronosphere-ready
Duration: 400
KillCargo: true
DisplayRadarPing: True
@@ -538,10 +538,10 @@ PDOX:
InsufficientPowerSpeechNotification: InsufficientPower
BeginChargeSpeechNotification: ChronosphereCharging
EndChargeSpeechNotification: ChronosphereReady
SelectTargetTextNotification: Select target.
InsufficientPowerTextNotification: Insufficient power.
BeginChargeTextNotification: Chronosphere charging.
EndChargeTextNotification: Chronosphere ready.
SelectTargetTextNotification: notification-select-target
InsufficientPowerTextNotification: notification-insufficient-power
BeginChargeTextNotification: notification-chronosphere-charging
EndChargeTextNotification: notification-chronosphere-charging
Duration: 400
KillCargo: true
DisplayRadarPing: True
@@ -1016,7 +1016,7 @@ ATEK:
Description: Reveals map terrain and provides tactical\ninformation. Requires power and active radar.
RevealDelay: 375
LaunchSpeechNotification: SatelliteLaunched
LaunchTextNotification: Satellite launched.
LaunchTextNotification: notification-satellite-launched
DisplayTimerRelationships: Ally, Neutral, Enemy
SupportPowerPaletteOrder: 90
SupportPowerChargeBar:
@@ -1305,7 +1305,7 @@ PROC:
PlayerExperiencePercentage: 1
Types: SpyInfiltrate, ThiefInfiltrate
InfiltratedNotification: CreditsStolen
InfiltratedTextNotification: Credits stolen.
InfiltratedTextNotification: notification-credits-stolen
WithBuildingBib:
WithIdleOverlay@TOP:
RequiresCondition: !build-incomplete
@@ -1370,7 +1370,7 @@ SILO:
PlayerExperiencePercentage: 1
Types: ThiefInfiltrate
InfiltratedNotification: CreditsStolen
InfiltratedTextNotification: Credits stolen.
InfiltratedTextNotification: notification-credits-stolen
WithBuildingBib:
HasMinibib: true
-WithSpriteBody:
@@ -1556,8 +1556,8 @@ AFLD:
Description: Reveals an area of the map.
SelectTargetSpeechNotification: SelectTarget
EndChargeSpeechNotification: SpyPlaneReady
SelectTargetTextNotification: Select target.
EndChargeTextNotification: Spy plane ready.
SelectTargetTextNotification: notification-select-target
EndChargeTextNotification: notifcation-spy-plane-ready
CameraActor: camera.spyplane
CameraRemoveDelay: 150
UnitType: u2
@@ -1580,8 +1580,8 @@ AFLD:
DropItems: E1R1,E1R1,E1R1,E3R1,E3R1
ReinforcementsArrivedSpeechNotification: ReinforcementsArrived
SelectTargetSpeechNotification: SelectTarget
ReinforcementsArrivedTextNotification: Reinforcements have arrived.
SelectTargetTextNotification: Select target.
ReinforcementsArrivedTextNotification: notification-reinforcements-have-arrived
SelectTargetTextNotification: notification-select-target
AllowImpassableCells: false
QuantizedFacings: 8
CameraActor: camera.paradrop
@@ -1601,7 +1601,7 @@ AFLD:
Name: Parabombs
Description: A Badger drops a load of parachuted bombs\nat the selected location.
SelectTargetSpeechNotification: SelectTarget
SelectTargetTextNotification: Select target.
SelectTargetTextNotification: notification-select-target
CameraActor: camera
CameraRemoveDelay: 150
UnitType: badr.bomber
@@ -2055,9 +2055,9 @@ FIX:
HpPerStep: 1000
Interval: 7
StartRepairingNotification: Repairing
StartRepairingTextNotification: Repairing.
StartRepairingTextNotification: notification-repairing
FinishRepairingNotification: UnitRepaired
FinishRepairingTextNotification: Unit repaired.
FinishRepairingTextNotification: notification-unit-repaired
PlayerExperience: 5
WithBuildingBib:
HasMinibib: true

View File

@@ -396,7 +396,7 @@ MCV:
Facing: 384
TransformSounds: placbldg.aud, build5.aud
NoTransformNotification: BuildingCannotPlaceAudio
NoTransformTextNotification: Cannot deploy here.
NoTransformTextNotification: notification-cannot-deploy-here
MustBeDestroyed:
RequiredForShortGame: true
BaseBuilding:

View File

@@ -9,6 +9,15 @@ checkbox-redeployable-mcvs =
.label = Redeployable MCVs
.description = Allow undeploying Construction Yard
notification-insufficient-funds = Insufficient funds.
notification-new-construction-options = New construction options.
notification-cannot-deploy-here = Cannot deploy here.
notification-low-power = Low power.
notification-base-under-attack = Base under attack.
notification-ally-under-attack = Our ally is under attack.
notification-harvester-under-attack = Harvester under attack.
notification-silos-needed = Silos needed.
## World
options-starting-units =
.mcv-only = MCV Only
@@ -22,3 +31,25 @@ dropdown-map-creeps =
options-difficulty =
.normal = Normal
## Structures
notification-construction-complete = Construction complete.
notification-unit-ready = Unit ready.
notification-unable-to-comply-building-in-progress = Unable to comply. Building in progress.
notification-repairing = Repairing.
notification-unit-repaired = Unit repaired.
notification-ion-cannon-ready = Ion cannon ready.
notification-select-target = Select target.
notification-cluster-missile-ready = Cluster missile ready.
notifciation-missile-launch-detected = Missile launch detected.
notification-emp-cannon-ready = EMP cannon ready.
## Defaults
notification-unit-lost = Unit lost.
notification-unit-promoted = Unit promoted.
notification-primary-building-selected = Primary building selected.
## Infantry
notification-building-infiltrated = Building infiltrated.
notification-building-captured = Building captured.
notification-bridge-repaired = Bridge repaired.

View File

@@ -82,7 +82,7 @@ CHAMSPY:
Infiltrates:
Types: SpyInfiltrate
Notification: BuildingInfiltrated
TextNotification: Building infiltrated.
TextNotification: notification-building-infiltrated
-WithSplitAttackPaletteInfantryBody:
WithDisguisingInfantryBody:
IdleSequences: idle1, idle2

View File

@@ -827,7 +827,7 @@ CAHOSP:
Capturable:
Types: building
CaptureNotification:
TextNotification: Building captured.
TextNotification: notification-building-captured
ProvidesPrerequisite@BuildingName:
ThrowsShrapnel@SMALL:
Pieces: 5, 9

View File

@@ -17,7 +17,7 @@
^GainsExperience:
GainsExperience:
LevelUpNotification: LevelUp
LevelUpTextNotification: Unit promoted.
LevelUpTextNotification: notification-unit-promoted
Conditions:
500: rank
1000: rank
@@ -392,7 +392,7 @@
OwnerLostAction:
Action: Kill
CaptureNotification:
TextNotification: Building captured.
TextNotification: notification-building-captured
Demolishable:
Condition: being-demolished
Sellable:
@@ -600,7 +600,7 @@
Voice: Move
HiddenUnderFog:
ActorLostNotification:
TextNotification: Unit lost.
TextNotification: notification-unit-lost
DamagedByTerrain:
Terrain: Tiberium, BlueTiberium
Damage: 200
@@ -812,7 +812,7 @@
Voice: Move
HiddenUnderFog:
ActorLostNotification:
TextNotification: Unit lost.
TextNotification: notification-unit-lost
CaptureManager:
BeingCapturedCondition: being-captured
Capturable:
@@ -929,7 +929,7 @@
Voice: Move
MoveIntoShroud: false
ActorLostNotification:
TextNotification: Unit lost.
TextNotification: notification-unit-lost
BodyOrientation:
QuantizedFacings: 0
CameraPitch: 85
@@ -1436,7 +1436,7 @@
PrimaryBuilding:
PrimaryCondition: primary
SelectionNotification: PrimaryBuildingSelected
SelectionTextNotification: Primary building selected.
SelectionTextNotification: notification-primary-building-selected
WithTextDecoration@primary:
RequiresCondition: primary
Position: Top

View File

@@ -321,9 +321,9 @@ GAHPAD:
PauseOnCondition: empdisable
PlayerExperience: 5
StartRepairingNotification: Repairing
StartRepairingTextNotification: Repairing.
StartRepairingTextNotification: notification-repairing
FinishRepairingNotification: UnitRepaired
FinishRepairingTextNotification: Unit repaired.
FinishRepairingTextNotification: notification-unit-repaired
ProductionBar:
ProductionType: Air
WithIdleOverlay@PLATFORM:
@@ -371,9 +371,9 @@ GADEPT:
PauseOnCondition: empdisable
PlayerExperience: 5
StartRepairingNotification: Repairing
StartRepairingTextNotification: Repairing.
StartRepairingTextNotification: notification-repairing
FinishRepairingNotification: UnitRepaired
FinishRepairingTextNotification: Unit repaired.
FinishRepairingTextNotification: notification-unit-repaired
RallyPoint:
Palette: mouse
IsPlayerPalette: false
@@ -563,8 +563,8 @@ GAPLUG:
Description: Initiate an Ion Cannon strike.\nApplies instant damage to a small area.
EndChargeSpeechNotification: IonCannonReady
SelectTargetSpeechNotification: SelectTarget
EndChargeTextNotification: Ion cannon ready.
SelectTargetTextNotification: Select target.
EndChargeTextNotification: notification-ion-cannon-ready
SelectTargetTextNotification: notification-select-target
DisplayRadarPing: True
CameraActor: camera
DropPodsPower:
@@ -575,7 +575,7 @@ GAPLUG:
Name: Drop Pods
Description: Drop Pod reinforcements.\nSmall team of elite soldiers orbital drops\nto target location.
SelectTargetSpeechNotification: SelectTarget
SelectTargetTextNotification: Select target.
SelectTargetTextNotification: notification-select-target
DisplayRadarPing: true
ChargeInterval: 10000
UnitTypes: DPOD2E1, DPOD2E2

View File

@@ -285,9 +285,9 @@ NAHPAD:
PauseOnCondition: empdisable
PlayerExperience: 5
StartRepairingNotification: Repairing
StartRepairingTextNotification: Repairing.
StartRepairingTextNotification: notification-repairing
FinishRepairingNotification: UnitRepaired
FinishRepairingTextNotification: Unit repaired.
FinishRepairingTextNotification: notification-unit-repaired
ProductionBar:
ProductionType: Air
WithIdleOverlay@PLATFORM:
@@ -538,9 +538,9 @@ NAMISL:
EndChargeSpeechNotification: ClusterMissileReady
SelectTargetSpeechNotification: SelectTarget
IncomingSpeechNotification: MissileLaunchDetected
EndChargeTextNotification: Cluster missile ready.
SelectTargetTextNotification: Select target.
IncomingTextNotification: Missile launch detected.
EndChargeTextNotification: notification-cluster-missile-ready
SelectTargetTextNotification: notification-select-target
IncomingTextNotification: notifciation-missile-launch-detected
LaunchSound: icbm1.aud
MissileWeapon: ClusterMissile
MissileImage: ClusterMissile

View File

@@ -20,9 +20,9 @@ Player:
BuildDurationModifier: 120
LowPowerModifier: 300
ReadyAudio: ConstructionComplete
ReadyTextNotification: Construction complete.
ReadyTextNotification: notification-construction-complete
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Building
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -33,9 +33,9 @@ Player:
BuildDurationModifier: 120
LowPowerModifier: 300
ReadyAudio: ConstructionComplete
ReadyTextNotification: Construction complete.
ReadyTextNotification: notification-construction-complete
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Building
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -46,9 +46,9 @@ Player:
BuildDurationModifier: 120
LowPowerModifier: 300
ReadyAudio: UnitReady
ReadyTextNotification: Unit ready.
ReadyTextNotification: notification-unit-ready
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Training
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -59,9 +59,9 @@ Player:
BuildDurationModifier: 120
LowPowerModifier: 300
ReadyAudio: UnitReady
ReadyTextNotification: Unit ready.
ReadyTextNotification: notification-unit-ready
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Training
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -72,9 +72,9 @@ Player:
BuildDurationModifier: 120
LowPowerModifier: 300
ReadyAudio: UnitReady
ReadyTextNotification: Unit ready.
ReadyTextNotification: notification-unit-ready
LimitedAudio: BuildingInProgress
LimitedTextNotification: Unable to comply. Building in progress.
LimitedTextNotification: notification-unable-to-comply-building-in-progress
QueuedAudio: Training
OnHoldAudio: OnHold
CancelledAudio: Cancelled
@@ -82,8 +82,8 @@ Player:
PlaceBuilding:
NewOptionsNotification: NewOptions
CannotPlaceNotification: BuildingCannotPlaceAudio
NewOptionsTextNotification: New construction options.
CannotPlaceTextNotification: Cannot deploy here.
NewOptionsTextNotification: notification-new-construction-options
CannotPlaceTextNotification: notification-cannot-deploy-here
SupportPowerManager:
ScriptTriggers:
MissionObjectives:
@@ -93,11 +93,11 @@ Player:
ConquestVictoryConditions:
PowerManager:
SpeechNotification: LowPower
TextNotification: Low power.
TextNotification: notification-low-power
AllyRepair:
PlayerResources:
InsufficientFundsNotification: InsufficientFunds
InsufficientFundsTextNotification: Insufficient funds.
InsufficientFundsTextNotification: notification-insufficient-funds
CashTickUpNotification: CashTickUp
CashTickDownNotification: CashTickDown
DeveloperMode:
@@ -114,11 +114,11 @@ Player:
Prerequisites: global-factundeploy
FrozenActorLayer:
BaseAttackNotifier:
TextNotification: Base under attack.
AllyTextNotification: Our ally is under attack.
TextNotification: notification-base-under-attack
AllyTextNotification: notification-ally-under-attack
AllyNotification: OurAllyIsUnderAttack
HarvesterAttackNotifier:
TextNotification: Harvester under attack.
TextNotification: notification-harvester-under-attack
PlayerStatistics:
PlaceBeacon:
Palette: effect
@@ -143,7 +143,7 @@ Player:
Prerequisites: techlevel.low, techlevel.medium, techlevel.high, techlevel.superweapons
Id: unrestricted
ResourceStorageWarning:
TextNotification: Silos needed.
TextNotification: notification-silos-needed
PlayerExperience:
GameSaveViewportManager:
PlayerRadarTerrain:

View File

@@ -73,7 +73,7 @@ ENGINEER:
InstantlyRepairs:
RepairsBridges:
RepairNotification: BridgeRepaired
RepairTextNotification: Bridge repaired.
RepairTextNotification: notification-bridge-repaired
CaptureManager:
Captures:
CaptureTypes: building

View File

@@ -51,5 +51,5 @@ NAPULS:
Description: Fires a pulse blast which disables\nall mechanical units in the area.
EndChargeSpeechNotification: EmPulseCannonReady
SelectTargetSpeechNotification: SelectTarget
EndChargeTextNotification: EMP cannon ready.
SelectTargetTextNotification: Select target.
EndChargeTextNotification: notification-emp-cannon-ready
SelectTargetTextNotification: notification-select-target

View File

@@ -35,7 +35,7 @@ MCV:
NoTransformSounds:
Voice: Move
NoTransformNotification: BuildingCannotPlaceAudio
NoTransformTextNotification: Cannot deploy here.
NoTransformTextNotification: notification-cannot-deploy-here
RenderSprites:
Image: mcv.gdi
FactionImages: