Rename Lua UserInterface.Translate to .GetFluentMessage.
This commit is contained in:
@@ -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.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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, "")
|
||||
|
||||
@@ -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, "")
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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])
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user