Rename Lua UserInterface.Translate to .GetFluentMessage.
This commit is contained in:
@@ -158,22 +158,22 @@ namespace OpenRA.Mods.Common.Lint
|
|||||||
if (luaScriptInfo != null)
|
if (luaScriptInfo != null)
|
||||||
{
|
{
|
||||||
// Matches expressions such as:
|
// Matches expressions such as:
|
||||||
// UserInterface.Translate("fluent-key")
|
// UserInterface.GetFluentMessage("fluent-key")
|
||||||
// UserInterface.Translate("fluent-key\"with-escape")
|
// UserInterface.GetFluentMessage("fluent-key\"with-escape")
|
||||||
// UserInterface.Translate("fluent-key", { ["attribute"] = foo })
|
// UserInterface.GetFluentMessage("fluent-key", { ["attribute"] = foo })
|
||||||
// UserInterface.Translate("fluent-key", { ["attribute\"-with-escape"] = foo })
|
// UserInterface.GetFluentMessage("fluent-key", { ["attribute\"-with-escape"] = foo })
|
||||||
// UserInterface.Translate("fluent-key", { ["attribute1"] = foo, ["attribute2"] = bar })
|
// UserInterface.GetFluentMessage("fluent-key", { ["attribute1"] = foo, ["attribute2"] = bar })
|
||||||
// UserInterface.Translate("fluent-key", tableVariable)
|
// UserInterface.GetFluentMessage("fluent-key", tableVariable)
|
||||||
// Extracts groups for the 'key' and each 'attr'.
|
// Extracts groups for the 'key' and each 'attr'.
|
||||||
// If the table isn't inline like in the last example, extracts it as 'variable'.
|
// If the table isn't inline like in the last example, extracts it as 'variable'.
|
||||||
const string UserInterfaceTranslatePattern =
|
const string UserInterfaceFluentMessagePattern =
|
||||||
@"UserInterface\s*\.\s*Translate\s*\(" + // UserInterface.Translate(
|
@"UserInterface\s*\.\s*GetFluentMessage\s*\(" + // UserInterface.GetFluentMessage(
|
||||||
@"\s*""(?<key>(?:[^""\\]|\\.)+?)""\s*" + // "fluent-key"
|
@"\s*""(?<key>(?:[^""\\]|\\.)+?)""\s*" + // "fluent-key"
|
||||||
@"(,\s*({\s*\[\s*""(?<attr>(?:[^""\\]|\\.)*?)""\s*\]\s*=\s*.*?" + // { ["attribute1"] = foo
|
@"(,\s*({\s*\[\s*""(?<attr>(?:[^""\\]|\\.)*?)""\s*\]\s*=\s*.*?" + // { ["attribute1"] = foo
|
||||||
@"(\s*,\s*\[\s*""(?<attr>(?:[^""\\]|\\.)*?)""\s*\]\s*=\s*.*?)*\s*}\s*)" + // , ["attribute2"] = bar }
|
@"(\s*,\s*\[\s*""(?<attr>(?:[^""\\]|\\.)*?)""\s*\]\s*=\s*.*?)*\s*}\s*)" + // , ["attribute2"] = bar }
|
||||||
"|\\s*,\\s*(?<variable>.*?))?" + // tableVariable
|
"|\\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
|
// The script in mods/common/scripts/utils.lua defines some helpers which accept a fluent key
|
||||||
// Matches expressions such as:
|
// Matches expressions such as:
|
||||||
@@ -195,7 +195,7 @@ namespace OpenRA.Mods.Common.Lint
|
|||||||
using (scriptStream)
|
using (scriptStream)
|
||||||
{
|
{
|
||||||
var scriptText = scriptStream.ReadAllText();
|
var scriptText = scriptStream.ReadAllText();
|
||||||
IEnumerable<Match> matches = translateRegex.Matches(scriptText);
|
IEnumerable<Match> matches = fluentMessageRegex.Matches(scriptText);
|
||||||
if (luaScriptInfo.Scripts.Contains("utils.lua"))
|
if (luaScriptInfo.Scripts.Contains("utils.lua"))
|
||||||
matches = matches.Concat(objectiveRegex.Matches(scriptText));
|
matches = matches.Concat(objectiveRegex.Matches(scriptText));
|
||||||
|
|
||||||
@@ -216,9 +216,9 @@ namespace OpenRA.Mods.Common.Lint
|
|||||||
if (variable != "")
|
if (variable != "")
|
||||||
{
|
{
|
||||||
var userInterface = typeof(UserInterfaceGlobal).GetCustomAttribute<ScriptGlobalAttribute>().Name;
|
var userInterface = typeof(UserInterfaceGlobal).GetCustomAttribute<ScriptGlobalAttribute>().Name;
|
||||||
const string Translate = nameof(UserInterfaceGlobal.Translate);
|
const string FluentMessage = nameof(UserInterfaceGlobal.GetFluentMessage);
|
||||||
emitWarning(
|
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.");
|
"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). " +
|
[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.")]
|
"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)
|
if (args != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ InitAi = function()
|
|||||||
|
|
||||||
if not GDIAdvComCenter.IsDead then
|
if not GDIAdvComCenter.IsDead then
|
||||||
IonCannonOnline = true
|
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")
|
DestroyIonCannon = AddSecondaryObjective(Nod, "quickly-destroy-ion-cannon")
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ RunForHelp = function()
|
|||||||
CivsRunning = true
|
CivsRunning = true
|
||||||
local cam = Actor.Create("camera", true, { Owner = Nod, Location = CPos.New(53,44) })
|
local cam = Actor.Create("camera", true, { Owner = Nod, Location = CPos.New(53,44) })
|
||||||
Trigger.AfterDelay(125, cam.Destroy)
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -98,7 +98,7 @@ CivsBuildingsToDestroy = 0
|
|||||||
CheckVillageDestruction = function()
|
CheckVillageDestruction = function()
|
||||||
CivsBuildingsToDestroy = CivsBuildingsToDestroy - 1
|
CivsBuildingsToDestroy = CivsBuildingsToDestroy - 1
|
||||||
if CivsBuildingsToDestroy == 2 then
|
if CivsBuildingsToDestroy == 2 then
|
||||||
Media.DisplayMessage(UserInterface.Translate("village-destruction-warning"))
|
Media.DisplayMessage(UserInterface.GetFluentMessage("village-destruction-warning"))
|
||||||
elseif CivsBuildingsToDestroy == 0 then
|
elseif CivsBuildingsToDestroy == 0 then
|
||||||
Reinforcements.Reinforce(GDI, ReinforcementsMammoths, { CPos.New(2,9), CPos.New(3,9) }, 40, function(a)
|
Reinforcements.Reinforce(GDI, ReinforcementsMammoths, { CPos.New(2,9), CPos.New(3,9) }, 40, function(a)
|
||||||
a.AttackMove(waypoint11.Location)
|
a.AttackMove(waypoint11.Location)
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ SendGDIReinforcements = function()
|
|||||||
if GDIReinforcementsLeft > 0 then
|
if GDIReinforcementsLeft > 0 then
|
||||||
GDIReinforcementsLeft = GDIReinforcementsLeft - 1
|
GDIReinforcementsLeft = GDIReinforcementsLeft - 1
|
||||||
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
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()
|
SendGDIReinforcements()
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
@@ -114,7 +114,7 @@ WorldLoaded = function()
|
|||||||
InitObjectives(GDI)
|
InitObjectives(GDI)
|
||||||
|
|
||||||
GDIObjective = AddPrimaryObjective(GDI, "retrieve-rods")
|
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)
|
ReinforcementsObjective = AddSecondaryObjective(GDI, eliminateReinforcements)
|
||||||
|
|
||||||
BuildNod()
|
BuildNod()
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ SendGDIReinforcements = function()
|
|||||||
if GDIReinforcementsLeft > 0 then
|
if GDIReinforcementsLeft > 0 then
|
||||||
GDIReinforcementsLeft = GDIReinforcementsLeft - 1
|
GDIReinforcementsLeft = GDIReinforcementsLeft - 1
|
||||||
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
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()
|
SendGDIReinforcements()
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
@@ -105,7 +105,7 @@ WorldLoaded = function()
|
|||||||
InitObjectives(GDI)
|
InitObjectives(GDI)
|
||||||
|
|
||||||
GDIObjective = AddPrimaryObjective(GDI, "retrieve-rods")
|
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)
|
ReinforcementsObjective = AddSecondaryObjective(GDI, eliminateReinforcements)
|
||||||
|
|
||||||
SetupWorld()
|
SetupWorld()
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
CiviliansKilledThreshold = CiviliansKilledThreshold[Difficulty]
|
CiviliansKilledThreshold = CiviliansKilledThreshold[Difficulty]
|
||||||
local civilians = 14 - CiviliansKilledThreshold
|
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)
|
ProtectCivilians = AddPrimaryObjective(GDI, keepCiviliansAlive)
|
||||||
Utils.Do(Civilians, function(civilian)
|
Utils.Do(Civilians, function(civilian)
|
||||||
Trigger.OnKilled(civilian, function()
|
Trigger.OnKilled(civilian, function()
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ WorldLoaded = function()
|
|||||||
if a.Type == "boat" then
|
if a.Type == "boat" then
|
||||||
a.Stop()
|
a.Stop()
|
||||||
a.Destroy()
|
a.Destroy()
|
||||||
Media.DisplayMessage(UserInterface.Translate("convoy-passed-partly"))
|
Media.DisplayMessage(UserInterface.GetFluentMessage("convoy-passed-partly"))
|
||||||
Media.PlaySoundNotification(GDI, "Beepy6")
|
Media.PlaySoundNotification(GDI, "Beepy6")
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
InitObjectives(Nod)
|
InitObjectives(Nod)
|
||||||
|
|
||||||
local localBuildSAMs = UserInterface.Translate("build-sams", { ["sams"] = SamSiteGoal })
|
local localBuildSAMs = UserInterface.GetFluentMessage("build-sams", { ["sams"] = SamSiteGoal })
|
||||||
BuildSAMObjective = AddPrimaryObjective(Nod, localBuildSAMs)
|
BuildSAMObjective = AddPrimaryObjective(Nod, localBuildSAMs)
|
||||||
DestroyGDI = AddPrimaryObjective(Nod, "destroy-gdi-base")
|
DestroyGDI = AddPrimaryObjective(Nod, "destroy-gdi-base")
|
||||||
GDIObjective = AddPrimaryObjective(GDI, "")
|
GDIObjective = AddPrimaryObjective(GDI, "")
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
FindBase = AddPrimaryObjective(Nod, "find-nod-base")
|
FindBase = AddPrimaryObjective(Nod, "find-nod-base")
|
||||||
EliminateGDI = AddPrimaryObjective(Nod, "eliminate-gdi-forces")
|
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)
|
BuildSAMs = AddPrimaryObjective(Nod, buildSAMs)
|
||||||
GDIObjective = AddPrimaryObjective(GDI, "")
|
GDIObjective = AddPrimaryObjective(GDI, "")
|
||||||
|
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ WorldLoaded = function()
|
|||||||
InitObjectives(Nod)
|
InitObjectives(Nod)
|
||||||
|
|
||||||
EliminateGDI = AddPrimaryObjective(Nod, "eliminate-gdi-forces")
|
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)
|
BuildSAMs = AddSecondaryObjective(Nod, buildSAMs)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ WorldLoaded = function()
|
|||||||
LocateNodBase = AddPrimaryObjective(Nod, "locate-nod-base")
|
LocateNodBase = AddPrimaryObjective(Nod, "locate-nod-base")
|
||||||
CaptureRefinery = AddPrimaryObjective(Nod, "capture-refinery")
|
CaptureRefinery = AddPrimaryObjective(Nod, "capture-refinery")
|
||||||
EliminateGDI = AddPrimaryObjective(Nod, "eliminate-gdi-forces")
|
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)
|
BuildSAMs = AddSecondaryObjective(Nod, buildSAMs)
|
||||||
GDIObjective = AddPrimaryObjective(GDI, "")
|
GDIObjective = AddPrimaryObjective(GDI, "")
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ CompleteCaptureCommCenterObjective = function()
|
|||||||
end)
|
end)
|
||||||
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 activeSams = Nod.GetActorsByType("sam")
|
||||||
local miniCams = { }
|
local miniCams = { }
|
||||||
if #activeSams > 0 then
|
if #activeSams > 0 then
|
||||||
@@ -260,7 +260,7 @@ WorldLoaded = function()
|
|||||||
if AstkDelay > 0 then
|
if AstkDelay > 0 then
|
||||||
SendNodAirstrike(true)
|
SendNodAirstrike(true)
|
||||||
Trigger.AfterDelay(DateTime.Seconds(15), function()
|
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()
|
Trigger.AfterDelay(DateTime.Seconds(8), function()
|
||||||
CaptureCommCenter = AddSecondaryObjective(GDI, "capture-nod-communications-center")
|
CaptureCommCenter = AddSecondaryObjective(GDI, "capture-nod-communications-center")
|
||||||
if NodAstkHq.IsDead then
|
if NodAstkHq.IsDead then
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ Difficulty = Map.LobbyOptionOrDefault("difficulty", "normal")
|
|||||||
|
|
||||||
InitObjectives = function(player)
|
InitObjectives = function(player)
|
||||||
Trigger.OnObjectiveCompleted(player, function(p, id)
|
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)
|
end)
|
||||||
Trigger.OnObjectiveFailed(player, function(p, id)
|
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)
|
end)
|
||||||
|
|
||||||
Trigger.OnPlayerLost(player, function()
|
Trigger.OnPlayerLost(player, function()
|
||||||
|
|||||||
@@ -18,9 +18,9 @@ end
|
|||||||
---@param description string key of the translation string
|
---@param description string key of the translation string
|
||||||
---@return number id used to query for the objective later
|
---@return number id used to query for the objective later
|
||||||
AddPrimaryObjective = function(player, description)
|
AddPrimaryObjective = function(player, description)
|
||||||
local translation = UserInterface.Translate(description)
|
local translation = UserInterface.GetFluentMessage(description)
|
||||||
Media.DisplayMessageToPlayer(player, translation, UserInterface.Translate("new-primary-objective"))
|
Media.DisplayMessageToPlayer(player, translation, UserInterface.GetFluentMessage("new-primary-objective"))
|
||||||
return player.AddObjective(translation, UserInterface.Translate("primary"), true)
|
return player.AddObjective(translation, UserInterface.GetFluentMessage("primary"), true)
|
||||||
end
|
end
|
||||||
|
|
||||||
---Adds a new optional objective, translates it and announces it via in-game chat message.
|
---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
|
---@param description string key of the translation string
|
||||||
---@return number id used to query for the objective later
|
---@return number id used to query for the objective later
|
||||||
AddSecondaryObjective = function(player, description)
|
AddSecondaryObjective = function(player, description)
|
||||||
local translation = UserInterface.Translate(description)
|
local translation = UserInterface.GetFluentMessage(description)
|
||||||
Media.DisplayMessageToPlayer(player, translation, UserInterface.Translate("new-secondary-objective"))
|
Media.DisplayMessageToPlayer(player, translation, UserInterface.GetFluentMessage("new-secondary-objective"))
|
||||||
return player.AddObjective(translation, UserInterface.Translate("secondary"), false)
|
return player.AddObjective(translation, UserInterface.GetFluentMessage("secondary"), false)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -53,10 +53,10 @@ AtreidesEntryPath = { AtreidesWaypoint.Location, AtreidesRally.Location }
|
|||||||
|
|
||||||
Messages =
|
Messages =
|
||||||
{
|
{
|
||||||
UserInterface.Translate("build-concrete"),
|
UserInterface.GetFluentMessage("build-concrete"),
|
||||||
UserInterface.Translate("build-windtrap"),
|
UserInterface.GetFluentMessage("build-windtrap"),
|
||||||
UserInterface.Translate("build-refinery"),
|
UserInterface.GetFluentMessage("build-refinery"),
|
||||||
UserInterface.Translate("build-silo")
|
UserInterface.GetFluentMessage("build-silo")
|
||||||
}
|
}
|
||||||
|
|
||||||
CachedResources = -1
|
CachedResources = -1
|
||||||
@@ -87,7 +87,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Atreides.Resources ~= CachedResources then
|
if Atreides.Resources ~= CachedResources then
|
||||||
local harvestedResources = UserInterface.Translate("harvested-resources",
|
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
|
||||||
{ ["harvested"] = Atreides.Resources, ["goal"] = SpiceToHarvest })
|
{ ["harvested"] = Atreides.Resources, ["goal"] = SpiceToHarvest })
|
||||||
UserInterface.SetMissionText(harvestedResources)
|
UserInterface.SetMissionText(harvestedResources)
|
||||||
CachedResources = Atreides.Resources
|
CachedResources = Atreides.Resources
|
||||||
@@ -102,14 +102,14 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
InitObjectives(Atreides)
|
InitObjectives(Atreides)
|
||||||
KillAtreides = AddPrimaryObjective(Harkonnen, "")
|
KillAtreides = AddPrimaryObjective(Harkonnen, "")
|
||||||
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
|
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
|
||||||
GatherSpice = AddPrimaryObjective(Atreides, harvestSpice)
|
GatherSpice = AddPrimaryObjective(Atreides, harvestSpice)
|
||||||
KillHarkonnen = AddSecondaryObjective(Atreides, "eliminate-harkonnen-units-reinforcements")
|
KillHarkonnen = AddSecondaryObjective(Atreides, "eliminate-harkonnen-units-reinforcements")
|
||||||
|
|
||||||
local checkResourceCapacity = function()
|
local checkResourceCapacity = function()
|
||||||
Trigger.AfterDelay(0, function()
|
Trigger.AfterDelay(0, function()
|
||||||
if Atreides.ResourceCapacity < SpiceToHarvest then
|
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()
|
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
||||||
Harkonnen.MarkCompletedObjective(KillAtreides)
|
Harkonnen.MarkCompletedObjective(KillAtreides)
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -53,10 +53,10 @@ AtreidesEntryPath = { AtreidesWaypoint.Location, AtreidesRally.Location }
|
|||||||
|
|
||||||
Messages =
|
Messages =
|
||||||
{
|
{
|
||||||
UserInterface.Translate("build-concrete"),
|
UserInterface.GetFluentMessage("build-concrete"),
|
||||||
UserInterface.Translate("build-windtrap"),
|
UserInterface.GetFluentMessage("build-windtrap"),
|
||||||
UserInterface.Translate("build-refinery"),
|
UserInterface.GetFluentMessage("build-refinery"),
|
||||||
UserInterface.Translate("build-silo")
|
UserInterface.GetFluentMessage("build-silo")
|
||||||
}
|
}
|
||||||
|
|
||||||
CachedResources = -1
|
CachedResources = -1
|
||||||
@@ -87,7 +87,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Atreides.Resources ~= CachedResources then
|
if Atreides.Resources ~= CachedResources then
|
||||||
local harvestedResources = UserInterface.Translate("harvested-resources",
|
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
|
||||||
{ ["harvested"] = Atreides.Resources, ["goal"] = SpiceToHarvest })
|
{ ["harvested"] = Atreides.Resources, ["goal"] = SpiceToHarvest })
|
||||||
UserInterface.SetMissionText(harvestedResources)
|
UserInterface.SetMissionText(harvestedResources)
|
||||||
CachedResources = Atreides.Resources
|
CachedResources = Atreides.Resources
|
||||||
@@ -102,14 +102,14 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
InitObjectives(Atreides)
|
InitObjectives(Atreides)
|
||||||
KillAtreides = AddPrimaryObjective(Harkonnen, "")
|
KillAtreides = AddPrimaryObjective(Harkonnen, "")
|
||||||
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
|
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
|
||||||
GatherSpice = AddPrimaryObjective(Atreides, harvestSpice)
|
GatherSpice = AddPrimaryObjective(Atreides, harvestSpice)
|
||||||
KillHarkonnen = AddSecondaryObjective(Atreides, "eliminate-harkonnen-units-reinforcements")
|
KillHarkonnen = AddSecondaryObjective(Atreides, "eliminate-harkonnen-units-reinforcements")
|
||||||
|
|
||||||
local checkResourceCapacity = function()
|
local checkResourceCapacity = function()
|
||||||
Trigger.AfterDelay(0, function()
|
Trigger.AfterDelay(0, function()
|
||||||
if Atreides.ResourceCapacity < SpiceToHarvest then
|
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()
|
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
||||||
Harkonnen.MarkCompletedObjective(KillAtreides)
|
Harkonnen.MarkCompletedObjective(KillAtreides)
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Harkonnen.HasNoRequiredUnits() and not Atreides.IsObjectiveCompleted(KillHarkonnen) then
|
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(KillHarkonnen)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Harkonnen.HasNoRequiredUnits() and not Atreides.IsObjectiveCompleted(KillHarkonnen) then
|
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(KillHarkonnen)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Ordos.HasNoRequiredUnits() and not Atreides.IsObjectiveCompleted(KillOrdos) then
|
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)
|
Atreides.MarkCompletedObjective(KillOrdos)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -106,11 +106,11 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if DateTime.GameTime % DateTime.Seconds(32) == 0 and (MessageCheck(1) or MessageCheck(2)) then
|
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
|
||||||
|
|
||||||
if Atreides.Resources ~= CachedResources then
|
if Atreides.Resources ~= CachedResources then
|
||||||
local harvestedResources = UserInterface.Translate("harvested-resources",
|
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
|
||||||
{ ["harvested"] = Atreides.Resources, ["goal"] = SpiceToHarvest })
|
{ ["harvested"] = Atreides.Resources, ["goal"] = SpiceToHarvest })
|
||||||
UserInterface.SetMissionText(harvestedResources)
|
UserInterface.SetMissionText(harvestedResources)
|
||||||
CachedResources = Atreides.Resources
|
CachedResources = Atreides.Resources
|
||||||
@@ -125,7 +125,7 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
InitObjectives(Atreides)
|
InitObjectives(Atreides)
|
||||||
KillAtreides = AddPrimaryObjective(Ordos, "")
|
KillAtreides = AddPrimaryObjective(Ordos, "")
|
||||||
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
|
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
|
||||||
GatherSpice = AddPrimaryObjective(Atreides, harvestSpice)
|
GatherSpice = AddPrimaryObjective(Atreides, harvestSpice)
|
||||||
KillOrdos = AddSecondaryObjective(Atreides, "eliminate-ordos-units-reinforcements")
|
KillOrdos = AddSecondaryObjective(Atreides, "eliminate-ordos-units-reinforcements")
|
||||||
|
|
||||||
@@ -134,7 +134,7 @@ WorldLoaded = function()
|
|||||||
local checkResourceCapacity = function()
|
local checkResourceCapacity = function()
|
||||||
Trigger.AfterDelay(0, function()
|
Trigger.AfterDelay(0, function()
|
||||||
if Atreides.ResourceCapacity < SpiceToHarvest then
|
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()
|
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
||||||
Ordos.MarkCompletedObjective(KillAtreides)
|
Ordos.MarkCompletedObjective(KillAtreides)
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Ordos.HasNoRequiredUnits() and not Atreides.IsObjectiveCompleted(KillOrdos) then
|
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)
|
Atreides.MarkCompletedObjective(KillOrdos)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -106,11 +106,11 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if DateTime.GameTime % DateTime.Seconds(32) == 0 and (MessageCheck(1) or MessageCheck(2)) then
|
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
|
||||||
|
|
||||||
if Atreides.Resources ~= CachedResources then
|
if Atreides.Resources ~= CachedResources then
|
||||||
local harvestedResources = UserInterface.Translate("harvested-resources",
|
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
|
||||||
{ ["harvested"] = Atreides.Resources, ["goal"] = SpiceToHarvest })
|
{ ["harvested"] = Atreides.Resources, ["goal"] = SpiceToHarvest })
|
||||||
UserInterface.SetMissionText(harvestedResources)
|
UserInterface.SetMissionText(harvestedResources)
|
||||||
CachedResources = Atreides.Resources
|
CachedResources = Atreides.Resources
|
||||||
@@ -125,7 +125,7 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
InitObjectives(Atreides)
|
InitObjectives(Atreides)
|
||||||
KillAtreides = AddPrimaryObjective(Ordos, "")
|
KillAtreides = AddPrimaryObjective(Ordos, "")
|
||||||
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
|
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
|
||||||
GatherSpice = AddPrimaryObjective(Atreides, harvestSpice)
|
GatherSpice = AddPrimaryObjective(Atreides, harvestSpice)
|
||||||
KillOrdos = AddSecondaryObjective(Atreides, "eliminate-ordos-units-reinforcements")
|
KillOrdos = AddSecondaryObjective(Atreides, "eliminate-ordos-units-reinforcements")
|
||||||
|
|
||||||
@@ -134,7 +134,7 @@ WorldLoaded = function()
|
|||||||
local checkResourceCapacity = function()
|
local checkResourceCapacity = function()
|
||||||
Trigger.AfterDelay(0, function()
|
Trigger.AfterDelay(0, function()
|
||||||
if Atreides.ResourceCapacity < SpiceToHarvest then
|
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()
|
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
||||||
Ordos.MarkCompletedObjective(KillAtreides)
|
Ordos.MarkCompletedObjective(KillAtreides)
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ SendAttack = function(owner, size)
|
|||||||
Utils.Do(units, IdleHunt)
|
Utils.Do(units, IdleHunt)
|
||||||
|
|
||||||
if #units > 0 then
|
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
|
end
|
||||||
|
|
||||||
Trigger.OnAllRemovedFromWorld(units, function()
|
Trigger.OnAllRemovedFromWorld(units, function()
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Harkonnen.HasNoRequiredUnits() and not Atreides.IsObjectiveCompleted(KillHarkonnen) then
|
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(KillHarkonnen)
|
||||||
Atreides.MarkCompletedObjective(ProtectFremen)
|
Atreides.MarkCompletedObjective(ProtectFremen)
|
||||||
Atreides.MarkCompletedObjective(KeepIntegrity)
|
Atreides.MarkCompletedObjective(KeepIntegrity)
|
||||||
@@ -126,7 +126,7 @@ Tick = function()
|
|||||||
if not Sietch.IsDead then
|
if not Sietch.IsDead then
|
||||||
AttackNotifier = AttackNotifier - 1
|
AttackNotifier = AttackNotifier - 1
|
||||||
local integrity = math.floor((Sietch.Health * 100) / Sietch.MaxHealth)
|
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)
|
UserInterface.SetMissionText(SiegeIntegrity, Atreides.Color)
|
||||||
|
|
||||||
if integrity < IntegrityLevel[Difficulty] then
|
if integrity < IntegrityLevel[Difficulty] then
|
||||||
@@ -144,7 +144,7 @@ WorldLoaded = function()
|
|||||||
KillAtreides = AddPrimaryObjective(Harkonnen, "")
|
KillAtreides = AddPrimaryObjective(Harkonnen, "")
|
||||||
ProtectFremen = AddPrimaryObjective(Atreides, "protect-fremen-sietch")
|
ProtectFremen = AddPrimaryObjective(Atreides, "protect-fremen-sietch")
|
||||||
KillHarkonnen = AddPrimaryObjective(Atreides, "destroy-harkonnen")
|
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)
|
KeepIntegrity = AddPrimaryObjective(Atreides, keepSietchIntact)
|
||||||
|
|
||||||
Camera.Position = AConyard.CenterPosition
|
Camera.Position = AConyard.CenterPosition
|
||||||
@@ -152,7 +152,7 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
||||||
Beacon.New(Atreides, Sietch.CenterPosition + WVec.New(0, 1024, 0))
|
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)
|
end)
|
||||||
|
|
||||||
Trigger.OnAllKilledOrCaptured(HarkonnenBase, function()
|
Trigger.OnAllKilledOrCaptured(HarkonnenBase, function()
|
||||||
@@ -161,14 +161,14 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
Trigger.OnKilled(Sietch, function()
|
Trigger.OnKilled(Sietch, function()
|
||||||
Actor.Create("invisibleBlocker", true, { Owner = Fremen, Location = CPos.New(62, 59) })
|
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)
|
Atreides.MarkFailedObjective(ProtectFremen)
|
||||||
end)
|
end)
|
||||||
Trigger.OnDamaged(Sietch, function()
|
Trigger.OnDamaged(Sietch, function()
|
||||||
if AttackNotifier <= 0 then
|
if AttackNotifier <= 0 then
|
||||||
AttackNotifier = DateTime.Seconds(10)
|
AttackNotifier = DateTime.Seconds(10)
|
||||||
Beacon.New(Atreides, Sietch.CenterPosition + WVec.New(0, 1024, 0), DateTime.Seconds(7))
|
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()
|
local defenders = Fremen.GetGroundAttackers()
|
||||||
if #defenders > 0 then
|
if #defenders > 0 then
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ SendMercenaries = function()
|
|||||||
Trigger.AfterDelay(MercenaryAttackDelay[Difficulty], function()
|
Trigger.AfterDelay(MercenaryAttackDelay[Difficulty], function()
|
||||||
MercWave = MercWave + 1
|
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)
|
local units = Reinforcements.Reinforce(Mercenary, MercenaryReinforcements[Difficulty][MercWave], MercenarySpawn)
|
||||||
Utils.Do(units, function(unit)
|
Utils.Do(units, function(unit)
|
||||||
@@ -206,7 +206,7 @@ end
|
|||||||
|
|
||||||
SendContraband = function(owner)
|
SendContraband = function(owner)
|
||||||
ContrabandArrived = true
|
ContrabandArrived = true
|
||||||
UserInterface.SetMissionText(UserInterface.Translate("contraband-has-arrived"), Atreides.Color)
|
UserInterface.SetMissionText(UserInterface.GetFluentMessage("contraband-has-arrived"), Atreides.Color)
|
||||||
|
|
||||||
local units = SmugglerReinforcements
|
local units = SmugglerReinforcements
|
||||||
if owner == Atreides then
|
if owner == Atreides then
|
||||||
@@ -218,10 +218,10 @@ SendContraband = function(owner)
|
|||||||
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
||||||
if owner == Atreides then
|
if owner == Atreides then
|
||||||
Atreides.MarkCompletedObjective(CaptureStarport)
|
Atreides.MarkCompletedObjective(CaptureStarport)
|
||||||
Media.DisplayMessage(UserInterface.Translate("contraband-confiscated"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("contraband-confiscated"), Mentat)
|
||||||
else
|
else
|
||||||
Atreides.MarkFailedObjective(CaptureStarport)
|
Atreides.MarkFailedObjective(CaptureStarport)
|
||||||
Media.DisplayMessage(UserInterface.Translate("contraband-not-confiscated"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("contraband-not-confiscated"), Mentat)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -251,12 +251,12 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if LastHarkonnenArrived and not Atreides.IsObjectiveCompleted(KillHarkonnen) and Harkonnen.HasNoRequiredUnits() then
|
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)
|
Atreides.MarkCompletedObjective(KillHarkonnen)
|
||||||
end
|
end
|
||||||
|
|
||||||
if LastMercenariesArrived and not Atreides.IsObjectiveCompleted(KillSmuggler) and Smuggler.HasNoRequiredUnits() and Mercenary.HasNoRequiredUnits() then
|
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)
|
Atreides.MarkCompletedObjective(KillSmuggler)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -274,7 +274,7 @@ Tick = function()
|
|||||||
if TimerTicks and not ContrabandArrived then
|
if TimerTicks and not ContrabandArrived then
|
||||||
TimerTicks = TimerTicks - 1
|
TimerTicks = TimerTicks - 1
|
||||||
if (TimerTicks % DateTime.Seconds(1)) == 0 then
|
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)
|
UserInterface.SetMissionText(contrabandArrivesIn, Atreides.Color)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -306,7 +306,7 @@ WorldLoaded = function()
|
|||||||
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
||||||
TimerTicks = ContrabandTimes[Difficulty]
|
TimerTicks = ContrabandTimes[Difficulty]
|
||||||
local time = Utils.FormatTime(TimerTicks)
|
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)
|
Media.DisplayMessage(contrabandApproaching, Mentat)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -317,7 +317,7 @@ WorldLoaded = function()
|
|||||||
Trigger.OnKilled(Starport, function()
|
Trigger.OnKilled(Starport, function()
|
||||||
if not Atreides.IsObjectiveCompleted(CaptureStarport) then
|
if not Atreides.IsObjectiveCompleted(CaptureStarport) then
|
||||||
ContrabandArrived = true
|
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)
|
Atreides.MarkFailedObjective(CaptureStarport)
|
||||||
SmugglersAttack()
|
SmugglersAttack()
|
||||||
|
|
||||||
@@ -337,7 +337,7 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
if AttackNotifier <= 0 then
|
if AttackNotifier <= 0 then
|
||||||
AttackNotifier = DateTime.Seconds(10)
|
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()
|
local defenders = Smuggler.GetGroundAttackers()
|
||||||
if #defenders > 0 then
|
if #defenders > 0 then
|
||||||
@@ -369,11 +369,11 @@ WorldLoaded = function()
|
|||||||
Trigger.OnDamaged(HarkonnenBarracks, function()
|
Trigger.OnDamaged(HarkonnenBarracks, function()
|
||||||
if AttackNotifier <= 0 and HarkonnenBarracks.Health < HarkonnenBarracks.MaxHealth * 3/4 then
|
if AttackNotifier <= 0 and HarkonnenBarracks.Health < HarkonnenBarracks.MaxHealth * 3/4 then
|
||||||
AttackNotifier = DateTime.Seconds(10)
|
AttackNotifier = DateTime.Seconds(10)
|
||||||
Media.DisplayMessage(UserInterface.Translate("do-not-destroy-barracks"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("do-not-destroy-barracks"), Mentat)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
Trigger.OnCapture(HarkonnenBarracks, function()
|
Trigger.OnCapture(HarkonnenBarracks, function()
|
||||||
Media.DisplayMessage(UserInterface.Translate("hostages-released"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("hostages-released"), Mentat)
|
||||||
|
|
||||||
if DefendStarport then
|
if DefendStarport then
|
||||||
Atreides.MarkCompletedObjective(DefendStarport)
|
Atreides.MarkCompletedObjective(DefendStarport)
|
||||||
@@ -400,7 +400,7 @@ WorldLoaded = function()
|
|||||||
if not Warned and a.Owner == Atreides and a.Type ~= "carryall" then
|
if not Warned and a.Owner == Atreides and a.Type ~= "carryall" then
|
||||||
Warned = true
|
Warned = true
|
||||||
Trigger.RemoveFootprintTrigger(id)
|
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
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -408,7 +408,7 @@ WorldLoaded = function()
|
|||||||
if not Paid and a.Owner == Atreides and a.Type ~= "carryall" then
|
if not Paid and a.Owner == Atreides and a.Type ~= "carryall" then
|
||||||
Paid = true
|
Paid = true
|
||||||
Trigger.RemoveFootprintTrigger(id)
|
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)
|
Utils.Do(Smuggler.GetGroundAttackers(), function(unit)
|
||||||
unit.AttackMove(SmugglerWaypoint2.Location)
|
unit.AttackMove(SmugglerWaypoint2.Location)
|
||||||
end)
|
end)
|
||||||
@@ -423,7 +423,7 @@ WorldLoaded = function()
|
|||||||
Trigger.OnEnteredProximityTrigger(HarkonnenBarracks.CenterPosition, WDist.New(5 * 1024), function(a, id)
|
Trigger.OnEnteredProximityTrigger(HarkonnenBarracks.CenterPosition, WDist.New(5 * 1024), function(a, id)
|
||||||
if a.Owner == Atreides and a.Type ~= "carryall" then
|
if a.Owner == Atreides and a.Type ~= "carryall" then
|
||||||
Trigger.RemoveProximityTrigger(id)
|
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
|
StopInfantryProduction = true
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -53,10 +53,10 @@ HarkonnenEntryPath = { HarkonnenWaypoint.Location, HarkonnenRally.Location }
|
|||||||
|
|
||||||
Messages =
|
Messages =
|
||||||
{
|
{
|
||||||
UserInterface.Translate("build-concrete"),
|
UserInterface.GetFluentMessage("build-concrete"),
|
||||||
UserInterface.Translate("build-windtrap"),
|
UserInterface.GetFluentMessage("build-windtrap"),
|
||||||
UserInterface.Translate("build-refinery"),
|
UserInterface.GetFluentMessage("build-refinery"),
|
||||||
UserInterface.Translate("build-silo")
|
UserInterface.GetFluentMessage("build-silo")
|
||||||
}
|
}
|
||||||
|
|
||||||
CachedResources = -1
|
CachedResources = -1
|
||||||
@@ -87,7 +87,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Harkonnen.Resources ~= CachedResources then
|
if Harkonnen.Resources ~= CachedResources then
|
||||||
local harvestedResources = UserInterface.Translate("harvested-resources",
|
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
|
||||||
{ ["harvested"] = Harkonnen.Resources, ["goal"] = SpiceToHarvest })
|
{ ["harvested"] = Harkonnen.Resources, ["goal"] = SpiceToHarvest })
|
||||||
UserInterface.SetMissionText(harvestedResources)
|
UserInterface.SetMissionText(harvestedResources)
|
||||||
CachedResources = Harkonnen.Resources
|
CachedResources = Harkonnen.Resources
|
||||||
@@ -102,14 +102,14 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
InitObjectives(Harkonnen)
|
InitObjectives(Harkonnen)
|
||||||
KillHarkonnen = AddPrimaryObjective(Atreides, "")
|
KillHarkonnen = AddPrimaryObjective(Atreides, "")
|
||||||
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
|
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
|
||||||
GatherSpice = AddPrimaryObjective(Harkonnen, harvestSpice)
|
GatherSpice = AddPrimaryObjective(Harkonnen, harvestSpice)
|
||||||
KillAtreides = AddSecondaryObjective(Harkonnen, "eliminate-atreides-units-reinforcements")
|
KillAtreides = AddSecondaryObjective(Harkonnen, "eliminate-atreides-units-reinforcements")
|
||||||
|
|
||||||
local checkResourceCapacity = function()
|
local checkResourceCapacity = function()
|
||||||
Trigger.AfterDelay(0, function()
|
Trigger.AfterDelay(0, function()
|
||||||
if Harkonnen.ResourceCapacity < SpiceToHarvest then
|
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()
|
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
||||||
Harkonnen.MarkCompletedObjective(KillAtreides)
|
Harkonnen.MarkCompletedObjective(KillAtreides)
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -53,10 +53,10 @@ HarkonnenEntryPath = { HarkonnenWaypoint.Location, HarkonnenRally.Location }
|
|||||||
|
|
||||||
Messages =
|
Messages =
|
||||||
{
|
{
|
||||||
UserInterface.Translate("build-concrete"),
|
UserInterface.GetFluentMessage("build-concrete"),
|
||||||
UserInterface.Translate("build-windtrap"),
|
UserInterface.GetFluentMessage("build-windtrap"),
|
||||||
UserInterface.Translate("build-refinery"),
|
UserInterface.GetFluentMessage("build-refinery"),
|
||||||
UserInterface.Translate("build-silo")
|
UserInterface.GetFluentMessage("build-silo")
|
||||||
}
|
}
|
||||||
|
|
||||||
CachedResources = -1
|
CachedResources = -1
|
||||||
@@ -87,7 +87,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Harkonnen.Resources ~= CachedResources then
|
if Harkonnen.Resources ~= CachedResources then
|
||||||
local harvestedResources = UserInterface.Translate("harvested-resources",
|
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
|
||||||
{ ["harvested"] = Harkonnen.Resources, ["goal"] = SpiceToHarvest })
|
{ ["harvested"] = Harkonnen.Resources, ["goal"] = SpiceToHarvest })
|
||||||
UserInterface.SetMissionText(harvestedResources)
|
UserInterface.SetMissionText(harvestedResources)
|
||||||
CachedResources = Harkonnen.Resources
|
CachedResources = Harkonnen.Resources
|
||||||
@@ -102,14 +102,14 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
InitObjectives(Harkonnen)
|
InitObjectives(Harkonnen)
|
||||||
KillHarkonnen = AddPrimaryObjective(Atreides, "")
|
KillHarkonnen = AddPrimaryObjective(Atreides, "")
|
||||||
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
|
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
|
||||||
GatherSpice = AddPrimaryObjective(Harkonnen, harvestSpice)
|
GatherSpice = AddPrimaryObjective(Harkonnen, harvestSpice)
|
||||||
KillAtreides = AddSecondaryObjective(Harkonnen, "eliminate-atreides-units-reinforcements")
|
KillAtreides = AddSecondaryObjective(Harkonnen, "eliminate-atreides-units-reinforcements")
|
||||||
|
|
||||||
local checkResourceCapacity = function()
|
local checkResourceCapacity = function()
|
||||||
Trigger.AfterDelay(0, function()
|
Trigger.AfterDelay(0, function()
|
||||||
if Harkonnen.ResourceCapacity < SpiceToHarvest then
|
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()
|
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
||||||
Harkonnen.MarkCompletedObjective(KillAtreides)
|
Harkonnen.MarkCompletedObjective(KillAtreides)
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Atreides.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
|
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)
|
Harkonnen.MarkCompletedObjective(KillAtreides)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Atreides.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
|
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)
|
Harkonnen.MarkCompletedObjective(KillAtreides)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Atreides.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
|
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)
|
Harkonnen.MarkCompletedObjective(KillAtreides)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -117,7 +117,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if DateTime.GameTime % DateTime.Seconds(32) == 0 and (MessageCheck(1) or MessageCheck(2)) then
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Atreides.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
|
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)
|
Harkonnen.MarkCompletedObjective(KillAtreides)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -119,7 +119,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if DateTime.GameTime % DateTime.Seconds(32) == 0 and (MessageCheck(1) or MessageCheck(2)) then
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -133,12 +133,12 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Atreides.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
|
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)
|
Harkonnen.MarkCompletedObjective(KillAtreides)
|
||||||
end
|
end
|
||||||
|
|
||||||
if Fremen.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillFremen) then
|
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)
|
Harkonnen.MarkCompletedObjective(KillFremen)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -191,7 +191,7 @@ WorldLoaded = function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Seconds(15), function()
|
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)
|
end)
|
||||||
|
|
||||||
local atreidesCondition = function() return Harkonnen.IsObjectiveCompleted(KillAtreides) end
|
local atreidesCondition = function() return Harkonnen.IsObjectiveCompleted(KillAtreides) end
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ SendStarportReinforcements = function()
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
Media.DisplayMessage(UserInterface.Translate("imperial-ships-penetrating-defense-grid"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("imperial-ships-penetrating-defense-grid"), Mentat)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -171,7 +171,7 @@ OrdosReinforcementNotification = function(currentWave, totalWaves)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
Media.DisplayMessage(UserInterface.Translate("enemy-carryall-drop-detected"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("enemy-carryall-drop-detected"), Mentat)
|
||||||
|
|
||||||
OrdosReinforcementNotification(currentWave, totalWaves)
|
OrdosReinforcementNotification(currentWave, totalWaves)
|
||||||
end)
|
end)
|
||||||
@@ -186,12 +186,12 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if OrdosMain.HasNoRequiredUnits() and OrdosSmall.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillOrdos) then
|
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)
|
Harkonnen.MarkCompletedObjective(KillOrdos)
|
||||||
end
|
end
|
||||||
|
|
||||||
if Corrino.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillCorrino) then
|
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)
|
Harkonnen.MarkCompletedObjective(KillCorrino)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -254,7 +254,7 @@ WorldLoaded = function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
||||||
Media.DisplayMessage(UserInterface.Translate("protect-outpost"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("protect-outpost"), Mentat)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local path = function() return Utils.Random(OrdosPaths) end
|
local path = function() return Utils.Random(OrdosPaths) end
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ SendStarportReinforcements = function()
|
|||||||
IdleHunt(unit)
|
IdleHunt(unit)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
Media.DisplayMessage(UserInterface.Translate("ixian-transports-detected"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("ixian-transports-detected"), Mentat)
|
||||||
|
|
||||||
SendStarportReinforcements()
|
SendStarportReinforcements()
|
||||||
end)
|
end)
|
||||||
@@ -191,7 +191,7 @@ CheckSmugglerEnemies = function()
|
|||||||
if attacker.Owner == Harkonnen and not MessageCheck then
|
if attacker.Owner == Harkonnen and not MessageCheck then
|
||||||
|
|
||||||
MessageCheck = true
|
MessageCheck = true
|
||||||
Media.DisplayMessage(UserInterface.Translate("smugglers-now-hostile"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("smugglers-now-hostile"), Mentat)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
@@ -204,12 +204,12 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if OrdosMain.HasNoRequiredUnits() and OrdosSmall.HasNoRequiredUnits() and not OrdosKilled then
|
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
|
OrdosKilled = true
|
||||||
end
|
end
|
||||||
|
|
||||||
if SmugglerNeutral.HasNoRequiredUnits() and SmugglerHarkonnen.HasNoRequiredUnits() and SmugglerOrdos.HasNoRequiredUnits() and SmugglerBoth.HasNoRequiredUnits() and not SmugglersKilled then
|
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
|
SmugglersKilled = true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ SendStarportReinforcements = function()
|
|||||||
IdleHunt(unit)
|
IdleHunt(unit)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
Media.DisplayMessage(UserInterface.Translate("ixian-transports-detected"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("ixian-transports-detected"), Mentat)
|
||||||
|
|
||||||
SendStarportReinforcements()
|
SendStarportReinforcements()
|
||||||
end)
|
end)
|
||||||
@@ -149,7 +149,7 @@ CheckSmugglerEnemies = function()
|
|||||||
if attacker.Owner == Harkonnen and not MessageCheck then
|
if attacker.Owner == Harkonnen and not MessageCheck then
|
||||||
|
|
||||||
MessageCheck = true
|
MessageCheck = true
|
||||||
Media.DisplayMessage(UserInterface.Translate("smugglers-now-hostile"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("smugglers-now-hostile"), Mentat)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
@@ -162,12 +162,12 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if OrdosMain.HasNoRequiredUnits() and OrdosSmall.HasNoRequiredUnits() and not OrdosKilled then
|
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
|
OrdosKilled = true
|
||||||
end
|
end
|
||||||
|
|
||||||
if SmugglerNeutral.HasNoRequiredUnits() and SmugglerHarkonnen.HasNoRequiredUnits() and SmugglerOrdos.HasNoRequiredUnits() and SmugglerBoth.HasNoRequiredUnits() and not SmugglersKilled then
|
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
|
SmugglersKilled = true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -177,12 +177,12 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if AtreidesMain.HasNoRequiredUnits() and AtreidesSmall.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
|
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)
|
Harkonnen.MarkCompletedObjective(KillAtreides)
|
||||||
end
|
end
|
||||||
|
|
||||||
if Corrino.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillCorrino) then
|
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)
|
Harkonnen.MarkCompletedObjective(KillCorrino)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -191,7 +191,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if (AHiTechFactory.IsDead or AHiTechFactory.Owner ~= AtreidesMain) and not HiTechIsDead then
|
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
|
HiTechIsDead = true
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -228,7 +228,7 @@ WorldLoaded = function()
|
|||||||
KillHarkonnen2 = AddPrimaryObjective(AtreidesSmall, "")
|
KillHarkonnen2 = AddPrimaryObjective(AtreidesSmall, "")
|
||||||
KillHarkonnen3 = AddPrimaryObjective(Corrino, "")
|
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
|
Camera.Position = HEngineer.CenterPosition
|
||||||
AtreidesAttackLocation = AConYard2.Location
|
AtreidesAttackLocation = AConYard2.Location
|
||||||
|
|||||||
@@ -201,7 +201,7 @@ CheckAttackToAtreides = function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
Check = true
|
Check = true
|
||||||
Media.DisplayMessage(UserInterface.Translate("atreides-hostile"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("atreides-hostile"), Mentat)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
@@ -223,17 +223,17 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Ordos.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillOrdos) then
|
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)
|
Harkonnen.MarkCompletedObjective(KillOrdos)
|
||||||
end
|
end
|
||||||
|
|
||||||
if AtreidesEnemy.HasNoRequiredUnits() and AtreidesNeutral.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
|
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)
|
Harkonnen.MarkCompletedObjective(KillAtreides)
|
||||||
end
|
end
|
||||||
|
|
||||||
if MercenaryEnemy.HasNoRequiredUnits() and MercenaryAlly.HasNoRequiredUnits() and not MercenariesDestroyed then
|
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
|
MercenariesDestroyed = true
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -280,7 +280,7 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
Trigger.OnCapture(MHeavyFactory, function()
|
Trigger.OnCapture(MHeavyFactory, function()
|
||||||
Harkonnen.MarkCompletedObjective(AllyWithMercenaries)
|
Harkonnen.MarkCompletedObjective(AllyWithMercenaries)
|
||||||
Media.DisplayMessage(UserInterface.Translate("mercenary-leader-captured-allied"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("mercenary-leader-captured-allied"), Mentat)
|
||||||
MercenaryAttackLocation = MercenaryAttackPoint.Location
|
MercenaryAttackLocation = MercenaryAttackPoint.Location
|
||||||
|
|
||||||
ChangeOwner(MercenaryEnemy, MercenaryAlly)
|
ChangeOwner(MercenaryEnemy, MercenaryAlly)
|
||||||
@@ -296,7 +296,7 @@ WorldLoaded = function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
Trigger.OnKilledOrCaptured(OPalace, function()
|
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)
|
ChangeOwner(AtreidesEnemy, AtreidesNeutral)
|
||||||
DefendAndRepairBase(AtreidesNeutral, AtreidesBase, 0.75, AttackGroupSize[Difficulty])
|
DefendAndRepairBase(AtreidesNeutral, AtreidesBase, 0.75, AttackGroupSize[Difficulty])
|
||||||
|
|||||||
@@ -220,12 +220,12 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if AtreidesMain.HasNoRequiredUnits() and AtreidesSmall1.HasNoRequiredUnits() and AtreidesSmall2.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
|
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)
|
Harkonnen.MarkCompletedObjective(KillAtreides)
|
||||||
end
|
end
|
||||||
|
|
||||||
if CorrinoMain.HasNoRequiredUnits() and CorrinoSmall.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillCorrino) then
|
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)
|
Harkonnen.MarkCompletedObjective(KillCorrino)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -266,7 +266,7 @@ CheckSmugglerEnemies = function()
|
|||||||
|
|
||||||
if attacker.Owner == Harkonnen and not MessageCheck then
|
if attacker.Owner == Harkonnen and not MessageCheck then
|
||||||
MessageCheck = true
|
MessageCheck = true
|
||||||
Media.DisplayMessage(UserInterface.Translate("smugglers-now-hostile"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("smugglers-now-hostile"), Mentat)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
@@ -281,17 +281,17 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if AtreidesMain.HasNoRequiredUnits() and AtreidesSmall.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillAtreides) then
|
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)
|
Harkonnen.MarkCompletedObjective(KillAtreides)
|
||||||
end
|
end
|
||||||
|
|
||||||
if CorrinoMain.HasNoRequiredUnits() and CorrinoSmall.HasNoRequiredUnits() and not Harkonnen.IsObjectiveCompleted(KillCorrino) then
|
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)
|
Harkonnen.MarkCompletedObjective(KillCorrino)
|
||||||
end
|
end
|
||||||
|
|
||||||
if SmugglerNeutral.HasNoRequiredUnits() and SmugglerHarkonnen.HasNoRequiredUnits() and SmugglerAI.HasNoRequiredUnits() and SmugglerBoth.HasNoRequiredUnits() and not SmugglersKilled then
|
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
|
SmugglersKilled = true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -53,10 +53,10 @@ OrdosEntryPath = { OrdosWaypoint.Location, OrdosRally.Location }
|
|||||||
|
|
||||||
Messages =
|
Messages =
|
||||||
{
|
{
|
||||||
UserInterface.Translate("build-concrete"),
|
UserInterface.GetFluentMessage("build-concrete"),
|
||||||
UserInterface.Translate("build-windtrap"),
|
UserInterface.GetFluentMessage("build-windtrap"),
|
||||||
UserInterface.Translate("build-refinery"),
|
UserInterface.GetFluentMessage("build-refinery"),
|
||||||
UserInterface.Translate("build-silo")
|
UserInterface.GetFluentMessage("build-silo")
|
||||||
}
|
}
|
||||||
|
|
||||||
CachedResources = -1
|
CachedResources = -1
|
||||||
@@ -87,7 +87,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Ordos.Resources ~= CachedResources then
|
if Ordos.Resources ~= CachedResources then
|
||||||
local harvestedResources = UserInterface.Translate("harvested-resources",
|
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
|
||||||
{ ["harvested"] = Ordos.Resources, ["goal"] = SpiceToHarvest })
|
{ ["harvested"] = Ordos.Resources, ["goal"] = SpiceToHarvest })
|
||||||
UserInterface.SetMissionText(harvestedResources)
|
UserInterface.SetMissionText(harvestedResources)
|
||||||
CachedResources = Ordos.Resources
|
CachedResources = Ordos.Resources
|
||||||
@@ -102,14 +102,14 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
InitObjectives(Ordos)
|
InitObjectives(Ordos)
|
||||||
KillOrdos = AddPrimaryObjective(Harkonnen, "")
|
KillOrdos = AddPrimaryObjective(Harkonnen, "")
|
||||||
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
|
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
|
||||||
GatherSpice = AddPrimaryObjective(Ordos, harvestSpice)
|
GatherSpice = AddPrimaryObjective(Ordos, harvestSpice)
|
||||||
KillHarkonnen = AddSecondaryObjective(Ordos, "eliminate-harkonnen-units-reinforcements")
|
KillHarkonnen = AddSecondaryObjective(Ordos, "eliminate-harkonnen-units-reinforcements")
|
||||||
|
|
||||||
local checkResourceCapacity = function()
|
local checkResourceCapacity = function()
|
||||||
Trigger.AfterDelay(0, function()
|
Trigger.AfterDelay(0, function()
|
||||||
if Ordos.ResourceCapacity < SpiceToHarvest then
|
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()
|
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
||||||
Harkonnen.MarkCompletedObjective(KillAtreides)
|
Harkonnen.MarkCompletedObjective(KillAtreides)
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -53,10 +53,10 @@ OrdosEntryPath = { OrdosWaypoint.Location, OrdosRally.Location }
|
|||||||
|
|
||||||
Messages =
|
Messages =
|
||||||
{
|
{
|
||||||
UserInterface.Translate("build-concrete"),
|
UserInterface.GetFluentMessage("build-concrete"),
|
||||||
UserInterface.Translate("build-windtrap"),
|
UserInterface.GetFluentMessage("build-windtrap"),
|
||||||
UserInterface.Translate("build-refinery"),
|
UserInterface.GetFluentMessage("build-refinery"),
|
||||||
UserInterface.Translate("build-silo")
|
UserInterface.GetFluentMessage("build-silo")
|
||||||
}
|
}
|
||||||
|
|
||||||
CachedResources = -1
|
CachedResources = -1
|
||||||
@@ -87,7 +87,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Ordos.Resources ~= CachedResources then
|
if Ordos.Resources ~= CachedResources then
|
||||||
local harvestedResources = UserInterface.Translate("harvested-resources",
|
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
|
||||||
{ ["harvested"] = Ordos.Resources, ["goal"] = SpiceToHarvest })
|
{ ["harvested"] = Ordos.Resources, ["goal"] = SpiceToHarvest })
|
||||||
UserInterface.SetMissionText(harvestedResources)
|
UserInterface.SetMissionText(harvestedResources)
|
||||||
CachedResources = Ordos.Resources
|
CachedResources = Ordos.Resources
|
||||||
@@ -102,14 +102,14 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
InitObjectives(Ordos)
|
InitObjectives(Ordos)
|
||||||
KillOrdos = AddPrimaryObjective(Harkonnen, "")
|
KillOrdos = AddPrimaryObjective(Harkonnen, "")
|
||||||
local harvestSpice = UserInterface.Translate("harvest-spice", { ["spice"] = SpiceToHarvest })
|
local harvestSpice = UserInterface.GetFluentMessage("harvest-spice", { ["spice"] = SpiceToHarvest })
|
||||||
GatherSpice = AddPrimaryObjective(Ordos, harvestSpice)
|
GatherSpice = AddPrimaryObjective(Ordos, harvestSpice)
|
||||||
KillHarkonnen = AddSecondaryObjective(Ordos, "eliminate-harkonnen-units-reinforcements")
|
KillHarkonnen = AddSecondaryObjective(Ordos, "eliminate-harkonnen-units-reinforcements")
|
||||||
|
|
||||||
local checkResourceCapacity = function()
|
local checkResourceCapacity = function()
|
||||||
Trigger.AfterDelay(0, function()
|
Trigger.AfterDelay(0, function()
|
||||||
if Ordos.ResourceCapacity < SpiceToHarvest then
|
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()
|
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
||||||
Harkonnen.MarkCompletedObjective(KillOrdos)
|
Harkonnen.MarkCompletedObjective(KillOrdos)
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Harkonnen.HasNoRequiredUnits() and not Ordos.IsObjectiveCompleted(KillHarkonnen) then
|
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)
|
Ordos.MarkCompletedObjective(KillHarkonnen)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Harkonnen.HasNoRequiredUnits() and not Ordos.IsObjectiveCompleted(KillHarkonnen) then
|
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)
|
Ordos.MarkCompletedObjective(KillHarkonnen)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Harkonnen.HasNoRequiredUnits() and not Ordos.IsObjectiveCompleted(KillHarkonnen) then
|
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)
|
Ordos.MarkCompletedObjective(KillHarkonnen)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -100,7 +100,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if DateTime.GameTime % DateTime.Seconds(32) == 0 and (MessageCheck(1) or MessageCheck(2)) then
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Harkonnen.HasNoRequiredUnits() and not Ordos.IsObjectiveCompleted(KillHarkonnen) then
|
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)
|
Ordos.MarkCompletedObjective(KillHarkonnen)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -137,7 +137,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if DateTime.GameTime % DateTime.Seconds(32) == 0 and (MessageCheck(1) or MessageCheck(2)) then
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Harkonnen.HasNoRequiredUnits() and not Ordos.IsObjectiveCompleted(KillHarkonnen) then
|
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)
|
Ordos.MarkCompletedObjective(KillHarkonnen)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -146,7 +146,7 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
if AttackNotifier <= 0 then
|
if AttackNotifier <= 0 then
|
||||||
AttackNotifier = DateTime.Seconds(10)
|
AttackNotifier = DateTime.Seconds(10)
|
||||||
Media.DisplayMessage(UserInterface.Translate("do-not-destroy-outpost"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("do-not-destroy-outpost"), Mentat)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -156,6 +156,6 @@ WorldLoaded = function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
Trigger.AfterDelay(HarkonnenAttackDelay[Difficulty], function()
|
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)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if AtreidesMain.HasNoRequiredUnits() and AtreidesSmall1.HasNoRequiredUnits() and AtreidesSmall2.HasNoRequiredUnits() and AtreidesSmall3.HasNoRequiredUnits() and not Ordos.IsObjectiveCompleted(KillAtreides) then
|
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)
|
Ordos.MarkCompletedObjective(KillAtreides)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@ Tick = function()
|
|||||||
|
|
||||||
if Ordos.IsObjectiveCompleted(CaptureStarport) then
|
if Ordos.IsObjectiveCompleted(CaptureStarport) then
|
||||||
if Ordos.Resources ~= CachedResources then
|
if Ordos.Resources ~= CachedResources then
|
||||||
local harvestedResources = UserInterface.Translate("harvested-resources",
|
local harvestedResources = UserInterface.GetFluentMessage("harvested-resources",
|
||||||
{ ["harvested"] = Ordos.Resources, ["goal"] = SpiceToHarvest })
|
{ ["harvested"] = Ordos.Resources, ["goal"] = SpiceToHarvest })
|
||||||
UserInterface.SetMissionText(harvestedResources)
|
UserInterface.SetMissionText(harvestedResources)
|
||||||
CachedResources = Ordos.Resources
|
CachedResources = Ordos.Resources
|
||||||
@@ -158,7 +158,7 @@ WorldLoaded = function()
|
|||||||
KillOrdos3 = AddPrimaryObjective(AtreidesSmall2, "")
|
KillOrdos3 = AddPrimaryObjective(AtreidesSmall2, "")
|
||||||
KillOrdos4 = AddPrimaryObjective(AtreidesSmall3, "")
|
KillOrdos4 = AddPrimaryObjective(AtreidesSmall3, "")
|
||||||
CaptureStarport = AddPrimaryObjective(Ordos, "capture-atreides-starport-establish-base")
|
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)
|
GatherSpice = AddPrimaryObjective(Ordos, harvestSpice)
|
||||||
KillAtreides = AddSecondaryObjective(Ordos, "destroy-atreides")
|
KillAtreides = AddSecondaryObjective(Ordos, "destroy-atreides")
|
||||||
|
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ ContrabandTimes =
|
|||||||
hard = DateTime.Minutes(7)
|
hard = DateTime.Minutes(7)
|
||||||
}
|
}
|
||||||
|
|
||||||
IxianReinforcementsHaveArrived = UserInterface.Translate("ixian-reinforcements-arrived")
|
IxianReinforcementsHaveArrived = UserInterface.GetFluentMessage("ixian-reinforcements-arrived")
|
||||||
SendContraband = function()
|
SendContraband = function()
|
||||||
Media.PlaySpeechNotification(Ordos, "Reinforce")
|
Media.PlaySpeechNotification(Ordos, "Reinforce")
|
||||||
|
|
||||||
@@ -181,7 +181,7 @@ end
|
|||||||
|
|
||||||
Tick = function()
|
Tick = function()
|
||||||
if not Ordos.IsObjectiveCompleted(KillAtreides) and Atreides.HasNoRequiredUnits() then
|
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)
|
Ordos.MarkCompletedObjective(KillAtreides)
|
||||||
DestroyCarryalls(Atreides)
|
DestroyCarryalls(Atreides)
|
||||||
|
|
||||||
@@ -191,7 +191,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if not Ordos.IsObjectiveCompleted(KillHarkonnen) and Harkonnen.HasNoRequiredUnits() then
|
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)
|
Ordos.MarkCompletedObjective(KillHarkonnen)
|
||||||
DestroyCarryalls(Harkonnen)
|
DestroyCarryalls(Harkonnen)
|
||||||
|
|
||||||
@@ -205,16 +205,16 @@ Tick = function()
|
|||||||
|
|
||||||
if TimerTicks == 0 then
|
if TimerTicks == 0 then
|
||||||
if not FirstIxiansArrived then
|
if not FirstIxiansArrived then
|
||||||
Media.DisplayMessage(UserInterface.Translate("deliveries-arriving-massive-reinforcements"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("deliveries-arriving-massive-reinforcements"), Mentat)
|
||||||
end
|
end
|
||||||
|
|
||||||
FirstIxiansArrived = true
|
FirstIxiansArrived = true
|
||||||
SendContraband()
|
SendContraband()
|
||||||
elseif (TimerTicks % DateTime.Seconds(1)) == 0 then
|
elseif (TimerTicks % DateTime.Seconds(1)) == 0 then
|
||||||
local time = Utils.FormatTime(TimerTicks)
|
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
|
if FirstIxiansArrived then
|
||||||
reinforcementsText = UserInterface.Translate("additional-reinforcements-arrive-in", { ["time"] = time })
|
reinforcementsText = UserInterface.GetFluentMessage("additional-reinforcements-arrive-in", { ["time"] = time })
|
||||||
end
|
end
|
||||||
|
|
||||||
UserInterface.SetMissionText(reinforcementsText, Ordos.Color)
|
UserInterface.SetMissionText(reinforcementsText, Ordos.Color)
|
||||||
@@ -245,7 +245,7 @@ WorldLoaded = function()
|
|||||||
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
||||||
TimerTicks = InitialContrabandTimes[Difficulty]
|
TimerTicks = InitialContrabandTimes[Difficulty]
|
||||||
local time = Utils.FormatTime(TimerTicks)
|
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)
|
end)
|
||||||
|
|
||||||
Hunt(Atreides)
|
Hunt(Atreides)
|
||||||
@@ -260,7 +260,7 @@ WorldLoaded = function()
|
|||||||
IdleHunt(unit)
|
IdleHunt(unit)
|
||||||
end
|
end
|
||||||
local announcementFunction = function()
|
local announcementFunction = function()
|
||||||
Media.DisplayMessage(UserInterface.Translate("enemy-reinforcements-arrived"), Mentat)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("enemy-reinforcements-arrived"), Mentat)
|
||||||
end
|
end
|
||||||
|
|
||||||
SendCarryallReinforcements(Atreides, 0, AtreidesAttackWaves[Difficulty], EnemyAttackDelay[Difficulty], atreidesPath, AtreidesReinforcements[Difficulty], atreidesCondition, huntFunction, announcementFunction)
|
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)
|
InitObjectives = function(player)
|
||||||
Trigger.OnObjectiveCompleted(player, function(p, id)
|
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)
|
end)
|
||||||
Trigger.OnObjectiveFailed(player, function(p, id)
|
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)
|
end)
|
||||||
|
|
||||||
Trigger.OnPlayerLost(player, function()
|
Trigger.OnPlayerLost(player, function()
|
||||||
@@ -29,7 +29,7 @@ InitObjectives = function(player)
|
|||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
Mentat = UserInterface.Translate("mentat")
|
Mentat = UserInterface.GetFluentMessage("mentat")
|
||||||
|
|
||||||
SendCarryallReinforcements = function(player, currentWave, totalWaves, delay, pathFunction, unitTypes, customCondition, customHuntFunction, announcementFunction)
|
SendCarryallReinforcements = function(player, currentWave, totalWaves, delay, pathFunction, unitTypes, customCondition, customHuntFunction, announcementFunction)
|
||||||
Trigger.AfterDelay(delay, function()
|
Trigger.AfterDelay(delay, function()
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ SendInsertionHelicopter = function()
|
|||||||
local tanya = passengers[1]
|
local tanya = passengers[1]
|
||||||
Trigger.OnKilled(tanya, TanyaKilledInAction)
|
Trigger.OnKilled(tanya, TanyaKilledInAction)
|
||||||
Trigger.AfterDelay(DateTime.Seconds(4), function()
|
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)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ FinishTimer = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Seconds(i), function()
|
Trigger.AfterDelay(DateTime.Seconds(i), function()
|
||||||
UserInterface.SetMissionText(UserInterface.Translate("convoy-arrived"), c)
|
UserInterface.SetMissionText(UserInterface.GetFluentMessage("convoy-arrived"), c)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
Trigger.AfterDelay(DateTime.Seconds(6), function() UserInterface.SetMissionText("") end)
|
Trigger.AfterDelay(DateTime.Seconds(6), function() UserInterface.SetMissionText("") end)
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ SendAlliedUnits = function()
|
|||||||
|
|
||||||
if TanyaType == "e7.noautotarget" then
|
if TanyaType == "e7.noautotarget" then
|
||||||
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
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)
|
||||||
end
|
end
|
||||||
Artillery.Stance = "HoldFire"
|
Artillery.Stance = "HoldFire"
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ SetupAlliedUnits = function()
|
|||||||
|
|
||||||
if TanyaType == "e7.noautotarget" then
|
if TanyaType == "e7.noautotarget" then
|
||||||
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
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)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ FreeTanya = function()
|
|||||||
|
|
||||||
if TanyaType == "e7.noautotarget" then
|
if TanyaType == "e7.noautotarget" then
|
||||||
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
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)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -220,7 +220,7 @@ SendSpy = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
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)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -264,7 +264,7 @@ InitTriggers = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if not Greece.IsObjectiveCompleted(InfiltrateWarfactoryObjective) then
|
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)
|
Greece.MarkCompletedObjective(InfiltrateWarfactoryObjective)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ SendSpy = function()
|
|||||||
Trigger.OnKilled(Spy, function() USSR.MarkCompletedObjective(USSRObj) end)
|
Trigger.OnKilled(Spy, function() USSR.MarkCompletedObjective(USSRObj) end)
|
||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
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
|
if SpecialCameras then
|
||||||
SpyCameraA = Actor.Create("camera", true, { Owner = Greece, Location = SpyCamera1.Location })
|
SpyCameraA = Actor.Create("camera", true, { Owner = Greece, Location = SpyCamera1.Location })
|
||||||
SpyCameraB = Actor.Create("camera", true, { Owner = Greece, Location = SpyCamera2.Location })
|
SpyCameraB = Actor.Create("camera", true, { Owner = Greece, Location = SpyCamera2.Location })
|
||||||
@@ -239,7 +239,7 @@ FreeTanya = function()
|
|||||||
|
|
||||||
if TanyaType == "e7.noautotarget" then
|
if TanyaType == "e7.noautotarget" then
|
||||||
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
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)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -318,7 +318,7 @@ InitTriggers = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if not Greece.IsObjectiveCompleted(InfWarfactory) then
|
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)
|
Greece.MarkCompletedObjective(InfWarfactory)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ SendSpy = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
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)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -184,7 +184,7 @@ FreeTanya = function()
|
|||||||
|
|
||||||
if TanyaType == "e7.noautotarget" then
|
if TanyaType == "e7.noautotarget" then
|
||||||
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
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)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -238,7 +238,7 @@ InitTriggers = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if not Greece.IsObjectiveCompleted(InfWarfactory) then
|
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)
|
Greece.MarkCompletedObjective(InfWarfactory)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ CaptureRadarDome = function()
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
Media.DisplayMessage(UserInterface.Translate("soviet-tech-centers-discovered"))
|
Media.DisplayMessage(UserInterface.GetFluentMessage("soviet-tech-centers-discovered"))
|
||||||
|
|
||||||
if Difficulty == "easy" then
|
if Difficulty == "easy" then
|
||||||
Actor.Create("Camera", true, { Owner = Greece, Location = Weapcam.Location })
|
Actor.Create("Camera", true, { Owner = Greece, Location = Weapcam.Location })
|
||||||
@@ -169,7 +169,7 @@ InfiltrateTechCenter = function()
|
|||||||
Trigger.OnCapture(a, function()
|
Trigger.OnCapture(a, function()
|
||||||
if not infiltrated then
|
if not infiltrated then
|
||||||
Media.PlaySoundNotification(Greece, "AlertBleep")
|
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)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ CaptureRadarDome = function()
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
Media.DisplayMessage(UserInterface.Translate("soviet-tech-centers-discovered"))
|
Media.DisplayMessage(UserInterface.GetFluentMessage("soviet-tech-centers-discovered"))
|
||||||
|
|
||||||
if Difficulty == "easy" then
|
if Difficulty == "easy" then
|
||||||
Actor.Create("Camera", true, { Owner = Greece, Location = Weapcam.Location })
|
Actor.Create("Camera", true, { Owner = Greece, Location = Weapcam.Location })
|
||||||
@@ -157,7 +157,7 @@ InfiltrateTechCenter = function()
|
|||||||
|
|
||||||
Trigger.OnCapture(a, function()
|
Trigger.OnCapture(a, function()
|
||||||
if not Infiltrated then
|
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)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ StartTimerFunction = function()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
EnemyApproaching = UserInterface.Translate("enemy-approaching")
|
EnemyApproaching = UserInterface.GetFluentMessage("enemy-approaching")
|
||||||
FinishTimer = function()
|
FinishTimer = function()
|
||||||
for i = 0, 5, 1 do
|
for i = 0, 5, 1 do
|
||||||
local c = TimerColor
|
local c = TimerColor
|
||||||
@@ -166,7 +166,7 @@ Tick = function()
|
|||||||
if StartTimer then
|
if StartTimer then
|
||||||
if Ticked > 0 then
|
if Ticked > 0 then
|
||||||
if (Ticked % DateTime.Seconds(1)) == 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)
|
UserInterface.SetMissionText(Timer, TimerColor)
|
||||||
end
|
end
|
||||||
Ticked = Ticked - 1
|
Ticked = Ticked - 1
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ DefendChronosphereCompleted = function()
|
|||||||
units[unit] = cells[i]
|
units[unit] = cells[i]
|
||||||
end
|
end
|
||||||
Chronosphere.Chronoshift(units)
|
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()
|
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
||||||
Greece.MarkCompletedObjective(DefendChronosphere)
|
Greece.MarkCompletedObjective(DefendChronosphere)
|
||||||
@@ -105,7 +105,7 @@ Tick = function()
|
|||||||
|
|
||||||
if Ticked > 0 then
|
if Ticked > 0 then
|
||||||
if (Ticked % DateTime.Seconds(1)) == 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)
|
UserInterface.SetMissionText(Timer, TimerColor)
|
||||||
end
|
end
|
||||||
Ticked = Ticked - 1
|
Ticked = Ticked - 1
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ DefendChronosphereCompleted = function()
|
|||||||
units[unit] = cells[i]
|
units[unit] = cells[i]
|
||||||
end
|
end
|
||||||
Chronosphere.Chronoshift(units)
|
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()
|
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
||||||
Greece.MarkCompletedObjective(DefendChronosphere)
|
Greece.MarkCompletedObjective(DefendChronosphere)
|
||||||
@@ -105,7 +105,7 @@ Tick = function()
|
|||||||
|
|
||||||
if Ticked > 0 then
|
if Ticked > 0 then
|
||||||
if (Ticked % DateTime.Seconds(1)) == 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)
|
UserInterface.SetMissionText(Timer, TimerColor)
|
||||||
end
|
end
|
||||||
Ticked = Ticked - 1
|
Ticked = Ticked - 1
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ MissionTriggers = function()
|
|||||||
|
|
||||||
Trigger.OnTimerExpired(function()
|
Trigger.OnTimerExpired(function()
|
||||||
DateTime.TimeLimit = 0
|
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)
|
USSR.MarkCompletedObjective(HoldOut)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -99,7 +99,7 @@ LaunchMissiles = function()
|
|||||||
MissileSilo1.ActivateNukePower(CPos.New(127, 127))
|
MissileSilo1.ActivateNukePower(CPos.New(127, 127))
|
||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
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")
|
Media.PlaySpeechNotification(Greece, "AbombLaunchDetected")
|
||||||
MissileSilo2.ActivateNukePower(CPos.New(127, 127))
|
MissileSilo2.ActivateNukePower(CPos.New(127, 127))
|
||||||
end)
|
end)
|
||||||
@@ -120,7 +120,7 @@ LaunchMissiles = function()
|
|||||||
-- Completing immediately indicates that the FMV is not available
|
-- Completing immediately indicates that the FMV is not available
|
||||||
-- Fall back to a text message
|
-- Fall back to a text message
|
||||||
if fmvStart == DateTime.GameTime then
|
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)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ MiscTriggers = function()
|
|||||||
Trigger.RemoveProximityTrigger(id)
|
Trigger.RemoveProximityTrigger(id)
|
||||||
if not FlameTower.IsDead then
|
if not FlameTower.IsDead then
|
||||||
Media.PlaySoundNotification(Greece, "AlertBleep")
|
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()
|
FlameTower.Kill()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -232,7 +232,7 @@ DeactivateMissiles = function()
|
|||||||
Trigger.RemoveFootprintTrigger(id)
|
Trigger.RemoveFootprintTrigger(id)
|
||||||
TopLeftTriggered = true
|
TopLeftTriggered = true
|
||||||
Media.PlaySpeechNotification(Greece, "ControlCenterDeactivated")
|
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)
|
end)
|
||||||
|
|
||||||
@@ -241,7 +241,7 @@ DeactivateMissiles = function()
|
|||||||
Trigger.RemoveFootprintTrigger(id)
|
Trigger.RemoveFootprintTrigger(id)
|
||||||
BottomLeftTriggered = true
|
BottomLeftTriggered = true
|
||||||
Media.PlaySpeechNotification(Greece, "ControlCenterDeactivated")
|
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)
|
end)
|
||||||
|
|
||||||
@@ -250,7 +250,7 @@ DeactivateMissiles = function()
|
|||||||
Trigger.RemoveFootprintTrigger(id)
|
Trigger.RemoveFootprintTrigger(id)
|
||||||
TopRightTriggered = true
|
TopRightTriggered = true
|
||||||
Media.PlaySpeechNotification(Greece, "ControlCenterDeactivated")
|
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)
|
end)
|
||||||
|
|
||||||
@@ -259,7 +259,7 @@ DeactivateMissiles = function()
|
|||||||
Trigger.RemoveFootprintTrigger(id)
|
Trigger.RemoveFootprintTrigger(id)
|
||||||
MiddleRightTriggered = true
|
MiddleRightTriggered = true
|
||||||
Media.PlaySpeechNotification(Greece, "ControlCenterDeactivated")
|
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)
|
end)
|
||||||
end
|
end
|
||||||
@@ -278,12 +278,12 @@ Tick = function()
|
|||||||
|
|
||||||
if Ticked > 0 then
|
if Ticked > 0 then
|
||||||
if Ticked % DateTime.Seconds(1) == 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)
|
UserInterface.SetMissionText(timer, USSR.Color)
|
||||||
end
|
end
|
||||||
Ticked = Ticked - 1
|
Ticked = Ticked - 1
|
||||||
elseif Ticked == 0 then
|
elseif Ticked == 0 then
|
||||||
FinishedTimer = UserInterface.Translate("we-are-too-late")
|
FinishedTimer = UserInterface.GetFluentMessage("we-are-too-late")
|
||||||
UserInterface.SetMissionText(FinishedTimer, USSR.Color)
|
UserInterface.SetMissionText(FinishedTimer, USSR.Color)
|
||||||
Greece.MarkFailedObjective(StopNukes)
|
Greece.MarkFailedObjective(StopNukes)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ PlaceCharges = function()
|
|||||||
ChargePlaced[generatorID] = true
|
ChargePlaced[generatorID] = true
|
||||||
Actor.Create("flare", true, { Owner = Greece, Location = Generators[generatorID].Location + CVec.New(0,-1) })
|
Actor.Create("flare", true, { Owner = Greece, Location = Generators[generatorID].Location + CVec.New(0,-1) })
|
||||||
Media.PlaySpeechNotification(Greece, "ExplosiveChargePlaced")
|
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)
|
end)
|
||||||
end
|
end
|
||||||
@@ -104,7 +104,7 @@ FlameTowerTriggers = function()
|
|||||||
if actor.Type == "e6" then
|
if actor.Type == "e6" then
|
||||||
Trigger.RemoveProximityTrigger(id)
|
Trigger.RemoveProximityTrigger(id)
|
||||||
if not FlameTowers[flameID].IsDead then
|
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()
|
FlameTowers[flameID].Kill()
|
||||||
Media.PlaySoundNotification(Greece, "AngryBleep")
|
Media.PlaySoundNotification(Greece, "AngryBleep")
|
||||||
end
|
end
|
||||||
@@ -123,7 +123,7 @@ FlameTowerTriggers = function()
|
|||||||
if actor.Type == "e6" then
|
if actor.Type == "e6" then
|
||||||
Trigger.RemoveProximityTrigger(id)
|
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)
|
Utils.Do(DualTowerActors, function(actor)
|
||||||
if not actor.IsDead then
|
if not actor.IsDead then
|
||||||
actor.Kill()
|
actor.Kill()
|
||||||
@@ -150,7 +150,7 @@ CameraTriggers = function()
|
|||||||
heavyCamTriggered = true
|
heavyCamTriggered = true
|
||||||
|
|
||||||
local heavyCam = Actor.Create("camera", true, { Owner = Greece, Location = HeavyTankCam.Location })
|
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)
|
Utils.Do(TankRifles, IdleHunt)
|
||||||
Trigger.AfterDelay(DateTime.Minutes(1), function()
|
Trigger.AfterDelay(DateTime.Minutes(1), function()
|
||||||
heavyCam.Destroy()
|
heavyCam.Destroy()
|
||||||
@@ -203,7 +203,7 @@ CameraTriggers = function()
|
|||||||
|
|
||||||
local doomCam = Actor.Create("camera", true, { Owner = Greece, Location = DoomRoomCam.Location })
|
local doomCam = Actor.Create("camera", true, { Owner = Greece, Location = DoomRoomCam.Location })
|
||||||
Media.PlaySoundNotification(Greece, "AlertBleep")
|
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()
|
Trigger.AfterDelay(DateTime.Minutes(1), function()
|
||||||
doomCam.Destroy()
|
doomCam.Destroy()
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ SendInsertionHelicopter = function()
|
|||||||
Reinforcements.ReinforceWithTransport(Allies, InsertionHelicopterType, ChopperTeam, InsertionPath, { waypoint4.Location })
|
Reinforcements.ReinforceWithTransport(Allies, InsertionHelicopterType, ChopperTeam, InsertionPath, { waypoint4.Location })
|
||||||
end
|
end
|
||||||
|
|
||||||
AlliedForcesHaveArrived = UserInterface.Translate("allied-forces-have-arrived")
|
AlliedForcesHaveArrived = UserInterface.GetFluentMessage("allied-forces-have-arrived")
|
||||||
FinishTimer = function()
|
FinishTimer = function()
|
||||||
for i = 0, 9, 1 do
|
for i = 0, 9, 1 do
|
||||||
local c = TimerColor
|
local c = TimerColor
|
||||||
@@ -124,7 +124,7 @@ Tick = function()
|
|||||||
|
|
||||||
Ticks = Ticks - 1;
|
Ticks = Ticks - 1;
|
||||||
if (Ticks % DateTime.Seconds(1)) == 0 then
|
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)
|
UserInterface.SetMissionText(Timer, TimerColor)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ Tick = function()
|
|||||||
if Allies2.IsLocalPlayer and DateTime.GameTime <= ReinforcementsDelay then
|
if Allies2.IsLocalPlayer and DateTime.GameTime <= ReinforcementsDelay then
|
||||||
if DateTime.GameTime % DateTime.Seconds(1) == 0 then
|
if DateTime.GameTime % DateTime.Seconds(1) == 0 then
|
||||||
local time = Utils.FormatTime(ReinforcementsDelay - DateTime.GameTime)
|
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)
|
UserInterface.SetMissionText(timer)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@@ -295,7 +295,7 @@ SpawnTanya = function()
|
|||||||
|
|
||||||
if Difficulty ~= "easy" and Allies1.IsLocalPlayer then
|
if Difficulty ~= "easy" and Allies1.IsLocalPlayer then
|
||||||
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
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
|
end
|
||||||
end
|
end
|
||||||
@@ -347,7 +347,7 @@ WorldLoaded = function()
|
|||||||
DestroySamSitesObjective = AddPrimaryObjective(Allies1, "destroy-sam-sites")
|
DestroySamSitesObjective = AddPrimaryObjective(Allies1, "destroy-sam-sites")
|
||||||
|
|
||||||
HoldPositionObjective = AddPrimaryObjective(Allies2, "hold-position-protect-base")
|
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)
|
LimitLossesObjective = AddSecondaryObjective(Allies2, dontLoseMoreThan)
|
||||||
CutSovietPowerObjective = AddSecondaryObjective(Allies2, "take-out-the-soviet-power-grid")
|
CutSovietPowerObjective = AddSecondaryObjective(Allies2, "take-out-the-soviet-power-grid")
|
||||||
|
|
||||||
|
|||||||
@@ -230,7 +230,7 @@ ManageSovietAircraft = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
SetEvacuateMissionText = function()
|
SetEvacuateMissionText = function()
|
||||||
local unitsEvacuated = UserInterface.Translate("units-evacuated",
|
local unitsEvacuated = UserInterface.GetFluentMessage("units-evacuated",
|
||||||
{ ["evacuated"] = UnitsEvacuated, ["threshold"] = UnitsEvacuatedThreshold[Difficulty] })
|
{ ["evacuated"] = UnitsEvacuated, ["threshold"] = UnitsEvacuatedThreshold[Difficulty] })
|
||||||
UserInterface.SetMissionText(unitsEvacuated, TextColor)
|
UserInterface.SetMissionText(unitsEvacuated, TextColor)
|
||||||
end
|
end
|
||||||
@@ -309,7 +309,7 @@ WorldLoaded = function()
|
|||||||
SetEvacuateMissionText()
|
SetEvacuateMissionText()
|
||||||
Utils.Do(Humans, function(player)
|
Utils.Do(Humans, function(player)
|
||||||
if player then
|
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")
|
DestroyAirbases = AddSecondaryObjective(player, "destroy-nearby-soviet-airbases")
|
||||||
EvacuateMgg = AddSecondaryObjective(player, "evacuate-at-least-one-gap-generator")
|
EvacuateMgg = AddSecondaryObjective(player, "evacuate-at-least-one-gap-generator")
|
||||||
end
|
end
|
||||||
@@ -333,7 +333,7 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
if not Allies2 then
|
if not Allies2 then
|
||||||
Allies1.Cash = 10000
|
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
|
end
|
||||||
|
|
||||||
SpawnAlliedUnit(MobileConstructionVehicle)
|
SpawnAlliedUnit(MobileConstructionVehicle)
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ MissionStart = function()
|
|||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
Trigger.AfterDelay(DateTime.Seconds(6), function()
|
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
|
end
|
||||||
end)
|
end)
|
||||||
@@ -184,7 +184,7 @@ FootprintTriggers = function()
|
|||||||
foot5Triggered = true
|
foot5Triggered = true
|
||||||
|
|
||||||
Media.PlaySoundNotification(Allies, "AlertBleep")
|
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)
|
Utils.Do(Trigger5Team, function(actor)
|
||||||
if not actor.IsDead then
|
if not actor.IsDead then
|
||||||
actor.AttackMove(TacticalNuke1.Location)
|
actor.AttackMove(TacticalNuke1.Location)
|
||||||
@@ -205,7 +205,7 @@ FootprintTriggers = function()
|
|||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Seconds(20), function()
|
Trigger.AfterDelay(DateTime.Seconds(20), function()
|
||||||
Media.PlaySoundNotification(Allies, "AlertBuzzer")
|
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)
|
local defenders = Reinforcements.Reinforce(England, TentTeam, { Tent.Location, TentMove.Location }, 0)
|
||||||
Utils.Do(defenders, IdleHunt)
|
Utils.Do(defenders, IdleHunt)
|
||||||
if Difficulty == "hard" then
|
if Difficulty == "hard" then
|
||||||
@@ -230,7 +230,7 @@ FootprintTriggers = function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Seconds(50), function()
|
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
|
end
|
||||||
end)
|
end)
|
||||||
@@ -362,7 +362,7 @@ FootprintTriggers = function()
|
|||||||
foot12Triggered = true
|
foot12Triggered = true
|
||||||
|
|
||||||
Media.PlaySoundNotification(Allies, "AlertBleep")
|
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)
|
end)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ VillageSetup = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
SetCivilianEvacuatedText = function()
|
SetCivilianEvacuatedText = function()
|
||||||
local civiliansEvacuated = UserInterface.Translate("civilians-evacuated",
|
local civiliansEvacuated = UserInterface.GetFluentMessage("civilians-evacuated",
|
||||||
{ ["evacuated"] = CiviliansEvacuated, ["threshold"] = CiviliansEvacuatedThreshold })
|
{ ["evacuated"] = CiviliansEvacuated, ["threshold"] = CiviliansEvacuatedThreshold })
|
||||||
UserInterface.SetMissionText(civiliansEvacuated, TextColor)
|
UserInterface.SetMissionText(civiliansEvacuated, TextColor)
|
||||||
end
|
end
|
||||||
@@ -215,7 +215,7 @@ EvacuateCivilians = function()
|
|||||||
|
|
||||||
Trigger.OnAllKilled(enemyBase, function()
|
Trigger.OnAllKilled(enemyBase, function()
|
||||||
Media.PlaySoundNotification(Allies, "AlertBleep")
|
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 })
|
Reinforcements.Reinforce(Allies, { "tran" }, { ChinookEntry.Location, ChinookLZ.Location })
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ RepairBarracks = function(id)
|
|||||||
end
|
end
|
||||||
|
|
||||||
SellWalls = function(id)
|
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")
|
local walls = AIPlayers[id].GetActorsByType("brik")
|
||||||
Utils.Do(walls, function(wall)
|
Utils.Do(walls, function(wall)
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ SendWave = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Minutes(1), SovietsRetreating)
|
Trigger.AfterDelay(DateTime.Minutes(1), SovietsRetreating)
|
||||||
Media.DisplayMessage(UserInterface.Translate("no-more-waves"))
|
Media.DisplayMessage(UserInterface.GetFluentMessage("no-more-waves"))
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
@@ -220,7 +220,7 @@ WorldLoaded = function()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Media.DisplayMessage(UserInterface.Translate("defend-fort-lonestar"))
|
Media.DisplayMessage(UserInterface.GetFluentMessage("defend-fort-lonestar"))
|
||||||
|
|
||||||
SetupWallOwners()
|
SetupWallOwners()
|
||||||
|
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ AlliedReinforcements = function()
|
|||||||
Trigger.OnAllKilled(houseSquad, function()
|
Trigger.OnAllKilled(houseSquad, function()
|
||||||
if not AlliesHouse.IsDead then
|
if not AlliesHouse.IsDead then
|
||||||
Media.PlaySoundNotification(Greece, "AlertBleep")
|
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)
|
Reinforcements.Reinforce(Greece, AlliedHouseSquad, { VillageSpawnAllies.Location, VillageRally.Location }, 0)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
@@ -183,7 +183,7 @@ AlliedReinforcements = function()
|
|||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
||||||
Media.PlaySpeechNotification(Greece, "ReinforcementsArrived")
|
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] })
|
local northTeam = Reinforcements.ReinforceWithTransport(Greece, "lst.reinforcement", NorthWaterTeam, NorthWaterPath1, { NorthWaterPath1[1] })
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -323,7 +323,7 @@ LoseTriggers = function()
|
|||||||
Trigger.OnKilled(ForwardCommand, function()
|
Trigger.OnKilled(ForwardCommand, function()
|
||||||
if not ScientistsFreed then
|
if not ScientistsFreed then
|
||||||
Greece.MarkFailedObjective(RescueScientists)
|
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
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -344,12 +344,12 @@ Tick = function()
|
|||||||
|
|
||||||
if Ticked > 0 then
|
if Ticked > 0 then
|
||||||
if (Ticked % DateTime.Seconds(1)) == 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)
|
UserInterface.SetMissionText(Timer, TimerColor)
|
||||||
end
|
end
|
||||||
Ticked = Ticked - 1
|
Ticked = Ticked - 1
|
||||||
elseif Ticked == 0 then
|
elseif Ticked == 0 then
|
||||||
UserInterface.SetMissionText(UserInterface.Translate("too-late"), USSR.Color)
|
UserInterface.SetMissionText(UserInterface.GetFluentMessage("too-late"), USSR.Color)
|
||||||
USSR.MarkCompletedObjective(SovietObj)
|
USSR.MarkCompletedObjective(SovietObj)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -268,13 +268,13 @@ SecureLabTimer = function()
|
|||||||
|
|
||||||
if Ticked > 0 then
|
if Ticked > 0 then
|
||||||
if (Ticked % DateTime.Seconds(1)) == 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)
|
UserInterface.SetMissionText(Timer, TimerColor)
|
||||||
end
|
end
|
||||||
Ticked = Ticked - 1
|
Ticked = Ticked - 1
|
||||||
elseif Ticked <= 0 then
|
elseif Ticked <= 0 then
|
||||||
TimerColor = Soviets.Color
|
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()
|
SecureLabFailed()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if CachedVillagePercentage ~= VillagePercentage then
|
if CachedVillagePercentage ~= VillagePercentage then
|
||||||
VillageDestroyed = UserInterface.Translate("percentage-village-destroyed", { ["percentage"] = VillagePercentage })
|
VillageDestroyed = UserInterface.GetFluentMessage("percentage-village-destroyed", { ["percentage"] = VillagePercentage })
|
||||||
UserInterface.SetMissionText(VillageDestroyed, CurrentColor)
|
UserInterface.SetMissionText(VillageDestroyed, CurrentColor)
|
||||||
CachedVillagePercentage = VillagePercentage
|
CachedVillagePercentage = VillagePercentage
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ SuperTankDomeInfiltrated = function()
|
|||||||
Media.PlaySpeechNotification(Greece, "ControlCenterDeactivated")
|
Media.PlaySpeechNotification(Greece, "ControlCenterDeactivated")
|
||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Seconds(4), function()
|
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")
|
Media.PlaySpeechNotification(Greece, "WarningThreeMinutesRemaining")
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
@@ -250,7 +250,7 @@ Tick = function()
|
|||||||
|
|
||||||
if Ticked > 0 then
|
if Ticked > 0 then
|
||||||
if (Ticked % DateTime.Seconds(1)) == 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)
|
UserInterface.SetMissionText(Timer, TimerColor)
|
||||||
end
|
end
|
||||||
Ticked = Ticked - 1
|
Ticked = Ticked - 1
|
||||||
@@ -267,7 +267,7 @@ FinishTimer = function()
|
|||||||
c = HSLColor.White
|
c = HSLColor.White
|
||||||
end
|
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
|
end
|
||||||
Trigger.AfterDelay(DateTime.Seconds(10), function() UserInterface.SetMissionText("") end)
|
Trigger.AfterDelay(DateTime.Seconds(10), function() UserInterface.SetMissionText("") end)
|
||||||
end
|
end
|
||||||
@@ -318,7 +318,7 @@ AddObjectives = function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
Trigger.OnPlayerWon(Greece, function()
|
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)
|
USSR.MarkFailedObjective(USSRObj)
|
||||||
BadGuy.MarkFailedObjective(BadGuyObj)
|
BadGuy.MarkFailedObjective(BadGuyObj)
|
||||||
Ukraine.MarkFailedObjective(UkraineObj)
|
Ukraine.MarkFailedObjective(UkraineObj)
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ OnStartingEngineersKilled = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
Media.PlaySoundNotification(USSR, "AlertBleep")
|
Media.PlaySoundNotification(USSR, "AlertBleep")
|
||||||
Media.DisplayMessage(UserInterface.Translate("all-engineers-killed"))
|
Media.DisplayMessage(UserInterface.GetFluentMessage("all-engineers-killed"))
|
||||||
Trigger.AfterDelay(DateTime.Seconds(1), AlliedWin)
|
Trigger.AfterDelay(DateTime.Seconds(1), AlliedWin)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ AnnounceTanyaRules = function(tanya)
|
|||||||
|
|
||||||
Trigger.OnAddedToWorld(tanya, function()
|
Trigger.OnAddedToWorld(tanya, function()
|
||||||
Trigger.AfterDelay(DateTime.Seconds(1), 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")
|
Media.PlaySoundNotification(Greece, "AlertBleep")
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -230,12 +230,12 @@ Tick = function()
|
|||||||
return
|
return
|
||||||
end
|
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)
|
UserInterface.SetMissionText(text, TimerColor)
|
||||||
end
|
end
|
||||||
|
|
||||||
PrepareCountdown = function(interval)
|
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)
|
UserInterface.SetMissionText(text, TimerColor)
|
||||||
DateTime.TimeLimit = 1
|
DateTime.TimeLimit = 1
|
||||||
|
|
||||||
@@ -379,7 +379,7 @@ PrepareForestEncounter = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
Trigger.RemoveFootprintTrigger(id)
|
Trigger.RemoveFootprintTrigger(id)
|
||||||
Media.DisplayMessage(UserInterface.Translate("guide-follow-me"), actor.TooltipName)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("guide-follow-me"), actor.TooltipName)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
Trigger.OnEnteredFootprint({ ForestSouthwest.Location }, function(actor, id)
|
Trigger.OnEnteredFootprint({ ForestSouthwest.Location }, function(actor, id)
|
||||||
@@ -935,7 +935,7 @@ GuideToForest = function(guide)
|
|||||||
guide.Move(GuideHouse.Location + CVec.New(0, 1))
|
guide.Move(GuideHouse.Location + CVec.New(0, 1))
|
||||||
|
|
||||||
guide.CallFunc(function()
|
guide.CallFunc(function()
|
||||||
Media.DisplayMessage(UserInterface.Translate("guide-thank-you"), guide.TooltipName)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("guide-thank-you"), guide.TooltipName)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
guide.Move(SouthRiver.Location)
|
guide.Move(SouthRiver.Location)
|
||||||
@@ -950,7 +950,7 @@ GuideToHideout = function(guide)
|
|||||||
end
|
end
|
||||||
|
|
||||||
guide.CallFunc(function()
|
guide.CallFunc(function()
|
||||||
Media.DisplayMessage(UserInterface.Translate("guide-patrol-coming"), guide.TooltipName)
|
Media.DisplayMessage(UserInterface.GetFluentMessage("guide-patrol-coming"), guide.TooltipName)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
guide.Wait(DateTime.Seconds(2))
|
guide.Wait(DateTime.Seconds(2))
|
||||||
@@ -960,7 +960,7 @@ GuideToHideout = function(guide)
|
|||||||
return
|
return
|
||||||
end
|
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)
|
guide.Move(ForestHideout.Location)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
@@ -973,7 +973,7 @@ GuideToVillage = function(guide, patrolKilled)
|
|||||||
|
|
||||||
guide.Stop()
|
guide.Stop()
|
||||||
Media.PlaySoundNotification(Greece, "GuideOkay")
|
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
|
if not patrolKilled then
|
||||||
guide.Wait(DateTime.Seconds(1))
|
guide.Wait(DateTime.Seconds(1))
|
||||||
end
|
end
|
||||||
@@ -1203,7 +1203,7 @@ end
|
|||||||
|
|
||||||
OnAllHostagesKilled = function()
|
OnAllHostagesKilled = function()
|
||||||
Media.PlaySoundNotification(Greece, "AlertBleep")
|
Media.PlaySoundNotification(Greece, "AlertBleep")
|
||||||
Media.DisplayMessage(UserInterface.Translate("all-hostages-killed"))
|
Media.DisplayMessage(UserInterface.GetFluentMessage("all-hostages-killed"))
|
||||||
MarkAlliedDefeat(EscortTheHostages or FreeTheHostages)
|
MarkAlliedDefeat(EscortTheHostages or FreeTheHostages)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1228,7 +1228,7 @@ end
|
|||||||
|
|
||||||
OnChurchKilled = function()
|
OnChurchKilled = function()
|
||||||
Media.PlaySoundNotification(Greece, "AlertBleep")
|
Media.PlaySoundNotification(Greece, "AlertBleep")
|
||||||
Media.DisplayMessage(UserInterface.Translate("church-destroyed"))
|
Media.DisplayMessage(UserInterface.GetFluentMessage("church-destroyed"))
|
||||||
MarkAlliedDefeat(EscortTheHostages, DateTime.Seconds(2))
|
MarkAlliedDefeat(EscortTheHostages, DateTime.Seconds(2))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -302,7 +302,7 @@ SpawnTemporaryCamera = function(location, duration)
|
|||||||
end
|
end
|
||||||
|
|
||||||
FinishTimer = function()
|
FinishTimer = function()
|
||||||
local submarineEscapes = UserInterface.Translate("submarine-escapes")
|
local submarineEscapes = UserInterface.GetFluentMessage("submarine-escapes")
|
||||||
|
|
||||||
for i = 0, 5 do
|
for i = 0, 5 do
|
||||||
local c = TimerColor
|
local c = TimerColor
|
||||||
@@ -329,7 +329,7 @@ Tick = function()
|
|||||||
|
|
||||||
if Ticked > 0 then
|
if Ticked > 0 then
|
||||||
if (Ticked % DateTime.Seconds(1)) == 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)
|
UserInterface.SetMissionText(Timer, TimerColor)
|
||||||
end
|
end
|
||||||
Ticked = Ticked - 1
|
Ticked = Ticked - 1
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ MoveTruckEscapeRoute = function(truck, route)
|
|||||||
if truck.IsDead then
|
if truck.IsDead then
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
Media.DisplayMessage(UserInterface.Translate("convoy-truck-escaping"))
|
Media.DisplayMessage(UserInterface.GetFluentMessage("convoy-truck-escaping"))
|
||||||
Media.PlaySoundNotification(Greece, "AlertBleep")
|
Media.PlaySoundNotification(Greece, "AlertBleep")
|
||||||
Utils.Do(route, function(waypoint)
|
Utils.Do(route, function(waypoint)
|
||||||
truck.Move(waypoint.Location)
|
truck.Move(waypoint.Location)
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ ConsoleTriggers = function()
|
|||||||
if actor.Owner == Greece then
|
if actor.Owner == Greece then
|
||||||
Trigger.RemoveProximityTrigger(id)
|
Trigger.RemoveProximityTrigger(id)
|
||||||
if not FlameTower1.IsDead then
|
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()
|
FlameTower1.Kill()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -83,7 +83,7 @@ ConsoleTriggers = function()
|
|||||||
if actor.Owner == Greece then
|
if actor.Owner == Greece then
|
||||||
Trigger.RemoveProximityTrigger(id)
|
Trigger.RemoveProximityTrigger(id)
|
||||||
if not FlameTower2.IsDead then
|
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()
|
FlameTower2.Kill()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -93,7 +93,7 @@ ConsoleTriggers = function()
|
|||||||
if actor.Owner == Greece then
|
if actor.Owner == Greece then
|
||||||
Trigger.RemoveProximityTrigger(id)
|
Trigger.RemoveProximityTrigger(id)
|
||||||
if not FlameTower3.IsDead then
|
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()
|
FlameTower3.Kill()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -105,7 +105,7 @@ ConsoleTriggers = function()
|
|||||||
Trigger.RemoveProximityTrigger(id)
|
Trigger.RemoveProximityTrigger(id)
|
||||||
gasActive = true
|
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 KillCamera = Actor.Create("camera", true, { Owner = Greece, Location = Sarin2.Location })
|
||||||
local flare1 = Actor.Create("flare", true, { Owner = England, Location = Sarin1.Location })
|
local flare1 = Actor.Create("flare", true, { Owner = England, Location = Sarin1.Location })
|
||||||
local flare2 = Actor.Create("flare", true, { Owner = England, Location = Sarin2.Location })
|
local flare2 = Actor.Create("flare", true, { Owner = England, Location = Sarin2.Location })
|
||||||
@@ -133,7 +133,7 @@ ConsoleTriggers = function()
|
|||||||
if actor.Owner == Greece then
|
if actor.Owner == Greece then
|
||||||
Trigger.RemoveProximityTrigger(id)
|
Trigger.RemoveProximityTrigger(id)
|
||||||
if not BadCoil.IsDead then
|
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()
|
BadCoil.Kill()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -145,7 +145,7 @@ ConsoleTriggers = function()
|
|||||||
Trigger.RemoveProximityTrigger(id)
|
Trigger.RemoveProximityTrigger(id)
|
||||||
teslaActive = true
|
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 tesla1 = Actor.Create("tsla", true, { Owner = Turkey, Location = TurkeyCoil1.Location })
|
||||||
local tesla2 = Actor.Create("tsla", true, { Owner = Turkey, Location = TurkeyCoil2.Location })
|
local tesla2 = Actor.Create("tsla", true, { Owner = Turkey, Location = TurkeyCoil2.Location })
|
||||||
Trigger.AfterDelay(DateTime.Seconds(10), function()
|
Trigger.AfterDelay(DateTime.Seconds(10), function()
|
||||||
@@ -163,11 +163,11 @@ ConsoleTriggers = function()
|
|||||||
if actor.Owner == Greece then
|
if actor.Owner == Greece then
|
||||||
Trigger.RemoveProximityTrigger(id)
|
Trigger.RemoveProximityTrigger(id)
|
||||||
if not FlameTowerTanya1.IsDead then
|
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()
|
FlameTowerTanya1.Kill()
|
||||||
end
|
end
|
||||||
if not FlameTowerTanya2.IsDead then
|
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()
|
FlameTowerTanya2.Kill()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -177,11 +177,11 @@ ConsoleTriggers = function()
|
|||||||
if actor.Owner == Greece then
|
if actor.Owner == Greece then
|
||||||
Trigger.RemoveProximityTrigger(id)
|
Trigger.RemoveProximityTrigger(id)
|
||||||
if not FlameTowerExit1.IsDead then
|
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()
|
FlameTowerExit1.Kill()
|
||||||
end
|
end
|
||||||
if not FlameTowerExit3.IsDead then
|
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()
|
FlameTowerExit3.Kill()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -366,7 +366,7 @@ PrisonEscape = function()
|
|||||||
alarmed = true
|
alarmed = true
|
||||||
Trigger.RemoveFootprintTrigger(id)
|
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")
|
Media.PlaySoundNotification(Greece, "AlertBuzzer")
|
||||||
Utils.Do(GuardDogs, IdleHunt)
|
Utils.Do(GuardDogs, IdleHunt)
|
||||||
end)
|
end)
|
||||||
@@ -374,7 +374,7 @@ end
|
|||||||
|
|
||||||
ScientistExecution = function()
|
ScientistExecution = function()
|
||||||
Media.PlaySoundNotification(Greece, "AlertBleep")
|
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)
|
Utils.Do(DemoTeam, function(actor)
|
||||||
actor.AttackMove(DemoDrive2.Location)
|
actor.AttackMove(DemoDrive2.Location)
|
||||||
end)
|
end)
|
||||||
@@ -387,13 +387,13 @@ ScientistExecution = function()
|
|||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Seconds(7), function()
|
Trigger.AfterDelay(DateTime.Seconds(7), function()
|
||||||
if not Officer2.IsDead then
|
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
|
||||||
end)
|
end)
|
||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Seconds(15), function()
|
Trigger.AfterDelay(DateTime.Seconds(15), function()
|
||||||
if not Officer2.IsDead then
|
if not Officer2.IsDead then
|
||||||
Media.DisplayMessage(UserInterface.Translate("fire"), UserInterface.Translate("soviet-officer"))
|
Media.DisplayMessage(UserInterface.GetFluentMessage("fire"), UserInterface.GetFluentMessage("soviet-officer"))
|
||||||
end
|
end
|
||||||
|
|
||||||
Utils.Do(FiringSquad, function(actor)
|
Utils.Do(FiringSquad, function(actor)
|
||||||
@@ -405,11 +405,11 @@ ScientistExecution = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
ScientistRescued = function()
|
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()
|
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
||||||
if not ScientistMan.IsDead and not DemoTruck.IsDead then
|
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")
|
DemoTruck.GrantCondition("mission")
|
||||||
ScientistMan.EnterTransport(DemoTruck)
|
ScientistMan.EnterTransport(DemoTruck)
|
||||||
end
|
end
|
||||||
@@ -423,7 +423,7 @@ DemoTruckExit = function()
|
|||||||
return
|
return
|
||||||
end
|
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)
|
Utils.Do(DemoTruckPath, function(waypoint)
|
||||||
DemoTruck.Move(waypoint.Location)
|
DemoTruck.Move(waypoint.Location)
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ BridgeTriggers = function()
|
|||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
FirstTrucksEntering = UserInterface.Translate("first-trucks-entering")
|
FirstTrucksEntering = UserInterface.GetFluentMessage("first-trucks-entering")
|
||||||
FinishTimer = function()
|
FinishTimer = function()
|
||||||
for i = 0, 5 do
|
for i = 0, 5 do
|
||||||
local c = TimerColor
|
local c = TimerColor
|
||||||
@@ -222,7 +222,7 @@ ConvoysSent = false
|
|||||||
Tick = function()
|
Tick = function()
|
||||||
if Ticked > 0 then
|
if Ticked > 0 then
|
||||||
if (Ticked % DateTime.Seconds(1)) == 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)
|
UserInterface.SetMissionText(Timer, TimerColor)
|
||||||
end
|
end
|
||||||
Ticked = Ticked - 1
|
Ticked = Ticked - 1
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ SetupTriggers = function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
Trigger.OnInfiltrated(BioLab, function()
|
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()
|
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
||||||
USSR.MarkCompletedObjective(InfiltrateLab)
|
USSR.MarkCompletedObjective(InfiltrateLab)
|
||||||
LabInfiltrated = true
|
LabInfiltrated = true
|
||||||
@@ -137,7 +137,7 @@ SendInVolkov = function()
|
|||||||
USSR.MarkFailedObjective(VolkovSurvive)
|
USSR.MarkFailedObjective(VolkovSurvive)
|
||||||
end)
|
end)
|
||||||
Trigger.OnAddedToWorld(teamVolkov[1], function(a)
|
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)
|
end)
|
||||||
|
|
||||||
Trigger.OnAddedToWorld(teamVolkov[2], function(b)
|
Trigger.OnAddedToWorld(teamVolkov[2], function(b)
|
||||||
@@ -158,12 +158,12 @@ Tick = function()
|
|||||||
|
|
||||||
if Ticked > 0 then
|
if Ticked > 0 then
|
||||||
if (Ticked % DateTime.Seconds(1)) == 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)
|
UserInterface.SetMissionText(Timer, TimerColor)
|
||||||
end
|
end
|
||||||
Ticked = Ticked - 1
|
Ticked = Ticked - 1
|
||||||
elseif Ticked == 0 then
|
elseif Ticked == 0 then
|
||||||
UserInterface.SetMissionText(UserInterface.Translate("too-late"), USSR.Color)
|
UserInterface.SetMissionText(UserInterface.GetFluentMessage("too-late"), USSR.Color)
|
||||||
Turkey.MarkCompletedObjective(LaunchMissles)
|
Turkey.MarkCompletedObjective(LaunchMissles)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -372,7 +372,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
if RemainingTime > 0 and TimerStarted then
|
if RemainingTime > 0 and TimerStarted then
|
||||||
if (RemainingTime % DateTime.Seconds(1)) == 0 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)
|
UserInterface.SetMissionText(Timer, USSR.Color)
|
||||||
end
|
end
|
||||||
RemainingTime = RemainingTime - 1
|
RemainingTime = RemainingTime - 1
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ Expand = function()
|
|||||||
ExpansionCheck = true
|
ExpansionCheck = true
|
||||||
Trigger.ClearAll(mcvGG)
|
Trigger.ClearAll(mcvGG)
|
||||||
Trigger.ClearAll(mcvtransport)
|
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)
|
Reinforcements.Reinforce(GoodGuy, { "dd", "dd" }, ShipArrivePath, 0, function(ddsquad)
|
||||||
ddsquad.AttackMove(NearExpPoint.Location) end)
|
ddsquad.AttackMove(NearExpPoint.Location) end)
|
||||||
@@ -219,10 +219,10 @@ WorldLoaded = function()
|
|||||||
Beacon.New(USSR, MCVDeploy.CenterPosition)
|
Beacon.New(USSR, MCVDeploy.CenterPosition)
|
||||||
if Difficulty == "easy" then
|
if Difficulty == "easy" then
|
||||||
Actor.Create("camera", true, { Owner = USSR, Location = MCVDeploy.Location })
|
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
|
else
|
||||||
Actor.Create("MCV.CAM", true, { Owner = USSR, Location = MCVDeploy.Location })
|
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
|
end
|
||||||
|
|
||||||
if not ExpansionCheck then
|
if not ExpansionCheck then
|
||||||
|
|||||||
@@ -310,7 +310,7 @@ Tick = function()
|
|||||||
|
|
||||||
if RemainingTime > 0 and TimerStarted then
|
if RemainingTime > 0 and TimerStarted then
|
||||||
if (RemainingTime % DateTime.Seconds(1)) == 0 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)
|
UserInterface.SetMissionText(Timer, USSR.Color)
|
||||||
end
|
end
|
||||||
RemainingTime = RemainingTime - 1
|
RemainingTime = RemainingTime - 1
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ MissionStart = function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Seconds(45), function()
|
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)
|
end)
|
||||||
|
|
||||||
Trigger.OnKilled(StolenTruck, function()
|
Trigger.OnKilled(StolenTruck, function()
|
||||||
@@ -40,7 +40,7 @@ end
|
|||||||
Trigger.OnEnteredProximityTrigger(TruckAlarm.CenterPosition, WDist.FromCells(11), function(actor, triggerflee)
|
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
|
if actor.Owner == USSR and actor.Type ~= "badr" and actor.Type ~= "u2" and actor.Type ~= "camera.spyplane" then
|
||||||
Trigger.RemoveProximityTrigger(triggerflee)
|
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 })
|
EscapeCamera = Actor.Create("camera", true, { Owner = USSR, Location = TruckAlarm.Location })
|
||||||
Media.PlaySoundNotification(USSR, "AlertBleep")
|
Media.PlaySoundNotification(USSR, "AlertBleep")
|
||||||
Utils.Do(TruckEscape, function(waypoint)
|
Utils.Do(TruckEscape, function(waypoint)
|
||||||
|
|||||||
@@ -237,7 +237,7 @@ end
|
|||||||
RunForIt = function()
|
RunForIt = function()
|
||||||
Running = true
|
Running = true
|
||||||
Media.PlaySoundNotification(USSR, "AlertBleep")
|
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)
|
Utils.Do(Trucks, function(truck)
|
||||||
if not truck.IsDead then
|
if not truck.IsDead then
|
||||||
truck.Stop()
|
truck.Stop()
|
||||||
@@ -274,7 +274,7 @@ StartTimerFunction = function()
|
|||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
WeAreSurrounded = UserInterface.Translate("we-are-surrounded")
|
WeAreSurrounded = UserInterface.GetFluentMessage("we-are-surrounded")
|
||||||
FinishTimer = function()
|
FinishTimer = function()
|
||||||
for i = 0, 5, 1 do
|
for i = 0, 5, 1 do
|
||||||
local c = TimerColor
|
local c = TimerColor
|
||||||
@@ -291,7 +291,7 @@ Tick = function()
|
|||||||
if StartTimer then
|
if StartTimer then
|
||||||
if Ticked > 0 then
|
if Ticked > 0 then
|
||||||
if (Ticked % DateTime.Seconds(1)) == 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)
|
UserInterface.SetMissionText(Timer, TimerColor)
|
||||||
end
|
end
|
||||||
Ticked = Ticked - 1
|
Ticked = Ticked - 1
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ MissionTriggers = function()
|
|||||||
|
|
||||||
Trigger.OnCapture(Chronosphere, function()
|
Trigger.OnCapture(Chronosphere, function()
|
||||||
if not USSR.IsObjectiveCompleted(TakeDownRadar) then
|
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()
|
Chronosphere.Kill()
|
||||||
else
|
else
|
||||||
USSR.MarkCompletedObjective(CaptureChronosphere)
|
USSR.MarkCompletedObjective(CaptureChronosphere)
|
||||||
@@ -52,7 +52,7 @@ MissionTriggers = function()
|
|||||||
if actor.Owner == USSR and not chronoTriggered and not USSR.IsObjectiveCompleted(TakeDownRadar) then
|
if actor.Owner == USSR and not chronoTriggered and not USSR.IsObjectiveCompleted(TakeDownRadar) then
|
||||||
Trigger.RemoveFootprintTrigger(id)
|
Trigger.RemoveFootprintTrigger(id)
|
||||||
chronoTriggered = true
|
chronoTriggered = true
|
||||||
Media.DisplayMessage(UserInterface.Translate("chrono-trap-triggered"), UserInterface.Translate("headquarters"))
|
Media.DisplayMessage(UserInterface.GetFluentMessage("chrono-trap-triggered"), UserInterface.GetFluentMessage("headquarters"))
|
||||||
Chronosphere.Kill()
|
Chronosphere.Kill()
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ MissionTriggers = function()
|
|||||||
|
|
||||||
Trigger.OnCapture(Chronosphere, function()
|
Trigger.OnCapture(Chronosphere, function()
|
||||||
if not USSR.IsObjectiveCompleted(TakeDownRadar) then
|
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()
|
Chronosphere.Kill()
|
||||||
else
|
else
|
||||||
USSR.MarkCompletedObjective(CaptureChronosphere)
|
USSR.MarkCompletedObjective(CaptureChronosphere)
|
||||||
@@ -51,7 +51,7 @@ MissionTriggers = function()
|
|||||||
Trigger.OnEnteredFootprint(ChronoDemolitionTrigger, function(actor, id)
|
Trigger.OnEnteredFootprint(ChronoDemolitionTrigger, function(actor, id)
|
||||||
if actor.Owner == USSR and not chronoTriggered and not USSR.IsObjectiveCompleted(TakeDownRadar) then
|
if actor.Owner == USSR and not chronoTriggered and not USSR.IsObjectiveCompleted(TakeDownRadar) then
|
||||||
Trigger.RemoveFootprintTrigger(id)
|
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
|
chronoTriggered = true
|
||||||
Chronosphere.Kill()
|
Chronosphere.Kill()
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ WorldLoaded = function()
|
|||||||
USSR.MarkCompletedObjective(DestroyControlCenter)
|
USSR.MarkCompletedObjective(DestroyControlCenter)
|
||||||
DestroyAlloyFacility = AddPrimaryObjective(USSR, "destroy-alloy-facility")
|
DestroyAlloyFacility = AddPrimaryObjective(USSR, "destroy-alloy-facility")
|
||||||
Media.PlaySpeechNotification(USSR, "FirstObjectiveMet")
|
Media.PlaySpeechNotification(USSR, "FirstObjectiveMet")
|
||||||
Media.DisplayMessage(UserInterface.Translate("heavy-turret-control-destroyed"))
|
Media.DisplayMessage(UserInterface.GetFluentMessage("heavy-turret-control-destroyed"))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
Trigger.OnKilled(AlloyFacility, function()
|
Trigger.OnKilled(AlloyFacility, function()
|
||||||
@@ -352,7 +352,7 @@ end
|
|||||||
ChitzkoiIsDead = function(a)
|
ChitzkoiIsDead = function(a)
|
||||||
Trigger.OnKilled(a, function()
|
Trigger.OnKilled(a, function()
|
||||||
USSR.MarkFailedObjective(KeepChitzkoiAlive)
|
USSR.MarkFailedObjective(KeepChitzkoiAlive)
|
||||||
Media.DisplayMessage(UserInterface.Translate("rebuild-chitzkoi"))
|
Media.DisplayMessage(UserInterface.GetFluentMessage("rebuild-chitzkoi"))
|
||||||
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
||||||
Media.PlaySpeechNotification(USSR, "ObjectiveNotMet")
|
Media.PlaySpeechNotification(USSR, "ObjectiveNotMet")
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if (Ticked % DateTime.Seconds(1)) == 0 then
|
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)
|
UserInterface.SetMissionText(Timer, TimerColor)
|
||||||
end
|
end
|
||||||
Ticked = Ticked - 1
|
Ticked = Ticked - 1
|
||||||
@@ -172,7 +172,7 @@ Tick = function()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
FrenchAlliesArrived = UserInterface.Translate("french-allies-arrived")
|
FrenchAlliesArrived = UserInterface.GetFluentMessage("french-allies-arrived")
|
||||||
FinishTimer = function()
|
FinishTimer = function()
|
||||||
for i = 0, 9, 1 do
|
for i = 0, 9, 1 do
|
||||||
local c = TimerColor
|
local c = TimerColor
|
||||||
@@ -305,12 +305,12 @@ AddObjectives = function()
|
|||||||
|
|
||||||
SurviveObj = AddPrimaryObjective(Allies, "enforce-position-hold-until-reinforcements")
|
SurviveObj = AddPrimaryObjective(Allies, "enforce-position-hold-until-reinforcements")
|
||||||
KillSams = AddSecondaryObjective(Allies, "destroy-two-sams-before-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")
|
CaptureAirfields = AddSecondaryObjective(Allies, "capture-hold-soviet-airbase-northeast")
|
||||||
SovietObj = AddPrimaryObjective(Soviets, "")
|
SovietObj = AddPrimaryObjective(Soviets, "")
|
||||||
|
|
||||||
Trigger.OnPlayerWon(Allies, function()
|
Trigger.OnPlayerWon(Allies, function()
|
||||||
Media.DisplayMessage(UserInterface.Translate("french-survived-dismantled-soviet-presence"))
|
Media.DisplayMessage(UserInterface.GetFluentMessage("french-survived-dismantled-soviet-presence"))
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ Tick = function()
|
|||||||
|
|
||||||
if Ticked > 0 then
|
if Ticked > 0 then
|
||||||
if (Ticked % DateTime.Seconds(1)) == 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)
|
UserInterface.SetMissionText(Timer, TimerColor)
|
||||||
end
|
end
|
||||||
Ticked = Ticked - 1
|
Ticked = Ticked - 1
|
||||||
@@ -214,14 +214,14 @@ FinalAttack = function()
|
|||||||
|
|
||||||
Trigger.OnAllKilledOrCaptured(units, function()
|
Trigger.OnAllKilledOrCaptured(units, function()
|
||||||
if not DestroyObj then
|
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")
|
DestroyObj = AddPrimaryObjective(Allies, "destroy-remaining-soviet-forces-area")
|
||||||
end
|
end
|
||||||
Allies.MarkCompletedObjective(SurviveObj)
|
Allies.MarkCompletedObjective(SurviveObj)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
SovietReinforcementsArrived = UserInterface.Translate("soviet-reinforcements-arrived")
|
SovietReinforcementsArrived = UserInterface.GetFluentMessage("soviet-reinforcements-arrived")
|
||||||
FinishTimer = function()
|
FinishTimer = function()
|
||||||
for i = 0, 9, 1 do
|
for i = 0, 9, 1 do
|
||||||
local c = TimerColor
|
local c = TimerColor
|
||||||
@@ -255,7 +255,7 @@ SetupBridges = function()
|
|||||||
end
|
end
|
||||||
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")
|
RepairBridges = AddSecondaryObjective(Allies, "repair-two-southern-bridges")
|
||||||
|
|
||||||
local bridgeA = Map.ActorsInCircle(BrokenBridge1.CenterPosition, WDist.FromCells(1), function(self) return self.Type == "bridge1" end)
|
local bridgeA = Map.ActorsInCircle(BrokenBridge1.CenterPosition, WDist.FromCells(1), function(self) return self.Type == "bridge1" end)
|
||||||
@@ -297,7 +297,7 @@ AddObjectives = function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
Trigger.OnPlayerWon(Allies, function()
|
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)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -308,7 +308,7 @@ InitMission = function()
|
|||||||
Trigger.AfterDelay(DateTime.Seconds(1), function() Media.PlaySpeechNotification(Allies, "MissionTimerInitialised") end)
|
Trigger.AfterDelay(DateTime.Seconds(1), function() Media.PlaySpeechNotification(Allies, "MissionTimerInitialised") end)
|
||||||
|
|
||||||
Trigger.AfterDelay(TimerTicks, function()
|
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")
|
Media.PlaySpeechNotification(Allies, "SovietReinforcementsArrived")
|
||||||
SpawnSovietVehicle(NewSovietEntryPoints, NewSovietRallyPoints)
|
SpawnSovietVehicle(NewSovietEntryPoints, NewSovietRallyPoints)
|
||||||
FinalAttack()
|
FinalAttack()
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ WorldLoaded = function()
|
|||||||
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
||||||
Actor.Create("powerproxy.spyplane", true, { Owner = USSR })
|
Actor.Create("powerproxy.spyplane", true, { Owner = USSR })
|
||||||
Actor.Create("powerproxy.parabombs", 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)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -226,7 +226,7 @@ WorldLoaded = function()
|
|||||||
USSR.MarkCompletedObjective(PreventAlliedIncursions)
|
USSR.MarkCompletedObjective(PreventAlliedIncursions)
|
||||||
Media.PlaySpeechNotification(USSR, "ObjectiveMet")
|
Media.PlaySpeechNotification(USSR, "ObjectiveMet")
|
||||||
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
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)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ Difficulty = Map.LobbyOptionOrDefault("difficulty", "normal")
|
|||||||
|
|
||||||
InitObjectives = function(player)
|
InitObjectives = function(player)
|
||||||
Trigger.OnObjectiveCompleted(player, function(p, id)
|
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)
|
end)
|
||||||
Trigger.OnObjectiveFailed(player, function(p, id)
|
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)
|
end)
|
||||||
|
|
||||||
Trigger.OnPlayerLost(player, function()
|
Trigger.OnPlayerLost(player, function()
|
||||||
|
|||||||
Reference in New Issue
Block a user