Rename Lua UserInterface.Translate to .GetFluentMessage.

This commit is contained in:
Paul Chote
2024-10-19 14:52:36 +01:00
committed by Gustas
parent 8b11b499ed
commit 8452f71481
94 changed files with 308 additions and 308 deletions

View File

@@ -158,22 +158,22 @@ namespace OpenRA.Mods.Common.Lint
if (luaScriptInfo != null)
{
// Matches expressions such as:
// UserInterface.Translate("fluent-key")
// UserInterface.Translate("fluent-key\"with-escape")
// UserInterface.Translate("fluent-key", { ["attribute"] = foo })
// UserInterface.Translate("fluent-key", { ["attribute\"-with-escape"] = foo })
// UserInterface.Translate("fluent-key", { ["attribute1"] = foo, ["attribute2"] = bar })
// UserInterface.Translate("fluent-key", tableVariable)
// UserInterface.GetFluentMessage("fluent-key")
// UserInterface.GetFluentMessage("fluent-key\"with-escape")
// UserInterface.GetFluentMessage("fluent-key", { ["attribute"] = foo })
// UserInterface.GetFluentMessage("fluent-key", { ["attribute\"-with-escape"] = foo })
// UserInterface.GetFluentMessage("fluent-key", { ["attribute1"] = foo, ["attribute2"] = bar })
// UserInterface.GetFluentMessage("fluent-key", tableVariable)
// Extracts groups for the 'key' and each 'attr'.
// If the table isn't inline like in the last example, extracts it as 'variable'.
const string UserInterfaceTranslatePattern =
@"UserInterface\s*\.\s*Translate\s*\(" + // UserInterface.Translate(
const string UserInterfaceFluentMessagePattern =
@"UserInterface\s*\.\s*GetFluentMessage\s*\(" + // UserInterface.GetFluentMessage(
@"\s*""(?<key>(?:[^""\\]|\\.)+?)""\s*" + // "fluent-key"
@"(,\s*({\s*\[\s*""(?<attr>(?:[^""\\]|\\.)*?)""\s*\]\s*=\s*.*?" + // { ["attribute1"] = foo
@"(\s*,\s*\[\s*""(?<attr>(?:[^""\\]|\\.)*?)""\s*\]\s*=\s*.*?)*\s*}\s*)" + // , ["attribute2"] = bar }
"|\\s*,\\s*(?<variable>.*?))?" + // tableVariable
@"\)"; // )
var translateRegex = new Regex(UserInterfaceTranslatePattern);
var fluentMessageRegex = new Regex(UserInterfaceFluentMessagePattern);
// The script in mods/common/scripts/utils.lua defines some helpers which accept a fluent key
// Matches expressions such as:
@@ -195,7 +195,7 @@ namespace OpenRA.Mods.Common.Lint
using (scriptStream)
{
var scriptText = scriptStream.ReadAllText();
IEnumerable<Match> matches = translateRegex.Matches(scriptText);
IEnumerable<Match> matches = fluentMessageRegex.Matches(scriptText);
if (luaScriptInfo.Scripts.Contains("utils.lua"))
matches = matches.Concat(objectiveRegex.Matches(scriptText));
@@ -216,9 +216,9 @@ namespace OpenRA.Mods.Common.Lint
if (variable != "")
{
var userInterface = typeof(UserInterfaceGlobal).GetCustomAttribute<ScriptGlobalAttribute>().Name;
const string Translate = nameof(UserInterfaceGlobal.Translate);
const string FluentMessage = nameof(UserInterfaceGlobal.GetFluentMessage);
emitWarning(
$"{context} calls {userInterface}.{Translate} with key `{key}` and translate args passed as `{variable}`." +
$"{context} calls {userInterface}.{FluentMessage} with key `{key}` and args passed as `{variable}`." +
"Inline the args at the callsite for lint analysis.");
}
}

View File

@@ -35,7 +35,7 @@ namespace OpenRA.Mods.Common.Scripting.Global
[Desc("Formats a language string for a given string key defined in the language files (*.ftl). " +
"Args can be passed to be substituted into the resulting message.")]
public string Translate(string key, [ScriptEmmyTypeOverride("{ string: any }")] LuaTable args = null)
public string GetFluentMessage(string key, [ScriptEmmyTypeOverride("{ string: any }")] LuaTable args = null)
{
if (args != null)
{

View File

@@ -139,7 +139,7 @@ InitAi = function()
if not GDIAdvComCenter.IsDead then
IonCannonOnline = true
Media.DisplayMessage(UserInterface.Translate("destroy-ion-cannon-advice"))
Media.DisplayMessage(UserInterface.GetFluentMessage("destroy-ion-cannon-advice"))
DestroyIonCannon = AddSecondaryObjective(Nod, "quickly-destroy-ion-cannon")
end
end)

View File

@@ -90,7 +90,7 @@ RunForHelp = function()
CivsRunning = true
local cam = Actor.Create("camera", true, { Owner = Nod, Location = CPos.New(53,44) })
Trigger.AfterDelay(125, cam.Destroy)
Media.DisplayMessage(UserInterface.Translate("civilians-running"), UserInterface.Translate("nod-soldier"))
Media.DisplayMessage(UserInterface.GetFluentMessage("civilians-running"), UserInterface.GetFluentMessage("nod-soldier"))
end
end
@@ -98,7 +98,7 @@ CivsBuildingsToDestroy = 0
CheckVillageDestruction = function()
CivsBuildingsToDestroy = CivsBuildingsToDestroy - 1
if CivsBuildingsToDestroy == 2 then
Media.DisplayMessage(UserInterface.Translate("village-destruction-warning"))
Media.DisplayMessage(UserInterface.GetFluentMessage("village-destruction-warning"))
elseif CivsBuildingsToDestroy == 0 then
Reinforcements.Reinforce(GDI, ReinforcementsMammoths, { CPos.New(2,9), CPos.New(3,9) }, 40, function(a)
a.AttackMove(waypoint11.Location)

View File

@@ -54,7 +54,7 @@ SendGDIReinforcements = function()
if GDIReinforcementsLeft > 0 then
GDIReinforcementsLeft = GDIReinforcementsLeft - 1
Trigger.AfterDelay(DateTime.Seconds(5), function()
Media.DisplayMessage(UserInterface.Translate("apcs-left", { ["apcs"] = GDIReinforcementsLeft }), UserInterface.Translate("battlefield-control"))
Media.DisplayMessage(UserInterface.GetFluentMessage("apcs-left", { ["apcs"] = GDIReinforcementsLeft }), UserInterface.GetFluentMessage("battlefield-control"))
SendGDIReinforcements()
end)
end
@@ -114,7 +114,7 @@ WorldLoaded = function()
InitObjectives(GDI)
GDIObjective = AddPrimaryObjective(GDI, "retrieve-rods")
local eliminateReinforcements = UserInterface.Translate("eliminate-reinforcements", { ["kills"] = KillsUntilReinforcements })
local eliminateReinforcements = UserInterface.GetFluentMessage("eliminate-reinforcements", { ["kills"] = KillsUntilReinforcements })
ReinforcementsObjective = AddSecondaryObjective(GDI, eliminateReinforcements)
BuildNod()

View File

@@ -51,7 +51,7 @@ SendGDIReinforcements = function()
if GDIReinforcementsLeft > 0 then
GDIReinforcementsLeft = GDIReinforcementsLeft - 1
Trigger.AfterDelay(DateTime.Seconds(5), function()
Media.DisplayMessage(UserInterface.Translate("apcs-left", { ["apcs"] = GDIReinforcementsLeft }), UserInterface.Translate("battlefield-control"))
Media.DisplayMessage(UserInterface.GetFluentMessage("apcs-left", { ["apcs"] = GDIReinforcementsLeft }), UserInterface.GetFluentMessage("battlefield-control"))
SendGDIReinforcements()
end)
end
@@ -105,7 +105,7 @@ WorldLoaded = function()
InitObjectives(GDI)
GDIObjective = AddPrimaryObjective(GDI, "retrieve-rods")
local eliminateReinforcements = UserInterface.Translate("eliminate-reinforcements", { ["kills"] = KillsUntilReinforcements })
local eliminateReinforcements = UserInterface.GetFluentMessage("eliminate-reinforcements", { ["kills"] = KillsUntilReinforcements })
ReinforcementsObjective = AddSecondaryObjective(GDI, eliminateReinforcements)
SetupWorld()

View File

@@ -117,7 +117,7 @@ WorldLoaded = function()
CiviliansKilledThreshold = CiviliansKilledThreshold[Difficulty]
local civilians = 14 - CiviliansKilledThreshold
local keepCiviliansAlive = UserInterface.Translate("keep-civilians-alive", { ["civilians"] = civilians })
local keepCiviliansAlive = UserInterface.GetFluentMessage("keep-civilians-alive", { ["civilians"] = civilians })
ProtectCivilians = AddPrimaryObjective(GDI, keepCiviliansAlive)
Utils.Do(Civilians, function(civilian)
Trigger.OnKilled(civilian, function()

View File

@@ -123,7 +123,7 @@ WorldLoaded = function()
if a.Type == "boat" then
a.Stop()
a.Destroy()
Media.DisplayMessage(UserInterface.Translate("convoy-passed-partly"))
Media.DisplayMessage(UserInterface.GetFluentMessage("convoy-passed-partly"))
Media.PlaySoundNotification(GDI, "Beepy6")
end
end)

View File

@@ -114,7 +114,7 @@ WorldLoaded = function()
InitObjectives(Nod)
local localBuildSAMs = UserInterface.Translate("build-sams", { ["sams"] = SamSiteGoal })
local localBuildSAMs = UserInterface.GetFluentMessage("build-sams", { ["sams"] = SamSiteGoal })
BuildSAMObjective = AddPrimaryObjective(Nod, localBuildSAMs)
DestroyGDI = AddPrimaryObjective(Nod, "destroy-gdi-base")
GDIObjective = AddPrimaryObjective(GDI, "")

View File

@@ -175,7 +175,7 @@ WorldLoaded = function()
FindBase = AddPrimaryObjective(Nod, "find-nod-base")
EliminateGDI = AddPrimaryObjective(Nod, "eliminate-gdi-forces")
local buildSAMs = UserInterface.Translate("build-sams", { ["sams"] = SamSiteGoal })
local buildSAMs = UserInterface.GetFluentMessage("build-sams", { ["sams"] = SamSiteGoal })
BuildSAMs = AddPrimaryObjective(Nod, buildSAMs)
GDIObjective = AddPrimaryObjective(GDI, "")

View File

@@ -172,7 +172,7 @@ WorldLoaded = function()
InitObjectives(Nod)
EliminateGDI = AddPrimaryObjective(Nod, "eliminate-gdi-forces")
local buildSAMs = UserInterface.Translate("build-sams", { ["sams"] = SamSiteGoal })
local buildSAMs = UserInterface.GetFluentMessage("build-sams", { ["sams"] = SamSiteGoal })
BuildSAMs = AddSecondaryObjective(Nod, buildSAMs)
end

View File

@@ -196,7 +196,7 @@ WorldLoaded = function()
LocateNodBase = AddPrimaryObjective(Nod, "locate-nod-base")
CaptureRefinery = AddPrimaryObjective(Nod, "capture-refinery")
EliminateGDI = AddPrimaryObjective(Nod, "eliminate-gdi-forces")
local buildSAMs = UserInterface.Translate("build-sams", { ["sams"] = SamSiteGoal })
local buildSAMs = UserInterface.GetFluentMessage("build-sams", { ["sams"] = SamSiteGoal })
BuildSAMs = AddSecondaryObjective(Nod, buildSAMs)
GDIObjective = AddPrimaryObjective(GDI, "")
end

View File

@@ -132,7 +132,7 @@ CompleteCaptureCommCenterObjective = function()
end)
end
Media.DisplayMessage(UserInterface.Translate("communications-center-captured-sams-located"))
Media.DisplayMessage(UserInterface.GetFluentMessage("communications-center-captured-sams-located"))
local activeSams = Nod.GetActorsByType("sam")
local miniCams = { }
if #activeSams > 0 then
@@ -260,7 +260,7 @@ WorldLoaded = function()
if AstkDelay > 0 then
SendNodAirstrike(true)
Trigger.AfterDelay(DateTime.Seconds(15), function()
Media.DisplayMessage(UserInterface.Translate("air-strikes-intel-report"))
Media.DisplayMessage(UserInterface.GetFluentMessage("air-strikes-intel-report"))
Trigger.AfterDelay(DateTime.Seconds(8), function()
CaptureCommCenter = AddSecondaryObjective(GDI, "capture-nod-communications-center")
if NodAstkHq.IsDead then

View File

@@ -11,10 +11,10 @@ Difficulty = Map.LobbyOptionOrDefault("difficulty", "normal")
InitObjectives = function(player)
Trigger.OnObjectiveCompleted(player, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), UserInterface.Translate("objective-completed"))
Media.DisplayMessage(p.GetObjectiveDescription(id), UserInterface.GetFluentMessage("objective-completed"))
end)
Trigger.OnObjectiveFailed(player, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), UserInterface.Translate("objective-failed"))
Media.DisplayMessage(p.GetObjectiveDescription(id), UserInterface.GetFluentMessage("objective-failed"))
end)
Trigger.OnPlayerLost(player, function()

View File

@@ -18,9 +18,9 @@ end
---@param description string key of the translation string
---@return number id used to query for the objective later
AddPrimaryObjective = function(player, description)
local translation = UserInterface.Translate(description)
Media.DisplayMessageToPlayer(player, translation, UserInterface.Translate("new-primary-objective"))
return player.AddObjective(translation, UserInterface.Translate("primary"), true)
local translation = UserInterface.GetFluentMessage(description)
Media.DisplayMessageToPlayer(player, translation, UserInterface.GetFluentMessage("new-primary-objective"))
return player.AddObjective(translation, UserInterface.GetFluentMessage("primary"), true)
end
---Adds a new optional objective, translates it and announces it via in-game chat message.
@@ -28,7 +28,7 @@ end
---@param description string key of the translation string
---@return number id used to query for the objective later
AddSecondaryObjective = function(player, description)
local translation = UserInterface.Translate(description)
Media.DisplayMessageToPlayer(player, translation, UserInterface.Translate("new-secondary-objective"))
return player.AddObjective(translation, UserInterface.Translate("secondary"), false)
local translation = UserInterface.GetFluentMessage(description)
Media.DisplayMessageToPlayer(player, translation, UserInterface.GetFluentMessage("new-secondary-objective"))
return player.AddObjective(translation, UserInterface.GetFluentMessage("secondary"), false)
end

View File

@@ -53,10 +53,10 @@ AtreidesEntryPath = { AtreidesWaypoint.Location, AtreidesRally.Location }
Messages =
{
UserInterface.Translate("build-concrete"),
UserInterface.Translate("build-windtrap"),
UserInterface.Translate("build-refinery"),
UserInterface.Translate("build-silo")
UserInterface.GetFluentMessage("build-concrete"),
UserInterface.GetFluentMessage("build-windtrap"),
UserInterface.GetFluentMessage("build-refinery"),
UserInterface.GetFluentMessage("build-silo")
}
CachedResources = -1
@@ -87,7 +87,7 @@ Tick = function()
end
if Atreides.Resources ~= CachedResources then
local harvestedResources = UserInterface.Translate("harvested-resources",
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
{ ["harvested"] = Atreides.Resources, ["goal"] = SpiceToHarvest })
UserInterface.SetMissionText(harvestedResources)
CachedResources = Atreides.Resources
@@ -102,14 +102,14 @@ WorldLoaded = function()
InitObjectives(Atreides)
KillAtreides = AddPrimaryObjective(Harkonnen, "")
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
GatherSpice = AddPrimaryObjective(Atreides, harvestSpice)
KillHarkonnen = AddSecondaryObjective(Atreides, "eliminate-harkonnen-units-reinforcements")
local checkResourceCapacity = function()
Trigger.AfterDelay(0, function()
if Atreides.ResourceCapacity < SpiceToHarvest then
Media.DisplayMessage(UserInterface.Translate("not-enough-silos"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("not-enough-silos"), Mentat)
Trigger.AfterDelay(DateTime.Seconds(3), function()
Harkonnen.MarkCompletedObjective(KillAtreides)
end)

View File

@@ -53,10 +53,10 @@ AtreidesEntryPath = { AtreidesWaypoint.Location, AtreidesRally.Location }
Messages =
{
UserInterface.Translate("build-concrete"),
UserInterface.Translate("build-windtrap"),
UserInterface.Translate("build-refinery"),
UserInterface.Translate("build-silo")
UserInterface.GetFluentMessage("build-concrete"),
UserInterface.GetFluentMessage("build-windtrap"),
UserInterface.GetFluentMessage("build-refinery"),
UserInterface.GetFluentMessage("build-silo")
}
CachedResources = -1
@@ -87,7 +87,7 @@ Tick = function()
end
if Atreides.Resources ~= CachedResources then
local harvestedResources = UserInterface.Translate("harvested-resources",
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
{ ["harvested"] = Atreides.Resources, ["goal"] = SpiceToHarvest })
UserInterface.SetMissionText(harvestedResources)
CachedResources = Atreides.Resources
@@ -102,14 +102,14 @@ WorldLoaded = function()
InitObjectives(Atreides)
KillAtreides = AddPrimaryObjective(Harkonnen, "")
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
GatherSpice = AddPrimaryObjective(Atreides, harvestSpice)
KillHarkonnen = AddSecondaryObjective(Atreides, "eliminate-harkonnen-units-reinforcements")
local checkResourceCapacity = function()
Trigger.AfterDelay(0, function()
if Atreides.ResourceCapacity < SpiceToHarvest then
Media.DisplayMessage(UserInterface.Translate("not-enough-silos"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("not-enough-silos"), Mentat)
Trigger.AfterDelay(DateTime.Seconds(3), function()
Harkonnen.MarkCompletedObjective(KillAtreides)
end)

View File

@@ -70,7 +70,7 @@ Tick = function()
end
if Harkonnen.HasNoRequiredUnits() and not Atreides.IsObjectiveCompleted(KillHarkonnen) then
Media.DisplayMessage(UserInterface.Translate("harkonnen-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("harkonnen-annihilated"), Mentat)
Atreides.MarkCompletedObjective(KillHarkonnen)
end
end

View File

@@ -70,7 +70,7 @@ Tick = function()
end
if Harkonnen.HasNoRequiredUnits() and not Atreides.IsObjectiveCompleted(KillHarkonnen) then
Media.DisplayMessage(UserInterface.Translate("harkonnen-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("harkonnen-annihilated"), Mentat)
Atreides.MarkCompletedObjective(KillHarkonnen)
end
end

View File

@@ -88,7 +88,7 @@ Tick = function()
end
if Ordos.HasNoRequiredUnits() and not Atreides.IsObjectiveCompleted(KillOrdos) then
Media.DisplayMessage(UserInterface.Translate("ordos-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("ordos-annihilated"), Mentat)
Atreides.MarkCompletedObjective(KillOrdos)
end
@@ -106,11 +106,11 @@ Tick = function()
end
if DateTime.GameTime % DateTime.Seconds(32) == 0 and (MessageCheck(1) or MessageCheck(2)) then
Media.DisplayMessage(UserInterface.Translate("upgrade-barracks-light-factory"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("upgrade-barracks-light-factory"), Mentat)
end
if Atreides.Resources ~= CachedResources then
local harvestedResources = UserInterface.Translate("harvested-resources",
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
{ ["harvested"] = Atreides.Resources, ["goal"] = SpiceToHarvest })
UserInterface.SetMissionText(harvestedResources)
CachedResources = Atreides.Resources
@@ -125,7 +125,7 @@ WorldLoaded = function()
InitObjectives(Atreides)
KillAtreides = AddPrimaryObjective(Ordos, "")
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
GatherSpice = AddPrimaryObjective(Atreides, harvestSpice)
KillOrdos = AddSecondaryObjective(Atreides, "eliminate-ordos-units-reinforcements")
@@ -134,7 +134,7 @@ WorldLoaded = function()
local checkResourceCapacity = function()
Trigger.AfterDelay(0, function()
if Atreides.ResourceCapacity < SpiceToHarvest then
Media.DisplayMessage(UserInterface.Translate("not-enough-silos"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("not-enough-silos"), Mentat)
Trigger.AfterDelay(DateTime.Seconds(3), function()
Ordos.MarkCompletedObjective(KillAtreides)
end)

View File

@@ -88,7 +88,7 @@ Tick = function()
end
if Ordos.HasNoRequiredUnits() and not Atreides.IsObjectiveCompleted(KillOrdos) then
Media.DisplayMessage(UserInterface.Translate("ordos-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("ordos-annihilated"), Mentat)
Atreides.MarkCompletedObjective(KillOrdos)
end
@@ -106,11 +106,11 @@ Tick = function()
end
if DateTime.GameTime % DateTime.Seconds(32) == 0 and (MessageCheck(1) or MessageCheck(2)) then
Media.DisplayMessage(UserInterface.Translate("upgrade-barracks-light-factory"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("upgrade-barracks-light-factory"), Mentat)
end
if Atreides.Resources ~= CachedResources then
local harvestedResources = UserInterface.Translate("harvested-resources",
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
{ ["harvested"] = Atreides.Resources, ["goal"] = SpiceToHarvest })
UserInterface.SetMissionText(harvestedResources)
CachedResources = Atreides.Resources
@@ -125,7 +125,7 @@ WorldLoaded = function()
InitObjectives(Atreides)
KillAtreides = AddPrimaryObjective(Ordos, "")
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
GatherSpice = AddPrimaryObjective(Atreides, harvestSpice)
KillOrdos = AddSecondaryObjective(Atreides, "eliminate-ordos-units-reinforcements")
@@ -134,7 +134,7 @@ WorldLoaded = function()
local checkResourceCapacity = function()
Trigger.AfterDelay(0, function()
if Atreides.ResourceCapacity < SpiceToHarvest then
Media.DisplayMessage(UserInterface.Translate("not-enough-silos"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("not-enough-silos"), Mentat)
Trigger.AfterDelay(DateTime.Seconds(3), function()
Ordos.MarkCompletedObjective(KillAtreides)
end)

View File

@@ -36,7 +36,7 @@ SendAttack = function(owner, size)
Utils.Do(units, IdleHunt)
if #units > 0 then
Media.DisplayMessage(UserInterface.Translate("harkonnen-units-approaching"), UserInterface.Translate("fremen-leader"))
Media.DisplayMessage(UserInterface.GetFluentMessage("harkonnen-units-approaching"), UserInterface.GetFluentMessage("fremen-leader"))
end
Trigger.OnAllRemovedFromWorld(units, function()

View File

@@ -108,7 +108,7 @@ Tick = function()
end
if Harkonnen.HasNoRequiredUnits() and not Atreides.IsObjectiveCompleted(KillHarkonnen) then
Media.DisplayMessage(UserInterface.Translate("harkonnen-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("harkonnen-annihilated"), Mentat)
Atreides.MarkCompletedObjective(KillHarkonnen)
Atreides.MarkCompletedObjective(ProtectFremen)
Atreides.MarkCompletedObjective(KeepIntegrity)
@@ -126,7 +126,7 @@ Tick = function()
if not Sietch.IsDead then
AttackNotifier = AttackNotifier - 1
local integrity = math.floor((Sietch.Health * 100) / Sietch.MaxHealth)
SiegeIntegrity = UserInterface.Translate("sietch-integrity", { ["integrity"] = integrity })
SiegeIntegrity = UserInterface.GetFluentMessage("sietch-integrity", { ["integrity"] = integrity })
UserInterface.SetMissionText(SiegeIntegrity, Atreides.Color)
if integrity < IntegrityLevel[Difficulty] then
@@ -144,7 +144,7 @@ WorldLoaded = function()
KillAtreides = AddPrimaryObjective(Harkonnen, "")
ProtectFremen = AddPrimaryObjective(Atreides, "protect-fremen-sietch")
KillHarkonnen = AddPrimaryObjective(Atreides, "destroy-harkonnen")
local keepSietchIntact = UserInterface.Translate("keep-sietch-intact", { ["integrity"] = IntegrityLevel[Difficulty] })
local keepSietchIntact = UserInterface.GetFluentMessage("keep-sietch-intact", { ["integrity"] = IntegrityLevel[Difficulty] })
KeepIntegrity = AddPrimaryObjective(Atreides, keepSietchIntact)
Camera.Position = AConyard.CenterPosition
@@ -152,7 +152,7 @@ WorldLoaded = function()
Trigger.AfterDelay(DateTime.Seconds(2), function()
Beacon.New(Atreides, Sietch.CenterPosition + WVec.New(0, 1024, 0))
Media.DisplayMessage(UserInterface.Translate("fremen-sietch-southeast"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("fremen-sietch-southeast"), Mentat)
end)
Trigger.OnAllKilledOrCaptured(HarkonnenBase, function()
@@ -161,14 +161,14 @@ WorldLoaded = function()
Trigger.OnKilled(Sietch, function()
Actor.Create("invisibleBlocker", true, { Owner = Fremen, Location = CPos.New(62, 59) })
UserInterface.SetMissionText(UserInterface.Translate("sietch-destroyed"), Atreides.Color)
UserInterface.SetMissionText(UserInterface.GetFluentMessage("sietch-destroyed"), Atreides.Color)
Atreides.MarkFailedObjective(ProtectFremen)
end)
Trigger.OnDamaged(Sietch, function()
if AttackNotifier <= 0 then
AttackNotifier = DateTime.Seconds(10)
Beacon.New(Atreides, Sietch.CenterPosition + WVec.New(0, 1024, 0), DateTime.Seconds(7))
Media.DisplayMessage(UserInterface.Translate("fremen-sietch-under-attack"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("fremen-sietch-under-attack"), Mentat)
local defenders = Fremen.GetGroundAttackers()
if #defenders > 0 then

View File

@@ -186,7 +186,7 @@ SendMercenaries = function()
Trigger.AfterDelay(MercenaryAttackDelay[Difficulty], function()
MercWave = MercWave + 1
Media.DisplayMessage(UserInterface.Translate("incoming-mercenary-force"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("incoming-mercenary-force"), Mentat)
local units = Reinforcements.Reinforce(Mercenary, MercenaryReinforcements[Difficulty][MercWave], MercenarySpawn)
Utils.Do(units, function(unit)
@@ -206,7 +206,7 @@ end
SendContraband = function(owner)
ContrabandArrived = true
UserInterface.SetMissionText(UserInterface.Translate("contraband-has-arrived"), Atreides.Color)
UserInterface.SetMissionText(UserInterface.GetFluentMessage("contraband-has-arrived"), Atreides.Color)
local units = SmugglerReinforcements
if owner == Atreides then
@@ -218,10 +218,10 @@ SendContraband = function(owner)
Trigger.AfterDelay(DateTime.Seconds(3), function()
if owner == Atreides then
Atreides.MarkCompletedObjective(CaptureStarport)
Media.DisplayMessage(UserInterface.Translate("contraband-confiscated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("contraband-confiscated"), Mentat)
else
Atreides.MarkFailedObjective(CaptureStarport)
Media.DisplayMessage(UserInterface.Translate("contraband-not-confiscated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("contraband-not-confiscated"), Mentat)
end
end)
@@ -251,12 +251,12 @@ Tick = function()
end
if LastHarkonnenArrived and not Atreides.IsObjectiveCompleted(KillHarkonnen) and Harkonnen.HasNoRequiredUnits() then
Media.DisplayMessage(UserInterface.Translate("harkonnen-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("harkonnen-annihilated"), Mentat)
Atreides.MarkCompletedObjective(KillHarkonnen)
end
if LastMercenariesArrived and not Atreides.IsObjectiveCompleted(KillSmuggler) and Smuggler.HasNoRequiredUnits() and Mercenary.HasNoRequiredUnits() then
Media.DisplayMessage(UserInterface.Translate("smugglers-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("smugglers-annihilated"), Mentat)
Atreides.MarkCompletedObjective(KillSmuggler)
end
@@ -274,7 +274,7 @@ Tick = function()
if TimerTicks and not ContrabandArrived then
TimerTicks = TimerTicks - 1
if (TimerTicks % DateTime.Seconds(1)) == 0 then
local contrabandArrivesIn = UserInterface.Translate("contraband-arrives-in", { ["time"] = Utils.FormatTime(TimerTicks)})
local contrabandArrivesIn = UserInterface.GetFluentMessage("contraband-arrives-in", { ["time"] = Utils.FormatTime(TimerTicks)})
UserInterface.SetMissionText(contrabandArrivesIn, Atreides.Color)
end
@@ -306,7 +306,7 @@ WorldLoaded = function()
Trigger.AfterDelay(DateTime.Seconds(2), function()
TimerTicks = ContrabandTimes[Difficulty]
local time = Utils.FormatTime(TimerTicks)
local contrabandApproaching = UserInterface.Translate("contraband-approaching-starport-north-in", { ["time"] = time })
local contrabandApproaching = UserInterface.GetFluentMessage("contraband-approaching-starport-north-in", { ["time"] = time })
Media.DisplayMessage(contrabandApproaching, Mentat)
end)
@@ -317,7 +317,7 @@ WorldLoaded = function()
Trigger.OnKilled(Starport, function()
if not Atreides.IsObjectiveCompleted(CaptureStarport) then
ContrabandArrived = true
UserInterface.SetMissionText(UserInterface.Translate("starport-destroyed-no-contraband"), Atreides.Color)
UserInterface.SetMissionText(UserInterface.GetFluentMessage("starport-destroyed-no-contraband"), Atreides.Color)
Atreides.MarkFailedObjective(CaptureStarport)
SmugglersAttack()
@@ -337,7 +337,7 @@ WorldLoaded = function()
if AttackNotifier <= 0 then
AttackNotifier = DateTime.Seconds(10)
Media.DisplayMessage(UserInterface.Translate("do-not-destroy-starport"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("do-not-destroy-starport"), Mentat)
local defenders = Smuggler.GetGroundAttackers()
if #defenders > 0 then
@@ -369,11 +369,11 @@ WorldLoaded = function()
Trigger.OnDamaged(HarkonnenBarracks, function()
if AttackNotifier <= 0 and HarkonnenBarracks.Health < HarkonnenBarracks.MaxHealth * 3/4 then
AttackNotifier = DateTime.Seconds(10)
Media.DisplayMessage(UserInterface.Translate("do-not-destroy-barracks"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("do-not-destroy-barracks"), Mentat)
end
end)
Trigger.OnCapture(HarkonnenBarracks, function()
Media.DisplayMessage(UserInterface.Translate("hostages-released"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("hostages-released"), Mentat)
if DefendStarport then
Atreides.MarkCompletedObjective(DefendStarport)
@@ -400,7 +400,7 @@ WorldLoaded = function()
if not Warned and a.Owner == Atreides and a.Type ~= "carryall" then
Warned = true
Trigger.RemoveFootprintTrigger(id)
Media.DisplayMessage(UserInterface.Translate("stay-away-from-starport"), UserInterface.Translate("smuggler-leader"))
Media.DisplayMessage(UserInterface.GetFluentMessage("stay-away-from-starport"), UserInterface.GetFluentMessage("smuggler-leader"))
end
end)
@@ -408,7 +408,7 @@ WorldLoaded = function()
if not Paid and a.Owner == Atreides and a.Type ~= "carryall" then
Paid = true
Trigger.RemoveFootprintTrigger(id)
Media.DisplayMessage(UserInterface.Translate("were-warned-will-pay"), UserInterface.Translate("smuggler-leader"))
Media.DisplayMessage(UserInterface.GetFluentMessage("were-warned-will-pay"), UserInterface.GetFluentMessage("smuggler-leader"))
Utils.Do(Smuggler.GetGroundAttackers(), function(unit)
unit.AttackMove(SmugglerWaypoint2.Location)
end)
@@ -423,7 +423,7 @@ WorldLoaded = function()
Trigger.OnEnteredProximityTrigger(HarkonnenBarracks.CenterPosition, WDist.New(5 * 1024), function(a, id)
if a.Owner == Atreides and a.Type ~= "carryall" then
Trigger.RemoveProximityTrigger(id)
Media.DisplayMessage(UserInterface.Translate("capture-harkonnen-barracks-release-hostages"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("capture-harkonnen-barracks-release-hostages"), Mentat)
StopInfantryProduction = true
end
end)

View File

@@ -53,10 +53,10 @@ HarkonnenEntryPath = { HarkonnenWaypoint.Location, HarkonnenRally.Location }
Messages =
{
UserInterface.Translate("build-concrete"),
UserInterface.Translate("build-windtrap"),
UserInterface.Translate("build-refinery"),
UserInterface.Translate("build-silo")
UserInterface.GetFluentMessage("build-concrete"),
UserInterface.GetFluentMessage("build-windtrap"),
UserInterface.GetFluentMessage("build-refinery"),
UserInterface.GetFluentMessage("build-silo")
}
CachedResources = -1
@@ -87,7 +87,7 @@ Tick = function()
end
if Harkonnen.Resources ~= CachedResources then
local harvestedResources = UserInterface.Translate("harvested-resources",
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
{ ["harvested"] = Harkonnen.Resources, ["goal"] = SpiceToHarvest })
UserInterface.SetMissionText(harvestedResources)
CachedResources = Harkonnen.Resources
@@ -102,14 +102,14 @@ WorldLoaded = function()
InitObjectives(Harkonnen)
KillHarkonnen = AddPrimaryObjective(Atreides, "")
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
GatherSpice = AddPrimaryObjective(Harkonnen, harvestSpice)
KillAtreides = AddSecondaryObjective(Harkonnen, "eliminate-atreides-units-reinforcements")
local checkResourceCapacity = function()
Trigger.AfterDelay(0, function()
if Harkonnen.ResourceCapacity < SpiceToHarvest then
Media.DisplayMessage(UserInterface.Translate("not-enough-silos"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("not-enough-silos"), Mentat)
Trigger.AfterDelay(DateTime.Seconds(3), function()
Harkonnen.MarkCompletedObjective(KillAtreides)
end)

View File

@@ -53,10 +53,10 @@ HarkonnenEntryPath = { HarkonnenWaypoint.Location, HarkonnenRally.Location }
Messages =
{
UserInterface.Translate("build-concrete"),
UserInterface.Translate("build-windtrap"),
UserInterface.Translate("build-refinery"),
UserInterface.Translate("build-silo")
UserInterface.GetFluentMessage("build-concrete"),
UserInterface.GetFluentMessage("build-windtrap"),
UserInterface.GetFluentMessage("build-refinery"),
UserInterface.GetFluentMessage("build-silo")
}
CachedResources = -1
@@ -87,7 +87,7 @@ Tick = function()
end
if Harkonnen.Resources ~= CachedResources then
local harvestedResources = UserInterface.Translate("harvested-resources",
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
{ ["harvested"] = Harkonnen.Resources, ["goal"] = SpiceToHarvest })
UserInterface.SetMissionText(harvestedResources)
CachedResources = Harkonnen.Resources
@@ -102,14 +102,14 @@ WorldLoaded = function()
InitObjectives(Harkonnen)
KillHarkonnen = AddPrimaryObjective(Atreides, "")
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
GatherSpice = AddPrimaryObjective(Harkonnen, harvestSpice)
KillAtreides = AddSecondaryObjective(Harkonnen, "eliminate-atreides-units-reinforcements")
local checkResourceCapacity = function()
Trigger.AfterDelay(0, function()
if Harkonnen.ResourceCapacity < SpiceToHarvest then
Media.DisplayMessage(UserInterface.Translate("not-enough-silos"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("not-enough-silos"), Mentat)
Trigger.AfterDelay(DateTime.Seconds(3), function()
Harkonnen.MarkCompletedObjective(KillAtreides)
end)

View File

@@ -70,7 +70,7 @@ Tick = function()
end
if Atreides.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
Media.DisplayMessage(UserInterface.Translate("atreides-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("atreides-annihilated"), Mentat)
Harkonnen.MarkCompletedObjective(KillAtreides)
end
end

View File

@@ -70,7 +70,7 @@ Tick = function()
end
if Atreides.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
Media.DisplayMessage(UserInterface.Translate("atreides-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("atreides-annihilated"), Mentat)
Harkonnen.MarkCompletedObjective(KillAtreides)
end
end

View File

@@ -103,7 +103,7 @@ Tick = function()
end
if Atreides.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
Media.DisplayMessage(UserInterface.Translate("atreides-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("atreides-annihilated"), Mentat)
Harkonnen.MarkCompletedObjective(KillAtreides)
end
@@ -117,7 +117,7 @@ Tick = function()
end
if DateTime.GameTime % DateTime.Seconds(32) == 0 and (MessageCheck(1) or MessageCheck(2)) then
Media.DisplayMessage(UserInterface.Translate("upgrade-barracks-light-factory"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("upgrade-barracks-light-factory"), Mentat)
end
end

View File

@@ -105,7 +105,7 @@ Tick = function()
end
if Atreides.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
Media.DisplayMessage(UserInterface.Translate("atreides-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("atreides-annihilated"), Mentat)
Harkonnen.MarkCompletedObjective(KillAtreides)
end
@@ -119,7 +119,7 @@ Tick = function()
end
if DateTime.GameTime % DateTime.Seconds(32) == 0 and (MessageCheck(1) or MessageCheck(2)) then
Media.DisplayMessage(UserInterface.Translate("upgrade-barracks-light-factory"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("upgrade-barracks-light-factory"), Mentat)
end
end

View File

@@ -133,12 +133,12 @@ Tick = function()
end
if Atreides.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
Media.DisplayMessage(UserInterface.Translate("atreides-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("atreides-annihilated"), Mentat)
Harkonnen.MarkCompletedObjective(KillAtreides)
end
if Fremen.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillFremen) then
Media.DisplayMessage(UserInterface.Translate("fremen-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("fremen-annihilated"), Mentat)
Harkonnen.MarkCompletedObjective(KillFremen)
end
@@ -191,7 +191,7 @@ WorldLoaded = function()
end)
Trigger.AfterDelay(DateTime.Seconds(15), function()
Media.DisplayMessage(UserInterface.Translate("fremen-spotted-north-southwest"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("fremen-spotted-north-southwest"), Mentat)
end)
local atreidesCondition = function() return Harkonnen.IsObjectiveCompleted(KillAtreides) end

View File

@@ -147,7 +147,7 @@ SendStarportReinforcements = function()
return
end
Media.DisplayMessage(UserInterface.Translate("imperial-ships-penetrating-defense-grid"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("imperial-ships-penetrating-defense-grid"), Mentat)
end)
end
@@ -171,7 +171,7 @@ OrdosReinforcementNotification = function(currentWave, totalWaves)
return
end
Media.DisplayMessage(UserInterface.Translate("enemy-carryall-drop-detected"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("enemy-carryall-drop-detected"), Mentat)
OrdosReinforcementNotification(currentWave, totalWaves)
end)
@@ -186,12 +186,12 @@ Tick = function()
end
if OrdosMain.HasNoRequiredUnits() and OrdosSmall.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillOrdos) then
Media.DisplayMessage(UserInterface.Translate("ordos-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("ordos-annihilated"), Mentat)
Harkonnen.MarkCompletedObjective(KillOrdos)
end
if Corrino.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillCorrino) then
Media.DisplayMessage(UserInterface.Translate("emperor-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("emperor-annihilated"), Mentat)
Harkonnen.MarkCompletedObjective(KillCorrino)
end
@@ -254,7 +254,7 @@ WorldLoaded = function()
end)
Trigger.AfterDelay(DateTime.Seconds(5), function()
Media.DisplayMessage(UserInterface.Translate("protect-outpost"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("protect-outpost"), Mentat)
end)
local path = function() return Utils.Random(OrdosPaths) end

View File

@@ -125,7 +125,7 @@ SendStarportReinforcements = function()
IdleHunt(unit)
end)
Media.DisplayMessage(UserInterface.Translate("ixian-transports-detected"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("ixian-transports-detected"), Mentat)
SendStarportReinforcements()
end)
@@ -191,7 +191,7 @@ CheckSmugglerEnemies = function()
if attacker.Owner == Harkonnen and not MessageCheck then
MessageCheck = true
Media.DisplayMessage(UserInterface.Translate("smugglers-now-hostile"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("smugglers-now-hostile"), Mentat)
end
end)
end)
@@ -204,12 +204,12 @@ Tick = function()
end
if OrdosMain.HasNoRequiredUnits() and OrdosSmall.HasNoRequiredUnits() and not OrdosKilled then
Media.DisplayMessage(UserInterface.Translate("ordos-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("ordos-annihilated"), Mentat)
OrdosKilled = true
end
if SmugglerNeutral.HasNoRequiredUnits() and SmugglerHarkonnen.HasNoRequiredUnits() and SmugglerOrdos.HasNoRequiredUnits() and SmugglerBoth.HasNoRequiredUnits() and not SmugglersKilled then
Media.DisplayMessage(UserInterface.Translate("smugglers-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("smugglers-annihilated"), Mentat)
SmugglersKilled = true
end

View File

@@ -112,7 +112,7 @@ SendStarportReinforcements = function()
IdleHunt(unit)
end)
Media.DisplayMessage(UserInterface.Translate("ixian-transports-detected"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("ixian-transports-detected"), Mentat)
SendStarportReinforcements()
end)
@@ -149,7 +149,7 @@ CheckSmugglerEnemies = function()
if attacker.Owner == Harkonnen and not MessageCheck then
MessageCheck = true
Media.DisplayMessage(UserInterface.Translate("smugglers-now-hostile"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("smugglers-now-hostile"), Mentat)
end
end)
end)
@@ -162,12 +162,12 @@ Tick = function()
end
if OrdosMain.HasNoRequiredUnits() and OrdosSmall.HasNoRequiredUnits() and not OrdosKilled then
Media.DisplayMessage(UserInterface.Translate("ordos-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("ordos-annihilated"), Mentat)
OrdosKilled = true
end
if SmugglerNeutral.HasNoRequiredUnits() and SmugglerHarkonnen.HasNoRequiredUnits() and SmugglerOrdos.HasNoRequiredUnits() and SmugglerBoth.HasNoRequiredUnits() and not SmugglersKilled then
Media.DisplayMessage(UserInterface.Translate("smugglers-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("smugglers-annihilated"), Mentat)
SmugglersKilled = true
end

View File

@@ -177,12 +177,12 @@ Tick = function()
end
if AtreidesMain.HasNoRequiredUnits() and AtreidesSmall.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
Media.DisplayMessage(UserInterface.Translate("atreides-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("atreides-annihilated"), Mentat)
Harkonnen.MarkCompletedObjective(KillAtreides)
end
if Corrino.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillCorrino) then
Media.DisplayMessage(UserInterface.Translate("emperor-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("emperor-annihilated"), Mentat)
Harkonnen.MarkCompletedObjective(KillCorrino)
end
@@ -191,7 +191,7 @@ Tick = function()
end
if (AHiTechFactory.IsDead or AHiTechFactory.Owner ~= AtreidesMain) and not HiTechIsDead then
Media.DisplayMessage(UserInterface.Translate("high-tech-factory-neutralized-imperial-reinforcements"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("high-tech-factory-neutralized-imperial-reinforcements"), Mentat)
HiTechIsDead = true
end
@@ -228,7 +228,7 @@ WorldLoaded = function()
KillHarkonnen2 = AddPrimaryObjective(AtreidesSmall, "")
KillHarkonnen3 = AddPrimaryObjective(Corrino, "")
Media.DisplayMessage(UserInterface.Translate("destroy-atreides-high-tech-factory-imperial-reinforcements"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("destroy-atreides-high-tech-factory-imperial-reinforcements"), Mentat)
Camera.Position = HEngineer.CenterPosition
AtreidesAttackLocation = AConYard2.Location

View File

@@ -201,7 +201,7 @@ CheckAttackToAtreides = function()
end)
Check = true
Media.DisplayMessage(UserInterface.Translate("atreides-hostile"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("atreides-hostile"), Mentat)
end
end)
end)
@@ -223,17 +223,17 @@ Tick = function()
end
if Ordos.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillOrdos) then
Media.DisplayMessage(UserInterface.Translate("ordos-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("ordos-annihilated"), Mentat)
Harkonnen.MarkCompletedObjective(KillOrdos)
end
if AtreidesEnemy.HasNoRequiredUnits() and AtreidesNeutral.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
Media.DisplayMessage(UserInterface.Translate("atreides-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("atreides-annihilated"), Mentat)
Harkonnen.MarkCompletedObjective(KillAtreides)
end
if MercenaryEnemy.HasNoRequiredUnits() and MercenaryAlly.HasNoRequiredUnits() and not MercenariesDestroyed then
Media.DisplayMessage(UserInterface.Translate("mercenaries-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("mercenaries-annihilated"), Mentat)
MercenariesDestroyed = true
end
@@ -280,7 +280,7 @@ WorldLoaded = function()
Trigger.OnCapture(MHeavyFactory, function()
Harkonnen.MarkCompletedObjective(AllyWithMercenaries)
Media.DisplayMessage(UserInterface.Translate("mercenary-leader-captured-allied"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("mercenary-leader-captured-allied"), Mentat)
MercenaryAttackLocation = MercenaryAttackPoint.Location
ChangeOwner(MercenaryEnemy, MercenaryAlly)
@@ -296,7 +296,7 @@ WorldLoaded = function()
end)
Trigger.OnKilledOrCaptured(OPalace, function()
Media.DisplayMessage(UserInterface.Translate("can-not-stand-harkonnen-must-become-neutral"), UserInterface.Translate("atreides-commander"))
Media.DisplayMessage(UserInterface.GetFluentMessage("can-not-stand-harkonnen-must-become-neutral"), UserInterface.GetFluentMessage("atreides-commander"))
ChangeOwner(AtreidesEnemy, AtreidesNeutral)
DefendAndRepairBase(AtreidesNeutral, AtreidesBase, 0.75, AttackGroupSize[Difficulty])

View File

@@ -220,12 +220,12 @@ Tick = function()
end
if AtreidesMain.HasNoRequiredUnits() and AtreidesSmall1.HasNoRequiredUnits() and AtreidesSmall2.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
Media.DisplayMessage(UserInterface.Translate("atreides-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("atreides-annihilated"), Mentat)
Harkonnen.MarkCompletedObjective(KillAtreides)
end
if CorrinoMain.HasNoRequiredUnits() and CorrinoSmall.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillCorrino) then
Media.DisplayMessage(UserInterface.Translate("emperor-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("emperor-annihilated"), Mentat)
Harkonnen.MarkCompletedObjective(KillCorrino)
end

View File

@@ -266,7 +266,7 @@ CheckSmugglerEnemies = function()
if attacker.Owner == Harkonnen and not MessageCheck then
MessageCheck = true
Media.DisplayMessage(UserInterface.Translate("smugglers-now-hostile"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("smugglers-now-hostile"), Mentat)
end
end)
end)
@@ -281,17 +281,17 @@ Tick = function()
end
if AtreidesMain.HasNoRequiredUnits() and AtreidesSmall.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
Media.DisplayMessage(UserInterface.Translate("atreides-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("atreides-annihilated"), Mentat)
Harkonnen.MarkCompletedObjective(KillAtreides)
end
if CorrinoMain.HasNoRequiredUnits() and CorrinoSmall.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillCorrino) then
Media.DisplayMessage(UserInterface.Translate("emperor-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("emperor-annihilated"), Mentat)
Harkonnen.MarkCompletedObjective(KillCorrino)
end
if SmugglerNeutral.HasNoRequiredUnits() and SmugglerHarkonnen.HasNoRequiredUnits() and SmugglerAI.HasNoRequiredUnits() and SmugglerBoth.HasNoRequiredUnits() and not SmugglersKilled then
Media.DisplayMessage(UserInterface.Translate("smugglers-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("smugglers-annihilated"), Mentat)
SmugglersKilled = true
end

View File

@@ -53,10 +53,10 @@ OrdosEntryPath = { OrdosWaypoint.Location, OrdosRally.Location }
Messages =
{
UserInterface.Translate("build-concrete"),
UserInterface.Translate("build-windtrap"),
UserInterface.Translate("build-refinery"),
UserInterface.Translate("build-silo")
UserInterface.GetFluentMessage("build-concrete"),
UserInterface.GetFluentMessage("build-windtrap"),
UserInterface.GetFluentMessage("build-refinery"),
UserInterface.GetFluentMessage("build-silo")
}
CachedResources = -1
@@ -87,7 +87,7 @@ Tick = function()
end
if Ordos.Resources ~= CachedResources then
local harvestedResources = UserInterface.Translate("harvested-resources",
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
{ ["harvested"] = Ordos.Resources, ["goal"] = SpiceToHarvest })
UserInterface.SetMissionText(harvestedResources)
CachedResources = Ordos.Resources
@@ -102,14 +102,14 @@ WorldLoaded = function()
InitObjectives(Ordos)
KillOrdos = AddPrimaryObjective(Harkonnen, "")
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
GatherSpice = AddPrimaryObjective(Ordos, harvestSpice)
KillHarkonnen = AddSecondaryObjective(Ordos, "eliminate-harkonnen-units-reinforcements")
local checkResourceCapacity = function()
Trigger.AfterDelay(0, function()
if Ordos.ResourceCapacity < SpiceToHarvest then
Media.DisplayMessage(UserInterface.Translate("not-enough-silos"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("not-enough-silos"), Mentat)
Trigger.AfterDelay(DateTime.Seconds(3), function()
Harkonnen.MarkCompletedObjective(KillAtreides)
end)

View File

@@ -53,10 +53,10 @@ OrdosEntryPath = { OrdosWaypoint.Location, OrdosRally.Location }
Messages =
{
UserInterface.Translate("build-concrete"),
UserInterface.Translate("build-windtrap"),
UserInterface.Translate("build-refinery"),
UserInterface.Translate("build-silo")
UserInterface.GetFluentMessage("build-concrete"),
UserInterface.GetFluentMessage("build-windtrap"),
UserInterface.GetFluentMessage("build-refinery"),
UserInterface.GetFluentMessage("build-silo")
}
CachedResources = -1
@@ -87,7 +87,7 @@ Tick = function()
end
if Ordos.Resources ~= CachedResources then
local harvestedResources = UserInterface.Translate("harvested-resources",
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
{ ["harvested"] = Ordos.Resources, ["goal"] = SpiceToHarvest })
UserInterface.SetMissionText(harvestedResources)
CachedResources = Ordos.Resources
@@ -102,14 +102,14 @@ WorldLoaded = function()
InitObjectives(Ordos)
KillOrdos = AddPrimaryObjective(Harkonnen, "")
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
GatherSpice = AddPrimaryObjective(Ordos, harvestSpice)
KillHarkonnen = AddSecondaryObjective(Ordos, "eliminate-harkonnen-units-reinforcements")
local checkResourceCapacity = function()
Trigger.AfterDelay(0, function()
if Ordos.ResourceCapacity < SpiceToHarvest then
Media.DisplayMessage(UserInterface.Translate("not-enough-silos"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("not-enough-silos"), Mentat)
Trigger.AfterDelay(DateTime.Seconds(3), function()
Harkonnen.MarkCompletedObjective(KillOrdos)
end)

View File

@@ -86,7 +86,7 @@ Tick = function()
end
if Harkonnen.HasNoRequiredUnits() and not Ordos.IsObjectiveCompleted(KillHarkonnen) then
Media.DisplayMessage(UserInterface.Translate("harkonnen-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("harkonnen-annihilated"), Mentat)
Ordos.MarkCompletedObjective(KillHarkonnen)
end
end

View File

@@ -70,7 +70,7 @@ Tick = function()
end
if Harkonnen.HasNoRequiredUnits() and not Ordos.IsObjectiveCompleted(KillHarkonnen) then
Media.DisplayMessage(UserInterface.Translate("harkonnen-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("harkonnen-annihilated"), Mentat)
Ordos.MarkCompletedObjective(KillHarkonnen)
end
end

View File

@@ -86,7 +86,7 @@ Tick = function()
end
if Harkonnen.HasNoRequiredUnits() and not Ordos.IsObjectiveCompleted(KillHarkonnen) then
Media.DisplayMessage(UserInterface.Translate("harkonnen-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("harkonnen-annihilated"), Mentat)
Ordos.MarkCompletedObjective(KillHarkonnen)
end
@@ -100,7 +100,7 @@ Tick = function()
end
if DateTime.GameTime % DateTime.Seconds(32) == 0 and (MessageCheck(1) or MessageCheck(2)) then
Media.DisplayMessage(UserInterface.Translate("upgrade-barracks-light-factory"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("upgrade-barracks-light-factory"), Mentat)
end
end

View File

@@ -123,7 +123,7 @@ Tick = function()
end
if Harkonnen.HasNoRequiredUnits() and not Ordos.IsObjectiveCompleted(KillHarkonnen) then
Media.DisplayMessage(UserInterface.Translate("harkonnen-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("harkonnen-annihilated"), Mentat)
Ordos.MarkCompletedObjective(KillHarkonnen)
end
@@ -137,7 +137,7 @@ Tick = function()
end
if DateTime.GameTime % DateTime.Seconds(32) == 0 and (MessageCheck(1) or MessageCheck(2)) then
Media.DisplayMessage(UserInterface.Translate("upgrade-barracks-light-factory"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("upgrade-barracks-light-factory"), Mentat)
end
end

View File

@@ -90,7 +90,7 @@ Tick = function()
end
if Harkonnen.HasNoRequiredUnits() and not Ordos.IsObjectiveCompleted(KillHarkonnen) then
Media.DisplayMessage(UserInterface.Translate("harkonnen-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("harkonnen-annihilated"), Mentat)
Ordos.MarkCompletedObjective(KillHarkonnen)
end
@@ -146,7 +146,7 @@ WorldLoaded = function()
if AttackNotifier <= 0 then
AttackNotifier = DateTime.Seconds(10)
Media.DisplayMessage(UserInterface.Translate("do-not-destroy-outpost"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("do-not-destroy-outpost"), Mentat)
end
end)
@@ -156,6 +156,6 @@ WorldLoaded = function()
end)
Trigger.AfterDelay(HarkonnenAttackDelay[Difficulty], function()
Media.DisplayMessage(UserInterface.Translate("warning-large-force-approaching"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("warning-large-force-approaching"), Mentat)
end)
end

View File

@@ -122,7 +122,7 @@ Tick = function()
end
if AtreidesMain.HasNoRequiredUnits() and AtreidesSmall1.HasNoRequiredUnits() and AtreidesSmall2.HasNoRequiredUnits() and AtreidesSmall3.HasNoRequiredUnits() and not Ordos.IsObjectiveCompleted(KillAtreides) then
Media.DisplayMessage(UserInterface.Translate("atreides-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("atreides-annihilated"), Mentat)
Ordos.MarkCompletedObjective(KillAtreides)
end
@@ -132,7 +132,7 @@ Tick = function()
if Ordos.IsObjectiveCompleted(CaptureStarport) then
if Ordos.Resources ~= CachedResources then
local harvestedResources = UserInterface.Translate("harvested-resources",
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
{ ["harvested"] = Ordos.Resources, ["goal"] = SpiceToHarvest })
UserInterface.SetMissionText(harvestedResources)
CachedResources = Ordos.Resources
@@ -158,7 +158,7 @@ WorldLoaded = function()
KillOrdos3 = AddPrimaryObjective(AtreidesSmall2, "")
KillOrdos4 = AddPrimaryObjective(AtreidesSmall3, "")
CaptureStarport = AddPrimaryObjective(Ordos, "capture-atreides-starport-establish-base")
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
GatherSpice = AddPrimaryObjective(Ordos, harvestSpice)
KillAtreides = AddSecondaryObjective(Ordos, "destroy-atreides")

View File

@@ -141,7 +141,7 @@ ContrabandTimes =
hard = DateTime.Minutes(7)
}
IxianReinforcementsHaveArrived = UserInterface.Translate("ixian-reinforcements-arrived")
IxianReinforcementsHaveArrived = UserInterface.GetFluentMessage("ixian-reinforcements-arrived")
SendContraband = function()
Media.PlaySpeechNotification(Ordos, "Reinforce")
@@ -181,7 +181,7 @@ end
Tick = function()
if not Ordos.IsObjectiveCompleted(KillAtreides) and Atreides.HasNoRequiredUnits() then
Media.DisplayMessage(UserInterface.Translate("atreides-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("atreides-annihilated"), Mentat)
Ordos.MarkCompletedObjective(KillAtreides)
DestroyCarryalls(Atreides)
@@ -191,7 +191,7 @@ Tick = function()
end
if not Ordos.IsObjectiveCompleted(KillHarkonnen) and Harkonnen.HasNoRequiredUnits() then
Media.DisplayMessage(UserInterface.Translate("harkonnen-annihilated"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("harkonnen-annihilated"), Mentat)
Ordos.MarkCompletedObjective(KillHarkonnen)
DestroyCarryalls(Harkonnen)
@@ -205,16 +205,16 @@ Tick = function()
if TimerTicks == 0 then
if not FirstIxiansArrived then
Media.DisplayMessage(UserInterface.Translate("deliveries-arriving-massive-reinforcements"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("deliveries-arriving-massive-reinforcements"), Mentat)
end
FirstIxiansArrived = true
SendContraband()
elseif (TimerTicks % DateTime.Seconds(1)) == 0 then
local time = Utils.FormatTime(TimerTicks)
local reinforcementsText = UserInterface.Translate("initial-reinforcements-arrive-in", { ["time"] = time })
local reinforcementsText = UserInterface.GetFluentMessage("initial-reinforcements-arrive-in", { ["time"] = time })
if FirstIxiansArrived then
reinforcementsText = UserInterface.Translate("additional-reinforcements-arrive-in", { ["time"] = time })
reinforcementsText = UserInterface.GetFluentMessage("additional-reinforcements-arrive-in", { ["time"] = time })
end
UserInterface.SetMissionText(reinforcementsText, Ordos.Color)
@@ -245,7 +245,7 @@ WorldLoaded = function()
Trigger.AfterDelay(DateTime.Seconds(2), function()
TimerTicks = InitialContrabandTimes[Difficulty]
local time = Utils.FormatTime(TimerTicks)
Media.DisplayMessage(UserInterface.Translate("ixian-reinforcements-in", { ["time"] = time }), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("ixian-reinforcements-in", { ["time"] = time }), Mentat)
end)
Hunt(Atreides)
@@ -260,7 +260,7 @@ WorldLoaded = function()
IdleHunt(unit)
end
local announcementFunction = function()
Media.DisplayMessage(UserInterface.Translate("enemy-reinforcements-arrived"), Mentat)
Media.DisplayMessage(UserInterface.GetFluentMessage("enemy-reinforcements-arrived"), Mentat)
end
SendCarryallReinforcements(Atreides, 0, AtreidesAttackWaves[Difficulty], EnemyAttackDelay[Difficulty], atreidesPath, AtreidesReinforcements[Difficulty], atreidesCondition, huntFunction, announcementFunction)

View File

@@ -11,10 +11,10 @@ Difficulty = Map.LobbyOptionOrDefault("difficulty", "normal")
InitObjectives = function(player)
Trigger.OnObjectiveCompleted(player, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), UserInterface.Translate("objective-completed"))
Media.DisplayMessage(p.GetObjectiveDescription(id), UserInterface.GetFluentMessage("objective-completed"))
end)
Trigger.OnObjectiveFailed(player, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), UserInterface.Translate("objective-failed"))
Media.DisplayMessage(p.GetObjectiveDescription(id), UserInterface.GetFluentMessage("objective-failed"))
end)
Trigger.OnPlayerLost(player, function()
@@ -29,7 +29,7 @@ InitObjectives = function(player)
end)
end
Mentat = UserInterface.Translate("mentat")
Mentat = UserInterface.GetFluentMessage("mentat")
SendCarryallReinforcements = function(player, currentWave, totalWaves, delay, pathFunction, unitTypes, customCondition, customHuntFunction, announcementFunction)
Trigger.AfterDelay(delay, function()

View File

@@ -25,7 +25,7 @@ SendInsertionHelicopter = function()
local tanya = passengers[1]
Trigger.OnKilled(tanya, TanyaKilledInAction)
Trigger.AfterDelay(DateTime.Seconds(4), function()
Media.DisplayMessage(UserInterface.Translate("tanya-rules-of-engagement"), UserInterface.Translate("tanya"))
Media.DisplayMessage(UserInterface.GetFluentMessage("tanya-rules-of-engagement"), UserInterface.GetFluentMessage("tanya"))
end)
end

View File

@@ -175,7 +175,7 @@ FinishTimer = function()
end
Trigger.AfterDelay(DateTime.Seconds(i), function()
UserInterface.SetMissionText(UserInterface.Translate("convoy-arrived"), c)
UserInterface.SetMissionText(UserInterface.GetFluentMessage("convoy-arrived"), c)
end)
end
Trigger.AfterDelay(DateTime.Seconds(6), function() UserInterface.SetMissionText("") end)

View File

@@ -51,7 +51,7 @@ SendAlliedUnits = function()
if TanyaType == "e7.noautotarget" then
Trigger.AfterDelay(DateTime.Seconds(2), function()
Media.DisplayMessage(UserInterface.Translate("tanya-rules-of-engagement"), UserInterface.Translate("tanya"))
Media.DisplayMessage(UserInterface.GetFluentMessage("tanya-rules-of-engagement"), UserInterface.GetFluentMessage("tanya"))
end)
end
Artillery.Stance = "HoldFire"

View File

@@ -64,7 +64,7 @@ SetupAlliedUnits = function()
if TanyaType == "e7.noautotarget" then
Trigger.AfterDelay(DateTime.Seconds(2), function()
Media.DisplayMessage(UserInterface.Translate("tanya-rules-of-engagement"), UserInterface.Translate("tanya"))
Media.DisplayMessage(UserInterface.GetFluentMessage("tanya-rules-of-engagement"), UserInterface.GetFluentMessage("tanya"))
end)
end

View File

@@ -185,7 +185,7 @@ FreeTanya = function()
if TanyaType == "e7.noautotarget" then
Trigger.AfterDelay(DateTime.Seconds(1), function()
Media.DisplayMessage(UserInterface.Translate("tanya-rules-of-engagement"), UserInterface.Translate("tanya"))
Media.DisplayMessage(UserInterface.GetFluentMessage("tanya-rules-of-engagement"), UserInterface.GetFluentMessage("tanya"))
end)
end
@@ -220,7 +220,7 @@ SendSpy = function()
end
Trigger.AfterDelay(DateTime.Seconds(3), function()
Media.DisplayMessage(UserInterface.Translate("disguise-spy"), UserInterface.Translate("spy"))
Media.DisplayMessage(UserInterface.GetFluentMessage("disguise-spy"), UserInterface.GetFluentMessage("spy"))
end)
end
@@ -264,7 +264,7 @@ InitTriggers = function()
end
if not Greece.IsObjectiveCompleted(InfiltrateWarfactoryObjective) then
Media.DisplayMessage(UserInterface.Translate("skip-heroics"), UserInterface.Translate("battlefield-control"))
Media.DisplayMessage(UserInterface.GetFluentMessage("skip-heroics"), UserInterface.GetFluentMessage("battlefield-control"))
Greece.MarkCompletedObjective(InfiltrateWarfactoryObjective)
end

View File

@@ -50,7 +50,7 @@ SendSpy = function()
Trigger.OnKilled(Spy, function() USSR.MarkCompletedObjective(USSRObj) end)
Trigger.AfterDelay(DateTime.Seconds(3), function()
Media.DisplayMessage(UserInterface.Translate("disguise-spy"), UserInterface.Translate("spy"))
Media.DisplayMessage(UserInterface.GetFluentMessage("disguise-spy"), UserInterface.GetFluentMessage("spy"))
if SpecialCameras then
SpyCameraA = Actor.Create("camera", true, { Owner = Greece, Location = SpyCamera1.Location })
SpyCameraB = Actor.Create("camera", true, { Owner = Greece, Location = SpyCamera2.Location })
@@ -239,7 +239,7 @@ FreeTanya = function()
if TanyaType == "e7.noautotarget" then
Trigger.AfterDelay(DateTime.Seconds(1), function()
Media.DisplayMessage(UserInterface.Translate("tanya-rules-of-engagement"), UserInterface.Translate("tanya"))
Media.DisplayMessage(UserInterface.GetFluentMessage("tanya-rules-of-engagement"), UserInterface.GetFluentMessage("tanya"))
end)
end
@@ -318,7 +318,7 @@ InitTriggers = function()
end
if not Greece.IsObjectiveCompleted(InfWarfactory) then
Media.DisplayMessage(UserInterface.Translate("skip-heroics"), UserInterface.Translate("battlefield-control"))
Media.DisplayMessage(UserInterface.GetFluentMessage("skip-heroics"), UserInterface.GetFluentMessage("battlefield-control"))
Greece.MarkCompletedObjective(InfWarfactory)
end

View File

@@ -72,7 +72,7 @@ SendSpy = function()
end
Trigger.AfterDelay(DateTime.Seconds(3), function()
Media.DisplayMessage(UserInterface.Translate("disguise-spy"), UserInterface.Translate("spy"))
Media.DisplayMessage(UserInterface.GetFluentMessage("disguise-spy"), UserInterface.GetFluentMessage("spy"))
end)
end
@@ -184,7 +184,7 @@ FreeTanya = function()
if TanyaType == "e7.noautotarget" then
Trigger.AfterDelay(DateTime.Seconds(1), function()
Media.DisplayMessage(UserInterface.Translate("tanya-rules-of-engagement"), UserInterface.Translate("tanya"))
Media.DisplayMessage(UserInterface.GetFluentMessage("tanya-rules-of-engagement"), UserInterface.GetFluentMessage("tanya"))
end)
end
@@ -238,7 +238,7 @@ InitTriggers = function()
end
if not Greece.IsObjectiveCompleted(InfWarfactory) then
Media.DisplayMessage(UserInterface.Translate("skip-heroics"), UserInterface.Translate("battlefield-control"))
Media.DisplayMessage(UserInterface.GetFluentMessage("skip-heroics"), UserInterface.GetFluentMessage("battlefield-control"))
Greece.MarkCompletedObjective(InfWarfactory)
end

View File

@@ -129,7 +129,7 @@ CaptureRadarDome = function()
end
end)
Media.DisplayMessage(UserInterface.Translate("soviet-tech-centers-discovered"))
Media.DisplayMessage(UserInterface.GetFluentMessage("soviet-tech-centers-discovered"))
if Difficulty == "easy" then
Actor.Create("Camera", true, { Owner = Greece, Location = Weapcam.Location })
@@ -169,7 +169,7 @@ InfiltrateTechCenter = function()
Trigger.OnCapture(a, function()
if not infiltrated then
Media.PlaySoundNotification(Greece, "AlertBleep")
Media.DisplayMessage(UserInterface.Translate("do-not-capture-tech-centers"))
Media.DisplayMessage(UserInterface.GetFluentMessage("do-not-capture-tech-centers"))
end
end)
end)

View File

@@ -136,7 +136,7 @@ CaptureRadarDome = function()
end
end)
Media.DisplayMessage(UserInterface.Translate("soviet-tech-centers-discovered"))
Media.DisplayMessage(UserInterface.GetFluentMessage("soviet-tech-centers-discovered"))
if Difficulty == "easy" then
Actor.Create("Camera", true, { Owner = Greece, Location = Weapcam.Location })
@@ -157,7 +157,7 @@ InfiltrateTechCenter = function()
Trigger.OnCapture(a, function()
if not Infiltrated then
Media.DisplayMessage(UserInterface.Translate("do-not-capture-tech-centers"))
Media.DisplayMessage(UserInterface.GetFluentMessage("do-not-capture-tech-centers"))
end
end)
end)

View File

@@ -114,7 +114,7 @@ StartTimerFunction = function()
end
end
EnemyApproaching = UserInterface.Translate("enemy-approaching")
EnemyApproaching = UserInterface.GetFluentMessage("enemy-approaching")
FinishTimer = function()
for i = 0, 5, 1 do
local c = TimerColor
@@ -166,7 +166,7 @@ Tick = function()
if StartTimer then
if Ticked > 0 then
if (Ticked % DateTime.Seconds(1)) == 0 then
Timer = UserInterface.Translate("soviet-armored-battalion-arrives-in", { ["time"] = Utils.FormatTime(Ticked) })
Timer = UserInterface.GetFluentMessage("soviet-armored-battalion-arrives-in", { ["time"] = Utils.FormatTime(Ticked) })
UserInterface.SetMissionText(Timer, TimerColor)
end
Ticked = Ticked - 1

View File

@@ -82,7 +82,7 @@ DefendChronosphereCompleted = function()
units[unit] = cells[i]
end
Chronosphere.Chronoshift(units)
UserInterface.SetMissionText(UserInterface.Translate("experiment-successful"), Greece.Color)
UserInterface.SetMissionText(UserInterface.GetFluentMessage("experiment-successful"), Greece.Color)
Trigger.AfterDelay(DateTime.Seconds(3), function()
Greece.MarkCompletedObjective(DefendChronosphere)
@@ -105,7 +105,7 @@ Tick = function()
if Ticked > 0 then
if (Ticked % DateTime.Seconds(1)) == 0 then
Timer = UserInterface.Translate("chronosphere-experiment-complete-in", { ["time"] = Utils.FormatTime(Ticked) })
Timer = UserInterface.GetFluentMessage("chronosphere-experiment-complete-in", { ["time"] = Utils.FormatTime(Ticked) })
UserInterface.SetMissionText(Timer, TimerColor)
end
Ticked = Ticked - 1

View File

@@ -82,7 +82,7 @@ DefendChronosphereCompleted = function()
units[unit] = cells[i]
end
Chronosphere.Chronoshift(units)
UserInterface.SetMissionText(UserInterface.Translate("experiment-successful"), Greece.Color)
UserInterface.SetMissionText(UserInterface.GetFluentMessage("experiment-successful"), Greece.Color)
Trigger.AfterDelay(DateTime.Seconds(3), function()
Greece.MarkCompletedObjective(DefendChronosphere)
@@ -105,7 +105,7 @@ Tick = function()
if Ticked > 0 then
if (Ticked % DateTime.Seconds(1)) == 0 then
Timer = UserInterface.Translate("chronosphere-experiment-complete-in", { ["time"] = Utils.FormatTime(Ticked) })
Timer = UserInterface.GetFluentMessage("chronosphere-experiment-complete-in", { ["time"] = Utils.FormatTime(Ticked) })
UserInterface.SetMissionText(Timer, TimerColor)
end
Ticked = Ticked - 1

View File

@@ -60,7 +60,7 @@ MissionTriggers = function()
Trigger.OnTimerExpired(function()
DateTime.TimeLimit = 0
Trigger.AfterDelay(1, function() UserInterface.SetMissionText(UserInterface.Translate("we-are-too-late"), USSR.Color) end)
Trigger.AfterDelay(1, function() UserInterface.SetMissionText(UserInterface.GetFluentMessage("we-are-too-late"), USSR.Color) end)
USSR.MarkCompletedObjective(HoldOut)
end)
@@ -99,7 +99,7 @@ LaunchMissiles = function()
MissileSilo1.ActivateNukePower(CPos.New(127, 127))
Trigger.AfterDelay(DateTime.Seconds(3), function()
Media.DisplayMessage(UserInterface.Translate("incoming-transmission-capitalized"), UserInterface.Translate("landcom-16-capitalized"))
Media.DisplayMessage(UserInterface.GetFluentMessage("incoming-transmission-capitalized"), UserInterface.GetFluentMessage("landcom-16-capitalized"))
Media.PlaySpeechNotification(Greece, "AbombLaunchDetected")
MissileSilo2.ActivateNukePower(CPos.New(127, 127))
end)
@@ -120,7 +120,7 @@ LaunchMissiles = function()
-- Completing immediately indicates that the FMV is not available
-- Fall back to a text message
if fmvStart == DateTime.GameTime then
Media.DisplayMessage(UserInterface.Translate("deactivate-four-missiles"), UserInterface.Translate("landcom-16-capitalized"))
Media.DisplayMessage(UserInterface.GetFluentMessage("deactivate-four-missiles"), UserInterface.GetFluentMessage("landcom-16-capitalized"))
end
end)
end)

View File

@@ -102,7 +102,7 @@ MiscTriggers = function()
Trigger.RemoveProximityTrigger(id)
if not FlameTower.IsDead then
Media.PlaySoundNotification(Greece, "AlertBleep")
Media.DisplayMessage(UserInterface.Translate("flame-turret-deactivated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("flame-turret-deactivated"), UserInterface.GetFluentMessage("console"))
FlameTower.Kill()
end
end
@@ -232,7 +232,7 @@ DeactivateMissiles = function()
Trigger.RemoveFootprintTrigger(id)
TopLeftTriggered = true
Media.PlaySpeechNotification(Greece, "ControlCenterDeactivated")
Media.DisplayMessage(UserInterface.Translate("nuclear-missile-deactivated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("nuclear-missile-deactivated"), UserInterface.GetFluentMessage("console"))
end
end)
@@ -241,7 +241,7 @@ DeactivateMissiles = function()
Trigger.RemoveFootprintTrigger(id)
BottomLeftTriggered = true
Media.PlaySpeechNotification(Greece, "ControlCenterDeactivated")
Media.DisplayMessage(UserInterface.Translate("nuclear-missile-deactivated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("nuclear-missile-deactivated"), UserInterface.GetFluentMessage("console"))
end
end)
@@ -250,7 +250,7 @@ DeactivateMissiles = function()
Trigger.RemoveFootprintTrigger(id)
TopRightTriggered = true
Media.PlaySpeechNotification(Greece, "ControlCenterDeactivated")
Media.DisplayMessage(UserInterface.Translate("nuclear-missile-deactivated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("nuclear-missile-deactivated"), UserInterface.GetFluentMessage("console"))
end
end)
@@ -259,7 +259,7 @@ DeactivateMissiles = function()
Trigger.RemoveFootprintTrigger(id)
MiddleRightTriggered = true
Media.PlaySpeechNotification(Greece, "ControlCenterDeactivated")
Media.DisplayMessage(UserInterface.Translate("nuclear-missile-deactivated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("nuclear-missile-deactivated"), UserInterface.GetFluentMessage("console"))
end
end)
end
@@ -278,12 +278,12 @@ Tick = function()
if Ticked > 0 then
if Ticked % DateTime.Seconds(1) == 0 then
local timer = UserInterface.Translate("reach-target-in", { ["time"] = Utils.FormatTime(Ticked) })
local timer = UserInterface.GetFluentMessage("reach-target-in", { ["time"] = Utils.FormatTime(Ticked) })
UserInterface.SetMissionText(timer, USSR.Color)
end
Ticked = Ticked - 1
elseif Ticked == 0 then
FinishedTimer = UserInterface.Translate("we-are-too-late")
FinishedTimer = UserInterface.GetFluentMessage("we-are-too-late")
UserInterface.SetMissionText(FinishedTimer, USSR.Color)
Greece.MarkFailedObjective(StopNukes)
end

View File

@@ -92,7 +92,7 @@ PlaceCharges = function()
ChargePlaced[generatorID] = true
Actor.Create("flare", true, { Owner = Greece, Location = Generators[generatorID].Location + CVec.New(0,-1) })
Media.PlaySpeechNotification(Greece, "ExplosiveChargePlaced")
Media.DisplayMessage(UserInterface.Translate("explosive-charge-placed"), UserInterface.Translate("engineer"))
Media.DisplayMessage(UserInterface.GetFluentMessage("explosive-charge-placed"), UserInterface.GetFluentMessage("engineer"))
end
end)
end
@@ -104,7 +104,7 @@ FlameTowerTriggers = function()
if actor.Type == "e6" then
Trigger.RemoveProximityTrigger(id)
if not FlameTowers[flameID].IsDead then
Media.DisplayMessage(UserInterface.Translate("flame-turret-deactivated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("flame-turret-deactivated"), UserInterface.GetFluentMessage("console"))
FlameTowers[flameID].Kill()
Media.PlaySoundNotification(Greece, "AngryBleep")
end
@@ -123,7 +123,7 @@ FlameTowerTriggers = function()
if actor.Type == "e6" then
Trigger.RemoveProximityTrigger(id)
Media.DisplayMessage(UserInterface.Translate("flame-turret-deactivated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("flame-turret-deactivated"), UserInterface.GetFluentMessage("console"))
Utils.Do(DualTowerActors, function(actor)
if not actor.IsDead then
actor.Kill()
@@ -150,7 +150,7 @@ CameraTriggers = function()
heavyCamTriggered = true
local heavyCam = Actor.Create("camera", true, { Owner = Greece, Location = HeavyTankCam.Location })
Media.DisplayMessage(UserInterface.Translate("old-flametowers"), UserInterface.Translate("engineer"))
Media.DisplayMessage(UserInterface.GetFluentMessage("old-flametowers"), UserInterface.GetFluentMessage("engineer"))
Utils.Do(TankRifles, IdleHunt)
Trigger.AfterDelay(DateTime.Minutes(1), function()
heavyCam.Destroy()
@@ -203,7 +203,7 @@ CameraTriggers = function()
local doomCam = Actor.Create("camera", true, { Owner = Greece, Location = DoomRoomCam.Location })
Media.PlaySoundNotification(Greece, "AlertBleep")
Media.DisplayMessage(UserInterface.Translate("be-sneaky"), UserInterface.Translate("soldier"))
Media.DisplayMessage(UserInterface.GetFluentMessage("be-sneaky"), UserInterface.GetFluentMessage("soldier"))
Trigger.AfterDelay(DateTime.Minutes(1), function()
doomCam.Destroy()
end)

View File

@@ -34,7 +34,7 @@ SendInsertionHelicopter = function()
Reinforcements.ReinforceWithTransport(Allies, InsertionHelicopterType, ChopperTeam, InsertionPath, { waypoint4.Location })
end
AlliedForcesHaveArrived = UserInterface.Translate("allied-forces-have-arrived")
AlliedForcesHaveArrived = UserInterface.GetFluentMessage("allied-forces-have-arrived")
FinishTimer = function()
for i = 0, 9, 1 do
local c = TimerColor
@@ -124,7 +124,7 @@ Tick = function()
Ticks = Ticks - 1;
if (Ticks % DateTime.Seconds(1)) == 0 then
Timer = UserInterface.Translate("reinforcements-arrive-in", { ["time"] = Utils.FormatTime(Ticks) })
Timer = UserInterface.GetFluentMessage("reinforcements-arrive-in", { ["time"] = Utils.FormatTime(Ticks) })
UserInterface.SetMissionText(Timer, TimerColor)
end
else

View File

@@ -189,7 +189,7 @@ Tick = function()
if Allies2.IsLocalPlayer and DateTime.GameTime <= ReinforcementsDelay then
if DateTime.GameTime % DateTime.Seconds(1) == 0 then
local time = Utils.FormatTime(ReinforcementsDelay - DateTime.GameTime)
local timer = UserInterface.Translate("allied-reinforcements-arrive-in", { ["time"] = time })
local timer = UserInterface.GetFluentMessage("allied-reinforcements-arrive-in", { ["time"] = time })
UserInterface.SetMissionText(timer)
end
else
@@ -295,7 +295,7 @@ SpawnTanya = function()
if Difficulty ~= "easy" and Allies1.IsLocalPlayer then
Trigger.AfterDelay(DateTime.Seconds(2), function()
Media.DisplayMessageToPlayer(Allies1, UserInterface.Translate("tanya-rules-of-engagement"), UserInterface.Translate("tanya"))
Media.DisplayMessageToPlayer(Allies1, UserInterface.GetFluentMessage("tanya-rules-of-engagement"), UserInterface.GetFluentMessage("tanya"))
end)
end
end
@@ -347,7 +347,7 @@ WorldLoaded = function()
DestroySamSitesObjective = AddPrimaryObjective(Allies1, "destroy-sam-sites")
HoldPositionObjective = AddPrimaryObjective(Allies2, "hold-position-protect-base")
local dontLoseMoreThan = UserInterface.Translate("do-not-lose-more-than", { ["units"] = DeathThreshold[Difficulty] })
local dontLoseMoreThan = UserInterface.GetFluentMessage("do-not-lose-more-than", { ["units"] = DeathThreshold[Difficulty] })
LimitLossesObjective = AddSecondaryObjective(Allies2, dontLoseMoreThan)
CutSovietPowerObjective = AddSecondaryObjective(Allies2, "take-out-the-soviet-power-grid")

View File

@@ -230,7 +230,7 @@ ManageSovietAircraft = function()
end
SetEvacuateMissionText = function()
local unitsEvacuated = UserInterface.Translate("units-evacuated",
local unitsEvacuated = UserInterface.GetFluentMessage("units-evacuated",
{ ["evacuated"] = UnitsEvacuated, ["threshold"] = UnitsEvacuatedThreshold[Difficulty] })
UserInterface.SetMissionText(unitsEvacuated, TextColor)
end
@@ -309,7 +309,7 @@ WorldLoaded = function()
SetEvacuateMissionText()
Utils.Do(Humans, function(player)
if player then
EvacuateUnits = AddPrimaryObjective(player, UserInterface.Translate("evacuate-units", { ["threshold"] = UnitsEvacuatedThreshold[Difficulty] }))
EvacuateUnits = AddPrimaryObjective(player, UserInterface.GetFluentMessage("evacuate-units", { ["threshold"] = UnitsEvacuatedThreshold[Difficulty] }))
DestroyAirbases = AddSecondaryObjective(player, "destroy-nearby-soviet-airbases")
EvacuateMgg = AddSecondaryObjective(player, "evacuate-at-least-one-gap-generator")
end
@@ -333,7 +333,7 @@ WorldLoaded = function()
if not Allies2 then
Allies1.Cash = 10000
Media.DisplayMessage(UserInterface.Translate("transferring-funds"), UserInterface.Translate("co-commander-missing"))
Media.DisplayMessage(UserInterface.GetFluentMessage("transferring-funds"), UserInterface.GetFluentMessage("co-commander-missing"))
end
SpawnAlliedUnit(MobileConstructionVehicle)

View File

@@ -79,7 +79,7 @@ MissionStart = function()
end)
end)
Trigger.AfterDelay(DateTime.Seconds(6), function()
Media.DisplayMessage(UserInterface.Translate("civilians-manual-targeting"), UserInterface.Translate("tanya"))
Media.DisplayMessage(UserInterface.GetFluentMessage("civilians-manual-targeting"), UserInterface.GetFluentMessage("tanya"))
end)
end
end)
@@ -184,7 +184,7 @@ FootprintTriggers = function()
foot5Triggered = true
Media.PlaySoundNotification(Allies, "AlertBleep")
Media.DisplayMessage(UserInterface.Translate("soviet-aircraft-armor-moving-in"), UserInterface.Translate("headquarters"))
Media.DisplayMessage(UserInterface.GetFluentMessage("soviet-aircraft-armor-moving-in"), UserInterface.GetFluentMessage("headquarters"))
Utils.Do(Trigger5Team, function(actor)
if not actor.IsDead then
actor.AttackMove(TacticalNuke1.Location)
@@ -205,7 +205,7 @@ FootprintTriggers = function()
Trigger.AfterDelay(DateTime.Seconds(20), function()
Media.PlaySoundNotification(Allies, "AlertBuzzer")
Media.DisplayMessage(UserInterface.Translate("extraction-point-compromised-evacuate-base"), UserInterface.Translate("headquarters"))
Media.DisplayMessage(UserInterface.GetFluentMessage("extraction-point-compromised-evacuate-base"), UserInterface.GetFluentMessage("headquarters"))
local defenders = Reinforcements.Reinforce(England, TentTeam, { Tent.Location, TentMove.Location }, 0)
Utils.Do(defenders, IdleHunt)
if Difficulty == "hard" then
@@ -230,7 +230,7 @@ FootprintTriggers = function()
end)
Trigger.AfterDelay(DateTime.Seconds(50), function()
Media.DisplayMessage(UserInterface.Translate("new-extraction-point-northwest"), UserInterface.Translate("headquarters"))
Media.DisplayMessage(UserInterface.GetFluentMessage("new-extraction-point-northwest"), UserInterface.GetFluentMessage("headquarters"))
end)
end
end)
@@ -362,7 +362,7 @@ FootprintTriggers = function()
foot12Triggered = true
Media.PlaySoundNotification(Allies, "AlertBleep")
Media.DisplayMessage(UserInterface.Translate("stalin-will-pay"), UserInterface.Translate("stavros"))
Media.DisplayMessage(UserInterface.GetFluentMessage("stalin-will-pay"), UserInterface.GetFluentMessage("stavros"))
end
end)
end

View File

@@ -178,7 +178,7 @@ VillageSetup = function()
end
SetCivilianEvacuatedText = function()
local civiliansEvacuated = UserInterface.Translate("civilians-evacuated",
local civiliansEvacuated = UserInterface.GetFluentMessage("civilians-evacuated",
{ ["evacuated"] = CiviliansEvacuated, ["threshold"] = CiviliansEvacuatedThreshold })
UserInterface.SetMissionText(civiliansEvacuated, TextColor)
end
@@ -215,7 +215,7 @@ EvacuateCivilians = function()
Trigger.OnAllKilled(enemyBase, function()
Media.PlaySoundNotification(Allies, "AlertBleep")
Media.DisplayMessage(UserInterface.Translate("chinook-assist-evacuation"), UserInterface.Translate("chinook-pilot"))
Media.DisplayMessage(UserInterface.GetFluentMessage("chinook-assist-evacuation"), UserInterface.GetFluentMessage("chinook-pilot"))
Reinforcements.Reinforce(Allies, { "tran" }, { ChinookEntry.Location, ChinookLZ.Location })
end)
end

View File

@@ -154,7 +154,7 @@ RepairBarracks = function(id)
end
SellWalls = function(id)
Media.DisplayMessage(UserInterface.Translate("lonestar-ai-sold-its-walls", { ["id"] = id }))
Media.DisplayMessage(UserInterface.GetFluentMessage("lonestar-ai-sold-its-walls", { ["id"] = id }))
local walls = AIPlayers[id].GetActorsByType("brik")
Utils.Do(walls, function(wall)

View File

@@ -167,7 +167,7 @@ SendWave = function()
end
Trigger.AfterDelay(DateTime.Minutes(1), SovietsRetreating)
Media.DisplayMessage(UserInterface.Translate("no-more-waves"))
Media.DisplayMessage(UserInterface.GetFluentMessage("no-more-waves"))
end
end)
end
@@ -220,7 +220,7 @@ WorldLoaded = function()
end
end
Media.DisplayMessage(UserInterface.Translate("defend-fort-lonestar"))
Media.DisplayMessage(UserInterface.GetFluentMessage("defend-fort-lonestar"))
SetupWallOwners()

View File

@@ -88,7 +88,7 @@ AlliedReinforcements = function()
Trigger.OnAllKilled(houseSquad, function()
if not AlliesHouse.IsDead then
Media.PlaySoundNotification(Greece, "AlertBleep")
Media.DisplayMessage(UserInterface.Translate("friendlies-coming-out"), UserInterface.Translate("medic"))
Media.DisplayMessage(UserInterface.GetFluentMessage("friendlies-coming-out"), UserInterface.GetFluentMessage("medic"))
Reinforcements.Reinforce(Greece, AlliedHouseSquad, { VillageSpawnAllies.Location, VillageRally.Location }, 0)
end
end)
@@ -183,7 +183,7 @@ AlliedReinforcements = function()
Trigger.AfterDelay(DateTime.Seconds(5), function()
Media.PlaySpeechNotification(Greece, "ReinforcementsArrived")
Media.DisplayMessage(UserInterface.Translate("get-scientists-evacuation-point"), UserInterface.Translate("landcom-16-capitalized"))
Media.DisplayMessage(UserInterface.GetFluentMessage("get-scientists-evacuation-point"), UserInterface.GetFluentMessage("landcom-16-capitalized"))
local northTeam = Reinforcements.ReinforceWithTransport(Greece, "lst.reinforcement", NorthWaterTeam, NorthWaterPath1, { NorthWaterPath1[1] })
end)
@@ -323,7 +323,7 @@ LoseTriggers = function()
Trigger.OnKilled(ForwardCommand, function()
if not ScientistsFreed then
Greece.MarkFailedObjective(RescueScientists)
Media.DisplayMessage(UserInterface.Translate("scientists-killed-in-command-center"), UserInterface.Translate("landcom-16-capitalized"))
Media.DisplayMessage(UserInterface.GetFluentMessage("scientists-killed-in-command-center"), UserInterface.GetFluentMessage("landcom-16-capitalized"))
end
end)
@@ -344,12 +344,12 @@ Tick = function()
if Ticked > 0 then
if (Ticked % DateTime.Seconds(1)) == 0 then
Timer = UserInterface.Translate("chronosphere-explodes-in", { ["time"] = Utils.FormatTime(Ticked) })
Timer = UserInterface.GetFluentMessage("chronosphere-explodes-in", { ["time"] = Utils.FormatTime(Ticked) })
UserInterface.SetMissionText(Timer, TimerColor)
end
Ticked = Ticked - 1
elseif Ticked == 0 then
UserInterface.SetMissionText(UserInterface.Translate("too-late"), USSR.Color)
UserInterface.SetMissionText(UserInterface.GetFluentMessage("too-late"), USSR.Color)
USSR.MarkCompletedObjective(SovietObj)
end
end

View File

@@ -268,13 +268,13 @@ SecureLabTimer = function()
if Ticked > 0 then
if (Ticked % DateTime.Seconds(1)) == 0 then
Timer = UserInterface.Translate("secure-lab-in", { ["time"] = Utils.FormatTime(Ticked) })
Timer = UserInterface.GetFluentMessage("secure-lab-in", { ["time"] = Utils.FormatTime(Ticked) })
UserInterface.SetMissionText(Timer, TimerColor)
end
Ticked = Ticked - 1
elseif Ticked <= 0 then
TimerColor = Soviets.Color
UserInterface.SetMissionText(UserInterface.Translate("soviet-research-lab-not-secured-in-time"), TimerColor)
UserInterface.SetMissionText(UserInterface.GetFluentMessage("soviet-research-lab-not-secured-in-time"), TimerColor)
SecureLabFailed()
end
end

View File

@@ -241,7 +241,7 @@ Tick = function()
end
if CachedVillagePercentage ~= VillagePercentage then
VillageDestroyed = UserInterface.Translate("percentage-village-destroyed", { ["percentage"] = VillagePercentage })
VillageDestroyed = UserInterface.GetFluentMessage("percentage-village-destroyed", { ["percentage"] = VillagePercentage })
UserInterface.SetMissionText(VillageDestroyed, CurrentColor)
CachedVillagePercentage = VillagePercentage
end

View File

@@ -177,7 +177,7 @@ SuperTankDomeInfiltrated = function()
Media.PlaySpeechNotification(Greece, "ControlCenterDeactivated")
Trigger.AfterDelay(DateTime.Seconds(4), function()
Media.DisplayMessage(UserInterface.Translate("super-tank-self-destruct-t-minus-3"))
Media.DisplayMessage(UserInterface.GetFluentMessage("super-tank-self-destruct-t-minus-3"))
Media.PlaySpeechNotification(Greece, "WarningThreeMinutesRemaining")
end)
end)
@@ -250,7 +250,7 @@ Tick = function()
if Ticked > 0 then
if (Ticked % DateTime.Seconds(1)) == 0 then
Timer = UserInterface.Translate("super-tank-self-destruct-in", { ["time"] = Utils.FormatTime(Ticked) })
Timer = UserInterface.GetFluentMessage("super-tank-self-destruct-in", { ["time"] = Utils.FormatTime(Ticked) })
UserInterface.SetMissionText(Timer, TimerColor)
end
Ticked = Ticked - 1
@@ -267,7 +267,7 @@ FinishTimer = function()
c = HSLColor.White
end
Trigger.AfterDelay(DateTime.Seconds(i), function() UserInterface.SetMissionText(UserInterface.Translate("super-tanks-destroyed"), c) end)
Trigger.AfterDelay(DateTime.Seconds(i), function() UserInterface.SetMissionText(UserInterface.GetFluentMessage("super-tanks-destroyed"), c) end)
end
Trigger.AfterDelay(DateTime.Seconds(10), function() UserInterface.SetMissionText("") end)
end
@@ -318,7 +318,7 @@ AddObjectives = function()
end)
Trigger.OnPlayerWon(Greece, function()
Media.DisplayMessage(UserInterface.Translate("demitri-extracted-super-tanks-destroyed"))
Media.DisplayMessage(UserInterface.GetFluentMessage("demitri-extracted-super-tanks-destroyed"))
USSR.MarkFailedObjective(USSRObj)
BadGuy.MarkFailedObjective(BadGuyObj)
Ukraine.MarkFailedObjective(UkraineObj)

View File

@@ -93,7 +93,7 @@ OnStartingEngineersKilled = function()
end
Media.PlaySoundNotification(USSR, "AlertBleep")
Media.DisplayMessage(UserInterface.Translate("all-engineers-killed"))
Media.DisplayMessage(UserInterface.GetFluentMessage("all-engineers-killed"))
Trigger.AfterDelay(DateTime.Seconds(1), AlliedWin)
end

View File

@@ -78,7 +78,7 @@ AnnounceTanyaRules = function(tanya)
Trigger.OnAddedToWorld(tanya, function()
Trigger.AfterDelay(DateTime.Seconds(1), function()
Media.DisplayMessage(UserInterface.Translate("tanya-rules-of-engagement"), tanya.TooltipName)
Media.DisplayMessage(UserInterface.GetFluentMessage("tanya-rules-of-engagement"), tanya.TooltipName)
Media.PlaySoundNotification(Greece, "AlertBleep")
end)
end)

View File

@@ -230,12 +230,12 @@ Tick = function()
return
end
local text = UserInterface.Translate("hostage-dies-in", { ["time"] = Utils.FormatTime(TimeRemaining) })
local text = UserInterface.GetFluentMessage("hostage-dies-in", { ["time"] = Utils.FormatTime(TimeRemaining) })
UserInterface.SetMissionText(text, TimerColor)
end
PrepareCountdown = function(interval)
local text = UserInterface.Translate("hostage-dies-in", { ["time"] = Utils.FormatTime(interval) })
local text = UserInterface.GetFluentMessage("hostage-dies-in", { ["time"] = Utils.FormatTime(interval) })
UserInterface.SetMissionText(text, TimerColor)
DateTime.TimeLimit = 1
@@ -379,7 +379,7 @@ PrepareForestEncounter = function()
end
Trigger.RemoveFootprintTrigger(id)
Media.DisplayMessage(UserInterface.Translate("guide-follow-me"), actor.TooltipName)
Media.DisplayMessage(UserInterface.GetFluentMessage("guide-follow-me"), actor.TooltipName)
end)
Trigger.OnEnteredFootprint({ ForestSouthwest.Location }, function(actor, id)
@@ -935,7 +935,7 @@ GuideToForest = function(guide)
guide.Move(GuideHouse.Location + CVec.New(0, 1))
guide.CallFunc(function()
Media.DisplayMessage(UserInterface.Translate("guide-thank-you"), guide.TooltipName)
Media.DisplayMessage(UserInterface.GetFluentMessage("guide-thank-you"), guide.TooltipName)
end)
guide.Move(SouthRiver.Location)
@@ -950,7 +950,7 @@ GuideToHideout = function(guide)
end
guide.CallFunc(function()
Media.DisplayMessage(UserInterface.Translate("guide-patrol-coming"), guide.TooltipName)
Media.DisplayMessage(UserInterface.GetFluentMessage("guide-patrol-coming"), guide.TooltipName)
end)
guide.Wait(DateTime.Seconds(2))
@@ -960,7 +960,7 @@ GuideToHideout = function(guide)
return
end
Media.DisplayMessage(UserInterface.Translate("guide-come-this-way"), guide.TooltipName)
Media.DisplayMessage(UserInterface.GetFluentMessage("guide-come-this-way"), guide.TooltipName)
guide.Move(ForestHideout.Location)
end)
end
@@ -973,7 +973,7 @@ GuideToVillage = function(guide, patrolKilled)
guide.Stop()
Media.PlaySoundNotification(Greece, "GuideOkay")
Media.DisplayMessage(UserInterface.Translate("guide-safe-to-move"), guide.TooltipName)
Media.DisplayMessage(UserInterface.GetFluentMessage("guide-safe-to-move"), guide.TooltipName)
if not patrolKilled then
guide.Wait(DateTime.Seconds(1))
end
@@ -1203,7 +1203,7 @@ end
OnAllHostagesKilled = function()
Media.PlaySoundNotification(Greece, "AlertBleep")
Media.DisplayMessage(UserInterface.Translate("all-hostages-killed"))
Media.DisplayMessage(UserInterface.GetFluentMessage("all-hostages-killed"))
MarkAlliedDefeat(EscortTheHostages or FreeTheHostages)
end
@@ -1228,7 +1228,7 @@ end
OnChurchKilled = function()
Media.PlaySoundNotification(Greece, "AlertBleep")
Media.DisplayMessage(UserInterface.Translate("church-destroyed"))
Media.DisplayMessage(UserInterface.GetFluentMessage("church-destroyed"))
MarkAlliedDefeat(EscortTheHostages, DateTime.Seconds(2))
end

View File

@@ -302,7 +302,7 @@ SpawnTemporaryCamera = function(location, duration)
end
FinishTimer = function()
local submarineEscapes = UserInterface.Translate("submarine-escapes")
local submarineEscapes = UserInterface.GetFluentMessage("submarine-escapes")
for i = 0, 5 do
local c = TimerColor
@@ -329,7 +329,7 @@ Tick = function()
if Ticked > 0 then
if (Ticked % DateTime.Seconds(1)) == 0 then
Timer = UserInterface.Translate("submarine-construction-complete-in", { ["time"] = Utils.FormatTime(Ticked) })
Timer = UserInterface.GetFluentMessage("submarine-construction-complete-in", { ["time"] = Utils.FormatTime(Ticked) })
UserInterface.SetMissionText(Timer, TimerColor)
end
Ticked = Ticked - 1

View File

@@ -102,7 +102,7 @@ MoveTruckEscapeRoute = function(truck, route)
if truck.IsDead then
return
else
Media.DisplayMessage(UserInterface.Translate("convoy-truck-escaping"))
Media.DisplayMessage(UserInterface.GetFluentMessage("convoy-truck-escaping"))
Media.PlaySoundNotification(Greece, "AlertBleep")
Utils.Do(route, function(waypoint)
truck.Move(waypoint.Location)

View File

@@ -73,7 +73,7 @@ ConsoleTriggers = function()
if actor.Owner == Greece then
Trigger.RemoveProximityTrigger(id)
if not FlameTower1.IsDead then
Media.DisplayMessage(UserInterface.Translate("flame-turret-deactivated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("flame-turret-deactivated"), UserInterface.GetFluentMessage("console"))
FlameTower1.Kill()
end
end
@@ -83,7 +83,7 @@ ConsoleTriggers = function()
if actor.Owner == Greece then
Trigger.RemoveProximityTrigger(id)
if not FlameTower2.IsDead then
Media.DisplayMessage(UserInterface.Translate("flame-turret-deactivated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("flame-turret-deactivated"), UserInterface.GetFluentMessage("console"))
FlameTower2.Kill()
end
end
@@ -93,7 +93,7 @@ ConsoleTriggers = function()
if actor.Owner == Greece then
Trigger.RemoveProximityTrigger(id)
if not FlameTower3.IsDead then
Media.DisplayMessage(UserInterface.Translate("flame-turret-deactivated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("flame-turret-deactivated"), UserInterface.GetFluentMessage("console"))
FlameTower3.Kill()
end
end
@@ -105,7 +105,7 @@ ConsoleTriggers = function()
Trigger.RemoveProximityTrigger(id)
gasActive = true
Media.DisplayMessage(UserInterface.Translate("sarin-dispenser-activated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("sarin-dispenser-activated"), UserInterface.GetFluentMessage("console"))
local KillCamera = Actor.Create("camera", true, { Owner = Greece, Location = Sarin2.Location })
local flare1 = Actor.Create("flare", true, { Owner = England, Location = Sarin1.Location })
local flare2 = Actor.Create("flare", true, { Owner = England, Location = Sarin2.Location })
@@ -133,7 +133,7 @@ ConsoleTriggers = function()
if actor.Owner == Greece then
Trigger.RemoveProximityTrigger(id)
if not BadCoil.IsDead then
Media.DisplayMessage(UserInterface.Translate("tesla-coil-deactivated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("tesla-coil-deactivated"), UserInterface.GetFluentMessage("console"))
BadCoil.Kill()
end
end
@@ -145,7 +145,7 @@ ConsoleTriggers = function()
Trigger.RemoveProximityTrigger(id)
teslaActive = true
Media.DisplayMessage(UserInterface.Translate("tesla-coil-activated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("tesla-coil-activated"), UserInterface.GetFluentMessage("console"))
local tesla1 = Actor.Create("tsla", true, { Owner = Turkey, Location = TurkeyCoil1.Location })
local tesla2 = Actor.Create("tsla", true, { Owner = Turkey, Location = TurkeyCoil2.Location })
Trigger.AfterDelay(DateTime.Seconds(10), function()
@@ -163,11 +163,11 @@ ConsoleTriggers = function()
if actor.Owner == Greece then
Trigger.RemoveProximityTrigger(id)
if not FlameTowerTanya1.IsDead then
Media.DisplayMessage(UserInterface.Translate("flame-turret-deactivated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("flame-turret-deactivated"), UserInterface.GetFluentMessage("console"))
FlameTowerTanya1.Kill()
end
if not FlameTowerTanya2.IsDead then
Media.DisplayMessage(UserInterface.Translate("flame-turret-deactivated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("flame-turret-deactivated"), UserInterface.GetFluentMessage("console"))
FlameTowerTanya2.Kill()
end
end
@@ -177,11 +177,11 @@ ConsoleTriggers = function()
if actor.Owner == Greece then
Trigger.RemoveProximityTrigger(id)
if not FlameTowerExit1.IsDead then
Media.DisplayMessage(UserInterface.Translate("flame-turret-deactivated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("flame-turret-deactivated"), UserInterface.GetFluentMessage("console"))
FlameTowerExit1.Kill()
end
if not FlameTowerExit3.IsDead then
Media.DisplayMessage(UserInterface.Translate("flame-turret-deactivated"), UserInterface.Translate("console"))
Media.DisplayMessage(UserInterface.GetFluentMessage("flame-turret-deactivated"), UserInterface.GetFluentMessage("console"))
FlameTowerExit3.Kill()
end
end
@@ -366,7 +366,7 @@ PrisonEscape = function()
alarmed = true
Trigger.RemoveFootprintTrigger(id)
Media.DisplayMessage(UserInterface.Translate("prisoners-escaping"), UserInterface.Translate("intercom"))
Media.DisplayMessage(UserInterface.GetFluentMessage("prisoners-escaping"), UserInterface.GetFluentMessage("intercom"))
Media.PlaySoundNotification(Greece, "AlertBuzzer")
Utils.Do(GuardDogs, IdleHunt)
end)
@@ -374,7 +374,7 @@ end
ScientistExecution = function()
Media.PlaySoundNotification(Greece, "AlertBleep")
Media.DisplayMessage(UserInterface.Translate("hurry-base-compromised"), UserInterface.Translate("soviet-officer"))
Media.DisplayMessage(UserInterface.GetFluentMessage("hurry-base-compromised"), UserInterface.GetFluentMessage("soviet-officer"))
Utils.Do(DemoTeam, function(actor)
actor.AttackMove(DemoDrive2.Location)
end)
@@ -387,13 +387,13 @@ ScientistExecution = function()
Trigger.AfterDelay(DateTime.Seconds(7), function()
if not Officer2.IsDead then
Media.DisplayMessage(UserInterface.Translate("prepare-to-fire"), UserInterface.Translate("soviet-officer"))
Media.DisplayMessage(UserInterface.GetFluentMessage("prepare-to-fire"), UserInterface.GetFluentMessage("soviet-officer"))
end
end)
Trigger.AfterDelay(DateTime.Seconds(15), function()
if not Officer2.IsDead then
Media.DisplayMessage(UserInterface.Translate("fire"), UserInterface.Translate("soviet-officer"))
Media.DisplayMessage(UserInterface.GetFluentMessage("fire"), UserInterface.GetFluentMessage("soviet-officer"))
end
Utils.Do(FiringSquad, function(actor)
@@ -405,11 +405,11 @@ ScientistExecution = function()
end
ScientistRescued = function()
Media.DisplayMessage(UserInterface.Translate("thanks-for-rescue"), UserInterface.Translate("scientist"))
Media.DisplayMessage(UserInterface.GetFluentMessage("thanks-for-rescue"), UserInterface.GetFluentMessage("scientist"))
Trigger.AfterDelay(DateTime.Seconds(5), function()
if not ScientistMan.IsDead and not DemoTruck.IsDead then
Media.DisplayMessage(UserInterface.Translate("move-nuclear-outside"), UserInterface.Translate("scientist"))
Media.DisplayMessage(UserInterface.GetFluentMessage("move-nuclear-outside"), UserInterface.GetFluentMessage("scientist"))
DemoTruck.GrantCondition("mission")
ScientistMan.EnterTransport(DemoTruck)
end
@@ -423,7 +423,7 @@ DemoTruckExit = function()
return
end
Media.DisplayMessage(UserInterface.Translate("exit-clear-hopefully"), UserInterface.Translate("scientist"))
Media.DisplayMessage(UserInterface.GetFluentMessage("exit-clear-hopefully"), UserInterface.GetFluentMessage("scientist"))
Utils.Do(DemoTruckPath, function(waypoint)
DemoTruck.Move(waypoint.Location)
end)

View File

@@ -204,7 +204,7 @@ BridgeTriggers = function()
end)
end
FirstTrucksEntering = UserInterface.Translate("first-trucks-entering")
FirstTrucksEntering = UserInterface.GetFluentMessage("first-trucks-entering")
FinishTimer = function()
for i = 0, 5 do
local c = TimerColor
@@ -222,7 +222,7 @@ ConvoysSent = false
Tick = function()
if Ticked > 0 then
if (Ticked % DateTime.Seconds(1)) == 0 then
Timer = UserInterface.Translate("first-trucks-arrive-in", { ["time"] = Utils.FormatTime(Ticked) })
Timer = UserInterface.GetFluentMessage("first-trucks-arrive-in", { ["time"] = Utils.FormatTime(Ticked) })
UserInterface.SetMissionText(Timer, TimerColor)
end
Ticked = Ticked - 1

View File

@@ -90,7 +90,7 @@ SetupTriggers = function()
end)
Trigger.OnInfiltrated(BioLab, function()
Media.DisplayMessage(UserInterface.Translate("plans-stolen-erase-data"), UserInterface.Translate("scientist"))
Media.DisplayMessage(UserInterface.GetFluentMessage("plans-stolen-erase-data"), UserInterface.GetFluentMessage("scientist"))
Trigger.AfterDelay(DateTime.Seconds(5), function()
USSR.MarkCompletedObjective(InfiltrateLab)
LabInfiltrated = true
@@ -137,7 +137,7 @@ SendInVolkov = function()
USSR.MarkFailedObjective(VolkovSurvive)
end)
Trigger.OnAddedToWorld(teamVolkov[1], function(a)
Media.DisplayMessage(UserInterface.Translate("software-update-failed-manual-targets"), UserInterface.Translate("volkov"))
Media.DisplayMessage(UserInterface.GetFluentMessage("software-update-failed-manual-targets"), UserInterface.GetFluentMessage("volkov"))
end)
Trigger.OnAddedToWorld(teamVolkov[2], function(b)
@@ -158,12 +158,12 @@ Tick = function()
if Ticked > 0 then
if (Ticked % DateTime.Seconds(1)) == 0 then
Timer = UserInterface.Translate("missiles-launch-in", { ["time"] = Utils.FormatTime(Ticked) })
Timer = UserInterface.GetFluentMessage("missiles-launch-in", { ["time"] = Utils.FormatTime(Ticked) })
UserInterface.SetMissionText(Timer, TimerColor)
end
Ticked = Ticked - 1
elseif Ticked == 0 then
UserInterface.SetMissionText(UserInterface.Translate("too-late"), USSR.Color)
UserInterface.SetMissionText(UserInterface.GetFluentMessage("too-late"), USSR.Color)
Turkey.MarkCompletedObjective(LaunchMissles)
end
end

View File

@@ -372,7 +372,7 @@ Tick = function()
end
if RemainingTime > 0 and TimerStarted then
if (RemainingTime % DateTime.Seconds(1)) == 0 then
Timer = UserInterface.Translate("time-remaining", { ["time"] = Utils.FormatTime(RemainingTime) })
Timer = UserInterface.GetFluentMessage("time-remaining", { ["time"] = Utils.FormatTime(RemainingTime) })
UserInterface.SetMissionText(Timer, USSR.Color)
end
RemainingTime = RemainingTime - 1

View File

@@ -82,7 +82,7 @@ Expand = function()
ExpansionCheck = true
Trigger.ClearAll(mcvGG)
Trigger.ClearAll(mcvtransport)
Media.DisplayMessage(UserInterface.Translate("allied-mcv-island"))
Media.DisplayMessage(UserInterface.GetFluentMessage("allied-mcv-island"))
Reinforcements.Reinforce(GoodGuy, { "dd", "dd" }, ShipArrivePath, 0, function(ddsquad)
ddsquad.AttackMove(NearExpPoint.Location) end)
@@ -219,10 +219,10 @@ WorldLoaded = function()
Beacon.New(USSR, MCVDeploy.CenterPosition)
if Difficulty == "easy" then
Actor.Create("camera", true, { Owner = USSR, Location = MCVDeploy.Location })
Media.DisplayMessage(UserInterface.Translate("allied-expansion-movement-detected"))
Media.DisplayMessage(UserInterface.GetFluentMessage("allied-expansion-movement-detected"))
else
Actor.Create("MCV.CAM", true, { Owner = USSR, Location = MCVDeploy.Location })
Media.DisplayMessage(UserInterface.Translate("coordinates-allied-expansion-discovered"))
Media.DisplayMessage(UserInterface.GetFluentMessage("coordinates-allied-expansion-discovered"))
end
if not ExpansionCheck then

View File

@@ -310,7 +310,7 @@ Tick = function()
if RemainingTime > 0 and TimerStarted then
if (RemainingTime % DateTime.Seconds(1)) == 0 then
Timer = UserInterface.Translate("time-until-meltdown", { ["time"] = Utils.FormatTime(RemainingTime) })
Timer = UserInterface.GetFluentMessage("time-until-meltdown", { ["time"] = Utils.FormatTime(RemainingTime) })
UserInterface.SetMissionText(Timer, USSR.Color)
end
RemainingTime = RemainingTime - 1

View File

@@ -24,7 +24,7 @@ MissionStart = function()
end)
Trigger.AfterDelay(DateTime.Seconds(45), function()
Media.DisplayMessage(UserInterface.Translate("truck-stopped-near-allied-base"))
Media.DisplayMessage(UserInterface.GetFluentMessage("truck-stopped-near-allied-base"))
end)
Trigger.OnKilled(StolenTruck, function()
@@ -40,7 +40,7 @@ end
Trigger.OnEnteredProximityTrigger(TruckAlarm.CenterPosition, WDist.FromCells(11), function(actor, triggerflee)
if actor.Owner == USSR and actor.Type ~= "badr" and actor.Type ~= "u2" and actor.Type ~= "camera.spyplane" then
Trigger.RemoveProximityTrigger(triggerflee)
Media.DisplayMessage(UserInterface.Translate("convoy-truck-escaping"))
Media.DisplayMessage(UserInterface.GetFluentMessage("convoy-truck-escaping"))
EscapeCamera = Actor.Create("camera", true, { Owner = USSR, Location = TruckAlarm.Location })
Media.PlaySoundNotification(USSR, "AlertBleep")
Utils.Do(TruckEscape, function(waypoint)

View File

@@ -237,7 +237,7 @@ end
RunForIt = function()
Running = true
Media.PlaySoundNotification(USSR, "AlertBleep")
Media.DisplayMessage(UserInterface.Translate("run-for-it"), UserInterface.Translate("convoy-commander"))
Media.DisplayMessage(UserInterface.GetFluentMessage("run-for-it"), UserInterface.GetFluentMessage("convoy-commander"))
Utils.Do(Trucks, function(truck)
if not truck.IsDead then
truck.Stop()
@@ -274,7 +274,7 @@ StartTimerFunction = function()
end)
end
WeAreSurrounded = UserInterface.Translate("we-are-surrounded")
WeAreSurrounded = UserInterface.GetFluentMessage("we-are-surrounded")
FinishTimer = function()
for i = 0, 5, 1 do
local c = TimerColor
@@ -291,7 +291,7 @@ Tick = function()
if StartTimer then
if Ticked > 0 then
if (Ticked % DateTime.Seconds(1)) == 0 then
Timer = UserInterface.Translate("corridor-closes-in", { ["time"] = Utils.FormatTime(Ticked) })
Timer = UserInterface.GetFluentMessage("corridor-closes-in", { ["time"] = Utils.FormatTime(Ticked) })
UserInterface.SetMissionText(Timer, TimerColor)
end
Ticked = Ticked - 1

View File

@@ -36,7 +36,7 @@ MissionTriggers = function()
Trigger.OnCapture(Chronosphere, function()
if not USSR.IsObjectiveCompleted(TakeDownRadar) then
Media.DisplayMessage(UserInterface.Translate("chrono-trap-triggered"), UserInterface.Translate("headquarters"))
Media.DisplayMessage(UserInterface.GetFluentMessage("chrono-trap-triggered"), UserInterface.GetFluentMessage("headquarters"))
Chronosphere.Kill()
else
USSR.MarkCompletedObjective(CaptureChronosphere)
@@ -52,7 +52,7 @@ MissionTriggers = function()
if actor.Owner == USSR and not chronoTriggered and not USSR.IsObjectiveCompleted(TakeDownRadar) then
Trigger.RemoveFootprintTrigger(id)
chronoTriggered = true
Media.DisplayMessage(UserInterface.Translate("chrono-trap-triggered"), UserInterface.Translate("headquarters"))
Media.DisplayMessage(UserInterface.GetFluentMessage("chrono-trap-triggered"), UserInterface.GetFluentMessage("headquarters"))
Chronosphere.Kill()
end
end)

View File

@@ -36,7 +36,7 @@ MissionTriggers = function()
Trigger.OnCapture(Chronosphere, function()
if not USSR.IsObjectiveCompleted(TakeDownRadar) then
Media.DisplayMessage(UserInterface.Translate("chrono-trap-triggered"), UserInterface.Translate("headquarters"))
Media.DisplayMessage(UserInterface.GetFluentMessage("chrono-trap-triggered"), UserInterface.GetFluentMessage("headquarters"))
Chronosphere.Kill()
else
USSR.MarkCompletedObjective(CaptureChronosphere)
@@ -51,7 +51,7 @@ MissionTriggers = function()
Trigger.OnEnteredFootprint(ChronoDemolitionTrigger, function(actor, id)
if actor.Owner == USSR and not chronoTriggered and not USSR.IsObjectiveCompleted(TakeDownRadar) then
Trigger.RemoveFootprintTrigger(id)
Media.DisplayMessage(UserInterface.Translate("chrono-trap-triggered"), UserInterface.Translate("headquarters"))
Media.DisplayMessage(UserInterface.GetFluentMessage("chrono-trap-triggered"), UserInterface.GetFluentMessage("headquarters"))
chronoTriggered = true
Chronosphere.Kill()
end

View File

@@ -76,7 +76,7 @@ WorldLoaded = function()
USSR.MarkCompletedObjective(DestroyControlCenter)
DestroyAlloyFacility = AddPrimaryObjective(USSR, "destroy-alloy-facility")
Media.PlaySpeechNotification(USSR, "FirstObjectiveMet")
Media.DisplayMessage(UserInterface.Translate("heavy-turret-control-destroyed"))
Media.DisplayMessage(UserInterface.GetFluentMessage("heavy-turret-control-destroyed"))
end)
Trigger.OnKilled(AlloyFacility, function()
@@ -352,7 +352,7 @@ end
ChitzkoiIsDead = function(a)
Trigger.OnKilled(a, function()
USSR.MarkFailedObjective(KeepChitzkoiAlive)
Media.DisplayMessage(UserInterface.Translate("rebuild-chitzkoi"))
Media.DisplayMessage(UserInterface.GetFluentMessage("rebuild-chitzkoi"))
Trigger.AfterDelay(DateTime.Seconds(1), function()
Media.PlaySpeechNotification(USSR, "ObjectiveNotMet")
end)

View File

@@ -161,7 +161,7 @@ Tick = function()
end
if (Ticked % DateTime.Seconds(1)) == 0 then
Timer = UserInterface.Translate("french-reinforcements-arrive-in", { ["time"] = Utils.FormatTime(Ticked) })
Timer = UserInterface.GetFluentMessage("french-reinforcements-arrive-in", { ["time"] = Utils.FormatTime(Ticked) })
UserInterface.SetMissionText(Timer, TimerColor)
end
Ticked = Ticked - 1
@@ -172,7 +172,7 @@ Tick = function()
end
end
FrenchAlliesArrived = UserInterface.Translate("french-allies-arrived")
FrenchAlliesArrived = UserInterface.GetFluentMessage("french-allies-arrived")
FinishTimer = function()
for i = 0, 9, 1 do
local c = TimerColor
@@ -305,12 +305,12 @@ AddObjectives = function()
SurviveObj = AddPrimaryObjective(Allies, "enforce-position-hold-until-reinforcements")
KillSams = AddSecondaryObjective(Allies, "destroy-two-sams-before-reinforcements")
Media.DisplayMessage(UserInterface.Translate("soviets-blocking-gps"))
Media.DisplayMessage(UserInterface.GetFluentMessage("soviets-blocking-gps"))
CaptureAirfields = AddSecondaryObjective(Allies, "capture-hold-soviet-airbase-northeast")
SovietObj = AddPrimaryObjective(Soviets, "")
Trigger.OnPlayerWon(Allies, function()
Media.DisplayMessage(UserInterface.Translate("french-survived-dismantled-soviet-presence"))
Media.DisplayMessage(UserInterface.GetFluentMessage("french-survived-dismantled-soviet-presence"))
end)
end

View File

@@ -112,7 +112,7 @@ Tick = function()
if Ticked > 0 then
if (Ticked % DateTime.Seconds(1)) == 0 then
Timer = UserInterface.Translate("soviet-reinforcements-arrive-in", { ["time"] = Utils.FormatTime(Ticked) })
Timer = UserInterface.GetFluentMessage("soviet-reinforcements-arrive-in", { ["time"] = Utils.FormatTime(Ticked) })
UserInterface.SetMissionText(Timer, TimerColor)
end
Ticked = Ticked - 1
@@ -214,14 +214,14 @@ FinalAttack = function()
Trigger.OnAllKilledOrCaptured(units, function()
if not DestroyObj then
Media.DisplayMessage(UserInterface.Translate("reinforced-position-initiate-counter-attack"), UserInterface.Translate("incoming-report"))
Media.DisplayMessage(UserInterface.GetFluentMessage("reinforced-position-initiate-counter-attack"), UserInterface.GetFluentMessage("incoming-report"))
DestroyObj = AddPrimaryObjective(Allies, "destroy-remaining-soviet-forces-area")
end
Allies.MarkCompletedObjective(SurviveObj)
end)
end
SovietReinforcementsArrived = UserInterface.Translate("soviet-reinforcements-arrived")
SovietReinforcementsArrived = UserInterface.GetFluentMessage("soviet-reinforcements-arrived")
FinishTimer = function()
for i = 0, 9, 1 do
local c = TimerColor
@@ -255,7 +255,7 @@ SetupBridges = function()
end
end
Media.DisplayMessage(UserInterface.Translate("repair-bridges-for-reinforcement"), UserInterface.Translate("incoming-report"))
Media.DisplayMessage(UserInterface.GetFluentMessage("repair-bridges-for-reinforcement"), UserInterface.GetFluentMessage("incoming-report"))
RepairBridges = AddSecondaryObjective(Allies, "repair-two-southern-bridges")
local bridgeA = Map.ActorsInCircle(BrokenBridge1.CenterPosition, WDist.FromCells(1), function(self) return self.Type == "bridge1" end)
@@ -297,7 +297,7 @@ AddObjectives = function()
end)
Trigger.OnPlayerWon(Allies, function()
Media.DisplayMessage(UserInterface.Translate("remaining-soviet-presence-destroyed"), UserInterface.Translate("incoming-report"))
Media.DisplayMessage(UserInterface.GetFluentMessage("remaining-soviet-presence-destroyed"), UserInterface.GetFluentMessage("incoming-report"))
end)
end
@@ -308,7 +308,7 @@ InitMission = function()
Trigger.AfterDelay(DateTime.Seconds(1), function() Media.PlaySpeechNotification(Allies, "MissionTimerInitialised") end)
Trigger.AfterDelay(TimerTicks, function()
Media.DisplayMessage(UserInterface.Translate("soviet-reinforcements-approaching"), UserInterface.Translate("incoming-report"))
Media.DisplayMessage(UserInterface.GetFluentMessage("soviet-reinforcements-approaching"), UserInterface.GetFluentMessage("incoming-report"))
Media.PlaySpeechNotification(Allies, "SovietReinforcementsArrived")
SpawnSovietVehicle(NewSovietEntryPoints, NewSovietRallyPoints)
FinalAttack()

View File

@@ -129,7 +129,7 @@ WorldLoaded = function()
Trigger.AfterDelay(DateTime.Seconds(2), function()
Actor.Create("powerproxy.spyplane", true, { Owner = USSR })
Actor.Create("powerproxy.parabombs", true, { Owner = USSR })
Media.DisplayMessage(UserInterface.Translate("air-support-t-minus-3"))
Media.DisplayMessage(UserInterface.GetFluentMessage("air-support-t-minus-3"))
end)
end)
@@ -226,7 +226,7 @@ WorldLoaded = function()
USSR.MarkCompletedObjective(PreventAlliedIncursions)
Media.PlaySpeechNotification(USSR, "ObjectiveMet")
Trigger.AfterDelay(DateTime.Seconds(2), function()
Media.DisplayMessage(UserInterface.Translate("allied-ground-reinforcements-stopped"))
Media.DisplayMessage(UserInterface.GetFluentMessage("allied-ground-reinforcements-stopped"))
end)
end)
end)

View File

@@ -11,10 +11,10 @@ Difficulty = Map.LobbyOptionOrDefault("difficulty", "normal")
InitObjectives = function(player)
Trigger.OnObjectiveCompleted(player, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), UserInterface.Translate("objective-completed"))
Media.DisplayMessage(p.GetObjectiveDescription(id), UserInterface.GetFluentMessage("objective-completed"))
end)
Trigger.OnObjectiveFailed(player, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), UserInterface.Translate("objective-failed"))
Media.DisplayMessage(p.GetObjectiveDescription(id), UserInterface.GetFluentMessage("objective-failed"))
end)
Trigger.OnPlayerLost(player, function()