diff --git a/LuaMenu/Addons/timeFunctions.lua b/LuaMenu/Addons/timeFunctions.lua index 70fe584f4..fd4e60df9 100644 --- a/LuaMenu/Addons/timeFunctions.lua +++ b/LuaMenu/Addons/timeFunctions.lua @@ -348,3 +348,20 @@ end function Spring.Utilities.ArchaicUtcToLocal(utcTimeString, translator) return Spring.Utilities.ArchaicFormatDate(Spring.Utilities.UtcToLocal(utcTimeString), translator) end + +function Spring.Utilities.ArchaicUtcToLocal(utcTimeString, translator) + return Spring.Utilities.ArchaicFormatDate(Spring.Utilities.UtcToLocal(utcTimeString), translator) +end + +function Spring.Utilities.GetCurrentUtc() + local t = { + tonumber(os.date("!%S")), + tonumber(os.date("!%M")), + tonumber(os.date("!%H")), + tonumber(os.date("!%d")), + tonumber(os.date("!%m")), + tonumber(os.date("!%Y")), + } + + return string.format("%04d-%02d-%02dT%02d:%02d:%02d", t[6], t[5], t[4], t[3], t[2], t[1]) +end \ No newline at end of file diff --git a/LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/SkirmishAI.dll b/LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/SkirmishAI.dll index 566e5307b..53f9ba124 100644 Binary files a/LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/SkirmishAI.dll and b/LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/SkirmishAI.dll differ diff --git a/LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/libSkirmishAI.so b/LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/libSkirmishAI.so index 46333a14a..ccb159c33 100755 Binary files a/LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/libSkirmishAI.so and b/LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/libSkirmishAI.so differ diff --git a/LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/SkirmishAI.dll b/LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/SkirmishAI.dll index 8890a639b..6063c401c 100644 Binary files a/LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/SkirmishAI.dll and b/LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/SkirmishAI.dll differ diff --git a/LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/libSkirmishAI.so b/LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/libSkirmishAI.so index 127bf5010..a239ad811 100755 Binary files a/LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/libSkirmishAI.so and b/LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/libSkirmishAI.so differ diff --git a/LuaMenu/configs/gameConfig/zk/defaultSettings/configversions.json b/LuaMenu/configs/gameConfig/zk/defaultSettings/configversions.json index fdcbe9bbb..2c53e3c33 100644 --- a/LuaMenu/configs/gameConfig/zk/defaultSettings/configversions.json +++ b/LuaMenu/configs/gameConfig/zk/defaultSettings/configversions.json @@ -47,6 +47,12 @@ "VersionNumber":1, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/maps/la_isla_bonita_v1.1.sd7", "TargetPath":"maps/la_isla_bonita_v1.1.sd7" + }, + { + "Platform":null, + "VersionNumber":1, + "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/maps/living_lands_3.2.sd7", + "TargetPath":"maps/living_lands_3.2.sd7" }, { "Platform":null, @@ -62,361 +68,361 @@ }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/libSkirmishAI.so", "TargetPath":"AI/Skirmish/CircuitAIBeginner32/stable/libSkirmishAI.so" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/SkirmishAI.dll", "TargetPath":"AI/Skirmish/CircuitAIBeginner32/stable/SkirmishAI.dll" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAIBeginner/stable/config/circuit.json", "TargetPath":"AI/Skirmish/CircuitAIBeginner32/stable/config/circuit.json" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAIBeginner32/stable/AIInfo.lua", "TargetPath":"AI/Skirmish/CircuitAIBeginner32/stable/AIInfo.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon/stable/AIOptions.lua", "TargetPath":"AI/Skirmish/CircuitAIBeginner32/stable/AIOptions.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/libSkirmishAI.so", "TargetPath":"AI/Skirmish/CircuitAINovice32/stable/libSkirmishAI.so" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/SkirmishAI.dll", "TargetPath":"AI/Skirmish/CircuitAINovice32/stable/SkirmishAI.dll" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAINovice/stable/config/circuit.json", "TargetPath":"AI/Skirmish/CircuitAINovice32/stable/config/circuit.json" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAINovice32/stable/AIInfo.lua", "TargetPath":"AI/Skirmish/CircuitAINovice32/stable/AIInfo.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon/stable/AIOptions.lua", "TargetPath":"AI/Skirmish/CircuitAINovice32/stable/AIOptions.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/libSkirmishAI.so", "TargetPath":"AI/Skirmish/CircuitAIEasy32/stable/libSkirmishAI.so" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/SkirmishAI.dll", "TargetPath":"AI/Skirmish/CircuitAIEasy32/stable/SkirmishAI.dll" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAIEasy/stable/config/circuit.json", "TargetPath":"AI/Skirmish/CircuitAIEasy32/stable/config/circuit.json" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAIEasy32/stable/AIInfo.lua", "TargetPath":"AI/Skirmish/CircuitAIEasy32/stable/AIInfo.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon/stable/AIOptions.lua", "TargetPath":"AI/Skirmish/CircuitAIEasy32/stable/AIOptions.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/libSkirmishAI.so", "TargetPath":"AI/Skirmish/CircuitAINormal32/stable/libSkirmishAI.so" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/SkirmishAI.dll", "TargetPath":"AI/Skirmish/CircuitAINormal32/stable/SkirmishAI.dll" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAINormal/stable/config/circuit.json", "TargetPath":"AI/Skirmish/CircuitAINormal32/stable/config/circuit.json" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAINormal32/stable/AIInfo.lua", "TargetPath":"AI/Skirmish/CircuitAINormal32/stable/AIInfo.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon/stable/AIOptions.lua", "TargetPath":"AI/Skirmish/CircuitAINormal32/stable/AIOptions.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/libSkirmishAI.so", "TargetPath":"AI/Skirmish/CircuitAIHard32/stable/libSkirmishAI.so" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/SkirmishAI.dll", "TargetPath":"AI/Skirmish/CircuitAIHard32/stable/SkirmishAI.dll" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAIHard/stable/config/circuit.json", "TargetPath":"AI/Skirmish/CircuitAIHard32/stable/config/circuit.json" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAIHard32/stable/AIInfo.lua", "TargetPath":"AI/Skirmish/CircuitAIHard32/stable/AIInfo.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon/stable/AIOptions.lua", "TargetPath":"AI/Skirmish/CircuitAIHard32/stable/AIOptions.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/libSkirmishAI.so", "TargetPath":"AI/Skirmish/CircuitAIBrutal32/stable/libSkirmishAI.so" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon32/stable/SkirmishAI.dll", "TargetPath":"AI/Skirmish/CircuitAIBrutal32/stable/SkirmishAI.dll" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAIBrutal/stable/config/circuit.json", "TargetPath":"AI/Skirmish/CircuitAIBrutal32/stable/config/circuit.json" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAIBrutal32/stable/AIInfo.lua", "TargetPath":"AI/Skirmish/CircuitAIBrutal32/stable/AIInfo.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon/stable/AIOptions.lua", "TargetPath":"AI/Skirmish/CircuitAIBrutal32/stable/AIOptions.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/libSkirmishAI.so", "TargetPath":"AI/Skirmish/CircuitAIBeginner64/stable/libSkirmishAI.so" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/SkirmishAI.dll", "TargetPath":"AI/Skirmish/CircuitAIBeginner64/stable/SkirmishAI.dll" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAIBeginner/stable/config/circuit.json", "TargetPath":"AI/Skirmish/CircuitAIBeginner64/stable/config/circuit.json" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAIBeginner64/stable/AIInfo.lua", "TargetPath":"AI/Skirmish/CircuitAIBeginner64/stable/AIInfo.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon/stable/AIOptions.lua", "TargetPath":"AI/Skirmish/CircuitAIBeginner64/stable/AIOptions.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/libSkirmishAI.so", "TargetPath":"AI/Skirmish/CircuitAINovice64/stable/libSkirmishAI.so" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/SkirmishAI.dll", "TargetPath":"AI/Skirmish/CircuitAINovice64/stable/SkirmishAI.dll" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAINovice/stable/config/circuit.json", "TargetPath":"AI/Skirmish/CircuitAINovice64/stable/config/circuit.json" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAINovice64/stable/AIInfo.lua", "TargetPath":"AI/Skirmish/CircuitAINovice64/stable/AIInfo.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon/stable/AIOptions.lua", "TargetPath":"AI/Skirmish/CircuitAINovice64/stable/AIOptions.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/libSkirmishAI.so", "TargetPath":"AI/Skirmish/CircuitAIEasy64/stable/libSkirmishAI.so" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/SkirmishAI.dll", "TargetPath":"AI/Skirmish/CircuitAIEasy64/stable/SkirmishAI.dll" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAIEasy/stable/config/circuit.json", "TargetPath":"AI/Skirmish/CircuitAIEasy64/stable/config/circuit.json" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAIEasy64/stable/AIInfo.lua", "TargetPath":"AI/Skirmish/CircuitAIEasy64/stable/AIInfo.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon/stable/AIOptions.lua", "TargetPath":"AI/Skirmish/CircuitAIEasy64/stable/AIOptions.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/libSkirmishAI.so", "TargetPath":"AI/Skirmish/CircuitAINormal64/stable/libSkirmishAI.so" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/SkirmishAI.dll", "TargetPath":"AI/Skirmish/CircuitAINormal64/stable/SkirmishAI.dll" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAINormal/stable/config/circuit.json", "TargetPath":"AI/Skirmish/CircuitAINormal64/stable/config/circuit.json" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAINormal64/stable/AIInfo.lua", "TargetPath":"AI/Skirmish/CircuitAINormal64/stable/AIInfo.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon/stable/AIOptions.lua", "TargetPath":"AI/Skirmish/CircuitAINormal64/stable/AIOptions.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/libSkirmishAI.so", "TargetPath":"AI/Skirmish/CircuitAIHard64/stable/libSkirmishAI.so" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/SkirmishAI.dll", "TargetPath":"AI/Skirmish/CircuitAIHard64/stable/SkirmishAI.dll" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAIHard/stable/config/circuit.json", "TargetPath":"AI/Skirmish/CircuitAIHard64/stable/config/circuit.json" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAIHard64/stable/AIInfo.lua", "TargetPath":"AI/Skirmish/CircuitAIHard64/stable/AIInfo.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon/stable/AIOptions.lua", "TargetPath":"AI/Skirmish/CircuitAIHard64/stable/AIOptions.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/libSkirmishAI.so", "TargetPath":"AI/Skirmish/CircuitAIBrutal64/stable/libSkirmishAI.so" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon64/stable/SkirmishAI.dll", "TargetPath":"AI/Skirmish/CircuitAIBrutal64/stable/SkirmishAI.dll" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAIBrutal/stable/config/circuit.json", "TargetPath":"AI/Skirmish/CircuitAIBrutal64/stable/config/circuit.json" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAIBrutal64/stable/AIInfo.lua", "TargetPath":"AI/Skirmish/CircuitAIBrutal64/stable/AIInfo.lua" }, { "Platform":null, - "VersionNumber":123, + "VersionNumber":124, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/AI/Skirmish/CircuitAICommon/stable/AIOptions.lua", "TargetPath":"AI/Skirmish/CircuitAIBrutal64/stable/AIOptions.lua" }, @@ -521,13 +527,13 @@ { "Platform":null, - "VersionNumber":7, + "VersionNumber":9, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/games/quicktutorial.sdz", "TargetPath":"games/quicktutorial.sdz" }, { "Platform":null, - "VersionNumber":2, + "VersionNumber":3, "SourcePath":"LuaMenu/configs/gameConfig/zk/defaultSettings/games/seeker.sdz", "TargetPath":"games/seeker.sdz" }, diff --git a/LuaMenu/configs/gameConfig/zk/defaultSettings/games/quicktutorial.sdz b/LuaMenu/configs/gameConfig/zk/defaultSettings/games/quicktutorial.sdz index 4305b5487..6d8459925 100644 Binary files a/LuaMenu/configs/gameConfig/zk/defaultSettings/games/quicktutorial.sdz and b/LuaMenu/configs/gameConfig/zk/defaultSettings/games/quicktutorial.sdz differ diff --git a/LuaMenu/configs/gameConfig/zk/defaultSettings/games/seeker.sdz b/LuaMenu/configs/gameConfig/zk/defaultSettings/games/seeker.sdz index b402ea6c7..0af79244b 100644 Binary files a/LuaMenu/configs/gameConfig/zk/defaultSettings/games/seeker.sdz and b/LuaMenu/configs/gameConfig/zk/defaultSettings/games/seeker.sdz differ diff --git a/LuaMenu/configs/gameConfig/zk/defaultSettings/maps/living_lands_3.2.sd7 b/LuaMenu/configs/gameConfig/zk/defaultSettings/maps/living_lands_3.2.sd7 new file mode 100644 index 000000000..7fc9628fb Binary files /dev/null and b/LuaMenu/configs/gameConfig/zk/defaultSettings/maps/living_lands_3.2.sd7 differ diff --git a/LuaMenu/configs/gameConfig/zk/gameUnitInformation.lua b/LuaMenu/configs/gameConfig/zk/gameUnitInformation.lua index 53b361a22..363998d1a 100644 --- a/LuaMenu/configs/gameConfig/zk/gameUnitInformation.lua +++ b/LuaMenu/configs/gameConfig/zk/gameUnitInformation.lua @@ -172,6 +172,7 @@ local nameList = { [171] = "shieldarty", [172] = "shieldaa", [173] = "shieldbomb", + [174] = "amphlaunch", } local categories = { @@ -623,21 +624,27 @@ local humanNames = { description = "Heavy Amphibious Assault Walker", humanName = "Grizzly", }, - amphaa = { + amphlaunch = { category = "amph", order = 8, + description = "Amphibious Launcher Bot", + humanName = "Lobster", + }, + amphaa = { + category = "amph", + order = 9, description = "Amphibious Anti-Air Bot", humanName = "Angler", }, amphbomb = { category = "amph", - order = 9, + order = 10, description = "Amphibious Slow Bomb", humanName = "Limpet", }, amphtele = { category = "amph", - order = 10, + order = 11, description = "Amphibious Teleport Bridge", humanName = "Djinn", }, @@ -688,7 +695,7 @@ local humanNames = { jumpsumo = { category = "jump", order = 8, - description = "Heavy Riot Jumper - On to Repulse, Off to Attract", + description = "Heavy Riot Jumper", humanName = "Jugglenaut", }, jumparty = { @@ -1176,7 +1183,7 @@ local humanNames = { turretimpulse = { category = "defence", order = 12, - description = "Gravity Turret - On to Repulse, Off to Attract", + description = "Gravity Turret", humanName = "Newton", }, turrettorp = { diff --git a/LuaMenu/configs/gameConfig/zk/settingsMenu.lua b/LuaMenu/configs/gameConfig/zk/settingsMenu.lua index ffe43148f..2ad602200 100644 --- a/LuaMenu/configs/gameConfig/zk/settingsMenu.lua +++ b/LuaMenu/configs/gameConfig/zk/settingsMenu.lua @@ -45,6 +45,7 @@ local settingsConfig = { VegetationDetail = "Minimal", FeatureFade = "On", CompatibilityMode = "On", + AtiIntelCompatibility_2 = "Automatic", AntiAliasing = "Off", ShaderDetail = "Minimal", LupsAirJet = "Off", @@ -67,6 +68,7 @@ local settingsConfig = { VegetationDetail = "Low", FeatureFade = "Off", CompatibilityMode = "Off", + AtiIntelCompatibility_2 = "Automatic", AntiAliasing = "Low", ShaderDetail = "Low", LupsAirJet = "Off", @@ -89,6 +91,7 @@ local settingsConfig = { VegetationDetail = "Low", FeatureFade = "Off", CompatibilityMode = "Off", + AtiIntelCompatibility_2 = "Automatic", AntiAliasing = "Low", ShaderDetail = "Low", LupsAirJet = "Off", @@ -111,6 +114,7 @@ local settingsConfig = { VegetationDetail = "Medium", FeatureFade = "Off", CompatibilityMode = "Off", + AtiIntelCompatibility_2 = "Automatic", AntiAliasing = "Low", ShaderDetail = "Medium", LupsAirJet = "On", @@ -133,6 +137,7 @@ local settingsConfig = { VegetationDetail = "High", FeatureFade = "Off", CompatibilityMode = "Off", + AtiIntelCompatibility_2 = "Automatic", AntiAliasing = "High", ShaderDetail = "High", LupsAirJet = "On", @@ -155,6 +160,7 @@ local settingsConfig = { VegetationDetail = "Ultra", FeatureFade = "Off", CompatibilityMode = "Off", + AtiIntelCompatibility_2 = "Automatic", AntiAliasing = "High", ShaderDetail = "Ultra", LupsAirJet = "On", @@ -681,27 +687,38 @@ local settingsConfig = { }, }, { - name = "AtiIntelCompatibility", + name = "AtiIntelCompatibility_2", humanName = "ATI/Intel Compatibility", options = { { name = "On", - applyFunction = function() - WG.Chobby.Configuration:SetConfigValue("atiIntelCompat", true) + applyFunction = function(_, conf) + conf:UpdateFixedSettings(conf.AtiIntelSettingsOverride) + Spring.Echo("Set ATI/intel/other non-nvidia compatibility state: Enabled") + return + end + }, + { + name = "Automatic", + applyFunction = function(_, conf) + if conf:GetIsNotRunningNvidia() then + conf:UpdateFixedSettings(conf.AtiIntelSettingsOverride) + Spring.Echo("Set ATI/intel/other non-nvidia compatibility state: Enabled") + return + end + Spring.Echo("Set ATI/intel/other non-nvidia compatibility state: Disabled") return end }, { name = "Off", - applyFunction = function() - WG.Chobby.Configuration:SetConfigValue("atiIntelCompat", false) + applyFunction = function(_, conf) + conf:UpdateFixedSettings() + Spring.Echo("Set ATI/intel/other non-nvidia compatibility state: Enabled") return end }, }, - defaultFunction = function () - return (WG.Chobby.Configuration.atiIntelCompat and "On") or "Off" - end, }, { name = "AntiAliasing", @@ -875,6 +892,7 @@ local settingsDefault = { VegetationDetail = "High", FeatureFade = "Off", CompatibilityMode = "Off", + AtiIntelCompatibility_2 = "Automatic", AntiAliasing = "High", ShaderDetail = "High", LupsAirJet = "On", diff --git a/LuaMenu/configs/gameConfig/zk/singleplayerMenu.lua b/LuaMenu/configs/gameConfig/zk/singleplayerMenu.lua index 4db235ea5..ef398eb1a 100644 --- a/LuaMenu/configs/gameConfig/zk/singleplayerMenu.lua +++ b/LuaMenu/configs/gameConfig/zk/singleplayerMenu.lua @@ -1,33 +1,33 @@ -local FEEDBACK_LINK = "http://zero-k.info/Forum/Thread/24566" +local FEEDBACK_LINK = "http://zero-k.info/Forum/Thread/24614" local planetWhitelist = { - -- Tutorial Cloaky + -- Tutorial Cloaky http://zero-k.info/Forum/Thread/24417 [69] = true, [1] = true, [2] = true, [3] = true, [5] = true, - -- Adv. Cloaky + -- Adv. Cloaky http://zero-k.info/Forum/Thread/24429 [4] = true, [6] = true, [7] = true, [8] = true, [20] = true, - -- Shield + -- Shield http://zero-k.info/Forum/Thread/24441 [13] = true, [14] = true, [15] = true, [16] = true, [17] = true, [19] = true, - -- Rover + -- Rover http://zero-k.info/Forum/Thread/24457 [9] = true, [10] = true, [11] = true, [12] = true, [43] = true, [52] = true, - -- Amph and Hover + -- Amph and Hover http://zero-k.info/Forum/Thread/24469 [22] = true, [23] = true, [24] = true, @@ -35,7 +35,7 @@ local planetWhitelist = { [26] = true, [27] = true, [28] = true, - -- Tank, Terraform, Dante + -- Tank, Terraform, Dante http://zero-k.info/Forum/Thread/24489 [18] = true, [21] = true, [29] = true, @@ -43,7 +43,7 @@ local planetWhitelist = { [41] = true, [42] = true, [71] = true, - -- Gunship, Firewalker, Skuttle, Athena + -- Gunship, Firewalker, Skuttle, Athena http://zero-k.info/Forum/Thread/24510 [36] = true, [37] = true, [38] = true, @@ -51,7 +51,7 @@ local planetWhitelist = { [53] = true, [54] = true, [56] = true, - -- Spider and Ships + -- Spider and Ships http://zero-k.info/Forum/Thread/24530 [30] = true, [31] = true, [32] = true, @@ -59,7 +59,7 @@ local planetWhitelist = { [45] = true, [46] = true, [47] = true, - -- Planes, Behemoth, Bertha, Missile Silo, Scorpion + -- Planes, Behemoth, Bertha, Missile Silo, Scorpion http://zero-k.info/Forum/Thread/24566 [33] = true, [34] = true, [35] = true, @@ -67,19 +67,32 @@ local planetWhitelist = { [49] = true, [62] = true, [70] = true, + -- Jumps, Nuke, Sea Striders http://zero-k.info/Forum/Thread/24594 + [50] = true, + [51] = true, + [55] = true, + [57] = true, + [60] = true, + -- Land Striders and Heavy Defences http://zero-k.info/Forum/Thread/24614 + [58] = true, + [59] = true, + [61] = true, + [63] = true, + -- Paladin, Detriment and Superweapons http://zero-k.info/Forum/Thread/24642 + [64] = true, + [65] = true, + [66] = true, + [67] = true, + [68] = true, } return { - { - name = "tutorials", - control = WG.MissionHandler.GetControl(), - }, { name = "campaign", entryCheck = WG.CampaignSaveWindow.PromptInitialSaveName, entryCheckBootMode = true, submenuData = { - submenuControl = WG.CampaignHandler.GetControl(true, planetWhitelist, FEEDBACK_LINK), + submenuControl = WG.CampaignHandler.GetControl(true), tabs = { { name = "technology", @@ -105,5 +118,9 @@ return { control = WG.BattleRoomWindow.GetSingleplayerControl(VFS.Include(LUA_DIRNAME .. "configs/gameConfig/zk/singleplayerQuickSkirmish.lua")), entryCheck = WG.BattleRoomWindow.SetSingleplayerGame, }, + { + name = "instruction", + control = WG.MissionHandler.GetControl(), + }, } diff --git a/LuaMenu/configs/gameConfig/zk/unitpics/amphlaunch.png b/LuaMenu/configs/gameConfig/zk/unitpics/amphlaunch.png new file mode 100644 index 000000000..d0fa5a647 Binary files /dev/null and b/LuaMenu/configs/gameConfig/zk/unitpics/amphlaunch.png differ diff --git a/LuaMenu/configs/gameConfig/zk/unitpics/module_jumpjet.png b/LuaMenu/configs/gameConfig/zk/unitpics/module_jumpjet.png new file mode 100644 index 000000000..5c9a28abe Binary files /dev/null and b/LuaMenu/configs/gameConfig/zk/unitpics/module_jumpjet.png differ diff --git a/LuaMenu/configs/gameConfig/zkdev/singleplayerMenu.lua b/LuaMenu/configs/gameConfig/zkdev/singleplayerMenu.lua index a2c1613d9..a4c6560e6 100644 --- a/LuaMenu/configs/gameConfig/zkdev/singleplayerMenu.lua +++ b/LuaMenu/configs/gameConfig/zkdev/singleplayerMenu.lua @@ -1,8 +1,4 @@ local menuItems = { - { - name = "tutorials", - control = WG.MissionHandler.GetControl(), - }, { name = "campaign", entryCheck = WG.CampaignSaveWindow.PromptInitialSaveName, @@ -34,6 +30,10 @@ local menuItems = { control = WG.BattleRoomWindow.GetSingleplayerControl(VFS.Include(LUA_DIRNAME .. "configs/gameConfig/zk/singleplayerQuickSkirmish.lua")), entryCheck = WG.BattleRoomWindow.SetSingleplayerGame, }, + { + name = "instruction", + control = WG.MissionHandler.GetControl(), + }, { name = "load", control = WG.LoadGameWindow.GetControl(), diff --git a/LuaMenu/configs/springsettings/springsettings.lua b/LuaMenu/configs/springsettings/springsettings.lua index c3d39e412..316b34ffb 100644 --- a/LuaMenu/configs/springsettings/springsettings.lua +++ b/LuaMenu/configs/springsettings/springsettings.lua @@ -65,7 +65,7 @@ local settings = { SmoothPoints = 3, SplashScreenDir = "./MenuLoadscreens", TreeRadius = 1500, - UnitIconDist = 151, + --UnitIconDist = 151, -- Stored in springsettings.cfg and interacted with directly. UnitLodDist = 9999, UseDistToGroundForIcons = 1.1, UsePBO = 0, diff --git a/LuaMenu/configs/springsettings/springsettingsChanges.lua b/LuaMenu/configs/springsettings/springsettingsChanges.lua index ca1f2a569..51256e3fa 100644 --- a/LuaMenu/configs/springsettings/springsettingsChanges.lua +++ b/LuaMenu/configs/springsettings/springsettingsChanges.lua @@ -5,6 +5,7 @@ local settings = { ROAM = 1, SplashScreenDir = "./MenuLoadscreens", UseDistToGroundForIcons = 1.1, + UseLuaMemPools = 0, } local onlyIfMissingSettings = { diff --git a/LuaMenu/widgets/api_discord_handler.lua b/LuaMenu/widgets/api_discord_handler.lua new file mode 100644 index 000000000..fd4b30000 --- /dev/null +++ b/LuaMenu/widgets/api_discord_handler.lua @@ -0,0 +1,65 @@ +-------------------------------------------------------------------------------- +-------------------------------------------------------------------------------- +function widget:GetInfo() + return { + name = "Discord Handler", + desc = "Handles discord stuff.", + author = "GoogleFrog", + date = "19 December 2017", + license = "GPL-v2", + layer = 0, + handler = true, + enabled = true, + } +end + +-------------------------------------------------------------------------------- +-------------------------------------------------------------------------------- +-- Utilities + +local function SetDiscordPlaying(details) + WG.WrapperLoopback.DiscordUpdatePresence({ + state = details, + --details = details, + --startTimestamp = Spring.Utilities.GetCurrentUtc(), + }) +end + +-------------------------------------------------------------------------------- +-------------------------------------------------------------------------------- +-- Externals Functions + +local DiscordHandler = {} + +-------------------------------------------------------------------------------- +-------------------------------------------------------------------------------- +-- Initialization + +local function DelayedInitialize() + SetDiscordPlaying("In Menu") + + local function OnBattleAboutToStart(_, battleType) + if battleType and string.find(battleType, "campaign") then + SetDiscordPlaying("Playing Campaign") + elseif battleType == "tutorial" then + SetDiscordPlaying("Playing Tutorial") + elseif battleType == "skirmish" then + SetDiscordPlaying("Playing Skirmish") + elseif battleType == "replay" then + SetDiscordPlaying("Watching Replay") + else + SetDiscordPlaying("Playing Multiplayer") + end + end + + WG.LibLobby.lobby:AddListener("OnBattleAboutToStart", OnBattleAboutToStart) + WG.LibLobby.localLobby:AddListener("OnBattleAboutToStart", OnBattleAboutToStart) +end + +function widget:ActivateMenu() + SetDiscordPlaying("In Menu") +end + +function widget:Initialize() + WG.Delay(DelayedInitialize, 0.5) +end diff --git a/LuaMenu/widgets/api_planet_battle_handler.lua b/LuaMenu/widgets/api_planet_battle_handler.lua index 0f1c10daf..b565cda71 100644 --- a/LuaMenu/widgets/api_planet_battle_handler.lua +++ b/LuaMenu/widgets/api_planet_battle_handler.lua @@ -16,7 +16,6 @@ end -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -local SAVE_SCRIPT = true local START_UNITS_BLOCK_SIZE = 40 -------------------------------------------------------------------------------- @@ -83,6 +82,41 @@ local function AddStartUnits(teamTable, unitList, prefix) end end +local function GetPlayerCommWithExtra(playerComm, extraModules) + local replaceModules = {} + for i = 1, #extraModules do + if not extraModules[i].add then + replaceModules[extraModules[i].name] = true + end + end + + local flatModules = {} -- Much simpler + local modules = playerComm.modules + for level = 0, #modules do + for slot = 1, #modules[level] do + local entry = modules[level][slot] + if not replaceModules[entry] then + flatModules[#flatModules + 1] = entry + end + end + end + + for i = 1, #extraModules do + local extra = extraModules[i] + for j = 1, extra.count do + flatModules[#flatModules + 1] = extra.name + end + end + + return { + name = playerComm.name, + chassis = playerComm.chassis, + modules = { + [0] = flatModules, + }, + } +end + -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- Start Game @@ -122,6 +156,10 @@ local function StartBattleForReal(planetID, planetData, gameName) commanderTypes.player_commander = WG.CampaignData.GetPlayerCommander() + if gameConfig.playerConfig.extraModules then + commanderTypes.player_commander = GetPlayerCommWithExtra(commanderTypes.player_commander, gameConfig.playerConfig.extraModules) + end + local fullPlayerUnlocks = AddToList(Spring.Utilities.CopyTable(playerUnlocks.list), playerUnlocks.map, gameConfig.playerConfig.extraUnlocks) local fullAbilitiesList = AddToList(Spring.Utilities.CopyTable(playerAbilities.list), playerAbilities.map, gameConfig.playerConfig.extraAbilities) @@ -318,13 +356,13 @@ local function StartBattleForReal(planetID, planetData, gameName) end local scriptString = localLobby:MakeScriptTXT(script) - if SAVE_SCRIPT then + if Configuration.devMode then local scriptFileName = "scriptFile.txt" local scriptFile = io.open(scriptFileName, "w") scriptFile:write(scriptString) end --Spring.Echo("scriptString", scriptString) - localLobby:StartGameFromString(scriptString) + localLobby:StartGameFromString(scriptString, "campaign" .. planetID) end -------------------------------------------------------------------------------- diff --git a/LuaMenu/widgets/api_user_handler.lua b/LuaMenu/widgets/api_user_handler.lua index 4fcb9f20c..3c7c063cb 100644 --- a/LuaMenu/widgets/api_user_handler.lua +++ b/LuaMenu/widgets/api_user_handler.lua @@ -25,6 +25,7 @@ local debriefingUsers = {} local partyUsers = {} local popupUsers = {} local statusUsers = {} +local ladderUsers = {} local friendUsers = {} local friendRequestUsers = {} local notificationUsers = {} @@ -38,6 +39,7 @@ local userListList = { partyUsers, popupUsers, statusUsers, + ladderUsers, friendUsers, friendRequestUsers, notificationUsers, @@ -59,6 +61,7 @@ local IMAGE_ONLINE = IMAGE_DIR .. "online.png" local IMAGE_OFFLINE = IMAGE_DIR .. "offline.png" local IMAGE_CLAN_PATH = "LuaUI/Configs/Clans/" +local RANK_DIR = LUA_DIRNAME .. "configs/gameConfig/zk/rankImages/" local USER_SP_TOOLTIP_PREFIX = "user_single_" local USER_MP_TOOLTIP_PREFIX = "user_battle_" @@ -80,6 +83,8 @@ end local function UserLevelToImage(icon, level, skill, isBot, isAdmin) if UserLevelToImageConfFunction then return UserLevelToImageConfFunction(icon, level, skill, isBot, isAdmin) + elseif icon then + return RANK_DIR .. icon .. ".png" end return IMAGE_PLAYER end @@ -202,6 +207,17 @@ local function GetUserComboBoxOptions(userName, isInBattle, userControl) comboOptions[#comboOptions + 1] = "Kick" end + local whitelist = userControl.dropdownWhitelist + if whitelist then + local culled = {} + for i = 1, #comboOptions do + if whitelist[comboOptions[i]] then + culled[#culled + 1] = comboOptions[i] + end + end + comboOptions = culled + end + if #comboOptions == 0 then comboOptions[1] = Label:New { x = 0, @@ -212,18 +228,17 @@ local function GetUserComboBoxOptions(userName, isInBattle, userControl) caption = "No Actions", } end - return comboOptions end local function GetUserRankImageName(userName, userControl) - local userInfo = userControl.lobby:GetUser(userName) or {} local userBattleInfo = userControl.lobby:GetUserBattleStatus(userName) or {} if userControl.isSingleplayer and not userBattleInfo.aiLib then return IMAGE_PLAYER end + local image = GetUserRankImage(userInfo, userInfo.isBot or userBattleInfo.aiLib) return image end @@ -288,6 +303,9 @@ local function GetUserStatus(userName, isInBattle, userControl) end local function UpdateUserControlStatus(userName, userControls) + if userControls.hideStatus then + return + end if userControls.imStatusLarge then local imgFile, status, fontColor = GetUserStatus(userName, isInBattle, userControls) userControls.tbName.font.color = fontColor @@ -445,13 +463,14 @@ local function GetUserControls(userName, opts) local Configuration = WG.Chobby.Configuration - userControls.showFounder = showFounder - userControls.showModerator = showModerator - userControls.isInBattle = isInBattle - userControls.lobby = (isSingleplayer and WG.LibLobby.localLobby) or lobby - userControls.isSingleplayer = isSingleplayer - userControls.steamInvite = opts.steamInvite - Spring.Echo("opts.steamInvite", opts.steamInvite) + userControls.showFounder = showFounder + userControls.showModerator = showModerator + userControls.isInBattle = isInBattle + userControls.lobby = (isSingleplayer and WG.LibLobby.localLobby) or lobby + userControls.isSingleplayer = isSingleplayer + userControls.steamInvite = opts.steamInvite + userControls.hideStatus = opts.hideStatus + userControls.dropdownWhitelist = opts.dropdownWhitelist if reinitialize then userControls.mainControl:ClearChildren() @@ -589,7 +608,7 @@ local function GetUserControls(userName, opts) userControls.imCountry = Image:New { name = "imCountry", x = offset + 2, - y = offsetY + 3, + y = offsetY + 4, width = 16, height = 11, parent = userControls.mainControl, @@ -823,6 +842,15 @@ function userHandler.GetStatusUser(userName) }) end +function userHandler.GetLadderUser(userName) + return _GetUser(ladderUsers, userName, { + hideStatus = true, + dropdownWhitelist = { + ["User Page"] = true, + }, + }) +end + function userHandler.GetFriendUser(userName) return _GetUser(friendUsers, userName, { large = true, @@ -910,7 +938,7 @@ function widget:Initialize() VFS.Include(LUA_DIRNAME .. "widgets/chobby/headers/exports.lua", nil, VFS.RAW_FIRST) AddListeners() - WG.Delay(DelayedInitialize, 1) + WG.Delay(DelayedInitialize, 0.1) WG.UserHandler = userHandler end diff --git a/LuaMenu/widgets/chobby/components/background.lua b/LuaMenu/widgets/chobby/components/background.lua index 7d610b943..8dc91c847 100644 --- a/LuaMenu/widgets/chobby/components/background.lua +++ b/LuaMenu/widgets/chobby/components/background.lua @@ -56,9 +56,6 @@ function Background:SetBoundOverride(imageBoundOverride) end function Background:RemoveOverride() - if not self.imageBoundOverride then - return - end self.imageOverride = nil self.imageBoundOverride = nil self:SetDefaultImage() diff --git a/LuaMenu/widgets/chobby/components/chat_windows.lua b/LuaMenu/widgets/chobby/components/chat_windows.lua index 072436d8d..9d3d46656 100644 --- a/LuaMenu/widgets/chobby/components/chat_windows.lua +++ b/LuaMenu/widgets/chobby/components/chat_windows.lua @@ -556,7 +556,7 @@ function ChatWindows:_NotifyTab(tabName, userName, chanName, nameMentioned, mess interfaceRoot.GetRightPanelHandler().SetActivity("chat", self.totalNewMessages, 2 - mentionNumber) end - if nameMentioned then + if nameMentioned and WG.Chobby.Configuration:AllowNotification(userName) then Chotify:Post({ title = userName .. " in " .. chanName .. ":", body = message, diff --git a/LuaMenu/widgets/chobby/components/configuration.lua b/LuaMenu/widgets/chobby/components/configuration.lua index f6d50fb61..eab2f4393 100644 --- a/LuaMenu/widgets/chobby/components/configuration.lua +++ b/LuaMenu/widgets/chobby/components/configuration.lua @@ -44,6 +44,10 @@ function Configuration:init() game = {}, lobby = {}, } + self.manualFullscreen = { + game = {}, + lobby = {}, + } self.ignoreLevel = false @@ -71,10 +75,6 @@ function Configuration:init() self.agressivelySetBorderlessWindowed = false self.useWrongEngine = false - - self.atiIntelCompat = self:GetIsNotRunningNvidia() - Spring.Echo("Initialize ATI/intel/other non-nvidia compatibility state:", self.atiIntelCompat) - self.myAccountID = false self.lastAddedAiName = false @@ -148,11 +148,14 @@ function Configuration:init() self.lastLoginChatLength = 25 self.notifyForAllChat = true self.planetwarsNotifications = false -- Possibly too intrusive? See how it goes. + self.ingameNotifcations = true -- Party, chat + self.nonFriendNotifications = true -- Party, chat self.simplifiedSkirmishSetup = true self.debugMode = false self.devMode = (VFS.FileExists("devmode.txt") and true) or false self.debugAutoWin = false self.showPlanetUnlocks = false + self.showPlanetEnemyUnits = false self.campaignSpawnDebug = false self.editCampaign = false self.activeDebugConsole = false @@ -195,7 +198,7 @@ function Configuration:init() self.game_settings = VFS.Include(LUA_DIRNAME .. "configs/springsettings/springsettings.lua") - self.settingsMenuValues = self.gameConfig.settingsDefault + self.settingsMenuValues = self.gameConfig.settingsDefault -- Only until configuration data is loaded. self.animate_lobby = gl.CreateShader ~= nil end @@ -268,7 +271,7 @@ function Configuration:SetSettingsConfigOption(name, newValue) if setting.isNumberSetting then local applyFunction = setting.applyFunction if applyFunction then - local applyData = applyFunction(newValue) + local applyData = applyFunction(newValue, self) if applyData then for applyName, value in pairs(applyData) do self.game_settings[applyName] = value @@ -281,12 +284,16 @@ function Configuration:SetSettingsConfigOption(name, newValue) self:SetSpringsettingsValue(setting.applyName, springValue) end else + if (not setting.optionNames[newValue]) then + return false + end + -- Selection from multiple options local selectedOption = setting.optionNames[newValue] if setting.fileTarget then self.settingsMenuValues[name .. "_file"] = selectedOption.file if setting.applyFunction then - setting.applyFunction(selectedOption.file) + setting.applyFunction(selectedOption.file, self) else local sourceFile = VFS.LoadFile(selectedOption.file) local settingsFile = io.open(setting.fileTarget, "w") @@ -294,9 +301,9 @@ function Configuration:SetSettingsConfigOption(name, newValue) settingsFile:close() end else - local applyData = selectedOption.apply or (selectedOption.applyFunction and selectedOption.applyFunction()) + local applyData = selectedOption.apply or (selectedOption.applyFunction and selectedOption.applyFunction(nil, self)) if not applyData then - return + return true end for applyName, value in pairs(applyData) do self.game_settings[applyName] = value @@ -304,6 +311,7 @@ function Configuration:SetSettingsConfigOption(name, newValue) end end end + return true end function Configuration:ApplySettingsConfigPreset(preset) @@ -337,6 +345,9 @@ function Configuration:SetConfigData(data) self.game_settings.WindowBorderless = nil self.game_settings.Fullscreen = nil + -- Fix old memory + self.game_settings.UnitIconDist = nil + if self.serverAddress == "zero-k.com" then self.serverAddress = "zero-k.info" end @@ -353,11 +364,17 @@ function Configuration:SetConfigData(data) self.forcedCompatibilityProfile = VFS.Include(LUA_DIRNAME .. "configs/springsettings/forcedCompatibilityProfile.lua") - self.defaultSettingsPreset = data.defaultSettingsPreset - if (not self.defaultSettingsPreset) and self.gameConfig.SettingsPresetFunc then - self.defaultSettingsPreset = self.gameConfig.SettingsPresetFunc() - if self.defaultSettingsPreset then - self:ApplySettingsConfigPreset(self.defaultSettingsPreset) + local default = self.gameConfig.SettingsPresetFunc and self.gameConfig.SettingsPresetFunc() + if default then + if not data.settingsMenuValues then + data.settingsMenuValues = {} -- Override generic default that is set for safety on initialize. + end + + -- Set defaults for missing values. + for name, defValue in pairs(default) do + if not (self.settingsMenuValues[name] and self:SetSettingsConfigOption(name, self.settingsMenuValues[name])) then + self:SetSettingsConfigOption(name, defValue) + end end end end @@ -380,15 +397,18 @@ function Configuration:GetConfigData() panel_layout = self.panel_layout, lobby_fullscreen = self.lobby_fullscreen, manualBorderless = self.manualBorderless, + manualFullscreen = self.manualFullscreen, animate_lobby = self.animate_lobby, game_settings = self.game_settings, - defaultSettingsPreset = self.defaultSettingsPreset, notifyForAllChat = self.notifyForAllChat, planetwarsNotifications = self.planetwarsNotifications, + ingameNotifcations = self.ingameNotifcations, + nonFriendNotifications = self.nonFriendNotifications, simplifiedSkirmishSetup = self.simplifiedSkirmishSetup, debugMode = self.debugMode, debugAutoWin = self.debugAutoWin, showPlanetUnlocks = self.showPlanetUnlocks, + showPlanetEnemyUnits = self.showPlanetEnemyUnits, campaignSpawnDebug = self.campaignSpawnDebug, editCampaign = self.editCampaign, confirmation_mainMenuFromBattle = self.confirmation_mainMenuFromBattle, @@ -404,7 +424,6 @@ function Configuration:GetConfigData() useWrongEngine = self.useWrongEngine, doNotSetAnySpringSettings = self.doNotSetAnySpringSettings, agressivelySetBorderlessWindowed = self.agressivelySetBorderlessWindowed, - atiIntelCompat = self.atiIntelCompat, fixedSettingsOverride = self.fixedSettingsOverride, settingsMenuValues = self.settingsMenuValues, menuMusicVolume = self.menuMusicVolume, @@ -442,14 +461,6 @@ function Configuration:SetConfigValue(key, value) if key == "gameConfigName" then self.gameConfig = VFS.Include(LUA_DIRNAME .. "configs/gameConfig/" .. value .. "/mainConfig.lua") end - if key == "atiIntelCompat" then - if value then - self:UpdateFixedSettings(self.AtiIntelSettingsOverride) - else - self:UpdateFixedSettings() - end - Spring.Echo("Set ATI/intel/other non-nvidia compatibility state:", value) - end self:_CallListeners("OnConfigurationChange", key, value) end @@ -537,6 +548,35 @@ function Configuration:GetFont(sizeScale) } end +function Configuration:AllowNotification(playerName, playerList) + if (not self.ingameNotifcations) and (Spring.GetGameName() ~= "") then + return false + end + if lobby and not self.nonFriendNotifications then + if playerName then + local userInfo = lobby:TryGetUser(playerName) + if not userInfo.isFriend then + return false + end + end + + if playerList then + local foundFriend = false + for i = 1, #playerList do + local userInfo = lobby:TryGetUser(playerList[i]) + if userInfo.isFriend then + foundFriend = true + break + end + end + if not foundFriend then + return false + end + end + end + return true +end + function Configuration:GetMinimapSmallImage(mapName) if not self.gameConfig.minimapThumbnailPath then return LUA_DIRNAME .. "images/minimapNotFound1.png" diff --git a/LuaMenu/widgets/chobby/components/friend_list_window.lua b/LuaMenu/widgets/chobby/components/friend_list_window.lua index bd52edbc7..219b71d29 100644 --- a/LuaMenu/widgets/chobby/components/friend_list_window.lua +++ b/LuaMenu/widgets/chobby/components/friend_list_window.lua @@ -44,7 +44,7 @@ end function FriendListWindow:OnAddUser(userName) local userInfo = lobby:TryGetUser(userName) - if userInfo.isFriend then + if userInfo.isFriend and WG.Chobby.Configuration:AllowNotification(userName) then local userControl = WG.UserHandler.GetNotificationUser(userName) userControl:SetPos(30, 30, 250, 20) Chotify:Post({ @@ -59,7 +59,7 @@ function FriendListWindow:OnRemoveUser(userName) return end local userInfo = lobby:TryGetUser(userName) - if userInfo and userInfo.isFriend then + if userInfo and userInfo.isFriend and WG.Chobby.Configuration:AllowNotification(userName) then local userControl = WG.UserHandler.GetNotificationUser(userName) userControl:SetPos(30, 30, 250, 20) Chotify:Post({ @@ -144,13 +144,15 @@ end function FriendListWindow:OnFriendRequest(userName) -- interfaceRoot.GetRightPanelHandler().SetActivity("friends", lobby:GetFriendRequestCount()) - local userControl = WG.UserHandler.GetNotificationUser(userName) - userControl:SetPos(20, 40, 250, 20) - Chotify:Post({ - title = i18n("New friend request"), - body = userControl, - }) - self:AddFriendRequest(userName) + if WG.Chobby.Configuration:AllowNotification() then -- Do not filter out friends here, otherwise nothing makes sense. + local userControl = WG.UserHandler.GetNotificationUser(userName) + userControl:SetPos(20, 40, 250, 20) + Chotify:Post({ + title = i18n("New friend request"), + body = userControl, + }) + self:AddFriendRequest(userName) + end end function FriendListWindow:OnFriendRequestList(friendRequests) diff --git a/LuaMenu/widgets/chobby/components/list_window.lua b/LuaMenu/widgets/chobby/components/list_window.lua index 0f5d71328..38913d3e0 100644 --- a/LuaMenu/widgets/chobby/components/list_window.lua +++ b/LuaMenu/widgets/chobby/components/list_window.lua @@ -123,7 +123,7 @@ end function ListWindow:AddRow(items, id) if self.itemPanelMapping[id] then - Spring.Log("Chobby", LOG.ERROR, "Tried to add duplicate list window item", id) + --Spring.Log("Chobby", LOG.ERROR, "Tried to add duplicate list window item", id) return end local thisWidth = items[#items].x + items[#items].width diff --git a/LuaMenu/widgets/chobby/i18n/chililobby.lua b/LuaMenu/widgets/chobby/i18n/chililobby.lua index 381e03bcb..513c118dd 100644 --- a/LuaMenu/widgets/chobby/i18n/chililobby.lua +++ b/LuaMenu/widgets/chobby/i18n/chililobby.lua @@ -63,6 +63,7 @@ return { apply = "Apply", enter_battle_password = "Enter Battle Password", set_window_position = "Set Window Position", + set_resolution = "Set Resolution", game_name = "Game Name", password_optional = "Password (Optional)", game_type = "Game Type", @@ -80,6 +81,8 @@ return { links = "Links", missions = "Missions", tutorials = "Tutorials", + training = "Training", + instruction = "Instruction", community = "Community", report_a_bug = "Report A Bug", skirmish = "Skirmish", @@ -150,6 +153,8 @@ return { -- Settings planetwars_notifications = "Planetwars notifications", + ingame_notifcations = "Notifications while ingame", + non_friend_notifications = "Non-friend notifications", notifyForAllChat = "Notify for all chat", drawFullSpeed = "Full speed draw updates", simplifiedSkirmishSetup = "Simple skirmish setup", diff --git a/LuaMenu/widgets/gui_battle_room_window.lua b/LuaMenu/widgets/gui_battle_room_window.lua index e78b802c9..ff8d1dbcd 100644 --- a/LuaMenu/widgets/gui_battle_room_window.lua +++ b/LuaMenu/widgets/gui_battle_room_window.lua @@ -213,7 +213,7 @@ local function SetupInfoButtonsPanel(leftInfo, rightInfo, battle, battleID, myUs else WG.Analytics.SendOnetimeEvent("lobby:multiplayer:custom:start") end - battleLobby:StartBattle() + battleLobby:StartBattle("skirmish") end else Spring.Echo("Do something if map or game is missing") @@ -1406,7 +1406,7 @@ local function SetupEasySetupPanel(mainWindow, standardSubPanel, setupData) if haveMapAndGame then local hostPort = WG.SteamCoopHandler and WG.SteamCoopHandler.GetHostPort() local friendNames = hostPort and WG.SteamCoopHandler.GetCoopFriendList() - battleLobby:StartBattle(friendNames, true, hostPort) + battleLobby:StartBattle("skirmish", friendNames, true, hostPort) else Spring.Echo("Do something if map or game is missing") end diff --git a/LuaMenu/widgets/gui_campaign_handler.lua b/LuaMenu/widgets/gui_campaign_handler.lua index 27cbad9ee..c358a2815 100644 --- a/LuaMenu/widgets/gui_campaign_handler.lua +++ b/LuaMenu/widgets/gui_campaign_handler.lua @@ -47,9 +47,10 @@ local PLANET_START_COLOR = {1, 1, 1, 1} local PLANET_NO_START_COLOR = {0.5, 0.5, 0.5, 1} local TARGET_IMAGE = LUA_DIRNAME .. "images/niceCircle.png" +local IMG_LINK = LUA_DIRNAME .. "images/link.png" local REWARD_ICON_SIZE = 58 -local DEBUG_UNLOCKS_SIZE = 26 +local DEBUG_UNLOCK_SIZE = 26 local DEBUG_UNLOCK_COLUMNS = 4 local VISIBILITY_DISTANCE = 2 -- Distance from captured at which planets are visible. @@ -172,6 +173,38 @@ local function MakeFeedbackWindow(parent, feedbackLink) } end +local function MakeFeedbackButton(parentControl, link, x, y, right, bottom, width, height) + local feedbackButton = Button:New { + x = x, + y = y, + right = right, + bottom = bottom, + width = 116, + height = 32, + padding = {0, 0, 0, 0}, + caption = "Feedback ", + classname = "action_button", + font = WG.Chobby.Configuration:GetFont(2), + tooltip = "Post feedback on the forum", + OnClick = { + function () + WG.BrowserHandler.OpenUrl(link) + end + }, + parent = parentControl, + } + + local imMapLink = Image:New { + right = 6, + y = 7, + width = 16, + height = 16, + keepAspect = true, + file = IMG_LINK, + parent = feedbackButton, + } +end + -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- Save planet positions @@ -420,6 +453,21 @@ local function RepositionBackgroundAndPlanets(newX, newY, newWidth, newHeight) UpdateEdgeList() end +local function DelayedViewResize() + if not planetHandler then + return + end + local window = planetHandler.GetParent() + if not (window and window.parent) then + return + end + local x, y = window:LocalToScreen(0, 0) + RepositionBackgroundAndPlanets(x, y, window.xSize, window.ySize) + if selectedPlanet then + selectedPlanet.SizeUpdate() + end +end + -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- Planet capturing @@ -494,6 +542,10 @@ local function MakeWinPopup(planetData, bonusObjectiveSuccess, difficulty) }, } + if planetData.infoDisplay.feedbackLink then + MakeFeedbackButton(victoryWindow, planetData.infoDisplay.feedbackLink, nil, nil, 2, 1) + end + local popupHolder = WG.Chobby.PriorityPopup(victoryWindow, CloseFunc, CloseFunc) local externalFunctions = {} @@ -646,6 +698,10 @@ local function SelectPlanet(planetHandler, planetID, planetData, startable) padding = {0,0,0,0}, parent = starmapInfoPanel, } + + if planetData.infoDisplay.feedbackLink then + MakeFeedbackButton(buttonHolder, planetData.infoDisplay.feedbackLink, 2, nil, nil, 1) + end local startButton = Button:New{ right = 0, @@ -679,7 +735,7 @@ local function SelectPlanet(planetHandler, planetID, planetData, startable) local function SkipFunc() ProcessPlanetVictory(planetID, 0, {}, nil, WG.CampaignData.GetDifficultySetting()) end - WG.Chobby.ConfirmationPopup(SkipFunc, "Are you sure you want to skip the quick tutorial? Remeber to come back later if you need help.", nil, 315, 220) + WG.Chobby.ConfirmationPopup(SkipFunc, "Are you sure you want to skip the quick tutorial? Remember to come back later if you need help.", nil, 315, 220) end } } @@ -797,15 +853,15 @@ local function SelectPlanet(planetHandler, planetID, planetData, startable) return externalFunctions end -local function AddDebugUnlocks(parent, unlockList, unlockInfo, offset) +local function AddDebugUnlocks(parent, unlockList, unlockInfo, offset, columns, unlockSize) if unlockList then for i = 1, #unlockList do local info, imageFile, imageOverlay, count = unlockInfo(unlockList[i]) local image = Image:New{ - x = (offset%DEBUG_UNLOCK_COLUMNS) * DEBUG_UNLOCKS_SIZE, - y = math.floor(offset/DEBUG_UNLOCK_COLUMNS) * DEBUG_UNLOCKS_SIZE, - width = DEBUG_UNLOCKS_SIZE - 1, - height = DEBUG_UNLOCKS_SIZE - 1, + x = (offset%columns) * unlockSize, + y = math.floor(offset/columns) * unlockSize, + width = unlockSize - 1, + height = unlockSize - 1, keepAspect = true, file = imageOverlay or imageFile, file2 = imageOverlay and imageFile, @@ -817,6 +873,51 @@ local function AddDebugUnlocks(parent, unlockList, unlockInfo, offset) return offset end +local filter = { + {"cloak", "cloakraid"}, + {"shield", "shieldraid"}, + {"spider", "spideremp"}, + {"jump", "jumpraid"}, + {"amph", "amphraid"}, + {"hover", "hoverraid"}, + {"veh", "vehraid"}, + {"tank", "tankassault"}, + {"plane", "planefighter"}, + {"bomber", "planefighter"}, + {"gunship", "gunshipraid"}, + {"strider", "striderdante"}, + {"ship", "shipriot"}, + {"sub", "shipriot"}, +} + +local function ProcessAiUnlockDebugView(debugHolder, map, aiConfig, unlockInfo, offset) + if aiConfig.allyTeam == 0 then + return offset, map + end + local unlocks = aiConfig.unlocks + if not unlocks then + return offset, map + end + + local unlockList = {} + for i = 1, #unlocks do + local name = unlocks[i] + for j = 1, #filter do + if string.find(name, filter[j][1]) then + local item = filter[j][2] + if not map[item] then + unlockList[#unlockList + 1] = item + map[item] = true + end + break + end + end + end + + offset = AddDebugUnlocks(debugHolder, unlockList, unlockInfo, offset, DEBUG_UNLOCK_COLUMNS, DEBUG_UNLOCK_SIZE) + return offset, map +end + local function EnablePlanetClick() planetClickEnabled = true end @@ -847,21 +948,39 @@ local function GetPlanet(galaxyHolder, planetID, planetData, adjacency) } local debugHolder - if (not LIVE_TESTING) and Configuration.debugMode and Configuration.showPlanetUnlocks then - debugHolder = Control:New{ - x = 0, - y = 0, - width = targetSize*3, - height = targetSize, - padding = {1, 1, 1, 1}, - parent = galaxyHolder, - } - - local rewards = planetData.completionReward - local offset = 0 - offset = AddDebugUnlocks(debugHolder, rewards.units, WG.CampaignData.GetUnitInfo, offset) - offset = AddDebugUnlocks(debugHolder, rewards.modules, WG.CampaignData.GetModuleInfo, offset) - offset = AddDebugUnlocks(debugHolder, rewards.abilities, WG.CampaignData.GetAbilityInfo, offset) + if (not LIVE_TESTING) and Configuration.debugMode then + if Configuration.showPlanetUnlocks then + debugHolder = Control:New{ + x = 0, + y = 0, + width = targetSize*3, + height = targetSize, + padding = {1, 1, 1, 1}, + parent = galaxyHolder, + } + + local rewards = planetData.completionReward + local offset = 0 + offset = AddDebugUnlocks(debugHolder, rewards.units, WG.CampaignData.GetUnitInfo, offset, DEBUG_UNLOCK_COLUMNS, DEBUG_UNLOCK_SIZE) + offset = AddDebugUnlocks(debugHolder, rewards.modules, WG.CampaignData.GetModuleInfo, offset, DEBUG_UNLOCK_COLUMNS, DEBUG_UNLOCK_SIZE) + offset = AddDebugUnlocks(debugHolder, rewards.abilities, WG.CampaignData.GetAbilityInfo, offset, DEBUG_UNLOCK_COLUMNS, DEBUG_UNLOCK_SIZE) + elseif Configuration.showPlanetEnemyUnits then + debugHolder = Control:New{ + x = 0, + y = 0, + width = targetSize*3, + height = targetSize, + padding = {1, 1, 1, 1}, + parent = galaxyHolder, + } + + local aiConfig = planetData.gameConfig.aiConfig + local offset = 0 + local map = {}, {} + for i = 1, #aiConfig do + offset, map = ProcessAiUnlockDebugView(debugHolder, map, aiConfig[i], WG.CampaignData.GetUnitInfo, offset) + end + end end local button = Button:New{ @@ -957,7 +1076,7 @@ local function GetPlanet(galaxyHolder, planetID, planetData, adjacency) end if debugHolder then - debugHolder:SetPos(x, y + planetSize, DEBUG_UNLOCK_COLUMNS*DEBUG_UNLOCKS_SIZE + 2, 2*DEBUG_UNLOCKS_SIZE + 2) + debugHolder:SetPos(x, y + planetSize, DEBUG_UNLOCK_COLUMNS*DEBUG_UNLOCK_SIZE + 2, 3*DEBUG_UNLOCK_SIZE + 2) end end @@ -1355,6 +1474,9 @@ local function InitializePlanetHandler(parent, newLiveTestingMode, newPlanetWhit return parent end + -- Make sure everything loads in the right positions + DelayedViewResize() + WG.Delay(DelayedViewResize, 0.8) return externalFunctions end @@ -1478,20 +1600,6 @@ end -- Callins -------------------------------------------------------------------------------- -local function DelayedViewResize() - if not planetHandler then - return - end - local window = planetHandler.GetParent() - if not (window and window.parent) then - return - end - local x, y = window:LocalToScreen(0, 0) - RepositionBackgroundAndPlanets(x, y, window.xSize, window.ySize) - if selectedPlanet then - selectedPlanet.SizeUpdate() - end -end function widget:ViewResize(vsx, vsy) WG.Delay(DelayedViewResize, 0.8) @@ -1524,4 +1632,4 @@ end function widget:Shutdown() WG.CampaignHandler = nil -end \ No newline at end of file +end diff --git a/LuaMenu/widgets/gui_community_window.lua b/LuaMenu/widgets/gui_community_window.lua index 1229a07cc..36579eeca 100644 --- a/LuaMenu/widgets/gui_community_window.lua +++ b/LuaMenu/widgets/gui_community_window.lua @@ -119,6 +119,85 @@ local function AddLinkButton(scroll, name, tooltip, link, x, right, y, bottom) ButtonUtilities.SetFontSizeScale(button, 3) end +-------------------------------------------------------------------------------- +-------------------------------------------------------------------------------- +-- Ladder Handler + +local function GetLadderHandler(parentControl) + local lobby = WG.LibLobby.lobby + + local holder = Control:New{ + x = 0, + y = 0, + right = 0, + padding = {0,0,0,0}, + parent = parentControl, + } + local playerHolder = Control:New{ + x = 38, + y = 30, + right = 0, + bottom = 0, + padding = {0,0,0,0}, + parent = holder, + } + + local heading = TextBox:New{ + x = 4, + y = 7, + right = 4, + height = 24, + align = "left", + valign = "top", + text = "Ladder", + fontsize = WG.Chobby.Configuration:GetFont(3).size, + parent = holder, + } + + local numberBox = {} + + local externalFunctions = {} + + function externalFunctions.UpdateLadder(ladderEntries) + local offset = 2 + playerHolder:ClearChildren() + for i = 1, #ladderEntries do + local data = ladderEntries[i] + local lobbyData = { + accountID = data.AccountID, + icon = data.Icon, + country = data.Country, + clan = data.Clan + } + lobby:LearnAboutOfflineUser(data.Name, lobbyData) + local user = WG.UserHandler.GetLadderUser(data.Name) + + user:SetPos(nil, offset) + playerHolder:AddChild(user) + + if not numberBox[i] then + numberBox[i] = Label:New{ + x = 2, + y = offset + 32, + width = 36, + height = 24, + align = "right", + valign = "top", + caption = i .. " - ", + font = WG.Chobby.Configuration:GetFont(2), + parent = holder, + } + end + + offset = offset + 26 + end + + holder:SetPos(nil, nil, nil, offset + 34) + end + + return externalFunctions +end + -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- News @@ -197,20 +276,22 @@ local headingFormats = { spacing = 2, buttonPos = 2, inButton = 4, - paragraphSpacing = 1, + paragraphSpacing = 0, topHeadingOffset = 30, imageSize = 120, + buttonBot = 6, }, [4] = { buttonSize = 40, height = 34, linkSize = 28, - spacing = 10, + spacing = 16, buttonPos = 5, inButton = 7, paragraphSpacing = 30, topHeadingOffset = 50, imageSize = 120, + buttonBot = 10, }, } @@ -410,7 +491,7 @@ local function GetNewsEntry(parentHolder, index, headingSize, timeAsTooltip, top local headingSize if controls.linkButton and controls.linkButton.visible then headingSize = (#controls.heading.physicalLines)*headFormat.fontSize - controls.linkButton:SetPos(nil, offset + headFormat.buttonPos, nil, headingSize + 4) + controls.linkButton:SetPos(nil, offset + headFormat.buttonPos, nil, headingSize + headFormat.buttonBot) controls.heading:SetPos(nil, nil, nil, headingSize) elseif controls.freeHeading then headingSize = (#controls.freeHeading.physicalLines)*headFormat.fontSize @@ -541,7 +622,7 @@ local function GetNewsHandler(parentControl, headingSize, timeAsTooltip, topHead UpdateCountdown() local function ImageDownloadFinished() - WG.Delay(ReloadImages, 2) + WG.Delay(ReloadImages, 4) end WG.DownloadHandler.AddListener("ImageDownloadFinished", ImageDownloadFinished) @@ -574,11 +655,10 @@ local function InitializeControls(window) local topWide = GetScroll(window, 0, 0, 0, "60%", true) local leftCenter = GetScroll(window, 0, "66.6%", "40%", "31%", false) local midCenter = GetScroll(window, "33.4%", "33.4%", "40%", "31%", true) - local rightCenter = GetScroll(window, "66.6%", 0, "40%", "31%", false) + local rightCenter = GetScroll(window, "66.6%", 0, "40%", "31%", true) local leftLower = GetScroll(window, 0, "33.4%", "69%", 0, false) local rightLower = GetScroll(window, "66.6%", 0, "69%", 0, false) - LeaveIntentionallyBlank(rightCenter, "Ladder (TODO)") LeaveIntentionallyBlank(leftLower, "Profile (TODO)") LeaveIntentionallyBlank(rightLower, "(reserved)") @@ -613,6 +693,16 @@ local function InitializeControls(window) lobby:AddListener("OnForumList", OnForumList) -- Ladder Handler + local ladderHandler = GetLadderHandler(rightCenter) + if staticCommunityData and staticCommunityData.LadderItems then + ladderHandler.UpdateLadder(staticCommunityData.LadderItems) + end + + local function OnLadderList(_, ladderItems) + ladderHandler.UpdateLadder(ladderItems) + end + + lobby:AddListener("OnLadderList", OnLadderList) end @@ -663,7 +753,7 @@ function widget:Initialize() CHOBBY_DIR = LUA_DIRNAME .. "widgets/chobby/" VFS.Include(LUA_DIRNAME .. "widgets/chobby/headers/exports.lua", nil, VFS.RAW_FIRST) - WG.Delay(DelayedInitialize, 1) + WG.Delay(DelayedInitialize, 0.2) -- After user handler WG.CommunityWindow = CommunityWindow end diff --git a/LuaMenu/widgets/gui_mission_handler.lua b/LuaMenu/widgets/gui_mission_handler.lua index acb845f16..2bbac5407 100644 --- a/LuaMenu/widgets/gui_mission_handler.lua +++ b/LuaMenu/widgets/gui_mission_handler.lua @@ -130,7 +130,7 @@ local function CreateMissionEntry(missionData) startScript = startScript:gsub("%%NAME%%", WG.Chobby.localLobby:GetMyUserName()) WG.Analytics.SendOnetimeEvent("lobby:singleplayer:missions:start_" .. missionData.DisplayName) - WG.Chobby.localLobby:StartGameFromString(startScript) + WG.Chobby.localLobby:StartGameFromString(startScript, "tutorial") end }, parent = holder, @@ -204,7 +204,7 @@ local function InitializeControls(parentControl) height = 20, parent = parentControl, font = Configuration:GetFont(3), - caption = "Select Tutorial", + caption = "Learn advanced techniques in these tutorials", } local btnLeaveScreen = Button:New { diff --git a/LuaMenu/widgets/gui_party_status_panel.lua b/LuaMenu/widgets/gui_party_status_panel.lua index cad18aca8..dab9958f7 100644 --- a/LuaMenu/widgets/gui_party_status_panel.lua +++ b/LuaMenu/widgets/gui_party_status_panel.lua @@ -308,7 +308,7 @@ function DelayedInitialize() end local function OnPartyInviteRecieved(_, partyID, partyUsers, secondsRemaining) - if not invitePopup then + if WG.Chobby.Configuration:AllowNotification(nil, partyUsers) and not invitePopup then invitePopup = CreatePartyInviteWindow(partyID, partyUsers, secondsRemaining, DestroyInvitePopup) end end diff --git a/LuaMenu/widgets/gui_settings_window.lua b/LuaMenu/widgets/gui_settings_window.lua index 8138b1ffc..d0e6452fe 100644 --- a/LuaMenu/widgets/gui_settings_window.lua +++ b/LuaMenu/widgets/gui_settings_window.lua @@ -22,6 +22,7 @@ local battleStartDisplay = 1 local lobbyFullscreen = 1 local FUDGE = 0 +local USE_CONFIG_FULLSCREEN = false local inLobby = true local currentMode = false @@ -29,9 +30,9 @@ local currentManualBorderless = false local ITEM_OFFSET = 38 -local COMBO_X = 230 +local COMBO_X = 280 local COMBO_WIDTH = 235 -local CHECK_WIDTH = 230 +local CHECK_WIDTH = 280 local TEXT_OFFSET = 6 local settingsWindowHandler @@ -221,6 +222,11 @@ local function SetLobbyFullscreenMode(mode, borderOverride) if Configuration.agressivelySetBorderlessWindowed then WG.Delay(ToggleFullscreenOff, 0.5) end + elseif mode == 5 then -- Manual Fullscreen + local resolution = WG.Chobby.Configuration.manualFullscreen[name] or {} + Spring.SetConfigInt("XResolution", resolution.width or screenX, false) + Spring.SetConfigInt("YResolution", resolution.height or screenY, false) + Spring.SetConfigInt("Fullscreen", 1, false) end end @@ -401,6 +407,112 @@ local function ShowManualBorderlessEntryWindow(name) --screen0:FocusControl(ebPassword) end +local function ShowManualFullscreenEntryWindow(name) + local Configuration = WG.Chobby.Configuration + + local manualWindow = Window:New { + x = 700, + y = 300, + width = 316, + height = 254, + caption = "", + resizable = false, + draggable = false, + parent = WG.Chobby.lobbyInterfaceHolder, + classname = "main_window", + } + + local lblTitle = Label:New { + x = 35, + right = 15, + y = 15, + height = 35, + font = Configuration:GetFont(3), + caption = i18n("set_resolution"), + parent = manualWindow, + } + + local screenX, screenY = Spring.GetScreenGeometry() + local resolution = WG.Chobby.Configuration.manualFullscreen[name] or {} + + local widthBox = GetValueEntryBox(manualWindow, "Width", 60, resolution.width or screenX) + local heightBox = GetValueEntryBox(manualWindow, "Height", 100, resolution.height or screenY) + + local function RetreatToSafety(force) + resolution.width = screenX + resolution.height = screenY + if force or ((name == "lobby") == (Spring.GetGameName() == "")) then + SetLobbyFullscreenMode(5) + end + end + + local function FinalApplyFunc() + local lobbySetting = (name == "lobby") + if lobbySetting then + if not inLobby then + SetLobbyFullscreenMode(battleStartDisplay) + end + else + if inLobby then + SetLobbyFullscreenMode(lobbyFullscreen) + end + end + end + + local function FinalApplyFailureFunc() + RetreatToSafety(true) + end + + local function ApplyFunc() + resolution.width = widthBox() + resolution.height = heightBox() + + SetLobbyFullscreenMode(5, resolution) + + manualWindow:Dispose() + local confirmation = WG.Chobby.ConfirmationPopup(FinalApplyFunc, "Keep these settings?", nil, 315, 170, i18n("yes"), i18n("no"), FinalApplyFailureFunc, true, 5) + end + + local function CancelFunc() + RetreatToSafety(false) + manualWindow:Dispose() + end + + local btnApply = Button:New { + x = 5, + width = 135, + bottom = 1, + height = 70, + caption = i18n("apply"), + font = Configuration:GetFont(3), + classname = "action_button", + OnClick = { + function() + ApplyFunc() + end + }, + parent = manualWindow, + } + local btnClose = Button:New { + right = 5, + width = 135, + bottom = 1, + height = 70, + caption = i18n("cancel"), + font = Configuration:GetFont(3), + classname = "negative_button", + OnClick = { + function() + CancelFunc() + end + }, + parent = manualWindow, + } + + local popupHolder = WG.Chobby.PriorityPopup(manualWindow, CancelFunc, ApplyFunc) + --screen0:FocusControl(ebPassword) +end + -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- Lobby Settings @@ -640,6 +752,8 @@ local function GetLobbyTabControls() offset = offset + ITEM_OFFSET children[#children + 1], offset = AddCheckboxSetting(offset, i18n("planetwars_notifications"), "planetwarsNotifications", false) + children[#children + 1], offset = AddCheckboxSetting(offset, i18n("ingame_notifcations"), "ingameNotifcations", true) + children[#children + 1], offset = AddCheckboxSetting(offset, i18n("non_friend_notifications"), "nonFriendNotifications", true) children[#children + 1], offset = AddCheckboxSetting(offset, i18n("simplifiedSkirmishSetup"), "simplifiedSkirmishSetup", true) children[#children + 1], offset = AddCheckboxSetting(offset, i18n("notifyForAllChat"), "notifyForAllChat", false) children[#children + 1], offset = AddCheckboxSetting(offset, i18n("only_featured_maps"), "onlyShowFeaturedMaps", true) @@ -716,6 +830,7 @@ local function GetVoidTabControls() children[#children + 1], offset = AddCheckboxSetting(offset, i18n("debugMode"), "debugMode", false) children[#children + 1], offset = AddCheckboxSetting(offset, "Debug Auto Win", "debugAutoWin", false) children[#children + 1], offset = AddCheckboxSetting(offset, "Show Planet Unlocks", "showPlanetUnlocks", false) + children[#children + 1], offset = AddCheckboxSetting(offset, "Show Planet Enemy Units", "showPlanetEnemyUnits", false) children[#children + 1], offset = AddCheckboxSetting(offset, "Campaign Spawn Debug", "campaignSpawnDebug", false) children[#children + 1], offset = AddCheckboxSetting(offset, "Edit Campaign", "editCampaign", false) children[#children + 1], offset = AddCheckboxSetting(offset, "Debug server messages", "activeDebugConsole", false) @@ -1033,13 +1148,18 @@ local function ProcessScreenSizeOption(data, offset) selectedOption = Configuration.game_fullscreen or 1 end + local items = {"Borderless Window", "Windowed", "Fullscreen", "Configurable Borderless"} + if USE_CONFIG_FULLSCREEN then + items[5] = "Configurable Fullscreen" + end + local list = ComboBox:New { name = data.name .. "_combo", x = COMBO_X, y = offset, width = COMBO_WIDTH, height = 30, - items = {"Borderless Window", "Windowed", "Fullscreen", "Manual Borderless"}, + items = items, font = Configuration:GetFont(2), itemFontSize = Configuration:GetFont(2).size, selected = selectedOption, @@ -1051,6 +1171,8 @@ local function ProcessScreenSizeOption(data, offset) if data.lobbyDisplayModeToggle then if obj.selected == 4 then ShowManualBorderlessEntryWindow("lobby") + elseif obj.selected == 5 then + ShowManualFullscreenEntryWindow("lobby") elseif Spring.GetGameName() == "" then SetLobbyFullscreenMode(obj.selected) end @@ -1060,6 +1182,8 @@ local function ProcessScreenSizeOption(data, offset) else if obj.selected == 4 then ShowManualBorderlessEntryWindow("game") + elseif obj.selected == 5 then + ShowManualFullscreenEntryWindow("game") elseif Spring.GetGameName() ~= "" then SetLobbyFullscreenMode(obj.selected) end @@ -1377,6 +1501,12 @@ function SettingsWindow.WriteGameSpringsettings(fileName) WriteToFile("WindowPosX", borders.x or 0) WriteToFile("WindowPosY", borders.y or 0) WriteToFile("WindowBorderless", 1) + elseif battleStartDisplay == 5 then -- Manual Fullscreen + local resolution = WG.Chobby.Configuration.manualFullscreen.game or {} + WriteToFile("XResolution", resolution.width or screenX) + WriteToFile("YResolution", resolution.height or screenY) + WriteToFile("WindowBorderless", 0) + WriteToFile("Fullscreen", 1) end end @@ -1422,6 +1552,12 @@ function SettingsWindow.GetSettingsString() WriteSetting("WindowPosX", borders.x or 0) WriteSetting("WindowPosY", borders.y or 0) WriteSetting("WindowBorderless", 1) + elseif battleStartDisplay == 5 then -- Manual Fullscreen + local resolution = WG.Chobby.Configuration.manualFullscreen.game or {} + WriteSetting("XResolution", resolution.width or screenX) + WriteSetting("YResolution", resolution.height or screenY) + WriteSetting("WindowBorderless", 0) + WriteSetting("Fullscreen", 1) end return settingsString @@ -1512,6 +1648,11 @@ function widget:Initialize() Configuration:SetSpringsettingsValue("WindowPosX", borders.x or 0) Configuration:SetSpringsettingsValue("WindowPosY", borders.y or 0) Configuration:SetSpringsettingsValue("WindowBorderless", 1) + elseif battleStartDisplay == 5 then -- Manual Fullscreen + local resolution = WG.Chobby.Configuration.manualFullscreen.game or {} + Configuration:SetSpringsettingsValue("XResolution", resolution.width or screenX) + Configuration:SetSpringsettingsValue("YResolution", resolution.height or screenY) + Configuration:SetSpringsettingsValue("Fullscreen", 1) end for key, value in pairs(gameSettings) do diff --git a/campaign/sample/commConfig.lua b/campaign/sample/commConfig.lua index 0fe84e374..ec21c179c 100644 --- a/campaign/sample/commConfig.lua +++ b/campaign/sample/commConfig.lua @@ -631,7 +631,7 @@ local moduleDefs = { name = "module_jumpjet", humanName = "Jumpjets", description = "Jumpjets - Leap over obstacles and out of danger.", - image = moduleImagePath .. "module_radarnet2.png", + image = moduleImagePath .. "module_jumpjet.png", limit = 1, cost = 400, requireChassis = {"knight"}, diff --git a/campaign/sample/planetDefs.lua b/campaign/sample/planetDefs.lua index 362486731..41505c9a9 100644 --- a/campaign/sample/planetDefs.lua +++ b/campaign/sample/planetDefs.lua @@ -174,6 +174,18 @@ for i = 1, #planets do end end +-- Sum Experience +--local xpSum = 0 +--local bonusSum = 0 +--for i = 1, #planets do +-- xpSum = xpSum + planets[i].completionReward.experience +-- local bonus = planets[i].gameConfig.bonusObjectiveConfig or {} +-- for i = 1, #bonus do +-- bonusSum = bonusSum + bonus[i].experience +-- end +--end +--Spring.Echo("Total Experience", xpSum + bonusSum, "Main", xpSum, "Bonus", bonusSum) + local retData = { planets = planets, planetAdjacency = planetAdjacency, diff --git a/campaign/sample/planetDocumentation.lua b/campaign/sample/planetDocumentation.lua index 4b54f221e..f15d430a8 100644 --- a/campaign/sample/planetDocumentation.lua +++ b/campaign/sample/planetDocumentation.lua @@ -33,6 +33,7 @@ planetData = { primary = "Origin", primaryType = "G8V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24489", text = [[Your first battle will be straightforward. You have been provided with a starting base. Construct an army of Glaives and Reavers and overwhelm your enemy.]] -- extendedText is optional and used as the text for the ingame briefing. extendedText = [[Something else]], @@ -116,6 +117,16 @@ planetData = { bonusObjectiveID = false, }, + -- Extra commander modules. + extraModules = { + {name = "module_jumpjet", count = 1, add = false}, + -- List of: + -- * name - Module name. See commConfig.lua. + -- * count - Number of copies of the module. + -- * add - Boolean controlling whether count adds to the number of modules of + -- the type the player has equiped or overwrites the number. + }, + -- Extra unit unlocks that are availible to the player for the duration of the mission. extraUnlocks = { "factorycloak", @@ -163,6 +174,9 @@ planetData = { z = 850, facing = 0, + -- Duration of stun (in seconds) applied to the unit at the start of the game. + stunTime = 2, + -- Set terraform height to make a Skydust terraformHeight = 30, diff --git a/campaign/sample/planets/planet1.lua b/campaign/sample/planets/planet1.lua index 766583004..286dfad0d 100644 --- a/campaign/sample/planets/planet1.lua +++ b/campaign/sample/planets/planet1.lua @@ -26,7 +26,8 @@ local function GetPlanet(planetUtilities, planetID) radius = "6550 km", primary = "Privni", primaryType = "G8V", - milRating = 1, + milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24417", text = [[This battle will be straightforward. Construct an army of Glaives and Reavers to overwhelm your enemy.]] }, tips = { @@ -45,7 +46,7 @@ local function GetPlanet(planetUtilities, planetID) }, gameConfig = { missionStartscript = false, - mapName = "Living Lands v2.03", + mapName = "Living Lands 3.2", playerConfig = { startX = 300, startZ = 3800, @@ -279,18 +280,6 @@ local function GetPlanet(planetUtilities, planetID) description = "Build 3 Reavers", experience = planetUtilities.BONUS_EXP, }, - --[5] = { -- Kill all enemy mexes - -- satisfyOnce = true, - -- comparisionType = planetUtilities.COMPARE.AT_MOST, - -- targetNumber = 0, - -- enemyUnitTypes = { - -- "staticmex", - -- }, - -- image = planetUtilities.ICON_DIR .. "staticmex.png", - -- imageOverlay = planetUtilities.ICON_OVERLAY.ATTACK, - -- description = "Destroy all enemy Metal Extractors", - -- experience = planetUtilities.BONUS_EXP, - --}, [5] = { victoryByTime = 480, image = planetUtilities.ICON_OVERLAY.CLOCK, diff --git a/campaign/sample/planets/planet10.lua b/campaign/sample/planets/planet10.lua index 3f76db803..d277d833e 100644 --- a/campaign/sample/planets/planet10.lua +++ b/campaign/sample/planets/planet10.lua @@ -24,6 +24,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Sop", primaryType = "G2VI", milRating = 2, + feedbackLink = "http://zero-k.info/Forum/Thread/24457", text = [[Help your ally to push across the island with Fencer missile trucks and Badger mine artillery. A slow but inevitable push will bring you victory just as surely as a lightning assault.]] }, tips = { diff --git a/campaign/sample/planets/planet11.lua b/campaign/sample/planets/planet11.lua index e5ea54b24..70519cc7a 100644 --- a/campaign/sample/planets/planet11.lua +++ b/campaign/sample/planets/planet11.lua @@ -24,6 +24,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "EL-5591", primaryType = "G8V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24457", text = [[Your opponent is sending gunships out from behind a formidable defensive array. Use Crasher anti-air rovers to shoot down the gunships, then Impaler artillery to tear down the base.]] }, tips = { diff --git a/campaign/sample/planets/planet12.lua b/campaign/sample/planets/planet12.lua index 07d89e335..d2a105f69 100644 --- a/campaign/sample/planets/planet12.lua +++ b/campaign/sample/planets/planet12.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Purlie", primaryType = "G8V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24457", text = [[The enemy is well entrenched but, luckily for you, they have a poorly defended outpost and you have a squad of Dominatrices. Capture the outpost to gain a production base, then steal an army of Tanks and march on their main base.]] }, tips = { diff --git a/campaign/sample/planets/planet13.lua b/campaign/sample/planets/planet13.lua index b7e05a234..d9ad1f75e 100644 --- a/campaign/sample/planets/planet13.lua +++ b/campaign/sample/planets/planet13.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "None", primaryType = "N/A", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24441", text = [[This isolated asteroid is being used by the enemy as an observation and command post. Use Shieldbots to conquer the rough terrain, then bring your Commander to the Interception Network structure to download important strategic data.]] }, tips = { diff --git a/campaign/sample/planets/planet14.lua b/campaign/sample/planets/planet14.lua index bfb3699c0..ae9d977b0 100644 --- a/campaign/sample/planets/planet14.lua +++ b/campaign/sample/planets/planet14.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Snoloz", primaryType = "G1V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24441", text = [[You're outnumbered on this small battlefield, but your Felon shield bots will allow you to fight efficiently and minimise losses. Expand aggressively and reclaim the nearby rocks and trees to build up your army and economy, then push forward and destroy both enemies.]] }, tips = { diff --git a/campaign/sample/planets/planet15.lua b/campaign/sample/planets/planet15.lua index 4527ba03d..13636bfff 100644 --- a/campaign/sample/planets/planet15.lua +++ b/campaign/sample/planets/planet15.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Ushasis", primaryType = "F9V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24441", text = [[Your opponent will field Hovercraft and Gunships to cross the oasis which separates your bases. Build Rogues to defeat the hovercraft and Vandals to defeat the gunships.]] }, tips = { diff --git a/campaign/sample/planets/planet16.lua b/campaign/sample/planets/planet16.lua index ea67c2f3f..5a8905580 100644 --- a/campaign/sample/planets/planet16.lua +++ b/campaign/sample/planets/planet16.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Zooph", primaryType = "G8V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24441", text = [[Use a combination of Snitch mobile bombs and Iris area cloakers to decimate enemy formations in this battle. Build some Geothermal Generators to provide the energy for your area cloakers.]] }, tips = { diff --git a/campaign/sample/planets/planet17.lua b/campaign/sample/planets/planet17.lua index bf568db78..934df5079 100644 --- a/campaign/sample/planets/planet17.lua +++ b/campaign/sample/planets/planet17.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Lia-1616", primaryType = "L9V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24441", text = [[You will face the fearsome, fire-spewing Dante strider in this battle. Use Aspis area shields to deflect the assault, and Racketeer artillery to disarm the Dante.]] }, tips = { diff --git a/campaign/sample/planets/planet18.lua b/campaign/sample/planets/planet18.lua index 9d5856c97..2f6c650e9 100644 --- a/campaign/sample/planets/planet18.lua +++ b/campaign/sample/planets/planet18.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Iersag", primaryType = "K1V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24489", text = [[Automated defenses are usually easily overcome, if only you hadn't deleted most of your construction blueprints to make room for your recently unearthed discovery - terrain manipulation technology. Use terraforming to clog up or bypass the automated defenses surrounding the Interception Network to make your escape.]] }, tips = { diff --git a/campaign/sample/planets/planet19.lua b/campaign/sample/planets/planet19.lua index bc03b5e60..554a68c5d 100644 --- a/campaign/sample/planets/planet19.lua +++ b/campaign/sample/planets/planet19.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Alain Anora", primaryType = "G4V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24441", text = [[Finish the Cerberus artillery piece and link it to your ally's power plants. This cannon will break the enemy's defensive line and allow you to destroy their base.]], }, tips = { diff --git a/campaign/sample/planets/planet2.lua b/campaign/sample/planets/planet2.lua index f1c59415b..2b3dca94d 100644 --- a/campaign/sample/planets/planet2.lua +++ b/campaign/sample/planets/planet2.lua @@ -24,7 +24,8 @@ local function GetPlanet(planetUtilities, planetID) radius = "5950 km", primary = "Beth", primaryType = "G4V", - milRating = 1, + milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24417", text = [[Glaives and Reavers served you well in the previous battle, but on this planet your opponent has prepared their own Reavers and Stardust turrets to counter them. Build a Cloakbot Factory, then counter them with longer-ranged Ronins to secure victory.]] }, tips = { diff --git a/campaign/sample/planets/planet20.lua b/campaign/sample/planets/planet20.lua index 26b95b304..2711ebbe2 100644 --- a/campaign/sample/planets/planet20.lua +++ b/campaign/sample/planets/planet20.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Chukon", primaryType = "G1V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24429", text = [[You have secured a Tech Lab but the enemy surrounds you on all sides. Construct Stinger and Stardust defence structures and hold out for 15 minutes.]] }, tips = { diff --git a/campaign/sample/planets/planet21.lua b/campaign/sample/planets/planet21.lua index 4b0264f1e..07bdc6ad7 100644 --- a/campaign/sample/planets/planet21.lua +++ b/campaign/sample/planets/planet21.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Laria", primaryType = "G9V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24489", text = [[You've captured a Strider Hub capable of building the heavy Dante riot strider, but the incoming waves of Chickens will make the task of retrieving a prototype from the surface much more difficult...]] }, tips = { diff --git a/campaign/sample/planets/planet22.lua b/campaign/sample/planets/planet22.lua index 3f3eebc38..3476b451e 100644 --- a/campaign/sample/planets/planet22.lua +++ b/campaign/sample/planets/planet22.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Tsuz", primaryType = "F3V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24469", text = [[The bodies of water on this battlefield would pose difficulties for most factories, but the Amphbot Factory can take advantage of them instead.]] }, tips = { @@ -34,11 +35,11 @@ local function GetPlanet(planetUtilities, planetID) }, { image = "unitpics/amphimpulse.png", - text = [[The water cannon of Archers is rapidly replenished by contact with water, augmenting their natural slow regeneration. It can be used to push enemy units away and into holes.]] + text = [[Archers fire water jets which push enemy units away. If a non-amphibious unit is pushed into water it will become helpless - keep this in mind!]] }, { image = "unitpics/amphbomb.png", - text = [[Limpets do not float, but its large disruption pulse can reach surface targets even from the seafloor.]] + text = [[Limpets do not float, but its large disruption pulse can reach surface targets even from the seafloor. The Limpet's slowbomb does not affect allies so you can use it within your army.]] }, }, gameConfig = { diff --git a/campaign/sample/planets/planet23.lua b/campaign/sample/planets/planet23.lua index 8d0a41bbd..4f699f4bc 100644 --- a/campaign/sample/planets/planet23.lua +++ b/campaign/sample/planets/planet23.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Neacahamo", primaryType = "G8V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24469", text = [[Launch an amphibious attack on the beach with heavy Grizzly assault walkers. You have 25 minutes to push past the Gauss defensive emplacements and secure a beachhead by destroying the Garrisons.]] }, tips = { diff --git a/campaign/sample/planets/planet24.lua b/campaign/sample/planets/planet24.lua index 0457cbe70..dccc1042b 100644 --- a/campaign/sample/planets/planet24.lua +++ b/campaign/sample/planets/planet24.lua @@ -25,7 +25,8 @@ local function GetPlanet(planetUtilities, planetID) primary = "Royal", primaryType = "F9IV", milRating = 1, - text = [[You've discovered some Ancient Fabricators capable of generating metal from nothing. A rival faction is eager to claim your prize, and they have surrounded your base. Use Djinn teleporters to attack them from behind.]] + feedbackLink = "http://zero-k.info/Forum/Thread/24469", + text = [[You've discovered some Ancient Fabricators capable of generating metal from nothing. A rival faction is eager to claim your prize, and they have surrounded your base. Use Djinn teleporters and Lobsters to launch an attack from behind.]] }, tips = { { @@ -34,7 +35,11 @@ local function GetPlanet(planetUtilities, planetID) }, { image = "unitpics/tele_beacon.png", - text = [[Djinn can place Lamps anywhere on the map, at global range. Besides using the Djinn for defence, you can also use it to recover units deep inside enemy territory, or to launch a sneak attack.]] + text = [[Djinni can place Lamps anywhere on the map, at global range. Besides using the Djinn for defence, you can also use it to recover units deep inside enemy territory, or to launch a sneak attack.]] + }, + { + image = "unitpics/amphlaunch.png", + text = [[Lobsters propel nearby units through the air towards a nearby target. You can use this ability to deploy your own army or relocate enemies - experiment for best results. Unless they splash into water, thrown units are likely to take damage on landing.]] }, { image = "unitpics/turretaafar.png", @@ -56,15 +61,42 @@ local function GetPlanet(planetUtilities, planetID) "amphcon", "amphaa", "amphtele", + "amphlaunch", "turretaafar", }, startUnits = { { - name = "amphtele", - x = 2000, - z = 7000, + name = "amphlaunch", + x = 1950, + z = 7090, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.RAW_MOVE, pos = {1950, 6980}}, + {cmdID = planetUtilities.COMMAND.ATTACK, pos = {1950, 6650}, options = {"shift"}}, + }, + }, + { + name = "amphlaunch", + x = 1950, + z = 6140, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.RAW_MOVE, pos = {1950, 6420}}, + {cmdID = planetUtilities.COMMAND.ATTACK, pos = {1950, 6750}, options = {"shift"}}, + }, + }, + { + name = "amphriot", + x = 1950, + z = 6960, facing = 0, }, + { + name = "amphtele", + x = 2225, + z = 6775, + facing = 1, + }, { name = "amphtele", x = 7767, @@ -1664,6 +1696,7 @@ local function GetPlanet(planetUtilities, planetID) units = { "amphaa", "amphtele", + "amphlaunch", "turretaafar", }, modules = { diff --git a/campaign/sample/planets/planet25.lua b/campaign/sample/planets/planet25.lua index a0d0b659f..d8c1a713f 100644 --- a/campaign/sample/planets/planet25.lua +++ b/campaign/sample/planets/planet25.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Yasta", primaryType = "M0VI", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24469", text = [[Launch an attack across the river with an army capable of fighting underwater - the amphibious Duck raider and Scallop riot bots.]] }, tips = { diff --git a/campaign/sample/planets/planet26.lua b/campaign/sample/planets/planet26.lua index 7410a91cc..82302aac0 100644 --- a/campaign/sample/planets/planet26.lua +++ b/campaign/sample/planets/planet26.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Hassex", primaryType = "G9V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24469", text = [[Shut down the enemy Tidal Generator operation on this sunny coastline with the Hovercraft factory.]] }, tips = { diff --git a/campaign/sample/planets/planet27.lua b/campaign/sample/planets/planet27.lua index beb4df93a..5b32762b4 100644 --- a/campaign/sample/planets/planet27.lua +++ b/campaign/sample/planets/planet27.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Misir", primaryType = "G9V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24469", text = [[Your ally can take care of any surface targets, but you'll need to support them with Claymore depth charge and Flail AA hovercraft against underwater and aerial threats.]] }, tips = { diff --git a/campaign/sample/planets/planet28.lua b/campaign/sample/planets/planet28.lua index 1baa57e7e..2a79970ce 100644 --- a/campaign/sample/planets/planet28.lua +++ b/campaign/sample/planets/planet28.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Glava", primaryType = "G4V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24469", text = [[The Artefact on this planet is already hotly contested by two opposing factions, and they're bringing heavy units and striders into play. Use the Halberd armoured assault hovercraft and Lance anti-heavy artillery to cross the battlefield and reach the Artefact.]] }, tips = { diff --git a/campaign/sample/planets/planet29.lua b/campaign/sample/planets/planet29.lua index 3b3385089..b16d0e547 100644 --- a/campaign/sample/planets/planet29.lua +++ b/campaign/sample/planets/planet29.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Ghas", primaryType = "G6V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24489", text = [[The enemy of my enemy... is at least useful. Build up your economy with Fusion Generators while the two opposing factions fight, then eradicate them both. Advanced Radars will keep you informed on the overall battle state.]] }, tips = { diff --git a/campaign/sample/planets/planet3.lua b/campaign/sample/planets/planet3.lua index 078e7b7d8..9bd264fbb 100644 --- a/campaign/sample/planets/planet3.lua +++ b/campaign/sample/planets/planet3.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Magus", primaryType = "K4VI", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24417", text = [[Your opponent will use raiding squads of Scorchers against you in this battle. Shut them down with Imp EMP bombs.]] }, tips = { diff --git a/campaign/sample/planets/planet30.lua b/campaign/sample/planets/planet30.lua index 7e54a3fcb..00c872d84 100644 --- a/campaign/sample/planets/planet30.lua +++ b/campaign/sample/planets/planet30.lua @@ -24,6 +24,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Blank", primaryType = "G8V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24530", text = [[Crossing a river under enemy fire is a daunting prospect, but it becomes easier when you control the water. Bombard the shoreline with Envoy cruisers to force passage through the shallows.]] }, tips = { diff --git a/campaign/sample/planets/planet31.lua b/campaign/sample/planets/planet31.lua index 517429ccd..0be5bbb3e 100644 --- a/campaign/sample/planets/planet31.lua +++ b/campaign/sample/planets/planet31.lua @@ -24,6 +24,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Yastras", primaryType = "G8V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24530", text = [[This planet is largely covered by water, making it ideal for the deployment of ships and submarines. Move fast to take control of this resource-rich archipelago.]] }, tips = { diff --git a/campaign/sample/planets/planet32.lua b/campaign/sample/planets/planet32.lua index e4b431d9f..4e0085d8f 100644 --- a/campaign/sample/planets/planet32.lua +++ b/campaign/sample/planets/planet32.lua @@ -24,6 +24,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Vark-Absur", primaryType = "G5VI", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24530", text = [[An enemy artillery piece is dominating this island chain. Assault it directly or cut off its energy supply, then clear out any lingering opposition.]] }, tips = { diff --git a/campaign/sample/planets/planet33.lua b/campaign/sample/planets/planet33.lua index 60570e6b6..79c2edc10 100644 --- a/campaign/sample/planets/planet33.lua +++ b/campaign/sample/planets/planet33.lua @@ -24,6 +24,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Near Varra", primaryType = "K3VI", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24566", text = [[If you want to control the sea, it's also important to control the air above it. Use Owl scout planes to find underwater units, then Raven precision bombers to destroy those underwater units and any other high-value targets.]] }, tips = { @@ -1372,7 +1373,7 @@ local function GetPlanet(planetUtilities, planetID) [2] = { victoryByTime = 12*60, image = planetUtilities.ICON_OVERLAY.CLOCK, - description = "Win by 10:00", + description = "Win by 12:00", experience = planetUtilities.BONUS_EXP, }, [3] = { diff --git a/campaign/sample/planets/planet34.lua b/campaign/sample/planets/planet34.lua index 9fbf99230..11d9eaa59 100644 --- a/campaign/sample/planets/planet34.lua +++ b/campaign/sample/planets/planet34.lua @@ -4,7 +4,7 @@ local function GetPlanet(planetUtilities, planetID) - local image = LUA_DIRNAME .. "images/planets/terran01.png" + local image = LUA_DIRNAME .. "images/planets/inferno04.png" local planetData = { name = "Fel Diacia", @@ -24,6 +24,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Woondai", primaryType = "G8V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24566", text = [[The enemy has dug into a reasonable defensive position, assisted by aircraft. Supplement your ground forces with Thunderbirds to disarm enemy defences and Swifts to shoot down their planes.]] }, tips = { diff --git a/campaign/sample/planets/planet35.lua b/campaign/sample/planets/planet35.lua index 30a2f38cc..e5d7176ae 100644 --- a/campaign/sample/planets/planet35.lua +++ b/campaign/sample/planets/planet35.lua @@ -24,6 +24,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Topps", primaryType = "G2V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24566", text = [[Since your allies have built a few strong anti-air bastions, the enemy has chosen to rely on ground-to-air emplacements of their own rather than attempt to contest air control with fighters. Show them the deficiencies of this strategy with the resilient and deadly Likho.]] }, tips = { diff --git a/campaign/sample/planets/planet36.lua b/campaign/sample/planets/planet36.lua index b26dc78ed..4c1e9ca35 100644 --- a/campaign/sample/planets/planet36.lua +++ b/campaign/sample/planets/planet36.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Jazada", primaryType = "G4V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24510", text = [[Use the fast-moving Locust raider gunships to curtail your opponent's expansion, then Nimbus support gunships to finish them off.]] }, tips = { diff --git a/campaign/sample/planets/planet37.lua b/campaign/sample/planets/planet37.lua index a54186f04..f19de5ce0 100644 --- a/campaign/sample/planets/planet37.lua +++ b/campaign/sample/planets/planet37.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Wipapra", primaryType = "G7V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24510", text = [[Expand to the mainland from your resource-poor island using Charon and Hercules transports, then use transports to create a highly mobile land army.]] }, tips = { diff --git a/campaign/sample/planets/planet38.lua b/campaign/sample/planets/planet38.lua index 33f73e511..1db9701b6 100644 --- a/campaign/sample/planets/planet38.lua +++ b/campaign/sample/planets/planet38.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Jassa Minor", primaryType = "M2V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24510", text = [[In addition to your opponent, this time you'll have to deal with the charming local fauna as well - this planet is infested with chickens. You'll have to manage both threats to be victorious.]] }, tips = { diff --git a/campaign/sample/planets/planet39.lua b/campaign/sample/planets/planet39.lua index 0795d1a13..3915e3ac2 100644 --- a/campaign/sample/planets/planet39.lua +++ b/campaign/sample/planets/planet39.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Rirnef", primaryType = "G6V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24510", text = [[The enemy is about to complete a Krow heavy gunship. Quickly build Tridents to defeat it, then build your own Krows and return the favour.]] }, tips = { diff --git a/campaign/sample/planets/planet4.lua b/campaign/sample/planets/planet4.lua index 5d35cbc9d..9f99d07d6 100644 --- a/campaign/sample/planets/planet4.lua +++ b/campaign/sample/planets/planet4.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Taoune", primaryType = "F2III", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24429", text = [[Your opponent has taken to the air with Gunships in this battle. Construct the anti-air Gremlins and Hacksaw missile turrets to bring them down.]] }, tips = { diff --git a/campaign/sample/planets/planet40.lua b/campaign/sample/planets/planet40.lua index e28d97357..ff60819ec 100644 --- a/campaign/sample/planets/planet40.lua +++ b/campaign/sample/planets/planet40.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Seraz", primaryType = "G9V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24489", text = [[Enter this active battle and dominate the low ground with the raw power of the Tank factory. Push through the enemy defenses to destroy their Nuclear Silo while protecting your own team's Anti-Nukes.]] }, tips = { diff --git a/campaign/sample/planets/planet41.lua b/campaign/sample/planets/planet41.lua index 29456638a..c7bec2090 100644 --- a/campaign/sample/planets/planet41.lua +++ b/campaign/sample/planets/planet41.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Ahdas Las", primaryType = "K4III", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24489", text = [[Among the heavy Tanks, even the constructors and raiders are tough - but they're also more expensive. You'll have less units than your Cloakbot opponent, so you'll need to be efficient. Retreat and repair damaged tanks to avoid losses.]] }, tips = { diff --git a/campaign/sample/planets/planet42.lua b/campaign/sample/planets/planet42.lua index ecc7cd63c..0aadb9757 100644 --- a/campaign/sample/planets/planet42.lua +++ b/campaign/sample/planets/planet42.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Zamuot", primaryType = "G0V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24489", text = [[This terrain is better suited for the enemy Spiders than your Tanks. To change that flatten the hills with Tremor heavy artillery, then finish the job with the super-heavy Cyclops assault tank.]] }, tips = { diff --git a/campaign/sample/planets/planet43.lua b/campaign/sample/planets/planet43.lua index 0d9742e7c..737f65573 100644 --- a/campaign/sample/planets/planet43.lua +++ b/campaign/sample/planets/planet43.lua @@ -24,6 +24,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Doyaz", primaryType = "F3VII", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24457", text = [[This planet is covered by a sprawling metropolis, built by nano-machines... which nobody remembered to turn off. Any destroyed units or buildings will be rebuilt, but they won't be friendly to you any more. Hold off the 'zombies' for long enough to reach the Artefact.]] }, tips = { diff --git a/campaign/sample/planets/planet44.lua b/campaign/sample/planets/planet44.lua index c391c643e..03876e7bf 100644 --- a/campaign/sample/planets/planet44.lua +++ b/campaign/sample/planets/planet44.lua @@ -24,6 +24,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Nadstan", primaryType = "G9V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24530", text = [[Your ally's bots aren't going to cut it alone on a battlefield this mountainous. The Redback riot and Recluse skirmish spiders will take control of the high ground, and rain death upon your enemies in the valley below.]] }, tips = { diff --git a/campaign/sample/planets/planet45.lua b/campaign/sample/planets/planet45.lua index fce7cdcb8..569827ee2 100644 --- a/campaign/sample/planets/planet45.lua +++ b/campaign/sample/planets/planet45.lua @@ -24,6 +24,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Blank", primaryType = "K1VI", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24530", text = [[In this battle you start at a large numerical and economical disadvantage. However, the high plateaus on this map will give your Spiders an edge, especially the heavy Crab riot/skirmisher.]] }, tips = { diff --git a/campaign/sample/planets/planet46.lua b/campaign/sample/planets/planet46.lua index 088364785..e42e9b3bb 100644 --- a/campaign/sample/planets/planet46.lua +++ b/campaign/sample/planets/planet46.lua @@ -24,6 +24,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Banbawe", primaryType = "G3V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24530", text = [[This battlefield is exceptionally mountainous; your opponent will field Spiders and it would be advisable for you to do the same. Force your opponent to give you access to the Interception Network with Venom EMP and Hermit assault spiders.]] }, tips = { diff --git a/campaign/sample/planets/planet47.lua b/campaign/sample/planets/planet47.lua index 7e747ca59..96324f335 100644 --- a/campaign/sample/planets/planet47.lua +++ b/campaign/sample/planets/planet47.lua @@ -24,6 +24,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Kaoloria", primaryType = "G4V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24530", text = [[Your ally's Dantes are struggling in the hills against enemy Scorpions and Merlins. Use Fleas and Widows to decloak, stun and destroy them.]] }, tips = { @@ -1427,7 +1428,7 @@ local function GetPlanet(planetUtilities, planetID) "spideremp", "spiderriot", "spiderskirm", - "spiderassualt", + "spiderassault", "spidercrabe", "spideraa", }, diff --git a/campaign/sample/planets/planet48.lua b/campaign/sample/planets/planet48.lua index 09bd03390..b4c99fea1 100644 --- a/campaign/sample/planets/planet48.lua +++ b/campaign/sample/planets/planet48.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Nataa", primaryType = "G1V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24566", text = [[Your enemy's defences on this level are dependent on a few critical structures, but the rough terrain will make it very difficult to get close enough to destroy them. The Tactical Missile Silo provides a much more practical solution to this problem.]] }, tips = { diff --git a/campaign/sample/planets/planet49.lua b/campaign/sample/planets/planet49.lua index 69c9c7967..d650446b4 100644 --- a/campaign/sample/planets/planet49.lua +++ b/campaign/sample/planets/planet49.lua @@ -24,7 +24,8 @@ local function GetPlanet(planetUtilities, planetID) primary = "Ballis", primaryType = "G6VI", milRating = 1, - text = [[The artillery cannons of your enemies' battleships are pretty big, but the Big Bertha plasma cannon is positively humongous. Pound their ships, their armies and their economy into dust.]] + feedbackLink = "http://zero-k.info/Forum/Thread/24566", + text = [[The artillery cannons of your enemies' battleships are pretty big, but the Big Bertha plasma cannon is positively humongous. Use your static artillery to suppress the enemy until reinforcements arrive.]] }, tips = { { @@ -36,8 +37,12 @@ local function GetPlanet(planetUtilities, planetID) text = [[The Big Bertha outranges anything short of a strategic missile or a superweapon. The Bertha's fire is inaccurate but as long as you keep the cannon safe, it will eventually wear down any foe.]] }, { - image = "unitpics/shipheavyarty.png", - text = [[The Shogun's cannons are very powerful - keep them away from your Berthas.]] + image = "unitpics/striderbantha.png", + text = [[After 30 minutes substantial allied reinforcements will arrive - you just need to hold out until then.]] + }, + { + image = "unitpics/pw_hq.png", + text = [[Defender Command is armed with a complement of drones for short-range defence.]] }, }, gameConfig = { @@ -54,13 +59,49 @@ local function GetPlanet(planetUtilities, planetID) "staticarty", "staticheavyarty", }, + midgameUnits = { + { + name = "striderdetriment", + x = 3660, + z = 4700, + facing = 0, + spawnRadius = 10, + delay = 30*30*60, + orbitalDrop = true, + }, + { + name = "striderbantha", + x = 3380, + z = 4000, + facing = 0, + spawnRadius = 10, + delay = 30*30*60, + orbitalDrop = true, + }, + { + name = "striderbantha", + x = 3400, + z = 5800, + facing = 0, + spawnRadius = 10, + delay = 30*30*60, + orbitalDrop = true, + }, + }, startUnits = { + { + name = "pw_hq_defender", + x = 2290, + z = 3800, + facing = 0, + defeatIfDestroyedObjectiveID = 3, + }, { name = "staticheavyarty", x = 3000, z = 3300, facing = 1, - buildProgress = 0.2 + buildProgress = 0.6 }, { name = "energygeo", @@ -111,6 +152,13 @@ local function GetPlanet(planetUtilities, planetID) facing = 1, terraformHeight = 123, }, + { + name = "turretaafar", + x = 3000, + z = 4000, + facing = 1, + terraformHeight = 170, + }, { name = "staticarty", x = 3112, @@ -125,6 +173,13 @@ local function GetPlanet(planetUtilities, planetID) facing = 1, terraformHeight = 171, }, + { + name = "turretaafar", + x = 3100, + z = 5700, + facing = 1, + terraformHeight = 170, + }, { name = "staticmex", x = 3240, @@ -247,8 +302,84 @@ local function GetPlanet(planetUtilities, planetID) "amphassault", "amphbomb", "amphaa", + "striderhub", + "striderarty", }, commander = false, + midgameUnits = { + { + name = "striderarty", + x = 400, + z = 3500, + facing = 0, + spawnRadius = 10, + delay = 18*30*60, + orbitalDrop = true, + }, + { + name = "striderdante", + x = 500, + z = 3500, + facing = 0, + spawnRadius = 10, + delay = 18*30*60, + orbitalDrop = true, + }, + { + name = "striderbantha", + x = 2825, + z = 200, + facing = 0, + spawnRadius = 10, + delay = 30*30*60, + orbitalDrop = true, + }, + { + name = "striderdante", + x = 2700, + z = 200, + facing = 0, + spawnRadius = 10, + delay = 30*30*60, + orbitalDrop = true, + }, + { + name = "striderdante", + x = 2900, + z = 200, + facing = 0, + spawnRadius = 10, + delay = 30*30*60, + orbitalDrop = true, + }, + { + name = "striderdetriment", + x = 3100, + z = 2250, + facing = 0, + spawnRadius = 10, + delay = 30*30*60, + orbitalDrop = true, + }, + { + name = "striderarty", + x = 2500, + z = 2250, + facing = 0, + spawnRadius = 10, + delay = 30*30*60, + orbitalDrop = true, + }, + { + name = "striderarty", + x = 2400, + z = 2400, + facing = 0, + spawnRadius = 10, + delay = 30*30*60, + orbitalDrop = true, + }, + }, startUnits = { { name = "staticantinuke", @@ -256,6 +387,18 @@ local function GetPlanet(planetUtilities, planetID) z = 3200, facing = 0, }, + { + name = "energypylon", + x = 2730, + z = 875, + facing = 0, + }, + { + name = "turretheavy", + x = 3080, + z = 830, + facing = 1, + }, { name = "staticmex", x = 728, @@ -1239,9 +1382,107 @@ local function GetPlanet(planetUtilities, planetID) "shieldfelon", "shieldshield", "shieldarty", + "striderhub", + "striderarty", + "striderdante", }, commander = false, + midgameUnits = { + { + name = "striderarty", + x = 400, + z = 5400, + facing = 0, + spawnRadius = 10, + delay = 18*30*60, + orbitalDrop = true, + }, + { + name = "striderdante", + x = 500, + z = 5400, + facing = 0, + spawnRadius = 10, + delay = 18*30*60, + orbitalDrop = true, + }, + { + name = "striderdetriment", + x = 3200, + z = 7600, + facing = 0, + spawnRadius = 10, + delay = 30*30*60, + orbitalDrop = true, + }, + { + name = "striderscorpion", + x = 3200, + z = 7800, + facing = 0, + spawnRadius = 10, + delay = 30*30*60, + orbitalDrop = true, + }, + { + name = "striderscorpion", + x = 3200, + z = 8000, + facing = 0, + spawnRadius = 10, + delay = 30*30*60, + orbitalDrop = true, + }, + { + name = "striderfunnelweb", + x = 2800, + z = 6700, + facing = 0, + spawnRadius = 10, + delay = 30*30*60, + orbitalDrop = true, + }, + { + name = "striderfunnelweb", + x = 2900, + z = 6700, + facing = 0, + spawnRadius = 10, + delay = 30*30*60, + orbitalDrop = true, + }, + { + name = "striderfunnelweb", + x = 2800, + z = 6800, + facing = 0, + spawnRadius = 10, + delay = 30*30*60, + orbitalDrop = true, + }, + { + name = "striderfunnelweb", + x = 2900, + z = 6800, + facing = 0, + spawnRadius = 10, + delay = 30*30*60, + orbitalDrop = true, + }, + }, startUnits = { + { + name = "energypylon", + x = 3444, + z = 6972, + facing = 0, + }, + { + name = "turretheavy", + x = 3900, + z = 7093, + facing = 1, + }, { name = "staticmex", x = 1176, @@ -2008,7 +2249,7 @@ local function GetPlanet(planetUtilities, planetID) "turretmissile", "turrettorp", "turretriot", - "turretaalaser", + --"turretaalaser", "turretaaclose", "staticradar", "staticcon", @@ -2043,10 +2284,6 @@ local function GetPlanet(planetUtilities, planetID) "hoverarty", "hoveraa", }, - difficultyDependantUnlocks = { - [3] = {"striderhub","striderarty"}, - [4] = {"striderhub","striderarty","energygeo"}, - }, commanderLevel = 6, commander = { name = "Blanche", @@ -3223,7 +3460,7 @@ local function GetPlanet(planetUtilities, planetID) "turretmissile", "turrettorp", "turretriot", - "turretaalaser", + --"turretaalaser", "turretaaclose", "staticradar", "staticcon", @@ -3248,22 +3485,18 @@ local function GetPlanet(planetUtilities, planetID) "shieldbomb", "shieldaa", "shieldfelon", - "shieldshield", + --"shieldshield", "shieldarty", "factorygunship", "gunshipcon", "gunshipbomb", "gunshipemp", "gunshipaa", - "gunshipassault", - "gunshipheavyskirm", "gunshipskirm", "gunshipraid", - "striderhub", - "shipheavyarty", }, difficultyDependantUnlocks = { - [4] = {"gunshipkrow","energygeo"}, + [4] = {"shieldshield"}, }, commander = false, midgameUnits = { @@ -3273,7 +3506,7 @@ local function GetPlanet(planetUtilities, planetID) z = 3100, facing = 0, spawnRadius = 10, - delay = 2*30*60, + delay = 4*30*60, orbitalDrop = true, }, { @@ -3282,7 +3515,7 @@ local function GetPlanet(planetUtilities, planetID) z = 3100, facing = 0, spawnRadius = 50, - delay = 4*30*60, + delay = 7*30*60, orbitalDrop = true, }, { @@ -3291,7 +3524,7 @@ local function GetPlanet(planetUtilities, planetID) z = 3100, facing = 0, spawnRadius = 50, - delay = 4*30*60, + delay = 7*30*60, orbitalDrop = true, }, { @@ -3300,7 +3533,7 @@ local function GetPlanet(planetUtilities, planetID) z = 3100, facing = 0, spawnRadius = 50, - delay = 4*30*60, + delay = 7*30*60, orbitalDrop = true, }, { @@ -3309,7 +3542,7 @@ local function GetPlanet(planetUtilities, planetID) z = 100, facing = 0, spawnRadius = 10, - delay = 6*30*60, + delay = 12*30*60, orbitalDrop = false, }, { @@ -3318,7 +3551,7 @@ local function GetPlanet(planetUtilities, planetID) z = 100, facing = 0, spawnRadius = 10, - delay = 6*30*60, + delay = 12*30*60, orbitalDrop = false, difficultyAtLeast = 4, }, @@ -3328,7 +3561,7 @@ local function GetPlanet(planetUtilities, planetID) z = 3100, facing = 0, spawnRadius = 50, - delay = 8*30*60, + delay = 15*30*60, orbitalDrop = true, }, { @@ -3337,7 +3570,7 @@ local function GetPlanet(planetUtilities, planetID) z = 3100, facing = 0, spawnRadius = 50, - delay = 8*30*60, + delay = 15*30*60, orbitalDrop = true, }, { @@ -3346,7 +3579,7 @@ local function GetPlanet(planetUtilities, planetID) z = 3100, facing = 0, spawnRadius = 50, - delay = 8*30*60, + delay = 15*30*60, orbitalDrop = true, }, }, @@ -4433,7 +4666,7 @@ local function GetPlanet(planetUtilities, planetID) "factoryamph", "factoryspider", }, - loseAfterSeconds = false, + loseAfterSeconds = 30*60, allyTeamLossObjectiveID = 1, }, }, @@ -4445,22 +4678,25 @@ local function GetPlanet(planetUtilities, planetID) [2] = { description = "Protect your Commander", }, + [3] = { + description = "Protect Defender Command" + }, }, bonusObjectiveConfig = { [1] = { -- Have 3 Berthas satisfyOnce = true, comparisionType = planetUtilities.COMPARE.AT_LEAST, - targetNumber = 12, + targetNumber = 3, unitTypes = { - "staticmex", + "staticheavyarty", }, - image = planetUtilities.ICON_DIR .. "staticmex.png", + image = planetUtilities.ICON_DIR .. "staticheavyarty.png", imageOverlay = planetUtilities.ICON_OVERLAY.REPAIR, description = "Have 3 Big Berthas", experience = planetUtilities.BONUS_EXP, }, - [2] = { -- Destroy all enemy Geos before 20:00 - satisfyByTime = 20*60, + [2] = { -- Destroy all enemy Geos before 25:00 + satisfyByTime = 25*60, comparisionType = planetUtilities.COMPARE.AT_MOST, targetNumber = 0, enemyUnitTypes = { @@ -4469,7 +4705,7 @@ local function GetPlanet(planetUtilities, planetID) }, image = planetUtilities.ICON_DIR .. "energygeo.png", imageOverlay = planetUtilities.ICON_OVERLAY.ATTACK, - description = "Destroy all enemy Geothermal Generators before 20:00", + description = "Destroy all enemy Geothermal Generators before 25:00", experience = planetUtilities.BONUS_EXP, }, }, diff --git a/campaign/sample/planets/planet5.lua b/campaign/sample/planets/planet5.lua index eb09429eb..4bb09b329 100644 --- a/campaign/sample/planets/planet5.lua +++ b/campaign/sample/planets/planet5.lua @@ -24,7 +24,8 @@ local function GetPlanet(planetUtilities, planetID) radius = "5500 km", primary = "Adimasi", primaryType = "G7V", - milRating = 1, + milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24417", text = [[Your opponent is relying on a network of defensive turrets and shielded bots to keep them safe. Use Slings to weaken your opponent's defences and shields before you commit to an assault.]], }, tips = { diff --git a/campaign/sample/planets/planet50.lua b/campaign/sample/planets/planet50.lua index 8123a17a3..971d1481f 100644 --- a/campaign/sample/planets/planet50.lua +++ b/campaign/sample/planets/planet50.lua @@ -4,10 +4,10 @@ local function GetPlanet(planetUtilities, planetID) - local image = LUA_DIRNAME .. "images/planets/barren02.png" + local image = LUA_DIRNAME .. "images/planets/swamp02.png" local planetData = { - name = "Ounlele", + name = "Arteri", startingPlanet = false, mapDisplay = { x = (planetUtilities.planetPositions and planetUtilities.planetPositions[planetID][1]) or 0.68, @@ -19,24 +19,52 @@ local function GetPlanet(planetUtilities, planetID) image = image, size = planetUtilities.PLANET_SIZE_INFO, backgroundImage = planetUtilities.backgroundImages[math.floor(math.random()*#planetUtilities.backgroundImages) + 1], - terrainType = "Radiated", + terrainType = "Terran", radius = "2545 km", - primary = "Pollizoa", - primaryType = "A2III", + primary = "Varis", + primaryType = "G4V", milRating = 1, - text = [[...]] + feedbackLink = "http://zero-k.info/Forum/Thread/24594", + text = [[You are without allies on this large battlefield, so you'll have to rely on your Jumpbots' inherent advantage on rough terrain to win instead.]] + }, + tips = { + { + image = "unitpics/module_jumpjet.png", + text = [[Your Commander has been equipped with an experimental jumpjet module for this mission (default hotkey J).]] + }, + { + image = "unitpics/factoryjump.png", + text = [[Many Jumpbot units are unlocked by missions earlier in the campaign. If you're finding this mission too difficult, try backtracking to make sure you didn't miss any.]] + }, + { + image = "unitpics/jumpcon.png", + text = [[The Constable constructor has jumpjets which allow it to set up metal extractors, wind generators, radar towers and defences on high mountains.]] + }, + { + image = "unitpics/jumpskirm.png", + text = [[The Moderator does not jump, but its long-range disruptor beam deals with tougher close-range fighters like the Knight and Reaver, which Pyros would not want to fight directly.]] + }, }, gameConfig = { - mapName = "Aetherian Void 1.5", + mapName = "Vein", playerConfig = { - startX = 100, - startZ = 100, + startX = 3750, + startZ = 770, allyTeam = 0, facplop = false, commanderParameters = { facplop = false, defeatIfDestroyedObjectiveID = 2, }, + -- Extra commander modules. + extraModules = { + {name = "module_jumpjet", count = 1, add = false}, + -- List of: + -- * name - Module name. See commConfig.lua. + -- * count - Number of copies of the module. + -- * add - Boolean controlling whether count adds to the number of modules of + -- the type the player has equiped or overwrites the number. + }, extraUnlocks = { "factoryjump", "jumpcon", @@ -45,44 +73,788 @@ local function GetPlanet(planetUtilities, planetID) "jumpaa", }, startUnits = { + { + name = "staticmex", + x = 4232, + z = 216, + facing = 0, + }, + { + name = "staticmex", + x = 3720, + z = 488, + facing = 0, + }, + { + name = "staticmex", + x = 4216, + z = 904, + facing = 0, + }, + { + name = "energywind", + x = 4312, + z = 872, + facing = 0, + }, + { + name = "energywind", + x = 4136, + z = 856, + facing = 0, + }, + { + name = "factoryjump", + x = 3944, + z = 696, + facing = 0, + }, + { + name = "staticcon", + x = 3976, + z = 568, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3976, 568}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4001, 593}, options = {"shift"}}, + }, + }, + { + name = "energywind", + x = 3800, + z = 424, + facing = 0, + }, + { + name = "energywind", + x = 3896, + z = 360, + facing = 0, + }, + { + name = "energywind", + x = 3992, + z = 312, + facing = 0, + }, + { + name = "energywind", + x = 4072, + z = 280, + facing = 0, + }, + { + name = "energywind", + x = 4168, + z = 264, + facing = 0, + }, + { + name = "jumpcon", + x = 2694, + z = 622, + facing = 0, + }, + { + name = "turretlaser", + x = 3984, + z = 1008, + facing = 0, + }, + { + name = "staticmex", + x = 2696, + z = 1048, + facing = 0, + }, + { + name = "energywind", + x = 2648, + z = 968, + facing = 0, + }, + { + name = "staticmex", + x = 2312, + z = 584, + facing = 0, + }, + { + name = "energywind", + x = 2392, + z = 552, + facing = 0, + }, + { + name = "staticmex", + x = 2936, + z = 360, + facing = 0, + }, + { + name = "energywind", + x = 2872, + z = 280, + facing = 0, + }, + { + name = "turretlaser", + x = 2448, + z = 384, + facing = 3, + }, + { + name = "staticradar", + x = 5472, + z = 576, + facing = 0, + }, + { + name = "staticradar", + x = 3472, + z = 1056, + facing = 0, + }, + { + name = "turretlaser", + x = 2544, + z = 928, + facing = 0, + }, + { + name = "jumpraid", + x = 3700, + z = 1000, + facing = 0, + }, + { + name = "jumpraid", + x = 3800, + z = 1000, + facing = 0, + }, + { + name = "jumpraid", + x = 3900, + z = 1000, + facing = 0, + }, + { + name = "jumpskirm", + x = 3750, + z = 900, + facing = 0, + }, + { + name = "jumpskirm", + x = 3850, + z = 900, + facing = 0, + }, + { + name = "jumpcon", + x = 5367, + z = 479, + facing = 0, + }, + { + name = "energywind", + x = 5336, + z = 312, + facing = 3, + }, + { + name = "energywind", + x = 5416, + z = 312, + facing = 3, + }, } }, aiConfig = { { - startX = 4000, - startZ = 75, + startX = 410, + startZ = 7700, + humanName = "Pulmox", + --aiLib = "Null AI", + --bitDependant = false, aiLib = "Circuit_difficulty_autofill", - humanName = "Enemy", bitDependant = true, commanderParameters = { facplop = false, + bonusObjectiveID = 1, }, allyTeam = 1, unlocks = { + "staticmex", + "energysolar", + "energywind", + --"energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turretaalaser", + "turretaaclose", + "staticradar", + "staticcon", + "staticantinuke", + "factorycloak", + "cloakcon", "cloakraid", + "cloakriot", + "cloakskirm", + "cloakassault", + "cloakaa", + "cloakarty", + "cloaksnipe", + "cloakheavyraid", + "cloakbomb", + "striderhub", + "striderscorpion", + }, + commanderLevel = 5, + commander = { + name = "Kuro", + chassis = "recon", + decorations = { + "skin_recon_dark", + }, + modules = { + "commweapon_clusterbomb", + "commweapon_heavymachinegun", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_personal_cloak", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_autorepair", + "module_autorepair", + "module_autorepair", + } + }, + startUnits = { + { + name = "staticmex", + x = 248, + z = 7176, + facing = 0, + }, + { + name = "staticmex", + x = 632, + z = 7560, + facing = 0, + }, + { + name = "staticmex", + x = 216, + z = 8008, + facing = 0, + }, + { + name = "energysolar", + x = 280, + z = 8024, + facing = 3, + }, + { + name = "energysolar", + x = 200, + z = 8072, + facing = 2, + }, + { + name = "energysolar", + x = 152, + z = 7992, + facing = 1, + }, + { + name = "energysolar", + x = 232, + z = 7944, + facing = 0, + }, + { + name = "energysolar", + x = 696, + z = 7576, + facing = 3, + }, + { + name = "energysolar", + x = 616, + z = 7624, + facing = 2, + }, + { + name = "energysolar", + x = 568, + z = 7544, + facing = 1, + }, + { + name = "energysolar", + x = 648, + z = 7496, + facing = 0, + }, + { + name = "energysolar", + x = 312, + z = 7192, + facing = 3, + }, + { + name = "energysolar", + x = 232, + z = 7240, + facing = 2, + }, + { + name = "energysolar", + x = 184, + z = 7160, + facing = 1, + }, + { + name = "energysolar", + x = 264, + z = 7112, + facing = 0, + }, + { + name = "factorycloak", + x = 264, + z = 7600, + facing = 2, + }, + { + name = "staticcon", + x = 232, + z = 7736, + facing = 2, + }, + { + name = "staticradar", + x = 16, + z = 7584, + facing = 2, + }, + { + name = "turretmissile", + x = 352, + z = 6976, + facing = 2, + }, + { + name = "turretmissile", + x = 464, + z = 7008, + facing = 2, + }, + { + name = "turretmissile", + x = 864, + z = 7360, + facing = 1, + }, + { + name = "turretmissile", + x = 912, + z = 7488, + facing = 1, + }, + { + name = "turretmissile", + x = 960, + z = 7920, + facing = 1, + }, + { + name = "turretmissile", + x = 976, + z = 8032, + facing = 1, + }, + { + name = "cloakcon", + x = 303, + z = 7344, + facing = 3, + }, + { + name = "cloakcon", + x = 412, + z = 7412, + facing = 0, + }, + { + name = "cloakraid", + x = 552, + z = 7350, + facing = 1, + }, + { + name = "cloakraid", + x = 598, + z = 7358, + facing = 1, + }, + { + name = "cloakraid", + x = 508, + z = 7328, + facing = 1, + }, + { + name = "cloakraid", + x = 419, + z = 7290, + facing = 2, + }, + { + name = "cloakassault", + x = 468, + z = 7312, + facing = 2, + }, + { + name = "cloakassault", + x = 648, + z = 7381, + facing = 1, + }, + } + }, + { + startX = 5400, + startZ = 7300, + humanName = "Umbilis", + --aiLib = "Null AI", + --bitDependant = false, + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + commanderParameters = { + facplop = false, + bonusObjectiveID = 1, + }, + allyTeam = 1, + unlocks = { + "staticmex", + "energysolar", + "energywind", + --"energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turretaalaser", + "turretaaclose", + "staticradar", + "staticcon", + "staticantinuke", + "staticrearm", + "factoryshield", + "shieldcon", + "shieldraid", + "shieldassault", + "shieldriot", + "shieldskirm", + "shieldbomb", + "shieldaa", + "shieldfelon", + "shieldshield", + --"shieldarty", + "factoryplane", + "planecon", + "planescout", + "planefighter", + "planeheavyfighter", + "bomberprec", + "bomberdisarm", + --"bomberheavy", + }, + difficultyDependantUnlocks = { + [2] = {"shieldarty"}, + [3] = {"shieldarty","shieldriot"}, + [4] = {"shieldarty","shieldriot","bomberheavy"}, }, - commanderLevel = 2, + commanderLevel = 5, commander = { - name = "Most Loyal Opposition", + name = "Clifford", chassis = "engineer", decorations = { - "skin_support_dark", - icon_overhead = { image = "UW" } + "skin_support_hotrod", }, - modules = { } + modules = { + "commweapon_disruptorbomb", + "commweapon_lparticlebeam", + "module_battle_drone", + "module_battle_drone", + "module_battle_drone", + "module_battle_drone", + "module_battle_drone", + "module_heavy_armor", + "module_heavy_armor", + "module_autorepair", + "module_adv_nano", + "module_adv_nano", + } }, startUnits = { + { + name = "turretlaser", + x = 5200, + z = 7312, + facing = 3, + }, + { + name = "shieldcon", + x = 5545, + z = 7324, + facing = 0, + }, + { + name = "staticmex", + x = 5608, + z = 7752, + facing = 2, + }, + { + name = "staticmex", + x = 5032, + z = 7736, + facing = 2, + }, + { + name = "staticmex", + x = 5928, + z = 7160, + facing = 2, + }, + { + name = "energysolar", + x = 5896, + z = 7096, + facing = 2, + }, + { + name = "energysolar", + x = 5976, + z = 7096, + facing = 2, + }, + { + name = "energysolar", + x = 4968, + z = 7768, + facing = 2, + }, + { + name = "energysolar", + x = 5048, + z = 7800, + facing = 2, + }, + { + name = "energysolar", + x = 5672, + z = 7768, + facing = 1, + }, + { + name = "energysolar", + x = 5592, + z = 7816, + facing = 0, + }, + { + name = "energysolar", + x = 5544, + z = 7736, + facing = 3, + }, + { + name = "energysolar", + x = 5624, + z = 7688, + facing = 2, + }, + { + name = "staticradar", + x = 6208, + z = 7136, + facing = 1, + }, + { + name = "turretmissile", + x = 6160, + z = 7088, + facing = 1, + }, + { + name = "turretmissile", + x = 6224, + z = 7232, + facing = 1, + }, + { + name = "turretmissile", + x = 6000, + z = 7872, + facing = 1, + }, + { + name = "turretmissile", + x = 6000, + z = 7968, + facing = 1, + }, + { + name = "turretemp", + x = 4896, + z = 7712, + facing = 3, + }, + { + name = "turretemp", + x = 5440, + z = 6880, + facing = 2, + }, + { + name = "staticcon", + x = 5240, + z = 8040, + facing = 2, + }, + { + name = "factoryplane", + x = 5376, + z = 8024, + facing = 2, + buildProgress = 0.1, + }, + { + name = "factoryshield", + x = 5488, + z = 7448, + facing = 2, + }, + { + name = "shieldskirm", + x = 5463, + z = 7201, + facing = 2, + }, + { + name = "shieldskirm", + x = 5558, + z = 7228, + facing = 2, + }, + { + name = "shieldskirm", + x = 5668, + z = 7237, + facing = 2, + }, + { + name = "shieldraid", + x = 5385, + z = 7070, + facing = 2, + }, + { + name = "shieldraid", + x = 5529, + z = 7085, + facing = 2, + }, + { + name = "shieldraid", + x = 5603, + z = 7088, + facing = 2, + }, + { + name = "shieldraid", + x = 5460, + z = 7083, + facing = 2, + }, } }, }, defeatConditionConfig = { - + -- Indexed by allyTeam. + [0] = { }, + [1] = { + ignoreUnitLossDefeat = false, + vitalCommanders = false, + vitalUnitTypes = { + "factoryshield", + "factoryplane", + "striderhub", + "factorycloak", + }, + loseAfterSeconds = false, + allyTeamLossObjectiveID = 1, + }, }, objectiveConfig = { -- This is just related to displaying objectives on the UI. + [1] = { + description = "Destroy all enemy Factories and Strider Hubs", + }, + [2] = { + description = "Protect your Commander", + }, }, bonusObjectiveConfig = { - } + [1] = { -- Kill enemy commander in 7:30 + satisfyOnce = true, + comparisionType = planetUtilities.COMPARE.AT_MOST, + targetNumber = 0, + -- See bonusObjectiveID in units table + image = planetUtilities.ICON_DIR .. "skin_support_hotrod.png", + imageOverlay = planetUtilities.ICON_OVERLAY.ATTACK, + description = "Destroy both enemy Commanders", + experience = planetUtilities.BONUS_EXP, + }, + [2] = { -- Have 20 Metal Extractors by 10:00 + satisfyByTime = 10*60, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 20, + unitTypes = { + "staticmex", + }, + image = planetUtilities.ICON_DIR .. "staticmex.png", + imageOverlay = planetUtilities.ICON_OVERLAY.REPAIR, + description = "Have 20 Metal Extractors by 10:00", + experience = planetUtilities.BONUS_EXP, + }, + [3] = { -- Prevent the enemy having more than twelve mex + satisfyForever = true, + comparisionType = planetUtilities.COMPARE.AT_MOST, + targetNumber = 0, + enemyUnitTypes = { + "energygeo", + }, + image = planetUtilities.ICON_DIR .. "energygeo.png", + imageOverlay = planetUtilities.ICON_OVERLAY.ATTACK, + description = "Prevent the enemy from building any Geothermal Generators", + experience = planetUtilities.BONUS_EXP, + }, + }, }, completionReward = { experience = planetUtilities.MAIN_EXP, @@ -94,7 +866,7 @@ local function GetPlanet(planetUtilities, planetID) "jumpaa", }, modules = { - + "module_jumpjet", }, abilities = { } diff --git a/campaign/sample/planets/planet51.lua b/campaign/sample/planets/planet51.lua index 0198e46c1..c04204d93 100644 --- a/campaign/sample/planets/planet51.lua +++ b/campaign/sample/planets/planet51.lua @@ -7,7 +7,7 @@ local function GetPlanet(planetUtilities, planetID) local image = LUA_DIRNAME .. "images/planets/inferno02.png" local planetData = { - name = "Alaioartum", + name = "Lalata", startingPlanet = false, mapDisplay = { x = (planetUtilities.planetPositions and planetUtilities.planetPositions[planetID][1]) or 0.755, @@ -19,24 +19,48 @@ local function GetPlanet(planetUtilities, planetID) image = image, size = planetUtilities.PLANET_SIZE_INFO, backgroundImage = planetUtilities.backgroundImages[math.floor(math.random()*#planetUtilities.backgroundImages) + 1], - terrainType = "Barren", + terrainType = "Steppe", radius = "5760 km", primary = "Yapp", primaryType = "G0V", milRating = 1, - text = [[...]] + feedbackLink = "http://zero-k.info/Forum/Thread/24594", + text = [[Your Tech Lab is about to be overrun by enemy forces! Your base is too far away to reinforce the Lab in time... unless you employ an unconventional means of transport.]] + }, + tips = { + { + image = "unitpics/turretimpulse.png", + text = [[The Newton turret can be toggled to attract or repulse its target. It does not inflict any direct damage, so when used as a defensive tool it relies on pushing enemies off cliffs or pulling them into other defences (particularly pulling bombers into anti-air). Smaller units are generally affected more.]] + }, + { + image = "unitpics/module_jumpjet.png", + text = [[Newtons can also be used to propel your units off a ramp and into battle. Jumpjet-equipped units (which can survive the landing by jumping) and bombs (which deal damage on impact) are best suited for this. Use the Newton firezone command to automate the process.]] + }, + { + image = "unitpics/jumpsumo.png", + text = [[Just like the Newton, the Jugglenaut can be toggled to attract or repulse targets. The Jugglenaut's main weapon is actually its jump - the sheer force of its landing damages nearby units. Jugglenauts are not very effective against structures.]] + }, }, gameConfig = { - mapName = "ContestedCanyon", + mapName = "LLTAComplexV2", playerConfig = { - startX = 100, - startZ = 100, + startX = 7600, + startZ = 4000, allyTeam = 0, facplop = false, commanderParameters = { facplop = false, defeatIfDestroyedObjectiveID = 2, }, + -- Extra commander modules. + extraModules = { + {name = "module_jumpjet", count = 1, add = false}, + -- List of: + -- * name - Module name. See commConfig.lua. + -- * count - Number of copies of the module. + -- * add - Boolean controlling whether count adds to the number of modules of + -- the type the player has equiped or overwrites the number. + }, extraUnlocks = { "factoryjump", "jumpcon", @@ -44,45 +68,2073 @@ local function GetPlanet(planetUtilities, planetID) "jumpaa", "jumpsumo", "turretimpulse", + "jumpassault", + }, + extraAbilities = { + "terraform", }, startUnits = { + { + name = "pw_techlab", + x = 3720, + z = 750, + facing = 0, + defeatIfDestroyedObjectiveID = 1, + }, + -- Newton cannon + { + name = "turretimpulse", + x = 8112, + z = 3694, + facing = 3, + }, + { + name = "turretimpulse", + x = 8112, + z = 3694 + 1*48, + facing = 3, + }, + { + name = "turretimpulse", + x = 8112, + z = 3694 + 2*48, + facing = 3, + }, + { + name = "turretimpulse", + x = 8112, + z = 3694 + 3*48, + facing = 3, + }, + { + name = "turretimpulse", + x = 7872, + z = 3932, + facing = 2, + }, + { + name = "turretimpulse", + x = 7872 + 1*48, + z = 3932, + facing = 2, + }, + { + name = "turretimpulse", + x = 7872 + 2*48, + z = 3932, + facing = 2, + }, + { + name = "turretimpulse", + x = 7872 + 3*48, + z = 3932, + facing = 2, + }, + -- Newton cannonballs + { + name = "jumpcon", + x = 7973, + z = 3800, + facing = 0, + }, + { + name = "jumpcon", + x = 8150, + z = 4030, + facing = 0, + }, + { + name = "jumpraid", + x = 8190, + z = 4030, + facing = 0, + }, + { + name = "jumpraid", + x = 8230, + z = 4030, + facing = 0, + }, + { + name = "jumpraid", + x = 8190, + z = 4080, + facing = 0, + }, + { + name = "jumpraid", + x = 8230, + z = 4080, + facing = 0, + }, + { + name = "jumpassault", + x = 8270, + z = 4030, + facing = 0, + }, + -- + { + name = "staticmex", + x = 8552, + z = 4808, + facing = 0, + }, + { + name = "staticshield", + x = 3776, + z = 976, + facing = 1, + }, + { + name = "energygeo", + x = 3880, + z = 1160, + facing = 0, + }, + { + name = "turretimpulse", + x = 3744, + z = 1184, + facing = 0, + }, + { + name = "turretimpulse", + x = 3984, + z = 1184, + facing = 0, + }, + { + name = "turretimpulse", + x = 3968, + z = 992, + facing = 1, + }, + { + name = "turretimpulse", + x = 3968, + z = 752, + facing = 1, + }, + { + name = "staticmex", + x = 7864, + z = 4232, + facing = 0, + }, + { + name = "staticmex", + x = 3864, + z = 792, + facing = 0, + }, + { + name = "staticmex", + x = 7864, + z = 4808, + facing = 0, + }, + { + name = "staticmex", + x = 8552, + z = 4232, + facing = 0, + }, + { + name = "staticshield", + x = 3552, + z = 816, + facing = 0, + }, + { + name = "energywind", + x = 8568, + z = 4328, + facing = 0, + }, + { + name = "energywind", + x = 8568, + z = 4408, + facing = 0, + }, + { + name = "energywind", + x = 8568, + z = 4488, + facing = 0, + }, + { + name = "energywind", + x = 8568, + z = 4568, + facing = 0, + }, + { + name = "energywind", + x = 8568, + z = 4648, + facing = 0, + }, + { + name = "energywind", + x = 8568, + z = 4728, + facing = 0, + }, + { + name = "energywind", + x = 8488, + z = 4872, + facing = 0, + }, + { + name = "energywind", + x = 8408, + z = 4872, + facing = 0, + }, + { + name = "energywind", + x = 8328, + z = 4872, + facing = 0, + }, + { + name = "energywind", + x = 8248, + z = 4872, + facing = 0, + }, + { + name = "energywind", + x = 8168, + z = 4872, + facing = 0, + }, + { + name = "energywind", + x = 8088, + z = 4872, + facing = 0, + }, + { + name = "energywind", + x = 8008, + z = 4872, + facing = 0, + }, + { + name = "energywind", + x = 7928, + z = 4872, + facing = 0, + }, + { + name = "staticradar", + x = 4060, + z = 520, + facing = 1, + }, + { + name = "turretlaser", + x = 4060, + z = 560, + facing = 1, + }, + { + name = "turretimpulse", + x = 3800, + z = 250, + facing = 1, + }, + { + name = "turretimpulse", + x = 3800, + z = 300, + facing = 1, + }, + { + name = "turretaaflak", + x = 3704, + z = 536, + facing = 3, + }, + { + name = "turretlaser", + x = 3952, + z = 864, + facing = 1, + }, + { + name = "turretlaser", + x = 3856, + z = 1232, + facing = 0, + }, + { + name = "turretlaser", + x = 3296, + z = 768, + facing = 3, + }, + { + name = "turretlaser", + x = 3456, + z = 544, + facing = 3, + }, + { + name = "turretlaser", + x = 2848, + z = 512, + facing = 3, + }, + { + name = "turretlaser", + x = 2944, + z = 176, + facing = 3, + }, + { + name = "staticmex", + x = 3176, + z = 424, + facing = 3, + }, + { + name = "jumpsumo", + x = 2431, + z = 100, + facing = 1, + stunTime = 10, + }, + { + name = "jumpsumo", + x = 2330, + z = 390, + facing = 0, + stunTime = 10, + }, + { + name = "staticmex", + x = 6920, + z = 5000, + facing = 2, + }, + { + name = "staticmex", + x = 6920, + z = 3672, + facing = 2, + }, + { + name = "staticradar", + x = 6752, + z = 4800, + facing = 2, + }, + { + name = "turretlaser", + x = 7344, + z = 4592, + facing = 3, + }, + { + name = "turretlaser", + x = 7344, + z = 4288, + facing = 3, + }, + { + name = "turretlaser", + x = 7344, + z = 4000, + facing = 3, + }, + { + name = "factoryjump", + x = 7864, + z = 4536, + facing = 3, + }, + { + name = "staticcon", + x = 7992, + z = 4488, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7992, 4488}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7967, 4463}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7992, + z = 4568, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7992, 4568}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7967, 4543}, options = {"shift"}}, + }, + }, } }, aiConfig = { { - startX = 4000, - startZ = 75, + humanName = "Complexia", + --aiLib = "Null AI", + --bitDependant = false, + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + allyTeam = 0, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turretaalaser", + "turretaaclose", + "staticradar", + "staticcon", + "staticantinuke", + "factorycloak", + "cloakcon", + "cloakraid", + "cloakriot", + "cloakskirm", + "cloakassault", + "cloakaa", + "cloakarty", + "cloaksnipe", + "cloakheavyraid", + "cloakbomb", + }, + commander = false, + startUnits = { + { + name = "turretmissile", + x = 9136, + z = 1952, + facing = 2, + }, + { + name = "staticheavyradar", + x = 8352, + z = 3584, + facing = 1, + }, + { + name = "energygeo", + x = 8296, + z = 2840, + facing = 1, + }, + { + name = "turretlaser", + x = 8296, + z = 2740, + facing = 3, + }, + { + name = "turretlaser", + x = 8296, + z = 2940, + facing = 3, + }, + { + name = "staticmex", + x = 9016, + z = 2088, + facing = 2, + }, + { + name = "staticcon", + x = 8776, + z = 2520, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8776, 2520}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8751, 2545}, options = {"shift"}}, + }, + }, + { + name = "staticmex", + x = 9000, + z = 2984, + facing = 2, + }, + { + name = "staticmex", + x = 9000, + z = 2568, + facing = 2, + }, + { + name = "factorycloak", + x = 8808, + z = 2384, + facing = 2, + }, + { + name = "staticcon", + x = 8856, + z = 2520, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8856, 2520}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8831, 2545}, options = {"shift"}}, + }, + }, + { + name = "turretriot", + x = 8440, + z = 2072, + facing = 2, + }, + { + name = "turretmissile", + x = 8272, + z = 2064, + facing = 2, + }, + { + name = "turretmissile", + x = 8336, + z = 2064, + facing = 2, + }, + { + name = "energypylon", + x = 8680, + z = 2888, + facing = 1, + }, + { + name = "energywind", + x = 9048, + z = 2984, + facing = 0, + }, + { + name = "energywind", + x = 9048, + z = 3032, + facing = 0, + }, + { + name = "energywind", + x = 9000, + z = 3032, + facing = 3, + }, + { + name = "energywind", + x = 8952, + z = 3032, + facing = 3, + }, + { + name = "energywind", + x = 8952, + z = 2984, + facing = 2, + }, + { + name = "energywind", + x = 8952, + z = 2936, + facing = 2, + }, + { + name = "energywind", + x = 9000, + z = 2936, + facing = 1, + }, + { + name = "energywind", + x = 9048, + z = 2936, + facing = 1, + }, + { + name = "energywind", + x = 9048, + z = 2568, + facing = 0, + }, + { + name = "energywind", + x = 9048, + z = 2616, + facing = 0, + }, + { + name = "energywind", + x = 9000, + z = 2616, + facing = 3, + }, + { + name = "energywind", + x = 8952, + z = 2616, + facing = 3, + }, + { + name = "energywind", + x = 8952, + z = 2568, + facing = 2, + }, + { + name = "energywind", + x = 8952, + z = 2520, + facing = 2, + }, + { + name = "energywind", + x = 9000, + z = 2520, + facing = 1, + }, + { + name = "energywind", + x = 9048, + z = 2520, + facing = 1, + }, + { + name = "cloakassault", + x = 8697, + z = 2069, + facing = 2, + }, + { + name = "cloakassault", + x = 8791, + z = 2035, + facing = 3, + }, + { + name = "cloakriot", + x = 8728, + z = 2099, + facing = 1, + }, + { + name = "cloakriot", + x = 8793, + z = 2079, + facing = 3, + }, + { + name = "cloakskirm", + x = 8749, + z = 2137, + facing = 2, + }, + { + name = "cloakskirm", + x = 8803, + z = 2148, + facing = 2, + }, + { + name = "cloakcon", + x = 8762, + z = 2093, + facing = 1, + }, + { + name = "cloakcon", + x = 8787, + z = 2172, + facing = 2, + }, + { + name = "turretaaflak", + x = 8376, + z = 2392, + facing = 3, + }, + { + name = "turretriot", + x = 8968, + z = 1960, + facing = 2, + }, + { + name = "turretmissile", + x = 9056, + z = 1952, + facing = 2, + }, + } + }, + { + startX = 1300, + startZ = 4500, + humanName = "Bactos", + --aiLib = "Null AI", + --bitDependant = false, aiLib = "Circuit_difficulty_autofill", - humanName = "Enemy", bitDependant = true, commanderParameters = { facplop = false, }, allyTeam = 1, unlocks = { - "cloakraid", + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turretaalaser", + "turretaaclose", + "staticradar", + "staticcon", + "staticantinuke", + "factoryshield", + "shieldcon", + "shieldraid", + "shieldassault", + "shieldriot", + "shieldskirm", + "shieldbomb", + "shieldaa", + "shieldfelon", + "shieldshield", + "shieldarty", + "factorygunship", + "gunshipcon", + "gunshipbomb", + "gunshipemp", + "gunshipaa", + "gunshipassault", + "gunshipheavyskirm", + "gunshipskirm", + "gunshipraid", + "striderhub", + "striderdante", + --"striderarty", + --"striderscorpion", + --"striderfunnelweb", }, - commanderLevel = 2, + difficultyDependantUnlocks = { + [3] = {"striderarty"}, + [4] = {"striderarty","striderscorpion","striderfunnelweb"}, + }, + commanderLevel = 5, commander = { - name = "Most Loyal Opposition", - chassis = "engineer", + name = "Terrax", + chassis = "recon", decorations = { - "skin_support_dark", - icon_overhead = { image = "UW" } + "skin_recon_leopard", + }, + modules = { + "commweapon_concussion", + "commweapon_shotgun", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_cloak_field", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_autorepair", + "module_autorepair", + "module_autorepair", + } + }, + midgameUnits = { + { + name = "striderarty", + x = 140, + z = 5000, + facing = 1, + spawnRadius = 50, + delay = 7*60*30, + difficultyAtLeast = 4, + orbitalDrop = true, }, - modules = { } }, startUnits = { + { + name = "striderhub", + x = 1584, + z = 4736, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1584, 4736}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1609, 4711}, options = {"shift"}}, + }, + }, + { + name = "staticmex", + x = 1384, + z = 4200, + facing = 0, + }, + { + name = "staticmex", + x = 1384, + z = 4792, + facing = 0, + }, + { + name = "staticmex", + x = 696, + z = 4792, + facing = 0, + }, + { + name = "staticmex", + x = 680, + z = 4216, + facing = 0, + }, + { + name = "staticmex", + x = 2296, + z = 5000, + facing = 1, + }, + { + name = "staticmex", + x = 2312, + z = 3704, + facing = 1, + }, + { + name = "energywind", + x = 616, + z = 4264, + facing = 1, + }, + { + name = "energywind", + x = 616, + z = 4344, + facing = 1, + }, + { + name = "energywind", + x = 616, + z = 4424, + facing = 1, + }, + { + name = "energywind", + x = 616, + z = 4504, + facing = 1, + }, + { + name = "energywind", + x = 616, + z = 4584, + facing = 1, + }, + { + name = "energywind", + x = 616, + z = 4664, + facing = 1, + }, + { + name = "energywind", + x = 616, + z = 4744, + facing = 1, + }, + { + name = "energywind", + x = 712, + z = 4264, + facing = 1, + }, + { + name = "energywind", + x = 712, + z = 4344, + facing = 1, + }, + { + name = "energywind", + x = 712, + z = 4424, + facing = 1, + }, + { + name = "energywind", + x = 712, + z = 4504, + facing = 1, + }, + { + name = "energywind", + x = 712, + z = 4584, + facing = 1, + }, + { + name = "energywind", + x = 712, + z = 4664, + facing = 1, + }, + { + name = "energywind", + x = 712, + z = 4744, + facing = 1, + }, + { + name = "energywind", + x = 776, + z = 4840, + facing = 1, + }, + { + name = "energywind", + x = 856, + z = 4840, + facing = 1, + }, + { + name = "energywind", + x = 936, + z = 4840, + facing = 1, + }, + { + name = "factoryshield", + x = 1704, + z = 4400, + facing = 1, + }, + { + name = "staticcon", + x = 1576, + z = 4360, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1576, 4360}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1601, 4335}, options = {"shift"}}, + }, + }, + { + name = "energywind", + x = 1016, + z = 4840, + facing = 1, + }, + { + name = "staticcon", + x = 1576, + z = 4456, + facing = 1, + }, + { + name = "energywind", + x = 1096, + z = 4840, + facing = 1, + }, + { + name = "energywind", + x = 1176, + z = 4840, + facing = 1, + }, + { + name = "energywind", + x = 1256, + z = 4840, + facing = 1, + }, + { + name = "energywind", + x = 1336, + z = 4840, + facing = 1, + }, + { + name = "staticradar", + x = 1536, + z = 3568, + facing = 1, + }, + { + name = "turretheavylaser", + x = 2456, + z = 3832, + facing = 1, + }, + { + name = "turretheavylaser", + x = 2456, + z = 4824, + facing = 1, + }, + { + name = "turretriot", + x = 1816, + z = 4568, + facing = 1, + }, + { + name = "turretriot", + x = 1816, + z = 4072, + facing = 1, + }, + { + name = "turretaalaser", + x = 2072, + z = 3784, + facing = 1, + }, + { + name = "turretaalaser", + x = 2088, + z = 4872, + facing = 1, + }, + { + name = "shieldraid", + x = 2006, + z = 4439, + facing = 0, + }, + { + name = "shieldraid", + x = 2006, + z = 4302, + facing = 1, + }, + { + name = "shieldraid", + x = 1990, + z = 4145, + facing = 3, + }, + { + name = "shieldraid", + x = 1940, + z = 4572, + facing = 0, + }, + { + name = "shieldcon", + x = 1887, + z = 4263, + facing = 2, + }, + { + name = "shieldcon", + x = 1869, + z = 4492, + facing = 0, + }, + } + }, + { + humanName = "Parati", + --aiLib = "Null AI", + --bitDependant = false, + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + allyTeam = 1, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turretaalaser", + "turretaaclose", + "staticradar", + "staticcon", + "staticantinuke", + "staticrearm", + "factoryveh", + "vehcon", + "vehscout", + "vehraid", + "vehriot", + "vehassault", + "vehaa", + "vehsupport", + "veharty", + "vehheavyarty", + --"vehcapture", + }, + difficultyDependantUnlocks = { + [3] = {"vehcapture"}, + [4] = {"vehcapture"}, + }, + commander = false, + startUnits = { + { + name = "energyfusion", + x = 112, + z = 312, + facing = 1, + }, + { + name = "factoryveh", + x = 464, + z = 912, + facing = 1, + }, + { + name = "staticmex", + x = 424, + z = 1432, + facing = 1, + }, + { + name = "staticmex", + x = 216, + z = 1112, + facing = 1, + }, + { + name = "staticmex", + x = 488, + z = 584, + facing = 1, + }, + { + name = "staticmex", + x = 280, + z = 264, + facing = 1, + }, + { + name = "staticmex", + x = 728, + z = 184, + facing = 1, + }, + { + name = "energywind", + x = 408, + z = 536, + facing = 1, + }, + { + name = "energywind", + x = 392, + z = 456, + facing = 1, + }, + { + name = "energywind", + x = 360, + z = 376, + facing = 1, + }, + { + name = "energywind", + x = 344, + z = 296, + facing = 1, + }, + { + name = "energywind", + x = 360, + z = 216, + facing = 1, + }, + { + name = "energywind", + x = 440, + z = 200, + facing = 1, + }, + { + name = "energywind", + x = 520, + z = 168, + facing = 1, + }, + { + name = "energywind", + x = 600, + z = 152, + facing = 1, + }, + { + name = "energywind", + x = 680, + z = 136, + facing = 1, + }, + { + name = "energywind", + x = 216, + z = 1192, + facing = 1, + }, + { + name = "energywind", + x = 264, + z = 1272, + facing = 1, + }, + { + name = "energywind", + x = 312, + z = 1352, + facing = 1, + }, + { + name = "energywind", + x = 360, + z = 1432, + facing = 1, + }, + + { + name = "vehcon", + x = 181, + z = 455, + facing = 2, + }, + { + name = "vehcon", + x = 208, + z = 421, + facing = 2, + }, + { + name = "staticcon", + x = 328, + z = 888, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {328, 888}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {353, 913}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 328, + z = 952, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {328, 952}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {353, 977}, options = {"shift"}}, + }, + }, + { + name = "turretheavylaser", + x = 920, + z = 216, + facing = 1, + }, + { + name = "turretriot", + x = 904, + z = 408, + facing = 1, + }, + { + name = "turretheavylaser", + x = 920, + z = 584, + facing = 1, + }, + { + name = "turretaalaser", + x = 744, + z = 408, + facing = 1, + }, + { + name = "turretheavylaser", + x = 1080, + z = 1096, + facing = 1, + }, + { + name = "turretheavylaser", + x = 1080, + z = 1368, + facing = 1, + }, + { + name = "turretriot", + x = 1064, + z = 1240, + facing = 1, + }, + { + name = "turretaalaser", + x = 968, + z = 1256, + facing = 1, + }, + { + name = "turretlaser", + x = 464, + z = 1296, + facing = 1, + }, + { + name = "turretlaser", + x = 320, + z = 1536, + facing = 1, + }, + { + name = "turretlaser", + x = 544, + z = 480, + facing = 1, + }, + } + }, + { + humanName = "Virilis", + --aiLib = "Null AI", + --bitDependant = false, + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + allyTeam = 1, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turretaalaser", + "turretaaclose", + "staticradar", + "staticcon", + "staticantinuke", + "staticrearm", + "factoryspider", + "spidercon", + "spiderscout", + "spiderriot", + "spideremp", + "spiderskirm", + "spiderassault", + "spidercrabe", + "spiderantiheavy", + "spideraa", + }, + commander = false, + startUnits = { + -- stuns sumos at start + { + name = "spiderantiheavy", + x = 2300, + z = 60, + facing = 1, + }, + { + name = "spiderantiheavy", + x = 2300, + z = 90, + facing = 1, + }, + { + name = "spiderantiheavy", + x = 2230, + z = 350, + facing = 1, + }, + { + name = "spiderantiheavy", + x = 2230, + z = 380, + facing = 1, + }, + { + name = "spideremp", + x = 1880, + z = 110, + facing = 1, + }, + { + name = "spideremp", + x = 1700, + z = 50, + facing = 1, + }, + { + name = "spideremp", + x = 2000, + z = 700, + facing = 1, + }, + { + name = "spideremp", + x = 2000, + z = 800, + facing = 1, + }, + -- + { + name = "turretheavylaser", + x = 6400, + z = 1050, + facing = 1, + }, + { + name = "turretgauss", + x = 6184, + z = 200, + facing = 1, + }, + { + name = "staticmex", + x = 5400, + z = 808, + facing = 1, + }, + { + name = "turretaaheavy", + x = 5712, + z = 1024, + facing = 0, + }, + { + name = "energyheavygeo", + x = 5384, + z = 1160, + facing = 0, + }, + { + name = "factoryspider", + x = 5704, + z = 552, + facing = 1, + }, + { + name = "spidercrabe", + x = 5900, + z = 552, + facing = 1, + }, + { + name = "spiderriot", + x = 6000, + z = 552, + facing = 1, + }, + { + name = "spiderriot", + x = 6100, + z = 552, + facing = 1, + }, + { + name = "turretaafar", + x = 5232, + z = 1248, + facing = 0, + }, + { + name = "turretheavy", + x = 5528, + z = 1272, + facing = 0, + }, + { + name = "turretheavy", + x = 5770, + z = 940, + facing = 1, + }, + { + name = "energypylon", + x = 5528, + z = 1100, + facing = 0, + }, + { + name = "staticcon", + x = 5560, + z = 648, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5560, 648}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5535, 673}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5464, + z = 648, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5464, 648}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5439, 673}, options = {"shift"}}, + }, + }, + { + name = "turretriot", + x = 5304, + z = 728, + facing = 3, + }, + { + name = "turretriot", + x = 5304, + z = 1016, + facing = 3, + }, + { + name = "turretemp", + x = 5312, + z = 880, + facing = 3, + }, + { + name = "turretheavylaser", + x = 5224, + z = 536, + facing = 3, + }, + { + name = "staticmex", + x = 6104, + z = 520, + facing = 1, + }, + { + name = "staticradar", + x = 5632, + z = 928, + facing = 1, + }, + { + name = "turretgauss", + x = 6440, + z = 632, + facing = 1, + }, + { + name = "turretriot", + x = 6296, + z = 408, + facing = 1, + }, } }, + { + humanName = "Automaton", + aiLib = "Null AI", + bitDependant = false, + --aiLib = "Circuit_difficulty_autofill", + --bitDependant = true, + allyTeam = 1, + unlocks = { + }, + commander = false, + midgameUnits = { + -- first wave + { + name = "vehassault", + x = 916, + z = 537, + facing = 1, + spawnRadius = 50, + delay = 40*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "vehassault", + x = 830, + z = 873, + facing = 1, + spawnRadius = 50, + delay = 40*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "vehassault", + x = 841, + z = 957, + facing = 1, + spawnRadius = 50, + delay = 40*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "vehassault", + x = 808, + z = 771, + facing = 1, + spawnRadius = 50, + delay = 40*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "vehassault", + x = 789, + z = 677, + facing = 1, + spawnRadius = 50, + delay = 40*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "vehassault", + x = 945, + z = 1037, + facing = 1, + spawnRadius = 50, + delay = 40*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "vehassault", + x = 895, + z = 1206, + facing = 2, + spawnRadius = 50, + delay = 40*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "vehassault", + x = 883, + z = 1150, + facing = 1, + spawnRadius = 50, + delay = 40*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "vehriot", + x = 936, + z = 980, + facing = 1, + spawnRadius = 50, + delay = 40*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "vehriot", + x = 911, + z = 795, + facing = 1, + spawnRadius = 50, + delay = 40*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "shieldarty", + x = 598, + z = 956, + facing = 0, + difficultyAtLeast = 2, + spawnRadius = 50, + delay = 40*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "shieldarty", + x = 606, + z = 1103, + facing = 0, + difficultyAtLeast = 3, + spawnRadius = 50, + delay = 40*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + -- second wave + { + name = "veharty", + x = 84, + z = 1156, + facing = 3, + spawnRadius = 50, + delay = 60*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "veharty", + x = 95, + z = 872, + facing = 3, + difficultyAtLeast = 2, + spawnRadius = 50, + delay = 60*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "veharty", + x = 78, + z = 1006, + facing = 1, + difficultyAtLeast = 2, + spawnRadius = 50, + delay = 60*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "veharty", + x = 88, + z = 1084, + facing = 3, + difficultyAtLeast = 3, + spawnRadius = 50, + delay = 60*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "veharty", + x = 96, + z = 725, + facing = 1, + difficultyAtLeast = 3, + spawnRadius = 50, + delay = 60*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "veharty", + x = 99, + z = 801, + facing = 3, + difficultyAtLeast = 4, + spawnRadius = 50, + delay = 60*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "veharty", + x = 85, + z = 940, + facing = 1, + difficultyAtLeast = 4, + spawnRadius = 50, + delay = 60*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + -- who's laughing now? + { + name = "striderbantha", + x = 400, + z = 1600, + facing = 1, + spawnRadius = 350, + delay = 20*60*30, + difficultyAtLeast = 4, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "striderfunnelweb", + x = 400, + z = 1600, + facing = 1, + spawnRadius = 350, + delay = 20*60*30, + difficultyAtLeast = 3, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "striderfunnelweb", + x = 400, + z = 1600, + facing = 1, + spawnRadius = 350, + delay = 20*60*30, + difficultyAtLeast = 2, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + { + name = "striderdante", + x = 400, + z = 1600, + facing = 1, + spawnRadius = 350, + delay = 20*60*30, + orbitalDrop = true, + commands = { + {cmdID = planetUtilities.COMMAND.FIGHT, pos = {3620, 1000}}, + }, + }, + }, + startUnits = { + { + name = "spiderassault", + x = 5124, + z = 2000, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.RAW_MOVE, pos = {3620, 1000}}, + }, + }, + { + name = "spiderassault", + x = 4634, + z = 1600, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.RAW_MOVE, pos = {3620, 1000}}, + }, + }, + { + name = "spiderassault", + x = 4576, + z = 1900, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.RAW_MOVE, pos = {3620, 1000}}, + }, + }, + { + name = "spiderassault", + x = 4572, + z = 1300, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.RAW_MOVE, pos = {3620, 1000}}, + }, + }, + { + name = "spiderassault", + x = 4699, + z = 743, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.RAW_MOVE, pos = {3620, 1000}}, + }, + }, + { + name = "spiderriot", + x = 4653, + z = 1500, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.RAW_MOVE, pos = {3620, 1000}}, + }, + }, + { + name = "spiderriot", + x = 4000, + z = 2000, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.RAW_MOVE, pos = {3620, 1000}}, + }, + }, + { + name = "spideremp", + x = 4565, + z = 1043, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.RAW_MOVE, pos = {3620, 1000}}, + }, + }, + { + name = "spideremp", + x = 4000, + z = 1500, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.RAW_MOVE, pos = {3620, 1000}}, + }, + }, + { + name = "spideremp", + x = 4707, + z = 884, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.RAW_MOVE, pos = {3620, 1000}}, + }, + }, + } + }, + }, + terraform = { + { + terraformShape = planetUtilities.TERRAFORM_SHAPE.RAMP, + position = {8000, 293, 3800, 7780, 485, 3650}, + width = 220, + }, + --{ + -- terraformShape = planetUtilities.TERRAFORM_SHAPE.RAMP, + -- position = {8000, 293, 3800, 7890, 362, 3725}, + -- width = 220, + --}, + { + terraformShape = planetUtilities.TERRAFORM_SHAPE.RAMP, + position = {8000, 292, 3800, 7780, 484, 3650}, + width = 220, + }, + { + terraformShape = planetUtilities.TERRAFORM_SHAPE.RECTANGLE, + terraformType = planetUtilities.TERRAFORM_TYPE.LEVEL, + position = {7545, 3480, 8180, 3880}, + height = 293, + }, + }, defeatConditionConfig = { - + -- Indexed by allyTeam. + [0] = { }, + [1] = { + ignoreUnitLossDefeat = false, + vitalCommanders = false, + vitalUnitTypes = { + "staticmex", + }, + loseAfterSeconds = 30*60, + allyTeamLossObjectiveID = 1, + }, }, objectiveConfig = { -- This is just related to displaying objectives on the UI. + [1] = { + description = "Protect the Tech Lab for 30 minutes OR Destroy all enemy Metal Extractors", + }, + [2] = { + description = "Protect your Commander", + }, }, bonusObjectiveConfig = { + [1] = { + onlyCountRemovedUnits = true, + satisfyByTime = 10*60, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 1, + enemyUnitTypes = { + "factoryspider", + "factoryshield", + "factoryplane", + "factoryveh", + }, + image = planetUtilities.ICON_DIR .. "factoryspider.png", + imageOverlay = planetUtilities.ICON_OVERLAY.ATTACK, + description = "Destroy an enemy Factory before 10:00", + experience = planetUtilities.BONUS_EXP, + }, + [2] = { + onlyCountRemovedUnits = true, + satisfyUntilTime = 3*60, + comparisionType = planetUtilities.COMPARE.AT_MOST, + targetNumber = 0, + unitTypes = { + "jumpsumo" + }, + image = planetUtilities.ICON_DIR .. "jumpsumo.png", + imageOverlay = planetUtilities.ICON_OVERLAY.GUARD, + description = "Do not lose any Jugglenauts before 3:00", + experience = planetUtilities.BONUS_EXP, + }, + [3] = { + satisfyByTime = 25*60, + comparisionType = planetUtilities.COMPARE.AT_MOST, + targetNumber = 0, + enemyUnitTypes = { + "staticmex", + }, + image = planetUtilities.ICON_DIR .. "staticmex.png", + imageOverlay = planetUtilities.ICON_OVERLAY.ATTACK, + description = "Destroy all enemy Metal Extractors before 25:00", + experience = planetUtilities.BONUS_EXP, + }, } }, completionReward = { diff --git a/campaign/sample/planets/planet52.lua b/campaign/sample/planets/planet52.lua index dc8b67d36..172b73ac3 100644 --- a/campaign/sample/planets/planet52.lua +++ b/campaign/sample/planets/planet52.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Jayadu A/B", primaryType = "F9V/F9V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24457", text = [[Despite its unappealing environment, this planet has been the focus of many battles, and it is littered with scrap. The self-replicating Puppy walking bombs can quickly turn these wrecks into a new army for you.]] }, tips = { diff --git a/campaign/sample/planets/planet53.lua b/campaign/sample/planets/planet53.lua index 3dfe56e9a..837fb22d4 100644 --- a/campaign/sample/planets/planet53.lua +++ b/campaign/sample/planets/planet53.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Oeva Pristia", primaryType = "K2V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24510", text = [[Your allies are struggling against cloaked skirmishers and artillery attacking them at range. Use Firewalker napalm artillery and jumping Jacks to find and destroy the hidden enemies.]] }, tips = { @@ -1544,7 +1545,7 @@ local function GetPlanet(planetUtilities, planetID) "shieldarty", "shieldaa", "hovercon", - "hoverraider", + "hoverraid", "hoverriot", "hoverskirm", "cloakcon", diff --git a/campaign/sample/planets/planet54.lua b/campaign/sample/planets/planet54.lua index c0fc96a10..f31041554 100644 --- a/campaign/sample/planets/planet54.lua +++ b/campaign/sample/planets/planet54.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Aioa", primaryType = "G8V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24510", text = [[This island is blessed with strong geothermal activity, allowing cheap and easy energy generation. Unfortunately your enemy got here first. Sabotage their operation with Skuttle jumping bombs.]] }, tips = { diff --git a/campaign/sample/planets/planet55.lua b/campaign/sample/planets/planet55.lua index 2c6f3de3e..d38ad544d 100644 --- a/campaign/sample/planets/planet55.lua +++ b/campaign/sample/planets/planet55.lua @@ -24,12 +24,13 @@ local function GetPlanet(planetUtilities, planetID) primary = "Rawol", primaryType = "G6V", milRating = 1, - text = [[All previous attempts to defeat the enemy's large clusters of Funnelweb support striders and Big Bertha static artillery have failed. It falls to you to deploy the nuclear option.]] + feedbackLink = "http://zero-k.info/Forum/Thread/24594", + text = [[All previous attempts to defeat the enemy's large cluster of Funnelweb support striders and Big Bertha static artillery have failed. It falls to you to deploy the nuclear option.]] }, tips = { { image = "unitpics/staticnuke.png", - text = [[The Trinity nuclear silo builds a nuclear missile every 3 minutes (assuming you provide it with metal). It can stockpile many missiles at once - save them until you are sure no anti-nukes will spoil the show.]] + text = [[The Trinity nuclear silo builds a nuclear missile every 3 minutes (assuming you provide it with metal). It can stockpile many missiles at once - save them until you are sure no anti-nukes will spoil the show. Left-click on the stockpile button to increase the stockpile limit.]] }, { image = "unitpics/staticantinuke.png", @@ -43,12 +44,11 @@ local function GetPlanet(planetUtilities, planetID) gameConfig = { mapName = "DigSite", playerConfig = { - startX = 100, - startZ = 100, + startX = 3000, + startZ = 6900, allyTeam = 0, - facplop = false, commanderParameters = { - facplop = false, + facplop = true, defeatIfDestroyedObjectiveID = 2, }, extraUnlocks = { @@ -58,33 +58,4427 @@ local function GetPlanet(planetUtilities, planetID) "empmissile", }, startUnits = { + { + name = "staticnuke", + x = 3080, + z = 6680, + facing = 2, + buildProgress = 0.88, + difficultyAtLeast = 1, + difficultyAtMost = 1, + }, + { + name = "staticnuke", + x = 3080, + z = 6680, + facing = 2, + buildProgress = 0.78, + difficultyAtLeast = 2, + difficultyAtMost = 2, + }, + { + name = "staticnuke", + x = 3080, + z = 6680, + facing = 2, + buildProgress = 0.68, + difficultyAtLeast = 3, + difficultyAtMost = 3, + }, + { + name = "staticnuke", + x = 3080, + z = 6680, + facing = 2, + buildProgress = 0.58, + difficultyAtLeast = 4, + difficultyAtMost = 4, + }, + { + name = "pw_metal", + x = 3800, + z = 7170, + facing = 2, + }, + { + name = "turretheavy", + x = 3832, + z = 5048, + facing = 2, + }, + { + name = "planescout", + x = 3080, + z = 6500, + facing = 2, + }, + { + name = "planescout", + x = 3000, + z = 6500, + facing = 2, + }, + { + name = "staticmex", + x = 3784, + z = 6712, + facing = 2, + }, + { + name = "energyfusion", + x = 4000, + z = 6900, + facing = 1, + }, + { + name = "shieldshield", + x = 3000, + z = 5100, + facing = 2, + }, + { + name = "shieldshield", + x = 3450, + z = 5200, + facing = 2, + }, + { + name = "shieldshield", + x = 3900, + z = 5300, + facing = 2, + }, + { + name = "staticmex", + x = 3384, + z = 5848, + facing = 0, + }, + { + name = "staticmex", + x = 3560, + z = 5624, + facing = 0, + }, + { + name = "staticmex", + x = 3064, + z = 5320, + facing = 0, + }, + { + name = "staticmex", + x = 3944, + z = 6264, + facing = 2, + }, + { + name = "energywind", + x = 3816, + z = 6632, + facing = 0, + }, + { + name = "energywind", + x = 3832, + z = 6552, + facing = 0, + }, + { + name = "energywind", + x = 3848, + z = 6472, + facing = 0, + }, + { + name = "energywind", + x = 3864, + z = 6392, + facing = 0, + }, + { + name = "energywind", + x = 3880, + z = 6312, + facing = 0, + }, + { + name = "energywind", + x = 3912, + z = 6200, + facing = 0, + }, + { + name = "energywind", + x = 3832, + z = 6152, + facing = 0, + }, + { + name = "energywind", + x = 3752, + z = 6088, + facing = 0, + }, + { + name = "energywind", + x = 3672, + z = 6040, + facing = 0, + }, + { + name = "energywind", + x = 3592, + z = 5976, + facing = 0, + }, + { + name = "energywind", + x = 3512, + z = 5928, + facing = 0, + }, + { + name = "energywind", + x = 3432, + z = 5880, + facing = 0, + }, + { + name = "energywind", + x = 3432, + z = 5800, + facing = 0, + }, + { + name = "energywind", + x = 3464, + z = 5720, + facing = 0, + }, + { + name = "energywind", + x = 3496, + z = 5640, + facing = 0, + }, + { + name = "energywind", + x = 3448, + z = 5592, + facing = 0, + }, + { + name = "energywind", + x = 3368, + z = 5544, + facing = 0, + }, + { + name = "energywind", + x = 3288, + z = 5480, + facing = 0, + }, + { + name = "energywind", + x = 3208, + z = 5432, + facing = 0, + }, + { + name = "energywind", + x = 3128, + z = 5384, + facing = 0, + }, + { + name = "turretaalaser", + x = 3848, + z = 5432, + facing = 0, + }, + { + name = "turretaalaser", + x = 2984, + z = 5432, + facing = 0, + }, + { + name = "turretgauss", + x = 2936, + z = 4808, + facing = 2, + }, + { + name = "turretgauss", + x = 3288, + z = 5000, + facing = 2, + }, + { + name = "turretgauss", + x = 3500, + z = 5090, + facing = 2, + }, + { + name = "turretgauss", + x = 4070, + z = 5170, + facing = 2, + }, + { + name = "staticradar", + x = 2800, + z = 4880, + facing = 2, + }, + { + name = "staticradar", + x = 4096, + z = 5232, + facing = 2, + }, + { + name = "turretgauss", + x = 2648, + z = 5256, + facing = 2, + }, + { + name = "energywind", + x = 3720, + z = 6808, + facing = 2, + }, + { + name = "energywind", + x = 3800, + z = 6808, + facing = 2, + }, + { + name = "energywind", + x = 3880, + z = 6808, + facing = 2, + }, + { + name = "energywind", + x = 3880, + z = 6888, + facing = 2, + }, + { + name = "energywind", + x = 3800, + z = 6888, + facing = 2, + }, + { + name = "energywind", + x = 3720, + z = 6888, + facing = 2, + }, + { + name = "energywind", + x = 3720, + z = 6968, + facing = 2, + }, + { + name = "energywind", + x = 3800, + z = 6968, + facing = 2, + }, + { + name = "energywind", + x = 3880, + z = 6968, + facing = 2, + }, + { + name = "factorycloak", + x = 3448, + z = 6864, + facing = 2, + }, + { + name = "cloakriot", + x = 3465, + z = 6545, + facing = 2, + }, + { + name = "staticcon", + x = 3384, + z = 7016, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3384, 7016}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3409, 6991}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 3260, + z = 6800, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3384, 7016}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3409, 6991}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 3260, + z = 6950, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3384, 7016}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3409, 6991}, options = {"shift"}}, + }, + }, + { + name = "cloakriot", + x = 3368, + z = 6556, + facing = 2, + }, + { + name = "cloakriot", + x = 3569, + z = 6537, + facing = 3, + }, + { + name = "cloakskirm", + x = 3340, + z = 6657, + facing = 3, + }, + { + name = "cloakskirm", + x = 3417, + z = 6656, + facing = 0, + }, + { + name = "cloakskirm", + x = 3521, + z = 6662, + facing = 1, + }, + { + name = "cloakskirm", + x = 3623, + z = 6653, + facing = 1, + }, + { + name = "cloakaa", + x = 3484, + z = 6708, + facing = 2, + }, + { + name = "cloakaa", + x = 3561, + z = 6729, + facing = 1, + }, + { + name = "cloakaa", + x = 3386, + z = 6736, + facing = 3, + }, } }, aiConfig = { { - startX = 4000, - startZ = 75, + humanName = "Izbatos", + --aiLib = "Null AI", + --bitDependant = false, + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + allyTeam = 0, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + --"staticantinuke", + "staticrearm", + "factoryamph", + "amphcon", + "amphraid", + "amphimpulse", + "amphfloater", + "amphriot", + "amphassault", + "amphbomb", + "amphaa", + "factoryspider", + "spidercon", + "spiderscout", + "spiderriot", + "spideremp", + "spiderskirm", + "spiderassault", + "spidercrabe", + "spiderantiheavy", + "spideraa", + }, + commander = false, + startUnits = { + { + name = "staticmex", + x = 2456, + z = 7800, + facing = 0, + }, + { + name = "staticmex", + x = 2088, + z = 6488, + facing = 0, + }, + { + name = "staticmex", + x = 664, + z = 7672, + facing = 0, + }, + { + name = "staticmex", + x = 536, + z = 7976, + facing = 0, + }, + { + name = "staticmex", + x = 232, + z = 7672, + facing = 0, + }, + { + name = "energypylon", + x = 3544, + z = 5448, + facing = 0, + }, + { + name = "energywind", + x = 1496, + z = 7736, + facing = 2, + }, + { + name = "energywind", + x = 248, + z = 7720, + facing = 2, + }, + { + name = "energywind", + x = 312, + z = 7800, + facing = 2, + }, + { + name = "energywind", + x = 392, + z = 7880, + facing = 2, + }, + { + name = "energywind", + x = 456, + z = 7960, + facing = 2, + }, + { + name = "energywind", + x = 568, + z = 7928, + facing = 2, + }, + { + name = "energywind", + x = 632, + z = 7848, + facing = 2, + }, + { + name = "energywind", + x = 696, + z = 7768, + facing = 2, + }, + { + name = "energywind", + x = 760, + z = 7688, + facing = 2, + }, + { + name = "energywind", + x = 856, + z = 7688, + facing = 2, + }, + { + name = "energywind", + x = 936, + z = 7688, + facing = 2, + }, + { + name = "energywind", + x = 1016, + z = 7704, + facing = 2, + }, + { + name = "energywind", + x = 1096, + z = 7704, + facing = 2, + }, + { + name = "energywind", + x = 1176, + z = 7720, + facing = 2, + }, + { + name = "energywind", + x = 1256, + z = 7720, + facing = 2, + }, + { + name = "energywind", + x = 1336, + z = 7720, + facing = 2, + }, + { + name = "energywind", + x = 1416, + z = 7736, + facing = 2, + }, + { + name = "energywind", + x = 1576, + z = 7752, + facing = 2, + }, + { + name = "energywind", + x = 1656, + z = 7752, + facing = 2, + }, + { + name = "energywind", + x = 1736, + z = 7768, + facing = 2, + }, + { + name = "energywind", + x = 1816, + z = 7768, + facing = 2, + }, + { + name = "energywind", + x = 1896, + z = 7768, + facing = 2, + }, + { + name = "energywind", + x = 1976, + z = 7784, + facing = 2, + }, + { + name = "energywind", + x = 2056, + z = 7784, + facing = 2, + }, + { + name = "energywind", + x = 2136, + z = 7800, + facing = 2, + }, + { + name = "energywind", + x = 2216, + z = 7800, + facing = 2, + }, + { + name = "energywind", + x = 2296, + z = 7800, + facing = 2, + }, + { + name = "energywind", + x = 2376, + z = 7816, + facing = 2, + }, + { + name = "energypylon", + x = 2888, + z = 7672, + facing = 2, + }, + { + name = "energypylon", + x = 3416, + z = 7352, + facing = 2, + }, + { + name = "factoryamph", + x = 856, + z = 7144, + facing = 2, + }, + { + name = "staticcon", + x = 824, + z = 7288, + facing = 2, + }, + { + name = "staticcon", + x = 904, + z = 7288, + facing = 2, + }, + { + name = "factoryspider", + x = 2456, + z = 7496, + facing = 2, + }, + { + name = "staticcon", + x = 2408, + z = 7624, + facing = 2, + }, + { + name = "staticcon", + x = 2488, + z = 7624, + facing = 2, + }, + { + name = "turretheavylaser", + x = 216, + z = 6136, + facing = 2, + }, + { + name = "turretheavylaser", + x = 776, + z = 6088, + facing = 2, + }, + { + name = "turretriot", + x = 328, + z = 6008, + facing = 2, + }, + { + name = "turretriot", + x = 616, + z = 5976, + facing = 2, + }, + { + name = "turretheavylaser", + x = 2152, + z = 6008, + facing = 2, + }, + { + name = "turretaalaser", + x = 200, + z = 6296, + facing = 2, + }, + { + name = "turretheavylaser", + x = 1944, + z = 5992, + facing = 2, + }, + { + name = "turretaalaser", + x = 872, + z = 6216, + facing = 2, + }, + { + name = "turretriot", + x = 1560, + z = 5944, + facing = 2, + }, + { + name = "turretriot", + x = 2264, + z = 5800, + facing = 2, + }, + { + name = "turretaalaser", + x = 1880, + z = 6216, + facing = 2, + }, + { + name = "staticmex", + x = 200, + z = 5224, + facing = 2, + }, + { + name = "staticmex", + x = 552, + z = 5016, + facing = 2, + }, + { + name = "staticmex", + x = 1384, + z = 5400, + facing = 2, + }, + { + name = "spidercon", + x = 1294, + z = 5937, + facing = 0, + }, + { + name = "amphcon", + x = 2001, + z = 7488, + facing = 3, + }, + { + name = "spidercon", + x = 7412, + z = 7791, + facing = 1, + }, + { + name = "turretlaser", + x = 2592, + z = 5536, + facing = 0, + }, + { + name = "amphfloater", + x = 1656, + z = 6843, + facing = 3, + }, + { + name = "amphcon", + x = 1854, + z = 6972, + facing = 0, + }, + { + name = "turretheavylaser", + x = 824, + z = 5144, + facing = 0, + }, + { + name = "turretlaser", + x = 640, + z = 7168, + facing = 1, + }, + { + name = "staticstorage", + x = 760, + z = 7736, + facing = 2, + }, + { + name = "spiderassault", + x = 3479, + z = 5328, + facing = 0, + }, + { + name = "turretlaser", + x = 416, + z = 7664, + facing = 1, + }, + { + name = "amphfloater", + x = 1741, + z = 6909, + facing = 3, + }, + { + name = "staticradar", + x = 576, + z = 7760, + facing = 2, + }, + { + name = "spidercon", + x = 2327, + z = 4752, + facing = 1, + }, + { + name = "amphcon", + x = 1844, + z = 6405, + facing = 2, + }, + { + name = "turretlaser", + x = 4016, + z = 6576, + facing = 2, + }, + { + name = "amphraid", + x = 4169, + z = 4131, + facing = 2, + }, + { + name = "staticradar", + x = 1824, + z = 6528, + facing = 2, + }, + { + name = "amphaa", + x = 656, + z = 5186, + facing = 2, + }, + { + name = "turretmissile", + x = 544, + z = 5136, + facing = 1, + }, + { + name = "spiderassault", + x = 1702, + z = 6138, + facing = 0, + }, + { + name = "turretlaser", + x = 4400, + z = 6080, + facing = 0, + }, + { + name = "turretlaser", + x = 2000, + z = 6560, + facing = 2, + }, + { + name = "spiderskirm", + x = 1650, + z = 5752, + facing = 3, + }, + { + name = "turretlaser", + x = 368, + z = 5136, + facing = 1, + }, + { + name = "spideremp", + x = 2639, + z = 4772, + facing = 0, + }, + { + name = "turretlaser", + x = 2560, + z = 7856, + facing = 2, + }, + { + name = "turretmissile", + x = 192, + z = 5120, + facing = 1, + }, + { + name = "amphfloater", + x = 663, + z = 5096, + facing = 2, + }, + { + name = "turretlaser", + x = 1376, + z = 5488, + facing = 1, + }, + { + name = "amphfloater", + x = 662, + z = 5033, + facing = 2, + }, + { + name = "turretlaser", + x = 4112, + z = 5632, + facing = 0, + }, + { + name = "spideraa", + x = 865, + z = 5455, + facing = 3, + }, + { + name = "spiderscout", + x = 4020, + z = 4714, + facing = 2, + }, + { + name = "turretlaser", + x = 5040, + z = 7680, + facing = 2, + }, + { + name = "amphraid", + x = 1392, + z = 7071, + facing = 1, + }, + { + name = "staticradar", + x = 400, + z = 5296, + facing = 1, + }, + { + name = "staticmex", + x = 2088, + z = 4760, + facing = 0, + }, + { + name = "staticradar", + x = 4848, + z = 7632, + facing = 2, + }, + { + name = "spiderassault", + x = 2747, + z = 6885, + facing = 2, + }, + { + name = "turretlaser", + x = 2144, + z = 4848, + facing = 1, + }, + { + name = "energypylon", + x = 3512, + z = 6328, + facing = 0, + }, + { + name = "amphaa", + x = 678, + z = 5222, + facing = 2, + }, + { + name = "spidercon", + x = 3837, + z = 7109, + facing = 1, + }, + { + name = "amphfloater", + x = 863, + z = 6474, + facing = 2, + }, + { + name = "turretlaser", + x = 6704, + z = 7504, + facing = 2, + }, + { + name = "turretlaser", + x = 3392, + z = 5328, + facing = 2, + }, + { + name = "spiderscout", + x = 3626, + z = 4567, + facing = 2, + }, + { + name = "amphaa", + x = 618, + z = 5200, + facing = 2, + }, + { + name = "staticradar", + x = 464, + z = 5280, + facing = 1, + }, + { + name = "spiderscout", + x = 4133, + z = 3752, + facing = 3, + }, + { + name = "turretlaser", + x = 7584, + z = 7840, + facing = 2, + }, + { + name = "spiderscout", + x = 4216, + z = 4099, + facing = 2, + }, + { + name = "turretlaser", + x = 1056, + z = 7120, + facing = 1, + }, + { + name = "turretlaser", + x = 720, + z = 5120, + facing = 1, + }, + { + name = "energysolar", + x = 3704, + z = 6680, + facing = 2, + }, + { + name = "spidercrabe", + x = 2456, + z = 7460, + facing = 2, + buildProgress = 0.21619999, + }, + { + name = "amphaa", + x = 856, + z = 7108, + facing = 2, + buildProgress = 0.4666, + }, + } + }, + { + humanName = "Vanterras", + --aiLib = "Null AI", + --bitDependant = false, + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + allyTeam = 0, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + --"staticantinuke", + "staticrearm", + "factoryshield", + "shieldcon", + "shieldraid", + "shieldassault", + "shieldriot", + "shieldskirm", + "shieldbomb", + "shieldaa", + "shieldfelon", + "shieldshield", + "shieldarty", + "factoryjump", + "jumpcon", + "jumpraid", + "jumpskirm", + "jumpassault", + "jumpsumo", + "jumparty", + "jumpblackhole", + "jumpaa", + "factorygunship", + "gunshipcon", + "gunshipbomb", + "gunshipemp", + "gunshipaa", + "gunshipassault", + "gunshipheavyskirm", + "gunshipskirm", + "gunshipraid", + "gunshipkrow", + }, + commander = false, + startUnits = { + { + name = "turretaaflak", + x = 6440, + z = 6680, + facing = 2, + }, + { + name = "turretaaflak", + x = 7300, + z = 6400, + facing = 2, + }, + { + name = "turretheavy", + x = 7060, + z = 6480, + facing = 2, + }, + { + name = "energypylon", + x = 7110, + z = 6850, + facing = 2, + }, + { + name = "staticmex", + x = 6648, + z = 7384, + facing = 0, + }, + { + name = "staticmex", + x = 7608, + z = 7960, + facing = 0, + }, + { + name = "staticmex", + x = 8008, + z = 7992, + facing = 0, + }, + { + name = "staticmex", + x = 7928, + z = 7624, + facing = 0, + }, + { + name = "staticmex", + x = 5160, + z = 6552, + facing = 2, + }, + { + name = "staticmex", + x = 5576, + z = 5768, + facing = 2, + }, + { + name = "staticmex", + x = 4888, + z = 7640, + facing = 2, + }, + { + name = "staticmex", + x = 5160, + z = 7880, + facing = 2, + }, + { + name = "energyheavygeo", + x = 7240, + z = 6776, + facing = 2, + }, + { + name = "energywind", + x = 7928, + z = 7992, + facing = 0, + }, + { + name = "energywind", + x = 7848, + z = 7992, + facing = 0, + }, + { + name = "energywind", + x = 7768, + z = 7992, + facing = 0, + }, + { + name = "energywind", + x = 7688, + z = 7992, + facing = 0, + }, + { + name = "energywind", + x = 7960, + z = 7928, + facing = 0, + }, + { + name = "energywind", + x = 7928, + z = 7848, + facing = 0, + }, + { + name = "energywind", + x = 7912, + z = 7768, + facing = 0, + }, + { + name = "energywind", + x = 7880, + z = 7688, + facing = 0, + }, + { + name = "energywind", + x = 7848, + z = 7608, + facing = 0, + }, + { + name = "energywind", + x = 7304, + z = 6936, + facing = 0, + }, + { + name = "energywind", + x = 7368, + z = 7016, + facing = 0, + }, + { + name = "energywind", + x = 7416, + z = 7096, + facing = 0, + }, + { + name = "energywind", + x = 7480, + z = 7176, + facing = 0, + }, + { + name = "energywind", + x = 7544, + z = 7256, + facing = 0, + }, + { + name = "energywind", + x = 7592, + z = 7336, + facing = 0, + }, + { + name = "energywind", + x = 7656, + z = 7416, + facing = 0, + }, + { + name = "energywind", + x = 7704, + z = 7496, + facing = 0, + }, + { + name = "energywind", + x = 7768, + z = 7576, + facing = 0, + }, + { + name = "energywind", + x = 6712, + z = 7320, + facing = 0, + }, + { + name = "energywind", + x = 6792, + z = 7272, + facing = 0, + }, + { + name = "energywind", + x = 6872, + z = 7240, + facing = 0, + }, + { + name = "energywind", + x = 6952, + z = 7192, + facing = 0, + }, + { + name = "energywind", + x = 7032, + z = 7160, + facing = 0, + }, + { + name = "energywind", + x = 7112, + z = 7112, + facing = 0, + }, + { + name = "energywind", + x = 7192, + z = 7080, + facing = 0, + }, + { + name = "energywind", + x = 7272, + z = 7032, + facing = 0, + }, + { + name = "staticcon", + x = 7752, + z = 6488, + facing = 2, + }, + { + name = "staticcon", + x = 7832, + z = 6488, + facing = 2, + }, + { + name = "factoryshield", + x = 7744, + z = 6328, + facing = 2, + }, + { + name = "factoryjump", + x = 7896, + z = 6344, + facing = 2, + }, + { + name = "staticcon", + x = 5784, + z = 8136, + facing = 2, + }, + { + name = "factorygunship", + x = 5896, + z = 8104, + facing = 2, + }, + { + name = "turretheavylaser", + x = 6040, + z = 7192, + facing = 2, + }, + { + name = "turretheavylaser", + x = 6424, + z = 7000, + facing = 2, + }, + { + name = "turretriot", + x = 6200, + z = 7000, + facing = 2, + }, + { + name = "turretaalaser", + x = 5960, + z = 7320, + facing = 2, + }, + { + name = "turretaalaser", + x = 6568, + z = 6968, + facing = 2, + }, + { + name = "turretheavylaser", + x = 7736, + z = 5864, + facing = 2, + }, + { + name = "turretheavylaser", + x = 8056, + z = 5832, + facing = 2, + }, + { + name = "turretaalaser", + x = 7688, + z = 6008, + facing = 2, + }, + { + name = "turretaalaser", + x = 8136, + z = 5960, + facing = 2, + }, + { + name = "turretriot", + x = 7896, + z = 5800, + facing = 2, + }, + { + name = "turretriot", + x = 4840, + z = 6008, + facing = 2, + }, + { + name = "turretriot", + x = 5320, + z = 5848, + facing = 2, + }, + { + name = "turretaalaser", + x = 5224, + z = 6360, + facing = 2, + }, + { + name = "turretheavylaser", + x = 6184, + z = 5608, + facing = 2, + }, + { + name = "turretriot", + x = 6696, + z = 5496, + facing = 2, + }, + { + name = "turretaalaser", + x = 6728, + z = 5768, + facing = 2, + }, + { + name = "shieldcon", + x = 4584, + z = 4861, + facing = 2, + }, + { + name = "shieldassault", + x = 7654, + z = 5667, + facing = 2, + }, + { + name = "gunshipassault", + x = 7073, + z = 5240, + facing = 2, + }, + { + name = "shieldskirm", + x = 6980, + z = 4928, + facing = 0, + }, + { + name = "jumpskirm", + x = 7124, + z = 4756, + facing = 2, + }, + { + name = "jumpskirm", + x = 7069, + z = 4804, + facing = 0, + }, + { + name = "gunshipaa", + x = 5102, + z = 4986, + facing = 2, + }, + { + name = "jumpcon", + x = 3561, + z = 6887, + facing = 0, + }, + { + name = "jumpaa", + x = 7152, + z = 5019, + facing = 2, + }, + { + name = "shieldcon", + x = 4386, + z = 4645, + facing = 2, + }, + { + name = "jumpcon", + x = 3563, + z = 6131, + facing = 2, + }, + { + name = "jumpassault", + x = 6992, + z = 4447, + facing = 0, + }, + { + name = "shieldcon", + x = 4327, + z = 4325, + facing = 2, + }, + { + name = "jumpassault", + x = 7017, + z = 4482, + facing = 3, + }, + { + name = "turretlaser", + x = 7536, + z = 6272, + facing = 3, + }, + { + name = "staticstorage", + x = 6616, + z = 7480, + facing = 2, + }, + { + name = "staticradar", + x = 7728, + z = 7728, + facing = 3, + }, + { + name = "shieldfelon", + x = 7103, + z = 4921, + facing = 2, + }, + { + name = "gunshipskirm", + x = 7012, + z = 6987, + facing = 2, + patrolRoute = { + {6987, 6976}, + {7080, 7016}, + }, + }, + { + name = "staticradar", + x = 5776, + z = 5824, + facing = 2, + }, + { + name = "jumpcon", + x = 7688, + z = 5596, + facing = 0, + }, + { + name = "shieldskirm", + x = 7111, + z = 4893, + facing = 1, + }, + { + name = "jumpcon", + x = 4304, + z = 4313, + facing = 2, + }, + { + name = "shieldcon", + x = 7631, + z = 5477, + facing = 3, + }, + { + name = "shieldraid", + x = 6052, + z = 6865, + facing = 0, + }, + { + name = "gunshipraid", + x = 4580, + z = 5448, + facing = 2, + }, + { + name = "shieldraid", + x = 7512, + z = 6458, + facing = 0, + }, + { + name = "gunshipaa", + x = 5789, + z = 7507, + facing = 0, + }, + { + name = "jumpassault", + x = 7896, + z = 6320, + facing = 2, + buildProgress = 0.72049999, + }, + { + name = "shieldshield", + x = 7744, + z = 6316, + facing = 2, + buildProgress = 0.1305, + }, + { + name = "gunshipcon", + x = 5896, + z = 8103, + facing = 2, + buildProgress = 0.2622, + }, + } + }, + { + startX = 6000, + startZ = 1800, + humanName = "Lossili", + --aiLib = "Null AI", + --bitDependant = false, + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + commanderParameters = { + facplop = false, + }, + allyTeam = 1, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + --"staticantinuke", + "staticrearm", + "factoryjump", + "jumpcon", + "jumpraid", + "jumpskirm", + "jumpassault", + "jumpsumo", + "jumparty", + "jumpblackhole", + "jumpaa", + "factoryamph", + "amphcon", + "amphraid", + "amphimpulse", + "amphfloater", + "amphriot", + "amphassault", + "amphbomb", + "amphaa", + -- "striderhub", + -- "striderfunnelweb", + }, + commanderLevel = 6, + commander = { + name = "Broodius", + chassis = "engineer", + decorations = { + "skin_support_green", + }, + modules = { + "commweapon_lightninggun", + "commweapon_personal_shield", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_battle_drone", + "module_battle_drone", + "module_battle_drone", + "module_companion_drone", + "module_companion_drone", + "module_companion_drone", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_autorepair", + } + }, + midgameUnits = { + { + name = "striderfunnelweb", + x = 5000, + z = 700, + facing = 0, + spawnRadius = 50, + delay = 8*30*60, + orbitalDrop = true, + }, + { + name = "striderfunnelweb", + x = 5200, + z = 700, + facing = 0, + spawnRadius = 50, + delay = 8*30*60, + orbitalDrop = true, + difficultyAtLeast = 2, + }, + { + name = "striderfunnelweb", + x = 5400, + z = 700, + facing = 0, + spawnRadius = 50, + delay = 8*30*60, + orbitalDrop = true, + difficultyAtLeast = 3, + }, + { + name = "striderfunnelweb", + x = 5600, + z = 700, + facing = 0, + spawnRadius = 50, + delay = 8*30*60, + orbitalDrop = true, + difficultyAtLeast = 4, + }, + { + name = "striderfunnelweb", + x = 5000, + z = 700, + facing = 0, + spawnRadius = 50, + delay = 12*30*60, + orbitalDrop = true, + }, + { + name = "striderfunnelweb", + x = 5200, + z = 700, + facing = 0, + spawnRadius = 50, + delay = 12*30*60, + orbitalDrop = true, + difficultyAtLeast = 2, + }, + }, + startUnits = { + { + name = "staticantinuke", + x = 5976, + z = 1856, + facing = 0, + mapMarker = { + text = "Antinuke", + color = "red_small" + }, + }, + { + name = "staticheavyarty", + x = 5008, + z = 2976, + facing = 0, + }, + { + name = "staticheavyarty", + x = 5488, + z = 3104, + facing = 0, + difficultyAtLeast = 4, + }, + { + name = "staticheavyarty", + x = 5488, + z = 3104, + facing = 0, + difficultyAtMost = 3, + difficultyAtLeast = 3, + buildProgress = 0.5 + }, + { + name = "staticheavyarty", + x = 5488, + z = 3104, + facing = 0, + difficultyAtMost = 2, + buildProgress = 0.1 + }, + { + name = "striderfunnelweb", + x = 5000, + z = 700, + facing = 0, + }, + { + name = "striderfunnelweb", + x = 5200, + z = 700, + facing = 0, + }, + { + name = "striderfunnelweb", + x = 5400, + z = 700, + facing = 0, + }, + { + name = "striderfunnelweb", + x = 5400, + z = 700, + facing = 0, + difficultyAtLeast = 4, + }, + { + name = "pw_metal", + x = 5000, + z = 2250, + facing = 0, + }, + -- + { + name = "turretheavy", + x = 6808, + z = 3192, + facing = 0, + }, + { + name = "staticmex", + x = 6056, + z = 2488, + facing = 0, + }, + { + name = "staticmex", + x = 5592, + z = 2632, + facing = 0, + }, + { + name = "staticmex", + x = 5304, + z = 2648, + facing = 0, + }, + { + name = "staticmex", + x = 4760, + z = 2056, + facing = 0, + }, + { + name = "staticmex", + x = 4920, + z = 1848, + facing = 0, + }, + { + name = "staticmex", + x = 5640, + z = 440, + facing = 0, + }, + { + name = "staticmex", + x = 6424, + z = 520, + facing = 0, + }, + { + name = "staticmex", + x = 7528, + z = 280, + facing = 0, + }, + { + name = "staticmex", + x = 7608, + z = 680, + facing = 0, + }, + { + name = "staticmex", + x = 7928, + z = 536, + facing = 0, + }, + { + name = "staticmex", + x = 7848, + z = 2952, + facing = 0, + }, + { + name = "staticmex", + x = 7864, + z = 3192, + facing = 0, + }, + { + name = "staticmex", + x = 6600, + z = 2648, + facing = 0, + }, + { + name = "energywind", + x = 6568, + z = 520, + facing = 0, + }, + { + name = "energywind", + x = 6488, + z = 504, + facing = 0, + }, + { + name = "staticradar", + x = 7488, + z = 448, + facing = 0, + }, + { + name = "staticmex", + x = 7880, + z = 3960, + facing = 0, + }, + { + name = "staticmex", + x = 6888, + z = 3640, + facing = 0, + }, + { + name = "turretaafar", + x = 4944, + z = 2704, + facing = 0, + }, + { + name = "turretaaflak", + x = 5256, + z = 2840, + facing = 0, + }, + { + name = "turretaaflak", + x = 5592, + z = 2904, + facing = 0, + }, + { + name = "energywind", + x = 7560, + z = 344, + facing = 0, + }, + { + name = "energywind", + x = 7576, + z = 424, + facing = 0, + }, + { + name = "energywind", + x = 7592, + z = 504, + facing = 0, + }, + { + name = "energywind", + x = 7624, + z = 584, + facing = 0, + }, + { + name = "energywind", + x = 7688, + z = 616, + facing = 0, + }, + { + name = "energywind", + x = 7768, + z = 584, + facing = 0, + }, + { + name = "energywind", + x = 7848, + z = 552, + facing = 0, + }, + { + name = "energywind", + x = 5320, + z = 2536, + facing = 0, + }, + { + name = "energywind", + x = 7528, + z = 664, + facing = 0, + }, + { + name = "energywind", + x = 5400, + z = 2536, + facing = 0, + }, + { + name = "energywind", + x = 7448, + z = 648, + facing = 0, + }, + { + name = "energywind", + x = 5480, + z = 2536, + facing = 0, + }, + { + name = "energywind", + x = 7368, + z = 632, + facing = 0, + }, + { + name = "energywind", + x = 5560, + z = 2536, + facing = 0, + }, + { + name = "energywind", + x = 5480, + z = 2616, + facing = 0, + }, + { + name = "energywind", + x = 5400, + z = 2616, + facing = 0, + }, + { + name = "energywind", + x = 7288, + z = 632, + facing = 0, + }, + { + name = "energywind", + x = 5640, + z = 2552, + facing = 0, + }, + { + name = "energywind", + x = 7208, + z = 616, + facing = 0, + }, + { + name = "energywind", + x = 5720, + z = 2552, + facing = 0, + }, + { + name = "energywind", + x = 7128, + z = 600, + facing = 0, + }, + { + name = "energywind", + x = 5800, + z = 2552, + facing = 0, + }, + { + name = "energywind", + x = 7048, + z = 584, + facing = 0, + }, + { + name = "energywind", + x = 5880, + z = 2552, + facing = 0, + }, + { + name = "energywind", + x = 5960, + z = 2552, + facing = 0, + }, + { + name = "energywind", + x = 6968, + z = 584, + facing = 0, + }, + { + name = "energywind", + x = 6040, + z = 2552, + facing = 0, + }, + { + name = "energywind", + x = 6888, + z = 568, + facing = 0, + }, + { + name = "energywind", + x = 6040, + z = 2632, + facing = 0, + }, + { + name = "energywind", + x = 5960, + z = 2632, + facing = 0, + }, + { + name = "energywind", + x = 6808, + z = 552, + facing = 0, + }, + { + name = "energywind", + x = 5880, + z = 2632, + facing = 0, + }, + { + name = "energywind", + x = 5800, + z = 2632, + facing = 0, + }, + { + name = "energywind", + x = 6728, + z = 536, + facing = 0, + }, + { + name = "energywind", + x = 5720, + z = 2632, + facing = 0, + }, + { + name = "energywind", + x = 5640, + z = 2632, + facing = 0, + }, + { + name = "energywind", + x = 6648, + z = 520, + facing = 0, + }, + { + name = "energywind", + x = 6344, + z = 504, + facing = 0, + }, + { + name = "energywind", + x = 6264, + z = 504, + facing = 0, + }, + { + name = "energywind", + x = 6184, + z = 488, + facing = 0, + }, + { + name = "staticcon", + x = 5384, + z = 2376, + facing = 0, + }, + { + name = "energywind", + x = 6104, + z = 488, + facing = 0, + }, + { + name = "staticcon", + x = 5480, + z = 2376, + facing = 0, + }, + { + name = "energywind", + x = 6024, + z = 472, + facing = 0, + }, + { + name = "striderhub", + x = 5584, + z = 2288, + facing = 0, + }, + { + name = "energywind", + x = 5944, + z = 472, + facing = 0, + }, + { + name = "energywind", + x = 5864, + z = 456, + facing = 0, + }, + { + name = "factoryspider", + x = 5464, + z = 2744, + facing = 0, + }, + { + name = "energywind", + x = 5784, + z = 456, + facing = 0, + }, + { + name = "energywind", + x = 5704, + z = 440, + facing = 0, + }, + { + name = "energywind", + x = 5880, + z = 2456, + facing = 0, + }, + { + name = "energywind", + x = 5960, + z = 2456, + facing = 0, + }, + { + name = "energywind", + x = 6040, + z = 2376, + facing = 0, + }, + { + name = "energywind", + x = 5960, + z = 2376, + facing = 0, + }, + { + name = "energywind", + x = 5880, + z = 2376, + facing = 0, + }, + { + name = "energywind", + x = 5880, + z = 2296, + facing = 0, + }, + { + name = "energywind", + x = 5960, + z = 2296, + facing = 0, + }, + { + name = "energywind", + x = 6040, + z = 2296, + facing = 0, + }, + { + name = "energywind", + x = 6040, + z = 2216, + facing = 0, + }, + { + name = "energywind", + x = 5960, + z = 2216, + facing = 0, + }, + { + name = "energywind", + x = 5880, + z = 2216, + facing = 0, + }, + { + name = "energypylon", + x = 6152, + z = 1768, + facing = 0, + }, + { + name = "energywind", + x = 5560, + z = 424, + facing = 0, + }, + { + name = "energypylon", + x = 6184, + z = 840, + facing = 0, + }, + { + name = "energywind", + x = 5480, + z = 424, + facing = 0, + }, + { + name = "energywind", + x = 5400, + z = 408, + facing = 0, + }, + { + name = "energywind", + x = 5320, + z = 408, + facing = 0, + }, + { + name = "energywind", + x = 5240, + z = 408, + facing = 0, + }, + { + name = "energywind", + x = 5160, + z = 408, + facing = 0, + }, + { + name = "energywind", + x = 5080, + z = 392, + facing = 0, + }, + { + name = "energywind", + x = 5000, + z = 392, + facing = 0, + }, + { + name = "energywind", + x = 4920, + z = 392, + facing = 0, + }, + { + name = "energywind", + x = 4840, + z = 392, + facing = 0, + }, + { + name = "energywind", + x = 4760, + z = 376, + facing = 0, + }, + { + name = "energywind", + x = 4680, + z = 376, + facing = 0, + }, + { + name = "energywind", + x = 4600, + z = 376, + facing = 0, + }, + { + name = "energywind", + x = 4520, + z = 360, + facing = 0, + }, + { + name = "energywind", + x = 4440, + z = 360, + facing = 0, + }, + { + name = "energywind", + x = 4360, + z = 360, + facing = 0, + }, + { + name = "energywind", + x = 4280, + z = 360, + facing = 0, + }, + { + name = "energywind", + x = 4200, + z = 344, + facing = 0, + }, + { + name = "energywind", + x = 4120, + z = 344, + facing = 0, + }, + { + name = "factoryjump", + x = 7336, + z = 1736, + facing = 0, + }, + { + name = "factoryamph", + x = 7480, + z = 1736, + facing = 0, + }, + { + name = "staticcon", + x = 7400, + z = 1592, + facing = 0, + }, + { + name = "turretheavylaser", + x = 7928, + z = 3608, + facing = 0, + }, + { + name = "turretheavylaser", + x = 7624, + z = 3512, + facing = 0, + }, + { + name = "turretriot", + x = 7768, + z = 3576, + facing = 0, + }, + { + name = "energypylon", + x = 4984, + z = 2552, + facing = 3, + }, + { + name = "energypylon", + x = 5656, + z = 2728, + facing = 3, + }, + { + name = "turretheavy", + x = 5240, + z = 3048, + facing = 0, + }, + { + name = "turretheavy", + x = 5880, + z = 3000, + facing = 0, + }, + { + name = "turretheavy", + x = 4696, + z = 2952, + facing = 0, + }, + { + name = "turretheavy", + x = 4648, + z = 2408, + facing = 3, + }, + { + name = "turretaalaser", + x = 8056, + z = 3240, + facing = 0, + }, + { + name = "turretriot", + x = 8088, + z = 3416, + facing = 0, + }, + { + name = "turretlaser", + x = 5872, + z = 1760, + facing = 3, + }, + { + name = "turretlaser", + x = 5920, + z = 2000, + facing = 0, + }, + { + name = "staticmex", + x = 6808, + z = 4008, + facing = 0, + }, + { + name = "turretheavylaser", + x = 7032, + z = 3832, + facing = 0, + }, + { + name = "turretlaser", + x = 6096, + z = 1840, + facing = 1, + }, + { + name = "turretheavylaser", + x = 6696, + z = 3816, + facing = 0, + }, + { + name = "staticheavyradar", + x = 4592, + z = 2960, + facing = 0, + }, + { + name = "turretriot", + x = 6616, + z = 4008, + facing = 0, + }, + { + name = "staticradar", + x = 6224, + z = 1840, + facing = 0, + }, + { + name = "staticcon", + x = 5160, + z = 2856, + facing = 0, + }, + { + name = "staticshield", + x = 6016, + z = 1728, + facing = 2, + }, + { + name = "staticshield", + x = 5664, + z = 2896, + facing = 2, + }, + { + name = "staticshield", + x = 5152, + z = 2768, + facing = 2, + }, + { + name = "staticshield", + x = 4736, + z = 2656, + facing = 2, + }, + { + name = "energypylon", + x = 4552, + z = 2136, + facing = 2, + }, + { + name = "energypylon", + x = 6376, + z = 2280, + facing = 0, + }, + { + name = "energypylon", + x = 7000, + z = 2760, + facing = 0, + }, + { + name = "turretemp", + x = 6512, + z = 3136, + facing = 0, + }, + { + name = "turretemp", + x = 7120, + z = 3280, + facing = 0, + }, + { + name = "turretaalaser", + x = 7016, + z = 3112, + facing = 0, + }, + { + name = "staticcon", + x = 6600, + z = 2936, + facing = 0, + }, + { + name = "staticcon", + x = 6504, + z = 2936, + facing = 0, + }, + { + name = "dynsupport5_100", + x = 1930, + z = 879, + facing = 3, + }, + { + name = "amphimpulse", + x = 7358, + z = 1952, + facing = 2, + }, + { + name = "jumpskirm", + x = 7385, + z = 2024, + facing = 3, + }, + { + name = "jumpcon", + x = 5936, + z = 3634, + facing = 0, + }, + { + name = "dronelight", + x = 1939, + z = 912, + facing = 0, + }, + { + name = "amphcon", + x = 5948, + z = 3683, + facing = 1, + }, + { + name = "droneheavyslow", + x = 2036, + z = 845, + facing = 0, + }, + { + name = "amphcon", + x = 1264, + z = 2963, + facing = 0, + }, + { + name = "turretlaser", + x = 5584, + z = 2096, + facing = 0, + }, + { + name = "dronelight", + x = 1996, + z = 835, + facing = 3, + }, + { + name = "turretlaser", + x = 7968, + z = 4048, + facing = 3, + }, + { + name = "dronelight", + x = 1901, + z = 780, + facing = 3, + }, + { + name = "jumpcon", + x = 599, + z = 601, + facing = 2, + }, + { + name = "amphraid", + x = 5586, + z = 4024, + facing = 0, + }, + { + name = "droneheavyslow", + x = 1964, + z = 868, + facing = 3, + }, + { + name = "jumpcon", + x = 700, + z = 817, + facing = 2, + }, + { + name = "jumpaa", + x = 6600, + z = 4228, + facing = 3, + }, + { + name = "jumpassault", + x = 6654, + z = 3226, + facing = 2, + }, + { + name = "droneheavyslow", + x = 1990, + z = 854, + facing = 0, + }, + { + name = "amphraid", + x = 6344, + z = 2110, + facing = 0, + }, + { + name = "turretlaser", + x = 7888, + z = 2960, + facing = 3, + }, + { + name = "turretlaser", + x = 4912, + z = 1968, + facing = 0, + }, + { + name = "turretlaser", + x = 7760, + z = 384, + facing = 3, + }, + { + name = "turretlaser", + x = 5392, + z = 2336, + facing = 0, + }, + { + name = "jumpassault", + x = 7013, + z = 4433, + facing = 3, + }, + { + name = "staticradar", + x = 7728, + z = 3120, + facing = 3, + }, + { + name = "amphcon", + x = 7856, + z = 4490, + facing = 2, + }, + { + name = "amphfloater", + x = 6718, + z = 4484, + facing = 3, + }, + { + name = "energysolar", + x = 6008, + z = 2744, + facing = 3, + }, + { + name = "jumpskirm", + x = 6616, + z = 4475, + facing = 3, + }, + { + name = "staticstorage", + x = 6088, + z = 2408, + facing = 3, + }, + { + name = "turretlaser", + x = 5536, + z = 240, + facing = 0, + }, + { + name = "jumpassault", + x = 7329, + z = 1861, + facing = 2, + }, + { + name = "amphaa", + x = 6951, + z = 4461, + facing = 1, + }, + { + name = "turretlaser", + x = 5408, + z = 2160, + facing = 0, + }, + { + name = "turretlaser", + x = 3840, + z = 320, + facing = 0, + }, + { + name = "jumpcon", + x = 7664, + z = 2662, + facing = 0, + }, + { + name = "amphfloater", + x = 7325, + z = 1964, + facing = 2, + }, + { + name = "energysolar", + x = 6264, + z = 2552, + facing = 3, + }, + { + name = "turretlaser", + x = 608, + z = 496, + facing = 0, + buildProgress = 0.29069999, + }, + { + name = "turretlaser", + x = 6688, + z = 2624, + facing = 3, + }, + { + name = "amphfloater", + x = 7376, + z = 1921, + facing = 2, + }, + { + name = "turretlaser", + x = 3568, + z = 1520, + facing = 0, + }, + { + name = "energypylon", + x = 6664, + z = 3752, + facing = 3, + }, + { + name = "energypylon", + x = 1960, + z = 1880, + facing = 0, + }, + { + name = "jumpassault", + x = 7424, + z = 1945, + facing = 2, + }, + { + name = "staticmex", + x = 7992, + z = 4136, + facing = 0, + }, + { + name = "amphfloater", + x = 7133, + z = 1692, + facing = 2, + }, + { + name = "staticmex", + x = 7848, + z = 4824, + facing = 0, + }, + { + name = "turretlaser", + x = 6848, + z = 3680, + facing = 3, + }, + { + name = "energywind", + x = 6776, + z = 3288, + facing = 3, + }, + { + name = "turretlaser", + x = 1952, + z = 2000, + facing = 0, + }, + { + name = "staticmex", + x = 8040, + z = 4696, + facing = 0, + }, + { + name = "jumpassault", + x = 7158, + z = 1669, + facing = 2, + }, + { + name = "turretlaser", + x = 8048, + z = 4656, + facing = 3, + }, + { + name = "amphaa", + x = 7459, + z = 1971, + facing = 1, + }, + { + name = "turretlaser", + x = 2496, + z = 672, + facing = 0, + }, + { + name = "staticmex", + x = 5992, + z = 3720, + facing = 0, + }, + { + name = "staticradar", + x = 7872, + z = 4656, + facing = 3, + }, + { + name = "amphraid", + x = 6944, + z = 1568, + facing = 3, + }, + { + name = "jumpraid", + x = 7336, + z = 1760, + facing = 0, + buildProgress = 0.80900002, + }, + { + name = "staticradar", + x = 5872, + z = 3664, + facing = 3, + buildProgress = 0.82120001, + }, + { + name = "turretlaser", + x = 6032, + z = 3744, + facing = 3, + buildProgress = 0.72490001, + }, + { + name = "energypylon", + x = 7800, + z = 4392, + facing = 3, + buildProgress = 0.28740001, + }, + { + name = "amphraid", + x = 7480, + z = 1772, + facing = 0, + buildProgress = 0.89160001, + }, + } + }, + { + humanName = "Friefus", + --aiLib = "Null AI", + --bitDependant = false, aiLib = "Circuit_difficulty_autofill", - humanName = "Enemy", bitDependant = true, - commanderParameters = { - facplop = false, - }, allyTeam = 1, unlocks = { - "cloakraid", - }, - commanderLevel = 2, - commander = { - name = "Most Loyal Opposition", - chassis = "engineer", - decorations = { - "skin_support_dark", - icon_overhead = { image = "UW" } - }, - modules = { } + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + --"staticantinuke", + "staticrearm", + "factoryplane", + "planecon", + "planescout", + "planefighter", + "planeheavyfighter", + "bomberprec", + "bomberdisarm", + "bomberheavy", + "factoryspider", + "spidercon", + "spiderscout", + "spiderriot", + "spideremp", + "spiderskirm", + "spiderassault", + "spidercrabe", + "spiderantiheavy", + "spideraa", + "factoryshield", + "shieldcon", + "shieldraid", + "shieldassault", + "shieldriot", + "shieldskirm", + "shieldbomb", + "shieldaa", + "shieldfelon", + "shieldshield", + "shieldarty", + -- "striderhub", + -- "striderfunnelweb", }, + commander = false, startUnits = { + { + name = "striderhub", + x = 1648, + z = 448, + facing = 0, + }, + { + name = "staticmex", + x = 2008, + z = 1880, + facing = 0, + }, + { + name = "staticmex", + x = 2456, + z = 2280, + facing = 0, + }, + { + name = "staticmex", + x = 2648, + z = 2184, + facing = 0, + }, + { + name = "staticmex", + x = 3608, + z = 1560, + facing = 0, + }, + { + name = "staticmex", + x = 3768, + z = 536, + facing = 0, + }, + { + name = "staticmex", + x = 4040, + z = 376, + facing = 0, + }, + { + name = "staticmex", + x = 2344, + z = 440, + facing = 0, + }, + { + name = "staticmex", + x = 744, + z = 648, + facing = 0, + }, + { + name = "staticmex", + x = 680, + z = 328, + facing = 0, + }, + { + name = "staticmex", + x = 408, + z = 568, + facing = 0, + }, + { + name = "energyheavygeo", + x = 1240, + z = 1080, + facing = 0, + }, + { + name = "energysolar", + x = 600, + z = 440, + facing = 0, + }, + { + name = "energysolar", + x = 680, + z = 584, + facing = 0, + }, + { + name = "energysolar", + x = 504, + z = 552, + facing = 0, + }, + { + name = "energysolar", + x = 840, + z = 728, + facing = 0, + }, + { + name = "energysolar", + x = 984, + z = 824, + facing = 0, + }, + { + name = "energysolar", + x = 1128, + z = 920, + facing = 0, + }, + { + name = "energywind", + x = 1352, + z = 952, + facing = 0, + }, + { + name = "energywind", + x = 1432, + z = 920, + facing = 0, + }, + { + name = "energywind", + x = 1512, + z = 872, + facing = 0, + }, + { + name = "energywind", + x = 1592, + z = 840, + facing = 0, + }, + { + name = "energywind", + x = 1672, + z = 808, + facing = 0, + }, + { + name = "energywind", + x = 1752, + z = 760, + facing = 0, + }, + { + name = "energywind", + x = 1832, + z = 728, + facing = 0, + }, + { + name = "energywind", + x = 1912, + z = 680, + facing = 0, + }, + { + name = "energywind", + x = 1992, + z = 648, + facing = 0, + }, + { + name = "energywind", + x = 2072, + z = 616, + facing = 0, + }, + { + name = "energywind", + x = 2152, + z = 568, + facing = 0, + }, + { + name = "energywind", + x = 2232, + z = 536, + facing = 0, + }, + { + name = "energywind", + x = 2312, + z = 504, + facing = 0, + }, + { + name = "energywind", + x = 2392, + z = 504, + facing = 0, + }, + { + name = "energywind", + x = 2472, + z = 504, + facing = 0, + }, + { + name = "energywind", + x = 2552, + z = 504, + facing = 0, + }, + { + name = "energywind", + x = 2632, + z = 504, + facing = 0, + }, + { + name = "energywind", + x = 2712, + z = 504, + facing = 0, + }, + { + name = "energywind", + x = 2792, + z = 520, + facing = 0, + }, + { + name = "energywind", + x = 2872, + z = 520, + facing = 0, + }, + { + name = "energywind", + x = 2952, + z = 520, + facing = 0, + }, + { + name = "energywind", + x = 3032, + z = 520, + facing = 0, + }, + { + name = "energywind", + x = 3112, + z = 520, + facing = 0, + }, + { + name = "energywind", + x = 3192, + z = 520, + facing = 0, + }, + { + name = "energywind", + x = 3272, + z = 520, + facing = 0, + }, + { + name = "energywind", + x = 3352, + z = 520, + facing = 0, + }, + { + name = "energywind", + x = 3432, + z = 536, + facing = 0, + }, + { + name = "energywind", + x = 3512, + z = 536, + facing = 0, + }, + { + name = "energywind", + x = 3592, + z = 536, + facing = 0, + }, + { + name = "energywind", + x = 3672, + z = 536, + facing = 0, + }, + { + name = "turretmissile", + x = 2448, + z = 1888, + facing = 0, + }, + { + name = "turretmissile", + x = 2224, + z = 2000, + facing = 0, + }, + { + name = "turretmissile", + x = 2064, + z = 2224, + facing = 0, + }, + { + name = "staticrearm", + x = 1320, + z = 664, + facing = 3, + }, + { + name = "factoryplane", + x = 1448, + z = 672, + facing = 3, + }, + { + name = "energysolar", + x = 1544, + z = 648, + facing = 2, + }, + { + name = "energysolar", + x = 1544, + z = 728, + facing = 2, + }, + { + name = "energysolar", + x = 1464, + z = 776, + facing = 1, + }, + { + name = "energysolar", + x = 1384, + z = 776, + facing = 1, + }, + { + name = "energysolar", + x = 1432, + z = 568, + facing = 3, + }, + { + name = "energysolar", + x = 1512, + z = 568, + facing = 3, + }, + { + name = "energysolar", + x = 1352, + z = 552, + facing = 3, + }, + { + name = "energysolar", + x = 1272, + z = 552, + facing = 3, + }, + { + name = "energysolar", + x = 1304, + z = 776, + facing = 3, + }, + { + name = "energysolar", + x = 1208, + z = 632, + facing = 3, + }, + { + name = "energysolar", + x = 1208, + z = 712, + facing = 3, + }, + { + name = "energysolar", + x = 1224, + z = 792, + facing = 3, + }, + { + name = "staticcon", + x = 1576, + z = 584, + facing = 3, + }, + { + name = "staticcon", + x = 1416, + z = 504, + facing = 3, + }, + { + name = "factoryspider", + x = 3576, + z = 760, + facing = 0, + }, + { + name = "staticcon", + x = 3608, + z = 632, + facing = 0, + }, + { + name = "staticcon", + x = 3544, + z = 632, + facing = 0, + }, + { + name = "factoryshield", + x = 656, + z = 1768, + facing = 0, + }, + { + name = "staticcon", + x = 696, + z = 1592, + facing = 0, + }, + { + name = "staticcon", + x = 616, + z = 1592, + facing = 0, + }, + { + name = "staticheavyradar", + x = 2576, + z = 1792, + facing = 0, + }, + { + name = "energypylon", + x = 3384, + z = 1064, + facing = 2, + }, + { + name = "energypylon", + x = 3912, + z = 1688, + facing = 2, + }, + { + name = "turretheavy", + x = 3880, + z = 2184, + facing = 0, + }, + { + name = "turretemp", + x = 3920, + z = 2400, + facing = 0, + }, + { + name = "turretemp", + x = 4272, + z = 2480, + facing = 0, + }, + { + name = "turretaaflak", + x = 4120, + z = 1992, + facing = 0, + }, + { + name = "turretaaflak", + x = 3704, + z = 1912, + facing = 0, + }, + { + name = "turretaafar", + x = 2720, + z = 1504, + facing = 0, + }, + { + name = "turretaaheavy", + x = 1440, + z = 1360, + facing = 0, + }, + { + name = "turretlaser", + x = 1344, + z = 1424, + facing = 0, + }, + { + name = "turretlaser", + x = 1552, + z = 1344, + facing = 0, + }, + { + name = "energypylon", + x = 1112, + z = 1672, + facing = 0, + }, + { + name = "energypylon", + x = 456, + z = 2344, + facing = 0, + }, + { + name = "turretantiheavy", + x = 320, + z = 2768, + facing = 0, + }, + { + name = "turretriot", + x = 696, + z = 2440, + facing = 1, + }, + { + name = "turretriot", + x = 696, + z = 2696, + facing = 1, + }, + { + name = "turretriot", + x = 568, + z = 2904, + facing = 0, + }, + { + name = "turretriot", + x = 152, + z = 2952, + facing = 0, + }, + { + name = "turretaaflak", + x = 312, + z = 2552, + facing = 0, + }, + { + name = "energypylon", + x = 1400, + z = 2392, + facing = 0, + }, + { + name = "turretheavy", + x = 1416, + z = 2872, + facing = 0, + }, + { + name = "turretemp", + x = 1168, + z = 2912, + facing = 0, + }, + { + name = "turretemp", + x = 1632, + z = 2928, + facing = 0, + }, + { + name = "staticcon", + x = 888, + z = 2440, + facing = 0, + }, + { + name = "staticcon", + x = 1000, + z = 2440, + facing = 0, + }, + { + name = "staticcon", + x = 3144, + z = 1624, + facing = 0, + }, + { + name = "staticcon", + x = 3240, + z = 1624, + facing = 0, + }, + { + name = "turretmissile", + x = 3392, + z = 1856, + facing = 0, + }, + { + name = "turretmissile", + x = 3152, + z = 1760, + facing = 0, + }, + { + name = "turretmissile", + x = 2896, + z = 1744, + facing = 0, + }, + { + name = "turretmissile", + x = 2704, + z = 1760, + facing = 0, + }, + { + name = "energypylon", + x = 3672, + z = 392, + facing = 2, + }, + { + name = "bomberheavy", + x = 2588, + z = 2139, + facing = 2, + }, + { + name = "spideremp", + x = 3271, + z = 3598, + facing = 0, + }, + { + name = "spiderassault", + x = 3612, + z = 2033, + facing = 0, + }, + { + name = "bomberprec", + x = 3495, + z = 1759, + facing = 0, + }, + { + name = "shieldassault", + x = 1280, + z = 4864, + facing = 0, + }, + { + name = "spidercon", + x = 3988, + z = 3726, + facing = 3, + }, + { + name = "shieldassault", + x = 1327, + z = 4806, + facing = 0, + }, + { + name = "planeheavyfighter", + x = 5792, + z = 5203, + facing = 0, + }, + { + name = "shieldcon", + x = 1621, + z = 3178, + facing = 0, + }, + { + name = "shieldcon", + x = 4012, + z = 3061, + facing = 0, + }, + { + name = "staticradar", + x = 3408, + z = 1552, + facing = 0, + }, + { + name = "staticstorage", + x = 2296, + z = 456, + facing = 0, + }, + { + name = "spidercon", + x = 4735, + z = 1543, + facing = 1, + }, + { + name = "spiderscout", + x = 4485, + z = 5498, + facing = 3, + }, + { + name = "energypylon", + x = 2264, + z = 200, + facing = 0, + }, + { + name = "staticmex", + x = 248, + z = 3320, + facing = 0, + }, + { + name = "shieldfelon", + x = 1640, + z = 3206, + facing = 3, + patrolRoute = { + {1643, 3207}, + {1512, 3080}, + }, + }, + { + name = "spidercon", + x = 2423, + z = 2045, + facing = 0, + }, + { + name = "staticmex", + x = 504, + z = 3384, + facing = 0, + }, + { + name = "spiderassault", + x = 3332, + z = 3661, + facing = 1, + }, + { + name = "turretlaser", + x = 448, + z = 3248, + facing = 1, + }, + { + name = "energypylon", + x = 5352, + z = 1960, + facing = 0, + }, + { + name = "staticstorage", + x = 2280, + z = 552, + facing = 0, + }, + { + name = "shieldskirm", + x = 1277, + z = 4898, + facing = 0, + }, + { + name = "spideremp", + x = 1348, + z = 4865, + facing = 3, + }, + { + name = "shieldcon", + x = 3879, + z = 1967, + facing = 1, + }, + { + name = "staticradar", + x = 288, + z = 3216, + facing = 1, + }, + { + name = "turretlaser", + x = 1824, + z = 480, + facing = 0, + }, + { + name = "turretlaser", + x = 1648, + z = 256, + facing = 0, + }, + { + name = "staticmex", + x = 312, + z = 4008, + facing = 0, + }, + { + name = "staticmex", + x = 296, + z = 4264, + facing = 0, + }, + { + name = "shieldraid", + x = 3615, + z = 3454, + facing = 0, + }, + { + name = "spiderscout", + x = 5536, + z = 4447, + facing = 2, + }, + { + name = "shieldassault", + x = 1285, + z = 4820, + facing = 0, + }, + { + name = "shieldfelon", + x = 735, + z = 2161, + facing = 0, + }, + { + name = "turretlaser", + x = 224, + z = 4240, + facing = 1, + }, + { + name = "planeheavyfighter", + x = 4820, + z = 3735, + facing = 2, + }, + { + name = "energywind", + x = 728, + z = 696, + facing = 0, + }, + { + name = "shieldassault", + x = 1316, + z = 4844, + facing = 0, + }, + { + name = "shieldraid", + x = 4005, + z = 2129, + facing = 0, + }, + { + name = "staticradar", + x = 640, + z = 672, + facing = 0, + }, + { + name = "shieldassault", + x = 1292, + z = 4780, + facing = 0, + }, + { + name = "shieldaa", + x = 4195, + z = 2803, + facing = 0, + }, + { + name = "spiderscout", + x = 5004, + z = 4613, + facing = 2, + }, + { + name = "staticradar", + x = 1984, + z = 1840, + facing = 0, + }, + { + name = "planecon", + x = 821, + z = 3720, + facing = 0, + }, + { + name = "shieldassault", + x = 1326, + z = 4764, + facing = 0, + }, + { + name = "shieldassault", + x = 1253, + z = 4797, + facing = 0, + }, + { + name = "staticmex", + x = 4200, + z = 3912, + facing = 0, + }, + { + name = "shieldassault", + x = 1315, + z = 4885, + facing = 2, + }, + { + name = "bomberdisarm", + x = 3710, + z = 3677, + facing = 1, + }, + { + name = "planecon", + x = 2891, + z = 3064, + facing = 1, + }, + { + name = "turrettorp", + x = 2552, + z = 2168, + facing = 0, + }, + { + name = "spiderscout", + x = 5642, + z = 4337, + facing = 1, + }, + { + name = "spiderscout", + x = 4572, + z = 5444, + facing = 3, + }, + { + name = "spiderscout", + x = 4407, + z = 5584, + facing = 3, + }, + { + name = "shieldassault", + x = 1249, + z = 4840, + facing = 1, + }, + { + name = "spiderscout", + x = 4786, + z = 5115, + facing = 0, + }, + { + name = "bomberdisarm", + x = 763, + z = 1421, + facing = 2, + }, + { + name = "spiderscout", + x = 5021, + z = 4716, + facing = 2, + }, + { + name = "shieldraid", + x = 4094, + z = 3154, + facing = 0, + }, + { + name = "shieldassault", + x = 991, + z = 4368, + facing = 0, + }, + { + name = "spiderscout", + x = 3392, + z = 3881, + facing = 1, + }, + { + name = "spidercon", + x = 3277, + z = 2807, + facing = 0, + }, + { + name = "staticmex", + x = 3032, + z = 3064, + facing = 0, + }, + { + name = "spiderscout", + x = 3798, + z = 2838, + facing = 0, + }, + { + name = "spiderscout", + x = 4533, + z = 3401, + facing = 0, + }, + { + name = "spidercon", + x = 3975, + z = 1551, + facing = 1, + }, + { + name = "spidercon", + x = 3736, + z = 1192, + facing = 0, + }, + { + name = "planeheavyfighter", + x = 1431, + z = 1025, + facing = 0, + }, + { + name = "shieldcon", + x = 592, + z = 2223, + facing = 0, + }, + { + name = "turretlaser", + x = 3808, + z = 3696, + facing = 1, + buildProgress = 0.43880001, + }, + { + name = "planeheavyfighter", + x = 1427, + z = 634, + facing = 3, + buildProgress = 0.33109999, + }, + { + name = "spiderscout", + x = 3676, + z = 959, + facing = 0, + }, + { + name = "shieldshield", + x = 656, + z = 1780, + facing = 0, + buildProgress = 0.0799, + }, + { + name = "spidercon", + x = 3576, + z = 796, + facing = 0, + buildProgress = 0.0949, + }, } }, }, @@ -97,8 +4491,7 @@ local function GetPlanet(planetUtilities, planetID) vitalUnitTypes = { "striderhub", "striderfunnelweb", - "staticnuke", - "staticantinuke", + "staticheavyarty", }, loseAfterSeconds = false, allyTeamLossObjectiveID = 1, @@ -107,14 +4500,46 @@ local function GetPlanet(planetUtilities, planetID) objectiveConfig = { -- This is just related to displaying objectives on the UI. [1] = { - description = "Destroy all enemy Funnelwebs, Strider Hubs, and Big Berthas", + description = "Destroy all enemy Big Berthas, Funnelwebs and Strider Hubs", }, [2] = { description = "Protect your Commander", }, }, bonusObjectiveConfig = { - } + [1] = { + onlyCountRemovedUnits = true, + satisfyByTime = 15*60, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 1, + enemyUnitTypes = { + "staticheavyarty", + }, + image = planetUtilities.ICON_DIR .. "staticheavyarty.png", + imageOverlay = planetUtilities.ICON_OVERLAY.ATTACK, + description = "Destroy an enemy Big Bertha by 15:00", + experience = planetUtilities.BONUS_EXP, + }, + [2] = { + onlyCountRemovedUnits = true, + satisfyByTime = 15*60, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 3, + enemyUnitTypes = { + "striderfunnelweb", + }, + image = planetUtilities.ICON_DIR .. "striderfunnelweb.png", + imageOverlay = planetUtilities.ICON_OVERLAY.ATTACK, + description = "Destroy three enemy Funnelwebs by 15:00", + experience = planetUtilities.BONUS_EXP, + }, + [3] = { -- Complete all bonus objectives + completeAllBonusObjectives = true, + image = planetUtilities.ICON_OVERLAY.ALL, + description = "Complete all bonus objectives (in one battle).", + experience = planetUtilities.BONUS_EXP, + }, + }, }, completionReward = { experience = planetUtilities.MAIN_EXP, diff --git a/campaign/sample/planets/planet56.lua b/campaign/sample/planets/planet56.lua index af8ab3779..ec7aed92f 100644 --- a/campaign/sample/planets/planet56.lua +++ b/campaign/sample/planets/planet56.lua @@ -24,6 +24,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Nassia", primaryType = "G4V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24510", text = [[Many raiders have tried - and failed - to take the ancient technology on this planet by brute force. The automated defence system has decayed over time but a Detriment crushes any attempt to build a base. Stay on the move with Athena mobile constructors, building up an army to destroy the Detriment.]] }, tips = { diff --git a/campaign/sample/planets/planet57.lua b/campaign/sample/planets/planet57.lua index 0bf157632..32d8f9190 100644 --- a/campaign/sample/planets/planet57.lua +++ b/campaign/sample/planets/planet57.lua @@ -7,7 +7,7 @@ local function GetPlanet(planetUtilities, planetID) local image = LUA_DIRNAME .. "images/planets/terran04.png" local planetData = { - name = "Kar Imaku", + name = "Rockbar", startingPlanet = false, mapDisplay = { x = (planetUtilities.planetPositions and planetUtilities.planetPositions[planetID][1]) or 0.77, @@ -24,17 +24,31 @@ local function GetPlanet(planetUtilities, planetID) primary = "Eox Tallis", primaryType = "G4V", milRating = 1, - text = [[...]] + feedbackLink = "http://zero-k.info/Forum/Thread/24594", + text = [[So far this naval battle has been evenly matched, but the Detriment your opponent is about to deploy could change that in a hurry.]] + }, + tips = { + { + image = "unitpics/shipcarrier.png", + text = [[The Reef is a versatile carrier ship which deploys drones, constructs disarming cruise missiles and rearms friendly bombers. The disarming missiles are especially effective against heavy targets like the Shogun battleship or Detriment strider.]] + }, + { + image = "unitpics/subtacmissile.png", + text = [[The Scylla constructs and fires tactical missiles - use these to destroy static targets which are elevated or far away. Remember that destroying Pylon connections will disable heavy defences.]] + }, + { + image = "unitpics/weaponmod_standoff_rocket.png", + text = [[The Scylla and Reef must stockpile missiles before firing them, which requires resources. Select stockpiling units and left or right-click the Stockpile button to increase or decrease the maximum stockpile number. Ctrl and Shift to add or subtract multiples from the stockpile.]] + }, }, gameConfig = { mapName = "SailAway", playerConfig = { - startX = 100, - startZ = 100, + startX = 2520, + startZ = 9400, allyTeam = 0, - facplop = false, commanderParameters = { - facplop = false, + facplop = true, defeatIfDestroyedObjectiveID = 2, }, extraUnlocks = { @@ -42,45 +56,4967 @@ local function GetPlanet(planetUtilities, planetID) "subtacmissile", "shipcarrier", }, - startUnits = { + startUnits = { + { + name = "staticantinuke", + x = 1280, + z = 8140, + facing = 1, + }, + { + name = "striderhub", + x = 2096, + z = 9328, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2096, 9328}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2121, 9303}, options = {"shift"}}, + }, + }, + -- flotilla + { + name = "shipaa", + x = 1800, + z = 8900, + facing = 2, + }, + { + name = "shipcarrier", + x = 1900, + z = 8900, + facing = 2, + }, + { + name = "shipcarrier", + x = 2100, + z = 8900, + facing = 2, + }, + { + name = "shipcarrier", + x = 2300, + z = 8900, + facing = 2, + }, + { + name = "shipaa", + x = 2400, + z = 8900, + facing = 2, + }, + { + name = "shipassault", + x = 1800, + z = 8700, + facing = 2, + }, + { + name = "shiparty", + x = 1900, + z = 8630, + facing = 2, + }, + { + name = "shipassault", + x = 2100, + z = 8630, + facing = 2, + }, + { + name = "shiparty", + x = 2300, + z = 8630, + facing = 2, + }, + { + name = "shipassault", + x = 2400, + z = 8700, + facing = 2, + }, + { + name = "subtacmissile", + x = 2600, + z = 9300, + facing = 2, + }, + { + name = "subraider", + x = 2650, + z = 9150, + facing = 2, + }, + { + name = "subraider", + x = 2550, + z = 9150, + facing = 2, + }, + { + name = "subraider", + x = 2700, + z = 9200, + facing = 2, + }, + { + name = "subraider", + x = 2500, + z = 9200, + facing = 2, + }, + -- + { + name = "staticmex", + x = 1448, + z = 9464, + facing = 0, + }, + { + name = "staticmex", + x = 3416, + z = 9880, + facing = 0, + }, + { + name = "staticmex", + x = 1336, + z = 9656, + facing = 0, + }, + { + name = "staticmex", + x = 3288, + z = 10152, + facing = 0, + }, + { + name = "staticmex", + x = 3752, + z = 10104, + facing = 0, + }, + { + name = "staticmex", + x = 824, + z = 9976, + facing = 0, + }, + { + name = "staticmex", + x = 3848, + z = 9880, + facing = 0, + }, + { + name = "staticmex", + x = 328, + z = 10120, + facing = 0, + }, + { + name = "staticmex", + x = 152, + z = 9992, + facing = 0, + }, + { + name = "staticmex", + x = 2632, + z = 10072, + facing = 0, + }, + { + name = "staticmex", + x = 776, + z = 9304, + facing = 0, + }, + { + name = "energywind", + x = 2264, + z = 10216, + facing = 0, + }, + { + name = "energypylon", + x = 632, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 1144, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 1224, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 1304, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 1384, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 1464, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 1544, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 1624, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 1704, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 1784, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 1864, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 1944, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 2024, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 2104, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 2184, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 2344, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 2424, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 2504, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 2584, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 2664, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 2744, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 2824, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 2904, + z = 10216, + facing = 0, + }, + { + name = "energywind", + x = 2904, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 2824, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 2744, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 2664, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 2584, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 2504, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 2424, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 2344, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 2264, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 2184, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 2104, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 2024, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 1944, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 1864, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 1784, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 1704, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 1624, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 1544, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 1464, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 1384, + z = 10136, + facing = 0, + }, + { + name = "energypylon", + x = 3432, + z = 10040, + facing = 2, + }, + { + name = "energywind", + x = 1304, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 1224, + z = 10136, + facing = 0, + }, + { + name = "energywind", + x = 1144, + z = 10136, + facing = 0, + }, + { + name = "energypylon", + x = 4232, + z = 9992, + facing = 2, + }, + { + name = "energywind", + x = 1144, + z = 10056, + facing = 0, + }, + { + name = "energywind", + x = 1224, + z = 10056, + facing = 0, + }, + { + name = "factoryship", + x = 1952, + z = 9408, + facing = 2, + }, + { + name = "energywind", + x = 1304, + z = 10056, + facing = 0, + }, + { + name = "turretaafar", + x = 1728, + z = 9408, + facing = 2, + }, + { + name = "energywind", + x = 1384, + z = 10056, + facing = 0, + }, + { + name = "energywind", + x = 1464, + z = 10056, + facing = 0, + }, + { + name = "energywind", + x = 1544, + z = 10056, + facing = 0, + }, + { + name = "staticcon", + x = 2088, + z = 9416, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2088, 9416}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2113, 9391}, options = {"shift"}}, + }, + }, + { + name = "energywind", + x = 1624, + z = 10056, + facing = 0, + }, + { + name = "staticcon", + x = 2168, + z = 9416, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2168, 9416}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2193, 9391}, options = {"shift"}}, + }, + }, + { + name = "energywind", + x = 1704, + z = 10056, + facing = 0, + }, + { + name = "staticcon", + x = 2168, + z = 9496, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2168, 9496}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2193, 9471}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 2088, + z = 9496, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2088, 9496}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2113, 9471}, options = {"shift"}}, + }, + }, + { + name = "energywind", + x = 1784, + z = 10056, + facing = 0, + }, + { + name = "energywind", + x = 1864, + z = 10056, + facing = 0, + }, + { + name = "energywind", + x = 1944, + z = 10056, + facing = 0, + }, + { + name = "energywind", + x = 2024, + z = 10056, + facing = 0, + }, + { + name = "staticcon", + x = 2088, + z = 9576, + facing = 2, + }, + { + name = "energywind", + x = 2104, + z = 10056, + facing = 0, + }, + { + name = "staticcon", + x = 2168, + z = 9576, + facing = 2, + }, + { + name = "energywind", + x = 2184, + z = 10056, + facing = 0, + }, + { + name = "energywind", + x = 2264, + z = 10056, + facing = 0, + }, + { + name = "energywind", + x = 2344, + z = 10056, + facing = 0, + }, + { + name = "energywind", + x = 2424, + z = 10056, + facing = 0, + }, + { + name = "energywind", + x = 2504, + z = 10056, + facing = 0, + }, + { + name = "energywind", + x = 2584, + z = 10056, + facing = 0, + }, + { + name = "energywind", + x = 2744, + z = 10056, + facing = 0, + }, + { + name = "energywind", + x = 2824, + z = 10056, + facing = 0, + }, + { + name = "energywind", + x = 2904, + z = 10056, + facing = 0, + }, + { + name = "energywind", + x = 2904, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 2824, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 2744, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 2664, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 2584, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 2504, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 2424, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 2344, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 2264, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 2184, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 2104, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 2024, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 1944, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 1864, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 1784, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 1704, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 1624, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 1544, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 1464, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 1384, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 1304, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 1224, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 1144, + z = 9976, + facing = 0, + }, + { + name = "energywind", + x = 1144, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 1224, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 1304, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 1384, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 1464, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 1544, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 1624, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 1704, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 1784, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 1864, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 1944, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 2024, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 2104, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 2184, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 2264, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 2344, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 2424, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 2504, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 2584, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 2664, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 2744, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 2824, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 2904, + z = 9896, + facing = 0, + }, + { + name = "energywind", + x = 2904, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 2824, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 2744, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 2664, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 2584, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 2504, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 2424, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 2344, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 2264, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 2184, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 2104, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 2024, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 1944, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 1864, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 1784, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 1704, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 1624, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 1544, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 1464, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 1384, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 1304, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 1224, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 1144, + z = 9816, + facing = 0, + }, + { + name = "energywind", + x = 1144, + z = 9736, + facing = 0, + }, + { + name = "energywind", + x = 1224, + z = 9736, + facing = 0, + }, + { + name = "energywind", + x = 1304, + z = 9736, + facing = 0, + }, + { + name = "energywind", + x = 1384, + z = 9736, + facing = 0, + }, + { + name = "energywind", + x = 1464, + z = 9736, + facing = 0, + }, + { + name = "energywind", + x = 1544, + z = 9736, + facing = 0, + }, + { + name = "energywind", + x = 1544, + z = 9656, + facing = 0, + }, + { + name = "energywind", + x = 1464, + z = 9656, + facing = 0, + }, + { + name = "energywind", + x = 1384, + z = 9656, + facing = 0, + }, + { + name = "energywind", + x = 1224, + z = 9656, + facing = 0, + }, + { + name = "energywind", + x = 1144, + z = 9656, + facing = 0, + }, + { + name = "energywind", + x = 1144, + z = 9576, + facing = 0, + }, + { + name = "energywind", + x = 1224, + z = 9576, + facing = 0, + }, + { + name = "energywind", + x = 1304, + z = 9576, + facing = 0, + }, + { + name = "energywind", + x = 1384, + z = 9576, + facing = 0, + }, + { + name = "energywind", + x = 1464, + z = 9576, + facing = 0, + }, + { + name = "energywind", + x = 1544, + z = 9576, + facing = 0, + }, + { + name = "energywind", + x = 1544, + z = 9496, + facing = 0, + }, + { + name = "energywind", + x = 1384, + z = 9496, + facing = 0, + }, + { + name = "energywind", + x = 1304, + z = 9496, + facing = 0, + }, + { + name = "energywind", + x = 1224, + z = 9496, + facing = 0, + }, + { + name = "energywind", + x = 1144, + z = 9496, + facing = 0, + }, + { + name = "energywind", + x = 1144, + z = 9416, + facing = 0, + }, + { + name = "energywind", + x = 1224, + z = 9416, + facing = 0, + }, + { + name = "energywind", + x = 1304, + z = 9416, + facing = 0, + }, + { + name = "energywind", + x = 1384, + z = 9416, + facing = 0, + }, + { + name = "energywind", + x = 1464, + z = 9416, + facing = 0, + }, + { + name = "energywind", + x = 1544, + z = 9416, + facing = 0, + }, + { + name = "turrettorp", + x = 2392, + z = 9672, + facing = 2, + }, + { + name = "turrettorp", + x = 2600, + z = 9672, + facing = 2, + }, + { + name = "turrettorp", + x = 1144, + z = 9288, + facing = 2, + }, + { + name = "turrettorp", + x = 1336, + z = 9288, + facing = 2, + }, + { + name = "turrettorp", + x = 2808, + z = 9672, + facing = 2, + }, + { + name = "turrettorp", + x = 1528, + z = 9288, + facing = 2, + }, + { + name = "turrettorp", + x = 3000, + z = 9672, + facing = 2, + }, } }, aiConfig = { { - startX = 4000, - startZ = 75, + humanName = "Uba Rassa", aiLib = "Circuit_difficulty_autofill", - humanName = "Enemy", bitDependant = true, - commanderParameters = { - facplop = false, - }, - allyTeam = 1, + --aiLib = "Null AI", + --bitDependant = false, + allyTeam = 0, unlocks = { - "cloakraid", - }, - commanderLevel = 2, - commander = { - name = "Most Loyal Opposition", - chassis = "engineer", - decorations = { - "skin_support_dark", - icon_overhead = { image = "UW" } - }, - modules = { } + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretaalaser", + "turretaaclose", + "staticradar", + "staticcon", + "staticantinuke", + "staticrearm", + "factoryplane", + "planecon", + "planescout", + "planefighter", + "planeheavyfighter", + "bomberprec", + "bomberdisarm", + "bomberheavy", + "factoryship", + "shipcon", + "shipaa", + "shiparty", + "shipassault", + "shipriot", + "shipscout", + "shipskirm", + "shiptorpraider", + "subraider", + "factoryamph", + "amphcon", + "amphraid", + "amphimpulse", + "amphfloater", + "amphriot", + "amphassault", + "amphbomb", + "amphaa", + "factoryhover", + "hovercon", + "hoverraid", + "hoverriot", + "hoverskirm", + "hoverassault", + "hoverdepthcharge", + "hoverarty", + "hoveraa", }, + commander = false, startUnits = { - } - }, - }, - defeatConditionConfig = { - - }, - objectiveConfig = { - -- This is just related to displaying objectives on the UI. - }, - bonusObjectiveConfig = { - } + { + name = "staticantinuke", + x = 3240, + z = 6400, + facing = 2, + }, + { + name = "staticmex", + x = 1544, + z = 7032, + facing = 0, + }, + { + name = "staticmex", + x = 2584, + z = 8120, + facing = 0, + }, + { + name = "staticmex", + x = 2408, + z = 8040, + facing = 0, + }, + { + name = "staticmex", + x = 968, + z = 6856, + facing = 0, + }, + { + name = "staticmex", + x = 2328, + z = 8312, + facing = 0, + }, + { + name = "staticmex", + x = 856, + z = 7160, + facing = 0, + }, + { + name = "staticmex", + x = 648, + z = 7608, + facing = 0, + }, + { + name = "staticmex", + x = 3208, + z = 8824, + facing = 0, + }, + { + name = "staticmex", + x = 360, + z = 7480, + facing = 0, + }, + { + name = "staticmex", + x = 3432, + z = 8616, + facing = 0, + }, + { + name = "staticmex", + x = 1016, + z = 7864, + facing = 0, + }, + { + name = "staticmex", + x = 4120, + z = 8456, + facing = 0, + }, + { + name = "staticmex", + x = 1416, + z = 7864, + facing = 0, + }, + { + name = "staticmex", + x = 4360, + z = 8728, + facing = 0, + }, + { + name = "staticmex", + x = 184, + z = 8280, + facing = 0, + }, + { + name = "staticmex", + x = 3832, + z = 7720, + facing = 0, + }, + { + name = "staticmex", + x = 4600, + z = 7992, + facing = 0, + }, + { + name = "staticmex", + x = 5032, + z = 8248, + facing = 0, + }, + { + name = "staticmex", + x = 4920, + z = 8808, + facing = 0, + }, + { + name = "staticmex", + x = 4136, + z = 6152, + facing = 0, + }, + { + name = "staticmex", + x = 4296, + z = 6600, + facing = 0, + }, + { + name = "staticmex", + x = 4472, + z = 6360, + facing = 0, + }, + { + name = "staticmex", + x = 5000, + z = 6328, + facing = 0, + }, + { + name = "turrettorp", + x = 1624, + z = 9592, + facing = 2, + }, + { + name = "staticmex", + x = 3432, + z = 6328, + facing = 0, + }, + { + name = "staticmex", + x = 4792, + z = 9688, + facing = 0, + }, + { + name = "staticmex", + x = 4936, + z = 9816, + facing = 0, + }, + { + name = "energysingu", + x = 4920, + z = 10056, + facing = 0, + }, + { + name = "energywind", + x = 5048, + z = 9944, + facing = 0, + }, + { + name = "energywind", + x = 4968, + z = 9944, + facing = 0, + }, + { + name = "energywind", + x = 4888, + z = 9944, + facing = 0, + }, + { + name = "energywind", + x = 4808, + z = 9944, + facing = 0, + }, + { + name = "energywind", + x = 4728, + z = 9944, + facing = 0, + }, + { + name = "energywind", + x = 4648, + z = 9944, + facing = 0, + }, + { + name = "energywind", + x = 4648, + z = 9864, + facing = 0, + }, + { + name = "energywind", + x = 4728, + z = 9864, + facing = 0, + }, + { + name = "energywind", + x = 4808, + z = 9864, + facing = 0, + }, + { + name = "energywind", + x = 4888, + z = 9864, + facing = 0, + }, + { + name = "energywind", + x = 4968, + z = 9864, + facing = 0, + }, + { + name = "energywind", + x = 5048, + z = 9864, + facing = 0, + }, + { + name = "energywind", + x = 5048, + z = 9784, + facing = 0, + }, + { + name = "energywind", + x = 4888, + z = 9784, + facing = 0, + }, + { + name = "energywind", + x = 4808, + z = 9784, + facing = 0, + }, + { + name = "energywind", + x = 4728, + z = 9784, + facing = 0, + }, + { + name = "energywind", + x = 4648, + z = 9784, + facing = 0, + }, + { + name = "energywind", + x = 4648, + z = 9704, + facing = 0, + }, + { + name = "energywind", + x = 4728, + z = 9704, + facing = 0, + }, + { + name = "energywind", + x = 4888, + z = 9704, + facing = 0, + }, + { + name = "energywind", + x = 4968, + z = 9704, + facing = 0, + }, + { + name = "energywind", + x = 5048, + z = 9704, + facing = 0, + }, + { + name = "energywind", + x = 5048, + z = 9624, + facing = 0, + }, + { + name = "staticmex", + x = 4520, + z = 6744, + facing = 2, + }, + { + name = "energywind", + x = 4968, + z = 9624, + facing = 0, + }, + { + name = "energywind", + x = 4888, + z = 9624, + facing = 0, + }, + { + name = "energywind", + x = 4808, + z = 9624, + facing = 0, + }, + { + name = "energywind", + x = 4728, + z = 9624, + facing = 0, + }, + { + name = "energywind", + x = 4648, + z = 9624, + facing = 0, + }, + { + name = "energywind", + x = 4648, + z = 9544, + facing = 0, + }, + { + name = "energywind", + x = 4728, + z = 9544, + facing = 0, + }, + { + name = "energywind", + x = 4808, + z = 9544, + facing = 0, + }, + { + name = "energywind", + x = 4888, + z = 9544, + facing = 0, + }, + { + name = "energywind", + x = 4968, + z = 9544, + facing = 0, + }, + { + name = "energywind", + x = 5048, + z = 9544, + facing = 0, + }, + { + name = "energywind", + x = 5048, + z = 9464, + facing = 0, + }, + { + name = "energywind", + x = 4968, + z = 9464, + facing = 0, + }, + { + name = "energywind", + x = 4888, + z = 9464, + facing = 0, + }, + { + name = "energywind", + x = 4808, + z = 9464, + facing = 0, + }, + { + name = "energywind", + x = 4728, + z = 9464, + facing = 0, + }, + { + name = "energywind", + x = 4648, + z = 9464, + facing = 0, + }, + { + name = "energywind", + x = 4648, + z = 9384, + facing = 0, + }, + { + name = "energywind", + x = 4728, + z = 9384, + facing = 0, + }, + { + name = "energywind", + x = 4808, + z = 9384, + facing = 0, + }, + { + name = "energywind", + x = 4888, + z = 9384, + facing = 0, + }, + { + name = "energywind", + x = 4968, + z = 9384, + facing = 0, + }, + { + name = "energywind", + x = 5048, + z = 9384, + facing = 0, + }, + { + name = "turrettorp", + x = 4168, + z = 9512, + facing = 2, + }, + { + name = "turrettorp", + x = 4344, + z = 9368, + facing = 2, + }, + { + name = "turrettorp", + x = 4520, + z = 9224, + facing = 2, + }, + { + name = "energypylon", + x = 4760, + z = 8872, + facing = 2, + }, + { + name = "energypylon", + x = 4520, + z = 8152, + facing = 2, + }, + { + name = "factoryship", + x = 3168, + z = 8048, + facing = 2, + }, + { + name = "factoryhover", + x = 3360, + z = 8032, + facing = 2, + }, + { + name = "staticrearm", + x = 4760, + z = 7896, + facing = 2, + }, + { + name = "energypylon", + x = 4216, + z = 7368, + facing = 2, + }, + { + name = "factoryamph", + x = 3000, + z = 8040, + facing = 2, + }, + { + name = "factoryplane", + x = 4928, + z = 7880, + facing = 2, + }, + { + name = "staticcon", + x = 2984, + z = 8232, + facing = 2, + }, + { + name = "staticcon", + x = 4888, + z = 8040, + facing = 2, + }, + { + name = "staticcon", + x = 3064, + z = 8232, + facing = 2, + }, + { + name = "staticcon", + x = 4984, + z = 8040, + facing = 2, + }, + { + name = "staticcon", + x = 3144, + z = 8232, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3160, 8047}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3144, 8232}, options = {"shift"}}, + }, + }, + { + name = "energypylon", + x = 4520, + z = 6504, + facing = 2, + }, + { + name = "staticcon", + x = 3224, + z = 8232, + facing = 2, + }, + { + name = "staticcon", + x = 3304, + z = 8232, + facing = 2, + }, + { + name = "staticcon", + x = 3384, + z = 8232, + facing = 2, + }, + { + name = "energypylon", + x = 3720, + z = 5928, + facing = 2, + }, + { + name = "staticcon", + x = 3064, + z = 8312, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3359, 8064}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3064, 8312}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 3144, + z = 8312, + facing = 2, + }, + { + name = "staticcon", + x = 3224, + z = 8312, + facing = 2, + }, + { + name = "staticcon", + x = 3304, + z = 8312, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3359, 8064}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3304, 8312}, options = {"shift"}}, + }, + }, + { + name = "energypylon", + x = 648, + z = 8904, + facing = 0, + }, + { + name = "energypylon", + x = 264, + z = 8040, + facing = 0, + }, + { + name = "energypylon", + x = 776, + z = 7208, + facing = 0, + }, + { + name = "energypylon", + x = 1000, + z = 8024, + facing = 0, + }, + { + name = "turretheavy", + x = 1432, + z = 8008, + facing = 1, + }, + { + name = "turretheavy", + x = 1176, + z = 7048, + facing = 1, + }, + { + name = "turretantiheavy", + x = 3328, + z = 5904, + facing = 3, + }, + { + name = "turretheavy", + x = 824, + z = 6792, + facing = 2, + }, + { + name = "turretaaflak", + x = 3576, + z = 5800, + facing = 3, + }, + { + name = "staticarty", + x = 1080, + z = 6824, + facing = 2, + }, + { + name = "turretaaflak", + x = 3496, + z = 6152, + facing = 3, + }, + { + name = "turretaaflak", + x = 680, + z = 7032, + facing = 2, + }, + { + name = "turretaaflak", + x = 920, + z = 7080, + facing = 2, + }, + { + name = "turretheavy", + x = 4152, + z = 6040, + facing = 2, + }, + { + name = "turretaaflak", + x = 1096, + z = 7288, + facing = 2, + }, + { + name = "turretheavy", + x = 4664, + z = 6264, + facing = 2, + }, + { + name = "turretriot", + x = 4440, + z = 6136, + facing = 2, + }, + { + name = "energypylon", + x = 1960, + z = 8216, + facing = 2, + }, + { + name = "energypylon", + x = 2760, + z = 8520, + facing = 2, + }, + { + name = "energypylon", + x = 3352, + z = 9048, + facing = 2, + }, + { + name = "energypylon", + x = 3736, + z = 8200, + facing = 2, + }, + { + name = "staticstorage", + x = 3064, + z = 8376, + facing = 2, + }, + { + name = "staticstorage", + x = 3304, + z = 8392, + facing = 2, + }, + { + name = "turretantiheavy", + x = 4432, + z = 7968, + facing = 2, + }, + { + name = "turrettorp", + x = 3400, + z = 7432, + facing = 2, + }, + { + name = "turrettorp", + x = 3272, + z = 7432, + facing = 2, + }, + { + name = "turrettorp", + x = 3144, + z = 7432, + facing = 2, + }, + { + name = "staticradar", + x = 1200, + z = 7712, + facing = 2, + }, + { + name = "turrettorp", + x = 1736, + z = 7528, + facing = 2, + }, + { + name = "turrettorp", + x = 1912, + z = 7512, + facing = 2, + }, + { + name = "turrettorp", + x = 2072, + z = 7512, + facing = 2, + }, + { + name = "turrettorp", + x = 2392, + z = 6952, + facing = 2, + }, + { + name = "turrettorp", + x = 2536, + z = 6952, + facing = 2, + }, + { + name = "turrettorp", + x = 2696, + z = 6952, + facing = 2, + }, + { + name = "staticheavyradar", + x = 944, + z = 6736, + facing = 2, + }, + { + name = "staticcon", + x = 4888, + z = 8088, + facing = 2, + }, + { + name = "shipscout", + x = 2046, + z = 6704, + facing = 2, + }, + { + name = "turretlaser", + x = 880, + z = 7296, + facing = 2, + }, + { + name = "energysolar", + x = 1336, + z = 7592, + facing = 2, + }, + { + name = "energysolar", + x = 1384, + z = 7672, + facing = 2, + }, + { + name = "turrettorp", + x = 2760, + z = 6056, + facing = 2, + }, + { + name = "turretlaser", + x = 1248, + z = 7920, + facing = 2, + }, + { + name = "hoverriot", + x = 619, + z = 6068, + facing = 1, + }, + { + name = "amphassault", + x = 1456, + z = 5715, + facing = 1, + patrolRoute = { + {1423, 5729}, + {1481, 5702}, + }, + }, + { + name = "amphcon", + x = 362, + z = 6587, + facing = 3, + }, + { + name = "staticstorage", + x = 4136, + z = 8408, + facing = 2, + }, + { + name = "shipassault", + x = 352, + z = 6572, + facing = 0, + patrolRoute = { + {337, 6552}, + {192, 6672}, + }, + }, + { + name = "amphcon", + x = 3089, + z = 5092, + facing = 2, + }, + { + name = "hovercon", + x = 2023, + z = 7726, + facing = 0, + }, + { + name = "staticcon", + x = 2904, + z = 8168, + facing = 2, + }, + { + name = "amphfloater", + x = 1396, + z = 5778, + facing = 3, + patrolRoute = { + {1405, 5790}, + {1423, 5729}, + }, + }, + { + name = "hoverdepthcharge", + x = 1080, + z = 5973, + facing = 1, + patrolRoute = { + {1144, 6152}, + {1265, 6027}, + }, + }, + { + name = "turretlaser", + x = 3088, + z = 7760, + facing = 2, + }, + { + name = "amphcon", + x = 2126, + z = 7118, + facing = 3, + }, + { + name = "hoverraid", + x = 404, + z = 5464, + facing = 3, + }, + { + name = "amphcon", + x = 657, + z = 6075, + facing = 3, + }, + { + name = "planecon", + x = 536, + z = 6122, + facing = 1, + }, + { + name = "shipaa", + x = 2649, + z = 6501, + facing = 2, + }, + { + name = "hoverdepthcharge", + x = 1370, + z = 5706, + facing = 2, + patrolRoute = { + {1423, 5729}, + {1366, 5757}, + }, + }, + { + name = "shipskirm", + x = 1813, + z = 5887, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1447, 5670}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1423, 5729}, options = {"shift"}}, + }, + }, + { + name = "energywind", + x = 3080, + z = 9512, + facing = 2, + }, + { + name = "hoverarty", + x = 3354, + z = 8040, + facing = 2, + }, + { + name = "staticcon", + x = 4936, + z = 8024, + facing = 2, + }, + { + name = "hovercon", + x = 631, + z = 6283, + facing = 0, + }, + { + name = "hoverarty", + x = 1320, + z = 5705, + facing = 2, + }, + { + name = "energywind", + x = 3016, + z = 9592, + facing = 2, + }, + { + name = "turrettorp", + x = 3880, + z = 7816, + facing = 2, + }, + { + name = "energywind", + x = 2920, + z = 9688, + facing = 2, + }, + { + name = "hovercon", + x = 401, + z = 6551, + facing = 2, + }, + { + name = "energywind", + x = 2968, + z = 9752, + facing = 2, + }, + { + name = "staticcon", + x = 4984, + z = 8088, + facing = 2, + }, + { + name = "shipcon", + x = 1863, + z = 5757, + facing = 3, + }, + { + name = "energywind", + x = 2920, + z = 9640, + facing = 2, + }, + { + name = "turretlaser", + x = 4256, + z = 6560, + facing = 3, + }, + { + name = "hoverassault", + x = 1555, + z = 6223, + facing = 0, + }, + { + name = "staticmex", + x = 3576, + z = 5592, + facing = 0, + }, + { + name = "staticcon", + x = 4936, + z = 8104, + facing = 2, + }, + { + name = "staticcon", + x = 3000, + z = 8184, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3160, 8047}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3000, 8184}, options = {"shift"}}, + }, + }, + { + name = "hoverassault", + x = 1729, + z = 6303, + facing = 0, + }, + { + name = "staticradar", + x = 3904, + z = 7936, + facing = 2, + }, + { + name = "turrettorp", + x = 3448, + z = 8664, + facing = 2, + }, + { + name = "hoverarty", + x = 1279, + z = 5750, + facing = 1, + }, + { + name = "staticcon", + x = 2936, + z = 8216, + facing = 2, + }, + { + name = "turrettorp", + x = 2472, + z = 8120, + facing = 2, + }, + { + name = "turretlaser", + x = 3680, + z = 5984, + facing = 3, + }, + { + name = "turrettorp", + x = 4808, + z = 10024, + facing = 2, + }, + { + name = "amphfloater", + x = 2898, + z = 7412, + facing = 2, + }, + { + name = "turretriot", + x = 3768, + z = 5720, + facing = 2, + }, + { + name = "staticcon", + x = 2952, + z = 8168, + facing = 2, + }, + { + name = "turretlaser", + x = 4224, + z = 8640, + facing = 2, + }, + { + name = "shipassault", + x = 1393, + z = 5752, + facing = 1, + patrolRoute = { + {1360, 5738}, + {1423, 5729}, + }, + }, + { + name = "hovercon", + x = 1167, + z = 5994, + facing = 3, + }, + { + name = "hovercon", + x = 548, + z = 6274, + facing = 1, + }, + { + name = "staticcon", + x = 2936, + z = 8264, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3160, 8047}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2936, 8264}, options = {"shift"}}, + }, + }, + { + name = "shipcon", + x = 712, + z = 6385, + facing = 2, + }, + { + name = "staticcon", + x = 2984, + z = 8280, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3160, 8047}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2984, 8280}, options = {"shift"}}, + }, + }, + { + name = "hovercon", + x = 1633, + z = 7914, + facing = 2, + }, + { + name = "energypylon", + x = 1672, + z = 9016, + facing = 2, + }, + { + name = "staticcon", + x = 3048, + z = 8184, + facing = 2, + }, + { + name = "turretlaser", + x = 3184, + z = 8320, + facing = 2, + }, + { + name = "turretlaser", + x = 400, + z = 8016, + facing = 2, + }, + { + name = "turrettorp", + x = 2984, + z = 10088, + facing = 2, + }, + { + name = "amphcon", + x = 2533, + z = 6885, + facing = 2, + }, + { + name = "energypylon", + x = 1448, + z = 6040, + facing = 1, + buildProgress = 0.1812, + }, + { + name = "shipcon", + x = 1579, + z = 6297, + facing = 2, + }, + { + name = "hovercon", + x = 1055, + z = 6035, + facing = 3, + }, + { + name = "hoverraid", + x = 180, + z = 5157, + facing = 2, + }, + { + name = "shiparty", + x = 1728, + z = 5877, + facing = 2, + }, + { + name = "hovercon", + x = 3874, + z = 10087, + facing = 3, + }, + { + name = "staticradar", + x = 3648, + z = 9760, + facing = 2, + }, + { + name = "staticcon", + x = 2888, + z = 8216, + facing = 2, + }, + { + name = "shipassault", + x = 1460, + z = 5743, + facing = 0, + patrolRoute = { + {1479, 5698}, + {1423, 5729}, + }, + }, + { + name = "shipcon", + x = 2871, + z = 6445, + facing = 0, + }, + { + name = "staticmex", + x = 1400, + z = 6152, + facing = 0, + }, + { + name = "energypylon", + x = 1208, + z = 7272, + facing = 2, + }, + { + name = "hovercon", + x = 4220, + z = 5585, + facing = 2, + }, + { + name = "amphraid", + x = 2193, + z = 5174, + facing = 2, + }, + { + name = "turrettorp", + x = 536, + z = 6424, + facing = 1, + }, + { + name = "staticcon", + x = 2936, + z = 8312, + facing = 2, + }, + { + name = "hoverskirm", + x = 3065, + z = 7588, + facing = 2, + }, + { + name = "staticradar", + x = 3488, + z = 6080, + facing = 2, + }, + { + name = "hovercon", + x = 3470, + z = 7288, + facing = 2, + }, + { + name = "amphfloater", + x = 1435, + z = 5672, + facing = 0, + patrolRoute = { + {1436, 5666}, + {1423, 5729}, + }, + }, + { + name = "turretmissile", + x = 640, + z = 6192, + facing = 1, + buildProgress = 0.53659999, + }, + { + name = "shipcon", + x = 904, + z = 5890, + facing = 0, + }, + { + name = "amphcon", + x = 1544, + z = 6084, + facing = 3, + }, + { + name = "amphassault", + x = 1900, + z = 6022, + facing = 2, + }, + { + name = "staticstorage", + x = 2552, + z = 8040, + facing = 2, + }, + { + name = "hovercon", + x = 1495, + z = 6048, + facing = 2, + }, + { + name = "energysolar", + x = 1304, + z = 7704, + facing = 2, + }, + { + name = "energywind", + x = 1544, + z = 7688, + facing = 2, + }, + { + name = "shipcon", + x = 1404, + z = 5968, + facing = 3, + }, + { + name = "amphcon", + x = 2652, + z = 6892, + facing = 2, + }, + { + name = "hoveraa", + x = 2781, + z = 6622, + facing = 2, + }, + { + name = "staticmex", + x = 520, + z = 6376, + facing = 0, + }, + { + name = "turrettorp", + x = 136, + z = 5256, + facing = 1, + }, + { + name = "energywind", + x = 1608, + z = 7784, + facing = 2, + }, + { + name = "staticcon", + x = 2888, + z = 8264, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3160, 8047}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2888, 8264}, options = {"shift"}}, + }, + }, + { + name = "shiptorpraider", + x = 1377, + z = 5641, + facing = 3, + }, + { + name = "amphcon", + x = 2901, + z = 7702, + facing = 2, + }, + { + name = "staticcon", + x = 3096, + z = 8184, + facing = 2, + }, + { + name = "shiparty", + x = 3160, + z = 8047, + facing = 2, + buildProgress = 0.0486, + }, + { + name = "turrettorp", + x = 616, + z = 6392, + facing = 1, + }, + { + name = "hovercon", + x = 978, + z = 8479, + facing = 3, + }, + { + name = "shipcon", + x = 1895, + z = 6497, + facing = 2, + }, + { + name = "amphcon", + x = 3577, + z = 6868, + facing = 2, + }, + { + name = "turrettorp", + x = 952, + z = 5944, + facing = 1, + }, + { + name = "staticcon", + x = 2984, + z = 8328, + facing = 2, + }, + { + name = "shipassault", + x = 2713, + z = 7189, + facing = 3, + }, + { + name = "hoverassault", + x = 2157, + z = 6782, + facing = 3, + }, + { + name = "staticcon", + x = 2888, + z = 8312, + facing = 2, + }, + { + name = "amphraid", + x = 1722, + z = 6662, + facing = 1, + }, + { + name = "staticradar", + x = 1408, + z = 6208, + facing = 1, + }, + { + name = "amphaa", + x = 2831, + z = 7330, + facing = 3, + }, + { + name = "energypylon", + x = 568, + z = 6376, + facing = 1, + }, + { + name = "shipaa", + x = 2730, + z = 6895, + facing = 2, + }, + { + name = "shipaa", + x = 3160, + z = 7898, + facing = 2, + }, + { + name = "amphaa", + x = 2976, + z = 7569, + facing = 2, + }, + { + name = "staticmex", + x = 1496, + z = 5928, + facing = 0, + buildProgress = 0.82660002, + }, + { + name = "amphraid", + x = 2977, + z = 7681, + facing = 2, + }, + { + name = "shipscout", + x = 3102, + z = 7402, + facing = 2, + }, + { + name = "amphassault", + x = 3000, + z = 8004, + facing = 2, + buildProgress = 0.233, + }, + { + name = "shipscout", + x = 3144, + z = 7728, + facing = 2, + }, + } + }, + { + startX = 3300, + startZ = 700, + humanName = "Xill", + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + --aiLib = "Null AI", + --bitDependant = false, + commanderParameters = { + facplop = false, + }, + allyTeam = 1, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretaalaser", + "turretaaclose", + "staticradar", + "staticcon", + "staticantinuke", + "staticrearm", + "factoryplane", + "planecon", + "planescout", + "planefighter", + "planeheavyfighter", + "bomberprec", + "bomberdisarm", + "bomberheavy", + "factoryship", + "shipcon", + "shipaa", + "shiparty", + "shipassault", + "shipriot", + "shipscout", + "shipskirm", + "shiptorpraider", + "subraider", + "factoryamph", + "striderhub", + "shipcarrier", + "shipheavyarty", + "striderdetriment", + "staticnuke", + }, + commanderLevel = 6, + commander = { + name = "Ballast", + chassis = "support", + modules = { + "commweapon_beamlaser", + "commweapon_multistunner", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_autorepair", + "module_autorepair", + "module_autorepair", + "module_adv_nano", + "module_adv_nano", + "module_adv_nano", + "module_adv_nano", + "module_adv_nano", + } + }, + midgameUnits = { + { + name = "shipheavyarty", + x = 3200, + z = 100, + facing = 0, + spawnRadius = 50, + delay = 6*30*60, + orbitalDrop = false, + }, + { + name = "shipcarrier", + x = 3400, + z = 100, + facing = 0, + spawnRadius = 50, + delay = 6*30*60, + difficultyAtLeast = 2, + orbitalDrop = false, + }, + { + name = "shipheavyarty", + x = 3600, + z = 100, + facing = 0, + spawnRadius = 50, + delay = 6*30*60, + difficultyAtLeast = 3, + orbitalDrop = false, + }, + { + name = "shipcarrier", + x = 3800, + z = 100, + facing = 0, + spawnRadius = 50, + delay = 6*30*60, + difficultyAtLeast = 4, + orbitalDrop = false, + }, + { + name = "striderdetriment", + x = 3200, + z = 100, + facing = 0, + spawnRadius = 50, + delay = 10*30*60, + orbitalDrop = false, + }, + { + name = "striderdetriment", + x = 3200, + z = 300, + facing = 0, + spawnRadius = 50, + delay = 10*30*60, + difficultyAtLeast = 4, + orbitalDrop = false, + }, + { + name = "shipheavyarty", + x = 3200, + z = 100, + facing = 0, + spawnRadius = 50, + delay = 15*30*60, + orbitalDrop = false, + }, + { + name = "shipcarrier", + x = 3400, + z = 100, + facing = 0, + spawnRadius = 50, + delay = 15*30*60, + difficultyAtLeast = 2, + orbitalDrop = false, + }, + { + name = "shipheavyarty", + x = 3600, + z = 100, + facing = 0, + spawnRadius = 50, + delay = 15*30*60, + difficultyAtLeast = 3, + orbitalDrop = false, + }, + { + name = "shipcarrier", + x = 3800, + z = 100, + facing = 0, + spawnRadius = 50, + delay = 15*30*60, + difficultyAtLeast = 4, + orbitalDrop = false, + }, + }, + startUnits = { + { + name = "striderdetriment", + x = 1600, + z = 1600, + facing = 2, + }, + { + name = "striderdetriment", + x = 1900, + z = 1600, + facing = 2, + difficultyAtLeast = 4, + }, + { + name = "energysingu", + x = 344, + z = 1000, + facing = 2, + }, + { + name = "energysingu", + x = 4952, + z = 552, + facing = 2, + }, + { + name = "energysingu", + x = 2888, + z = 104, + facing = 2, + }, + { + name = "staticantinuke", + x = 4344, + z = 1888, + facing = 2, + }, + { + name = "staticantinuke", + x = 1000, + z = 1888, + facing = 2, + }, + { + name = "staticnuke", + x = 474, + z = 2265, + facing = 0, + difficultyAtLeast = 3, + }, + { + name = "staticmex", + x = 2088, + z = 1048, + facing = 0, + }, + { + name = "staticmex", + x = 2232, + z = 904, + facing = 0, + }, + { + name = "staticmex", + x = 2056, + z = 424, + facing = 0, + }, + { + name = "staticmex", + x = 4232, + z = 1912, + facing = 0, + }, + { + name = "staticmex", + x = 2216, + z = 56, + facing = 0, + }, + { + name = "staticmex", + x = 4216, + z = 2344, + facing = 0, + }, + { + name = "staticmex", + x = 1464, + z = 280, + facing = 0, + }, + { + name = "staticmex", + x = 1224, + z = 104, + facing = 0, + }, + { + name = "staticmex", + x = 5064, + z = 1992, + facing = 0, + }, + { + name = "staticmex", + x = 4888, + z = 1400, + facing = 0, + }, + { + name = "staticmex", + x = 440, + z = 376, + facing = 0, + }, + { + name = "staticmex", + x = 5048, + z = 1272, + facing = 0, + }, + { + name = "staticmex", + x = 472, + z = 536, + facing = 0, + }, + { + name = "staticmex", + x = 3960, + z = 392, + facing = 0, + }, + { + name = "staticrearm", + x = 2216, + z = 184, + facing = 2, + }, + { + name = "factoryplane", + x = 2144, + z = 328, + facing = 2, + }, + { + name = "staticcon", + x = 2008, + z = 184, + facing = 2, + }, + { + name = "staticcon", + x = 2008, + z = 280, + facing = 2, + }, + { + name = "staticstorage", + x = 1976, + z = 24, + facing = 2, + }, + { + name = "staticstorage", + x = 1848, + z = 40, + facing = 2, + }, + { + name = "striderhub", + x = 1040, + z = 1232, + facing = 2, + }, + { + name = "staticcon", + x = 1112, + z = 1288, + facing = 2, + }, + { + name = "staticcon", + x = 1192, + z = 1320, + facing = 2, + }, + { + name = "energypylon", + x = 984, + z = 504, + facing = 0, + }, + { + name = "energypylon", + x = 1832, + z = 328, + facing = 0, + }, + { + name = "energypylon", + x = 2504, + z = 936, + facing = 0, + }, + { + name = "energypylon", + x = 3240, + z = 584, + facing = 0, + }, + { + name = "energypylon", + x = 4200, + z = 440, + facing = 0, + }, + { + name = "energypylon", + x = 4776, + z = 712, + facing = 0, + }, + { + name = "energypylon", + x = 4824, + z = 1688, + facing = 0, + }, + { + name = "energypylon", + x = 4408, + z = 2024, + facing = 0, + }, + { + name = "turretantiheavy", + x = 4112, + z = 1920, + facing = 0, + }, + { + name = "turretheavy", + x = 4712, + z = 2088, + facing = 0, + }, + { + name = "turretriot", + x = 4392, + z = 2264, + facing = 0, + }, + { + name = "turretriot", + x = 4952, + z = 2104, + facing = 0, + }, + { + name = "turrettorp", + x = 1416, + z = 1480, + facing = 0, + }, + { + name = "turretaafar", + x = 4496, + z = 1824, + facing = 0, + }, + { + name = "turrettorp", + x = 1624, + z = 1304, + facing = 0, + }, + { + name = "turretaaflak", + x = 4712, + z = 1720, + facing = 0, + }, + { + name = "turrettorp", + x = 1848, + z = 1064, + facing = 0, + }, + { + name = "turrettorp", + x = 2312, + z = 1448, + facing = 0, + }, + { + name = "turrettorp", + x = 2616, + z = 1528, + facing = 0, + }, + { + name = "turrettorp", + x = 3112, + z = 1352, + facing = 0, + }, + { + name = "turrettorp", + x = 3496, + z = 1272, + facing = 0, + }, + { + name = "turrettorp", + x = 1608, + z = 2408, + facing = 0, + }, + { + name = "turrettorp", + x = 2024, + z = 2344, + facing = 0, + }, + { + name = "turrettorp", + x = 2264, + z = 2312, + facing = 0, + }, + { + name = "turrettorp", + x = 1816, + z = 3432, + facing = 0, + }, + { + name = "turrettorp", + x = 2264, + z = 3368, + facing = 0, + }, + { + name = "turrettorp", + x = 2744, + z = 3304, + facing = 0, + }, + { + name = "factoryship", + x = 2864, + z = 864, + facing = 0, + }, + { + name = "staticcon", + x = 3032, + z = 856, + facing = 0, + }, + { + name = "staticcon", + x = 3128, + z = 856, + facing = 0, + }, + { + name = "staticcon", + x = 3224, + z = 856, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3199, 881}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3224, 856}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 3320, + z = 856, + facing = 0, + }, + { + name = "staticcon", + x = 3416, + z = 856, + facing = 0, + }, + { + name = "striderhub", + x = 3232, + z = 960, + facing = 0, + }, + { + name = "turretaaflak", + x = 3064, + z = 728, + facing = 0, + }, + { + name = "turretaaflak", + x = 3400, + z = 728, + facing = 0, + }, + { + name = "turrettorp", + x = 392, + z = 376, + facing = 0, + }, + { + name = "bomberheavy", + x = 1770, + z = -184, + facing = 2, + }, + { + name = "shipcon", + x = 514, + z = 3565, + facing = 3, + }, + { + name = "planeheavyfighter", + x = 1648, + z = 3633, + facing = 2, + }, + { + name = "turrettorp", + x = 2216, + z = 1048, + facing = 0, + }, + { + name = "shipcon", + x = 3301, + z = 4417, + facing = 1, + }, + { + name = "shiparty", + x = 352, + z = 4189, + facing = 0, + }, + { + name = "shipaa", + x = 2502, + z = 4823, + facing = 1, + }, + { + name = "staticradar", + x = 2912, + z = 1664, + facing = 0, + }, + { + name = "turretlaser", + x = 2208, + z = 560, + facing = 0, + }, + { + name = "turrettorp", + x = 2664, + z = 2008, + facing = 0, + }, + { + name = "staticcon", + x = 2840, + z = 712, + facing = 0, + }, + { + name = "shiptorpraider", + x = 3098, + z = 1194, + facing = 0, + }, + { + name = "turrettorp", + x = 3528, + z = 2600, + facing = 0, + }, + { + name = "shiparty", + x = 894, + z = 3509, + facing = 0, + }, + { + name = "turretlaser", + x = 4928, + z = 1536, + facing = 0, + }, + { + name = "planecon", + x = 3574, + z = 3953, + facing = 0, + }, + { + name = "turretlaser", + x = 1344, + z = 128, + facing = 0, + }, + { + name = "shipassault", + x = 4486, + z = 3631, + facing = 1, + }, + { + name = "staticradar", + x = 1536, + z = 352, + facing = 0, + }, + { + name = "planeheavyfighter", + x = 1991, + z = 3651, + facing = 2, + }, + { + name = "shiptorpraider", + x = 1743, + z = 2581, + facing = 0, + }, + { + name = "staticradar", + x = 3776, + z = 512, + facing = 0, + }, + { + name = "turrettorp", + x = 1496, + z = 3304, + facing = 0, + }, + { + name = "turrettorp", + x = 504, + z = 616, + facing = 0, + }, + { + name = "turretlaser", + x = 2384, + z = 400, + facing = 0, + }, + { + name = "turrettorp", + x = 4024, + z = 280, + facing = 0, + }, + { + name = "shipcon", + x = 4537, + z = 3460, + facing = 0, + }, + { + name = "planeheavyfighter", + x = 1825, + z = 6608, + facing = 1, + }, + { + name = "staticradar", + x = 1696, + z = 3104, + facing = 0, + }, + { + name = "turretmissile", + x = 1600, + z = 3488, + facing = 0, + }, + { + name = "turretlaser", + x = 3664, + z = 3632, + facing = 0, + }, + { + name = "turretlaser", + x = 4096, + z = 2160, + facing = 0, + }, + { + name = "turrettorp", + x = 1576, + z = 3288, + facing = 0, + }, + { + name = "turretlaser", + x = 1056, + z = 1712, + facing = 0, + }, + { + name = "staticradar", + x = 4960, + z = 1744, + facing = 0, + }, + { + name = "bomberdisarm", + x = 2147, + z = 91, + facing = 2, + }, + { + name = "staticcon", + x = 1512, + z = 3080, + facing = 0, + }, + { + name = "shipriot", + x = 4679, + z = 4177, + facing = 1, + }, + { + name = "staticcon", + x = 3592, + z = 4472, + facing = 3, + buildProgress = 0.71929997, + }, + { + name = "turretlaser", + x = 160, + z = 2272, + facing = 0, + }, + { + name = "staticradar", + x = 192, + z = 2080, + facing = 0, + }, + { + name = "shipcon", + x = 4491, + z = 3450, + facing = 0, + }, + { + name = "turrettorp", + x = 1624, + z = 3208, + facing = 0, + }, + { + name = "turretaalaser", + x = 1656, + z = 3288, + facing = 0, + }, + { + name = "shipcon", + x = 3133, + z = 4603, + facing = 0, + }, + { + name = "shipscout", + x = 2865, + z = 1358, + facing = 0, + }, + { + name = "staticradar", + x = 3584, + z = 3456, + facing = 0, + }, + { + name = "shipskirm", + x = 3391, + z = 2941, + facing = 0, + }, + { + name = "subraider", + x = 2776, + z = 3581, + facing = 0, + }, + { + name = "shiptorpraider", + x = 2871, + z = 3628, + facing = 0, + }, + { + name = "turretmissile", + x = 3392, + z = 3824, + facing = 0, + }, + { + name = "shiptorpraider", + x = 2895, + z = 2657, + facing = 0, + }, + { + name = "subraider", + x = 3480, + z = 2339, + facing = 0, + }, + { + name = "shipscout", + x = 4157, + z = 2698, + facing = 0, + }, + { + name = "turretmissile", + x = 4720, + z = 3568, + facing = 3, + }, + { + name = "subraider", + x = 2944, + z = 1965, + facing = 0, + }, + { + name = "turrettorp", + x = 136, + z = 4408, + facing = 1, + }, + { + name = "turretlaser", + x = 3632, + z = 4064, + facing = 0, + buildProgress = 0.2888, + }, + { + name = "shiparty", + x = 2872, + z = 864, + facing = 0, + buildProgress = 0.0905, + }, + { + name = "staticmex", + x = 3256, + z = 4888, + facing = 0, + buildProgress = 0.1399, + }, + } + }, + { + humanName = "Rapla IV", + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + --aiLib = "Null AI", + --bitDependant = false, + allyTeam = 1, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretaalaser", + "turretaaclose", + "staticradar", + "staticcon", + "staticantinuke", + "factoryship", + "shipcon", + "shipaa", + "shiparty", + "shipassault", + "shipriot", + "shipscout", + "shipskirm", + "shiptorpraider", + "subraider", + "factoryamph", + "amphcon", + "amphraid", + "amphimpulse", + "amphfloater", + "amphriot", + "amphassault", + "amphbomb", + "amphaa", + "factoryhover", + "hovercon", + "hoverraid", + "hoverriot", + "hoverskirm", + "hoverassault", + "hoverdepthcharge", + "hoverarty", + "hoveraa", + }, + commander = false, + startUnits = { + { + name = "staticmex", + x = 2792, + z = 1736, + facing = 0, + }, + { + name = "staticmex", + x = 1672, + z = 2952, + facing = 0, + }, + { + name = "staticmex", + x = 2552, + z = 1896, + facing = 0, + }, + { + name = "staticmex", + x = 2776, + z = 2024, + facing = 0, + }, + { + name = "staticmex", + x = 1384, + z = 3592, + facing = 0, + }, + { + name = "staticmex", + x = 3336, + z = 2712, + facing = 0, + }, + { + name = "staticmex", + x = 1512, + z = 4136, + facing = 0, + }, + { + name = "staticmex", + x = 3608, + z = 2632, + facing = 0, + }, + { + name = "staticmex", + x = 1496, + z = 4584, + facing = 0, + }, + { + name = "staticmex", + x = 3512, + z = 3368, + facing = 0, + }, + { + name = "staticmex", + x = 712, + z = 4520, + facing = 0, + }, + { + name = "staticmex", + x = 3208, + z = 3688, + facing = 0, + }, + { + name = "staticmex", + x = 3864, + z = 3512, + facing = 0, + }, + { + name = "staticmex", + x = 3864, + z = 3720, + facing = 0, + }, + { + name = "staticmex", + x = 168, + z = 2392, + facing = 0, + }, + { + name = "energywind", + x = 3032, + z = 2072, + facing = 0, + }, + { + name = "staticmex", + x = 232, + z = 2200, + facing = 0, + }, + { + name = "staticmex", + x = 120, + z = 2072, + facing = 0, + }, + { + name = "staticmex", + x = 136, + z = 1496, + facing = 0, + }, + { + name = "staticmex", + x = 1016, + z = 1672, + facing = 0, + }, + { + name = "factoryship", + x = 3296, + z = 2256, + facing = 0, + }, + { + name = "factoryamph", + x = 3480, + z = 2168, + facing = 0, + }, + { + name = "factoryhover", + x = 3088, + z = 2224, + facing = 0, + }, + { + name = "staticcon", + x = 3080, + z = 2040, + facing = 0, + }, + { + name = "staticcon", + x = 3160, + z = 2040, + facing = 0, + }, + { + name = "staticcon", + x = 3240, + z = 2040, + facing = 0, + }, + { + name = "staticcon", + x = 3320, + z = 2040, + facing = 0, + }, + { + name = "staticcon", + x = 3400, + z = 2040, + facing = 0, + }, + { + name = "staticcon", + x = 3480, + z = 2040, + facing = 0, + }, + { + name = "energypylon", + x = 200, + z = 744, + facing = 0, + }, + { + name = "staticstorage", + x = 3144, + z = 1896, + facing = 0, + }, + { + name = "staticstorage", + x = 3448, + z = 1896, + facing = 0, + }, + { + name = "turretaafar", + x = 3280, + z = 1888, + facing = 0, + }, + { + name = "energypylon", + x = 312, + z = 1720, + facing = 0, + }, + { + name = "energypylon", + x = 840, + z = 1832, + facing = 0, + }, + { + name = "energypylon", + x = 328, + z = 2664, + facing = 0, + }, + { + name = "turrettorp", + x = 2600, + z = 2248, + facing = 0, + }, + { + name = "turrettorp", + x = 2840, + z = 2456, + facing = 0, + }, + { + name = "energypylon", + x = 696, + z = 3544, + facing = 0, + }, + { + name = "turrettorp", + x = 3064, + z = 2728, + facing = 0, + }, + { + name = "energypylon", + x = 872, + z = 4360, + facing = 0, + }, + { + name = "energypylon", + x = 1448, + z = 4008, + facing = 0, + }, + { + name = "energypylon", + x = 3896, + z = 2504, + facing = 0, + }, + { + name = "turrettorp", + x = 3976, + z = 2664, + facing = 0, + }, + { + name = "turrettorp", + x = 4088, + z = 2696, + facing = 0, + }, + { + name = "energypylon", + x = 3464, + z = 3128, + facing = 0, + }, + { + name = "turrettorp", + x = 3768, + z = 2936, + facing = 0, + }, + { + name = "turrettorp", + x = 3864, + z = 3000, + facing = 0, + }, + { + name = "energypylon", + x = 3480, + z = 3736, + facing = 0, + }, + { + name = "turretheavy", + x = 792, + z = 4680, + facing = 0, + }, + { + name = "turretheavy", + x = 1720, + z = 4408, + facing = 1, + }, + { + name = "turretriot", + x = 1272, + z = 4600, + facing = 0, + }, + { + name = "turretriot", + x = 1592, + z = 4664, + facing = 0, + }, + { + name = "turretaaflak", + x = 984, + z = 4488, + facing = 0, + }, + { + name = "turretantiheavy", + x = 3104, + z = 3856, + facing = 0, + }, + { + name = "turretaaflak", + x = 1464, + z = 4344, + facing = 0, + }, + { + name = "turretheavy", + x = 3432, + z = 4136, + facing = 0, + }, + { + name = "turretaafar", + x = 3440, + z = 3616, + facing = 0, + }, + { + name = "turretaaflak", + x = 3208, + z = 3528, + facing = 0, + }, + { + name = "turretaaflak", + x = 3656, + z = 3848, + facing = 0, + }, + { + name = "turretheavylaser", + x = 3816, + z = 3912, + facing = 1, + }, + { + name = "turretheavylaser", + x = 3832, + z = 3384, + facing = 1, + }, + { + name = "turretriot", + x = 3960, + z = 3656, + facing = 1, + }, + { + name = "turretheavy", + x = 1208, + z = 1880, + facing = 1, + }, + { + name = "turretheavy", + x = 216, + z = 2744, + facing = 0, + }, + { + name = "turretheavy", + x = 728, + z = 2584, + facing = 0, + }, + { + name = "turretaaflak", + x = 296, + z = 2504, + facing = 0, + }, + { + name = "turretaaflak", + x = 664, + z = 2248, + facing = 0, + }, + { + name = "turretheavylaser", + x = 456, + z = 2616, + facing = 0, + }, + { + name = "turretheavylaser", + x = 904, + z = 2440, + facing = 0, + }, + { + name = "staticheavyradar", + x = 3248, + z = 4048, + facing = 2, + }, + { + name = "staticradar", + x = 560, + z = 4512, + facing = 2, + }, + { + name = "shipassault", + x = 2320, + z = 2668, + facing = 0, + patrolRoute = { + {2208, 2640}, + {2330, 2785}, + }, + }, + { + name = "energywind", + x = 2680, + z = 2088, + facing = 0, + }, + { + name = "energywind", + x = 2808, + z = 1928, + facing = 0, + }, + { + name = "shipcon", + x = 3200, + z = 2724, + facing = 0, + }, + { + name = "energywind", + x = 2744, + z = 2104, + facing = 0, + }, + { + name = "amphassault", + x = 3792, + z = 3747, + facing = 0, + }, + { + name = "hoverassault", + x = 2426, + z = 3694, + facing = 3, + }, + { + name = "energywind", + x = 3400, + z = 2776, + facing = 0, + }, + { + name = "energywind", + x = 2760, + z = 1960, + facing = 0, + }, + { + name = "energyfusion", + x = 1192, + z = 3248, + facing = 0, + }, + { + name = "energywind", + x = 2792, + z = 2072, + facing = 0, + }, + { + name = "energywind", + x = 2824, + z = 1976, + facing = 0, + }, + { + name = "shiparty", + x = 388, + z = 4074, + facing = 0, + }, + { + name = "amphcon", + x = 3102, + z = 2032, + facing = 3, + }, + { + name = "shiparty", + x = 3081, + z = 4662, + facing = 0, + }, + { + name = "hovercon", + x = 980, + z = 3284, + facing = 0, + }, + { + name = "amphimpulse", + x = 2897, + z = 4109, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2961, 4176}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3024, 4165}, options = {"shift"}}, + }, + }, + { + name = "energywind", + x = 2824, + z = 2024, + facing = 0, + }, + { + name = "turretlaser", + x = 1504, + z = 2912, + facing = 0, + }, + { + name = "energywind", + x = 2728, + z = 2008, + facing = 0, + }, + { + name = "energywind", + x = 2712, + z = 1960, + facing = 0, + }, + { + name = "energywind", + x = 2728, + z = 2056, + facing = 0, + }, + { + name = "energywind", + x = 2840, + z = 2072, + facing = 0, + }, + { + name = "energywind", + x = 2792, + z = 2120, + facing = 0, + }, + { + name = "shipcon", + x = 1411, + z = 3268, + facing = 0, + }, + { + name = "hovercon", + x = 2248, + z = 2564, + facing = 1, + }, + { + name = "energywind", + x = 2840, + z = 2120, + facing = 0, + }, + { + name = "energywind", + x = 2872, + z = 1976, + facing = 0, + }, + { + name = "turretlaser", + x = 3520, + z = 2416, + facing = 0, + }, + { + name = "hoverassault", + x = 2276, + z = 3745, + facing = 3, + }, + { + name = "energywind", + x = 2760, + z = 1912, + facing = 0, + }, + { + name = "energywind", + x = 2872, + z = 2024, + facing = 0, + }, + { + name = "shipskirm", + x = 2998, + z = 4193, + facing = 1, + patrolRoute = { + {3012, 4215}, + {2962, 4178}, + }, + }, + { + name = "energywind", + x = 2712, + z = 1912, + facing = 0, + }, + { + name = "energywind", + x = 3288, + z = 2776, + facing = 0, + }, + { + name = "energywind", + x = 3288, + z = 2696, + facing = 0, + }, + { + name = "hoverraid", + x = 4650, + z = 4615, + facing = 1, + }, + { + name = "amphcon", + x = 4442, + z = 3450, + facing = 1, + }, + { + name = "hoverskirm", + x = 2608, + z = 3685, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2961, 4176}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2899, 4161}, options = {"shift"}}, + }, + }, + { + name = "energywind", + x = 3336, + z = 2664, + facing = 0, + }, + { + name = "hovercon", + x = 1168, + z = 3206, + facing = 0, + }, + { + name = "shipcon", + x = 1424, + z = 3221, + facing = 0, + }, + { + name = "energyfusion", + x = 1400, + z = 3040, + facing = 0, + }, + { + name = "hoverarty", + x = 2673, + z = 3566, + facing = 0, + }, + { + name = "subraider", + x = 4673, + z = 4630, + facing = 2, + }, + { + name = "turretlaser", + x = 3120, + z = 2496, + facing = 0, + }, + { + name = "amphcon", + x = 2880, + z = 2213, + facing = 3, + }, + { + name = "turretlaser", + x = 1312, + z = 3168, + facing = 0, + }, + { + name = "turretriot", + x = 1144, + z = 3000, + facing = 0, + }, + { + name = "hovercon", + x = 2078, + z = 2385, + facing = 3, + }, + { + name = "energyfusion", + x = 1384, + z = 3536, + facing = 0, + buildProgress = 0.43399999, + }, + { + name = "amphcon", + x = 3363, + z = 2219, + facing = 1, + }, + { + name = "hoveraa", + x = 1523, + z = 2961, + facing = 3, + }, + { + name = "staticcon", + x = 3112, + z = 1992, + facing = 0, + }, + { + name = "staticcon", + x = 3160, + z = 1992, + facing = 0, + }, + { + name = "amphaa", + x = 2895, + z = 3079, + facing = 3, + }, + { + name = "staticstorage", + x = 1720, + z = 2904, + facing = 0, + }, + { + name = "amphcon", + x = 2812, + z = 2803, + facing = 3, + }, + { + name = "staticcon", + x = 3208, + z = 1992, + facing = 0, + }, + { + name = "shipaa", + x = 3304, + z = 2256, + facing = 0, + buildProgress = 0.61949998, + }, + { + name = "turretriot", + x = 968, + z = 3400, + facing = 0, + buildProgress = 0.3136, + }, + { + name = "hovercon", + x = 2734, + z = 2326, + facing = 2, + }, + { + name = "amphraid", + x = 3621, + z = 2998, + facing = 0, + }, + { + name = "staticcon", + x = 3016, + z = 2024, + facing = 0, + }, + { + name = "staticcon", + x = 3064, + z = 1992, + facing = 0, + }, + { + name = "hoverraid", + x = 4295, + z = 3224, + facing = 0, + }, + { + name = "amphcon", + x = 3463, + z = 2220, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2680, 3004}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3480, 2204}, options = {"shift"}}, + }, + }, + { + name = "hovercon", + x = 2959, + z = 2324, + facing = 3, + }, + { + name = "staticcon", + x = 2984, + z = 2072, + facing = 0, + buildProgress = 0.85030001, + }, + { + name = "hoverarty", + x = 3088, + z = 2192, + facing = 0, + buildProgress = 0.0396, + }, + } + }, + }, + defeatConditionConfig = { + -- Indexed by allyTeam. + [0] = { }, + [1] = { + ignoreUnitLossDefeat = false, + vitalCommanders = false, + vitalUnitTypes = { + "striderhub", + "striderdetriment" + }, + loseAfterSeconds = false, + allyTeamLossObjectiveID = 1, + }, + }, + objectiveConfig = { + -- This is just related to displaying objectives on the UI. + [1] = { + description = "Destroy all enemy Strider Hubs and Detriments", + }, + [2] = { + description = "Protect your Commander", + }, + }, + bonusObjectiveConfig = { + [1] = { + satisfyOnce = true, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 8, + unitTypes = { + "shipcarrier", + }, + image = planetUtilities.ICON_DIR .. "shipcarrier.png", + imageOverlay = planetUtilities.ICON_OVERLAY.REPAIR, + description = "Have 8 Reefs", + experience = planetUtilities.BONUS_EXP, + }, + [2] = { + victoryByTime = 25*60, + image = planetUtilities.ICON_OVERLAY.CLOCK, + description = "Win by 25:00", + experience = planetUtilities.BONUS_EXP, + }, + [3] = { + onlyCountRemovedUnits = true, + satisfyByTime = 16*60, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 1, + enemyUnitTypes = { + "energysingu", + }, + image = planetUtilities.ICON_DIR .. "energysingu.png", + imageOverlay = planetUtilities.ICON_OVERLAY.ATTACK, + description = "Destroy an enemy Singularity Reactor before 16:00", + experience = planetUtilities.BONUS_EXP, + }, + }, }, completionReward = { experience = planetUtilities.MAIN_EXP, diff --git a/campaign/sample/planets/planet58.lua b/campaign/sample/planets/planet58.lua index 18d1bf874..840c6142c 100644 --- a/campaign/sample/planets/planet58.lua +++ b/campaign/sample/planets/planet58.lua @@ -7,7 +7,7 @@ local function GetPlanet(planetUtilities, planetID) local image = LUA_DIRNAME .. "images/planets/tundra03.png" local planetData = { - name = "Tazail", + name = "Chatka", startingPlanet = false, mapDisplay = { x = (planetUtilities.planetPositions and planetUtilities.planetPositions[planetID][1]) or 0.675, @@ -24,17 +24,31 @@ local function GetPlanet(planetUtilities, planetID) primary = "Halio Raba", primaryType = "K1VI", milRating = 1, - text = [[...]] + feedbackLink = "http://zero-k.info/Forum/Thread/24614", + text = [[Two enemy groups are already engaged on this icy planet. Defeat them both at a safe distance with the Merlin artillery strider.]] + }, + tips = { + { + image = "unitpics/striderarty.png", + text = [[The Merlin is the most powerful mobile artillery piece in the game - its barrage of rockets is most effective against large groups of enemies. Merlins are defenceless at close range so be careful with your starting Merlin until you have a large enough army to escort it.]] + }, + { + image = "unitpics/cloakjammer.png", + text = [[Keep your units invisible with an area cloaker until the time has come for a decisive strike. This is best used to hide your vulnerable artillery pieces or get your short-range fighters up close to enemy positions.]] + }, + { + image = "unitpics/energyfusion.png", + text = [[Remember that in a multi-sided game damaging one of your enemies is often less important than making yourself stronger. Play conservatively and build many energy generators to bolster your economy.]] + }, }, gameConfig = { mapName = "SiberianDivide 1.1", playerConfig = { - startX = 100, - startZ = 100, + startX = 6850, + startZ = 5950, allyTeam = 0, - facplop = false, commanderParameters = { - facplop = false, + facplop = true, defeatIfDestroyedObjectiveID = 2, }, extraUnlocks = { @@ -42,43 +56,2360 @@ local function GetPlanet(planetUtilities, planetID) "striderarty", }, startUnits = { + { + name = "staticcon", + x = 6952, + z = 5992, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6952, 5992}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6927, 5967}, options = {"shift"}}, + }, + }, + { + name = "staticmex", + x = 8456, + z = 6536, + facing = 0, + }, + { + name = "staticmex", + x = 7576, + z = 6024, + facing = 0, + }, + { + name = "staticmex", + x = 7256, + z = 6168, + facing = 0, + }, + { + name = "staticmex", + x = 7000, + z = 5560, + facing = 0, + }, + { + name = "staticmex", + x = 7272, + z = 5400, + facing = 0, + }, + { + name = "staticmex", + x = 5768, + z = 6296, + facing = 3, + }, + { + name = "energysolar", + x = 7064, + z = 5576, + facing = 2, + }, + { + name = "energysolar", + x = 6984, + z = 5624, + facing = 1, + }, + { + name = "staticheavyradar", + x = 8096, + z = 6160, + facing = 3, + }, + { + name = "energysolar", + x = 6936, + z = 5544, + facing = 0, + }, + { + name = "energysolar", + x = 7016, + z = 5496, + facing = 3, + }, + { + name = "energysolar", + x = 7336, + z = 5416, + facing = 2, + }, + { + name = "energysolar", + x = 7256, + z = 5464, + facing = 1, + }, + { + name = "energysolar", + x = 7208, + z = 5384, + facing = 0, + }, + { + name = "energysolar", + x = 7288, + z = 5336, + facing = 3, + }, + { + name = "staticmex", + x = 8824, + z = 4808, + facing = 3, + }, + { + name = "turretheavylaser", + x = 6984, + z = 5352, + facing = 2, + }, + { + name = "turretriot", + x = 7432, + z = 5336, + facing = 2, + }, + { + name = "cloakjammer", + x = 7142, + z = 5641, + facing = 2, + }, + { + name = "turretaafar", + x = 7136, + z = 5744, + facing = 2, + }, + { + name = "energysolar", + x = 8888, + z = 4824, + facing = 1, + }, + { + name = "energysolar", + x = 8808, + z = 4872, + facing = 0, + }, + { + name = "energysolar", + x = 8760, + z = 4792, + facing = 3, + }, + { + name = "striderarty", + x = 7073, + z = 5888, + facing = 2, + }, + { + name = "energysolar", + x = 8840, + z = 4744, + facing = 2, + }, + { + name = "turretmissile", + x = 8640, + z = 4768, + facing = 2, + }, + { + name = "energysolar", + x = 5832, + z = 6312, + facing = 1, + }, + { + name = "turretmissile", + x = 8928, + z = 4640, + facing = 2, + }, + { + name = "energysolar", + x = 5752, + z = 6360, + facing = 0, + }, + { + name = "energysolar", + x = 5704, + z = 6280, + facing = 3, + }, + { + name = "energysolar", + x = 5784, + z = 6232, + facing = 2, + }, + { + name = "turretmissile", + x = 5584, + z = 6384, + facing = 3, + }, + { + name = "turretmissile", + x = 5920, + z = 6192, + facing = 2, + }, + { + name = "energysolar", + x = 8520, + z = 6552, + facing = 1, + }, + { + name = "energysolar", + x = 8440, + z = 6600, + facing = 0, + }, + { + name = "energysolar", + x = 8392, + z = 6520, + facing = 3, + }, + { + name = "energysolar", + x = 8472, + z = 6472, + facing = 2, + }, + { + name = "energyfusion", + x = 8664, + z = 6656, + facing = 2, + }, + { + name = "energysolar", + x = 7320, + z = 6184, + facing = 1, + }, + { + name = "energysolar", + x = 7240, + z = 6232, + facing = 0, + }, + { + name = "energysolar", + x = 7192, + z = 6152, + facing = 3, + }, + { + name = "energysolar", + x = 7272, + z = 6104, + facing = 2, + }, + { + name = "energysolar", + x = 7640, + z = 6040, + facing = 1, + }, + { + name = "energysolar", + x = 7560, + z = 6088, + facing = 0, + }, + { + name = "energysolar", + x = 7512, + z = 6008, + facing = 3, + }, + { + name = "energysolar", + x = 7592, + z = 5960, + facing = 2, + }, + { + name = "turretriot", + x = 6808, + z = 5720, + facing = 3, + }, + { + name = "turretmissile", + x = 5536, + z = 6464, + facing = 3, + }, + { + name = "turretmissile", + x = 6016, + z = 6160, + facing = 2, + }, + { + name = "turretmissile", + x = 8512, + z = 4816, + facing = 2, + }, + { + name = "turretmissile", + x = 9040, + z = 4592, + facing = 2, + }, + { + name = "striderhub", + x = 7056, + z = 6016, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7056, 6016}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7031, 5991}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7160, + z = 6008, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7135, 5983}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7160, 6008}, options = {"shift"}}, + }, + }, } }, aiConfig = { { - startX = 4000, - startZ = 75, + startX = 6700, + startZ = 1500, + humanName = "Amlamu", + -- aiLib = "Null AI", + -- bitDependant = false, aiLib = "Circuit_difficulty_autofill", - humanName = "Enemy", bitDependant = true, commanderParameters = { facplop = false, }, allyTeam = 1, unlocks = { - "cloakraid", + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "factorygunship", + "gunshipcon", + "gunshipbomb", + "gunshipemp", + "gunshipaa", + "gunshipassault", + "gunshipheavyskirm", + "gunshipskirm", + "gunshipraid", + "gunshipkrow", + "factoryshield", + "shieldcon", + "shieldraid", + "shieldassault", + "shieldriot", + "shieldskirm", + "shieldbomb", + "shieldaa", + "shieldfelon", + "shieldshield", + "shieldarty", + "factoryspider", + "spidercon", + "spiderscout", + "spiderriot", + "spideremp", + "spiderskirm", + "spiderassault", + "spidercrabe", + "spiderantiheavy", + "spideraa", + "factorytank", + "tankcon", + "tankassault", + "tankheavyassault", + "tankarty", + "tankheavyarty", + "tankaa", + "tankriot", + "striderhub", + "striderdante", + "striderscorpion", + "staticnuke", }, - commanderLevel = 2, + commanderLevel = 6, commander = { - name = "Most Loyal Opposition", + name = "K'lor", chassis = "engineer", decorations = { - "skin_support_dark", - icon_overhead = { image = "UW" } + "skin_support_green", + }, + modules = { + "commweapon_hparticlebeam", + "commweapon_multistunner", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_high_power_servos", + "module_high_power_servos", + "module_autorepair", + "module_autorepair", + "module_autorepair", + } + }, + startUnits = { + { + name = "turretlaser", + x = 5024, + z = 224, + facing = 3, + }, + { + name = "spideremp", + x = 6859, + z = 1945, + facing = 3, + }, + { + name = "staticmex", + x = 7272, + z = 1240, + facing = 0, + }, + { + name = "staticmex", + x = 7000, + z = 872, + facing = 0, + }, + { + name = "staticmex", + x = 6200, + z = 1944, + facing = 0, + }, + { + name = "staticmex", + x = 5832, + z = 1784, + facing = 0, + }, + { + name = "staticmex", + x = 5224, + z = 1032, + facing = 0, + }, + { + name = "staticmex", + x = 5368, + z = 696, + facing = 0, + }, + { + name = "staticmex", + x = 6408, + z = 3304, + facing = 0, + }, + { + name = "staticmex", + x = 7112, + z = 3384, + facing = 0, + }, + { + name = "staticmex", + x = 8440, + z = 3768, + facing = 0, + }, + { + name = "staticmex", + x = 8856, + z = 552, + facing = 0, + }, + { + name = "staticmex", + x = 8408, + z = 312, + facing = 0, + }, + { + name = "energysolar", + x = 8472, + z = 328, + facing = 1, + }, + { + name = "energysolar", + x = 8504, + z = 3784, + facing = 1, + }, + { + name = "energysolar", + x = 8392, + z = 376, + facing = 0, + }, + { + name = "energysolar", + x = 8424, + z = 3832, + facing = 0, + }, + { + name = "energysolar", + x = 8344, + z = 296, + facing = 3, + }, + { + name = "energysolar", + x = 8376, + z = 3752, + facing = 3, + }, + { + name = "energysolar", + x = 8456, + z = 3704, + facing = 2, + }, + { + name = "energysolar", + x = 8920, + z = 568, + facing = 1, + }, + { + name = "energysolar", + x = 8840, + z = 616, + facing = 0, + }, + { + name = "energysolar", + x = 8792, + z = 536, + facing = 3, + }, + { + name = "energysolar", + x = 8872, + z = 488, + facing = 2, + }, + { + name = "energysolar", + x = 7032, + z = 3432, + facing = 2, + }, + { + name = "energysolar", + x = 7176, + z = 3432, + facing = 2, + }, + { + name = "energysolar", + x = 6472, + z = 3320, + facing = 1, + }, + { + name = "energysolar", + x = 6392, + z = 3368, + facing = 0, + }, + { + name = "energysolar", + x = 6344, + z = 3288, + facing = 3, + }, + { + name = "energysolar", + x = 6424, + z = 3240, + facing = 2, + }, + { + name = "energysolar", + x = 6264, + z = 1960, + facing = 1, + }, + { + name = "energysolar", + x = 6184, + z = 2008, + facing = 0, + }, + { + name = "energysolar", + x = 6136, + z = 1928, + facing = 3, + }, + { + name = "energysolar", + x = 6216, + z = 1880, + facing = 2, + }, + { + name = "energysolar", + x = 5896, + z = 1800, + facing = 1, + }, + { + name = "energysolar", + x = 5816, + z = 1848, + facing = 0, + }, + { + name = "energysolar", + x = 5768, + z = 1768, + facing = 3, + }, + { + name = "energysolar", + x = 5848, + z = 1720, + facing = 2, + }, + { + name = "energysolar", + x = 5288, + z = 1048, + facing = 1, + }, + { + name = "energysolar", + x = 5208, + z = 1096, + facing = 0, + }, + { + name = "energysolar", + x = 5160, + z = 1016, + facing = 3, + }, + { + name = "energysolar", + x = 5240, + z = 968, + facing = 2, + }, + { + name = "energysolar", + x = 5432, + z = 712, + facing = 1, + }, + { + name = "energysolar", + x = 5352, + z = 760, + facing = 0, + }, + { + name = "energysolar", + x = 5304, + z = 680, + facing = 3, + }, + { + name = "energysolar", + x = 5384, + z = 632, + facing = 2, + }, + { + name = "energysolar", + x = 7064, + z = 888, + facing = 1, + }, + { + name = "energysolar", + x = 6984, + z = 936, + facing = 0, + }, + { + name = "energysolar", + x = 6936, + z = 856, + facing = 3, + }, + { + name = "energysolar", + x = 7016, + z = 808, + facing = 2, + }, + { + name = "energysolar", + x = 7336, + z = 1256, + facing = 1, + }, + { + name = "energysolar", + x = 7256, + z = 1304, + facing = 0, + }, + { + name = "energysolar", + x = 7208, + z = 1224, + facing = 3, + }, + { + name = "energysolar", + x = 7288, + z = 1176, + facing = 2, + }, + { + name = "staticcon", + x = 8024, + z = 312, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8024, 312}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7999, 337}, options = {"shift"}}, + }, + }, + { + name = "factorygunship", + x = 8136, + z = 440, + facing = 2, + }, + { + name = "staticradar", + x = 5248, + z = 816, + facing = 0, + }, + { + name = "energysingu", + x = 7544, + z = 760, + facing = 3, + }, + { + name = "energypylon", + x = 7016, + z = 1064, + facing = 3, + }, + { + name = "turretheavy", + x = 4984, + z = 648, + facing = 3, + terraformHeight = 118, + }, + { + name = "energypylon", + x = 6056, + z = 1048, + facing = 3, + }, + { + name = "turretemp", + x = 4880, + z = 880, + facing = 3, + }, + { + name = "energypylon", + x = 5384, + z = 904, + facing = 3, + }, + { + name = "turretemp", + x = 4976, + z = 368, + facing = 3, + }, + { + name = "turretlaser", + x = 4816, + z = 1008, + facing = 3, + }, + { + name = "turretlaser", + x = 4864, + z = 1136, + facing = 3, + }, + { + name = "turretaaflak", + x = 5096, + z = 872, + facing = 3, + }, + { + name = "turretaaflak", + x = 5240, + z = 360, + facing = 3, + }, + { + name = "energypylon", + x = 6408, + z = 1816, + facing = 1, + }, + { + name = "energypylon", + x = 5912, + z = 2632, + facing = 1, + }, + { + name = "energypylon", + x = 6824, + z = 2616, + facing = 1, + }, + { + name = "spideremp", + x = 6828, + z = 1975, + facing = 3, + }, + { + name = "energypylon", + x = 7704, + z = 2568, + facing = 1, + }, + { + name = "staticradar", + x = 5472, + z = 2352, + facing = 0, + }, + { + name = "turretemp", + x = 8928, + z = 2944, + facing = 0, + }, + { + name = "turretriot", + x = 8808, + z = 2872, + facing = 0, + }, + { + name = "turretriot", + x = 9064, + z = 2936, + facing = 0, + }, + { + name = "staticradar", + x = 7328, + z = 2832, + facing = 0, + }, + { + name = "turretheavylaser", + x = 5224, + z = 2104, + facing = 3, + }, + { + name = "turretheavylaser", + x = 5112, + z = 2488, + facing = 3, + }, + { + name = "turretriot", + x = 5192, + z = 2280, + facing = 3, + }, + { + name = "turretaaflak", + x = 5448, + z = 2056, + facing = 3, + }, + { + name = "turretantiheavy", + x = 6224, + z = 2864, + facing = 0, + }, + { + name = "turretheavy", + x = 6808, + z = 3096, + facing = 0, + }, + { + name = "turretheavy", + x = 7736, + z = 3096, + facing = 0, + }, + { + name = "energypylon", + x = 8600, + z = 2616, + facing = 0, + }, + { + name = "turretheavy", + x = 8600, + z = 3080, + facing = 0, + }, + { + name = "turretheavy", + x = 5640, + z = 3032, + facing = 0, + }, + { + name = "turretaaflak", + x = 5880, + z = 2808, + facing = 0, + }, + { + name = "turretaaflak", + x = 8312, + z = 2744, + facing = 0, + }, + { + name = "turretaaflak", + x = 6728, + z = 2744, + facing = 0, + }, + { + name = "turretmissile", + x = 6576, + z = 3056, + facing = 0, + }, + { + name = "turretmissile", + x = 7952, + z = 3008, + facing = 0, + }, + { + name = "turretmissile", + x = 6400, + z = 3008, + facing = 0, + }, + { + name = "turretmissile", + x = 8432, + z = 3008, + facing = 0, + }, + { + name = "turretmissile", + x = 5968, + z = 3072, + facing = 0, + }, + { + name = "energypylon", + x = 7336, + z = 1896, + facing = 0, + }, + { + name = "energypylon", + x = 7928, + z = 1128, + facing = 0, + }, + { + name = "energypylon", + x = 8216, + z = 1992, + facing = 0, + }, + { + name = "factoryspider", + x = 7096, + z = 2120, + facing = 3, + }, + { + name = "staticcon", + x = 7208, + z = 2088, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7208, 2088}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7183, 2113}, options = {"shift"}}, + }, + }, + { + name = "factoryshield", + x = 6840, + z = 640, + facing = 3, + }, + { + name = "staticcon", + x = 6984, + z = 664, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6984, 664}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6959, 689}, options = {"shift"}}, + }, + }, + { + name = "factorytank", + x = 5952, + z = 1472, + facing = 3, + }, + { + name = "staticcon", + x = 6088, + z = 1432, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6063, 1457}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6088, 1432}, options = {"shift"}}, + }, + }, + { + name = "shieldraid", + x = 6149, + z = 536, + facing = 2, + }, + { + name = "shieldraid", + x = 6154, + z = 758, + facing = 1, + }, + { + name = "shieldraid", + x = 6194, + z = 969, + facing = 0, + }, + { + name = "shieldskirm", + x = 6369, + z = 716, + facing = 3, + }, + { + name = "shieldskirm", + x = 6355, + z = 648, + facing = 3, + }, + { + name = "shieldskirm", + x = 6410, + z = 732, + facing = 3, + }, + { + name = "shieldskirm", + x = 6348, + z = 607, + facing = 3, + }, + { + name = "shieldassault", + x = 6536, + z = 625, + facing = 2, + }, + { + name = "shieldassault", + x = 6589, + z = 704, + facing = 3, + }, + { + name = "shieldassault", + x = 6580, + z = 559, + facing = 3, + }, + { + name = "shieldriot", + x = 6181, + z = 698, + facing = 3, + }, + { + name = "shieldriot", + x = 6622, + z = 619, + facing = 3, + }, + { + name = "shieldriot", + x = 6623, + z = 566, + facing = 3, + }, + { + name = "shieldfelon", + x = 6669, + z = 666, + facing = 3, + }, + { + name = "tankassault", + x = 5682, + z = 1439, + facing = 3, + }, + { + name = "tankriot", + x = 5726, + z = 1480, + facing = 3, + }, + { + name = "tankarty", + x = 5734, + z = 1429, + facing = 3, + }, + { + name = "tankcon", + x = 5734, + z = 1385, + facing = 3, + }, + { + name = "spidercon", + x = 6888, + z = 2124, + facing = 3, + }, + { + name = "spidercon", + x = 6764, + z = 1909, + facing = 3, + }, + { + name = "spiderriot", + x = 6686, + z = 1907, + facing = 3, + }, + { + name = "turretantiheavy", + x = 6784, + z = 1408, + facing = 3, + }, + { + name = "spiderriot", + x = 6674, + z = 2025, + facing = 3, + }, + { + name = "spiderassault", + x = 6700, + z = 1788, + facing = 3, + }, + { + name = "spiderassault", + x = 6785, + z = 1948, + facing = 3, + }, + { + name = "spiderskirm", + x = 6748, + z = 1983, + facing = 2, + }, + { + name = "spiderskirm", + x = 6790, + z = 1995, + facing = 2, + }, + } + }, + { + startX = 1200, + startZ = 1850, + humanName = "Alkalich", + -- aiLib = "Null AI", + -- bitDependant = false, + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + commanderParameters = { + facplop = false, + }, + allyTeam = 2, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "staticrearm", + "factoryplane", + "planecon", + "planescout", + "planefighter", + "planeheavyfighter", + "bomberprec", + "bomberdisarm", + "bomberheavy", + "factoryspider", + "spidercon", + "spiderscout", + "spiderriot", + "spideremp", + "spiderskirm", + "spiderassault", + "spidercrabe", + "spiderantiheavy", + "spideraa", + "factoryveh", + "vehcon", + "vehscout", + "vehraid", + "vehriot", + "vehassault", + "vehaa", + "vehsupport", + "veharty", + "vehheavyarty", + "vehcapture", + "factorycloak", + "cloakcon", + "cloakraid", + "cloakriot", + "cloakskirm", + "cloakassault", + "cloakaa", + "cloakarty", + "cloaksnipe", + "cloakheavyraid", + "cloakbomb", + "striderhub", + "striderdante", + "striderscorpion", + "staticheavyarty" + }, + commanderLevel = 6, + commander = { + name = "Natrium", + chassis = "guardian", + decorations = { }, - modules = { } + modules = { + "commweapon_riotcannon", + "commweapon_riotcannon", + "weaponmod_napalm_warhead", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_autorepair", + "module_autorepair", + } }, startUnits = { + { + name = "vehassault", + x = 3275, + z = 1962, + facing = 1, + }, + { + name = "vehassault", + x = 3279, + z = 2013, + facing = 1, + }, + { + name = "staticmex", + x = 792, + z = 3400, + facing = 0, + }, + { + name = "staticmex", + x = 408, + z = 2360, + facing = 0, + }, + { + name = "staticmex", + x = 1944, + z = 1768, + facing = 0, + }, + { + name = "staticmex", + x = 2216, + z = 1608, + facing = 0, + }, + { + name = "staticmex", + x = 1960, + z = 1000, + facing = 0, + }, + { + name = "staticmex", + x = 1656, + z = 1144, + facing = 0, + }, + { + name = "staticmex", + x = 760, + z = 648, + facing = 0, + }, + { + name = "staticmex", + x = 2584, + z = 2440, + facing = 0, + }, + { + name = "staticmex", + x = 2840, + z = 2248, + facing = 0, + }, + { + name = "staticmex", + x = 3448, + z = 888, + facing = 0, + }, + { + name = "staticmex", + x = 2120, + z = 3784, + facing = 0, + }, + { + name = "staticmex", + x = 2808, + z = 3880, + facing = 2, + }, + { + name = "energysolar", + x = 856, + z = 3416, + facing = 1, + }, + { + name = "energysolar", + x = 776, + z = 3464, + facing = 0, + }, + { + name = "energysolar", + x = 728, + z = 3384, + facing = 3, + }, + { + name = "energysolar", + x = 2872, + z = 3896, + facing = 1, + }, + { + name = "energysolar", + x = 808, + z = 3336, + facing = 2, + }, + { + name = "energysolar", + x = 2792, + z = 3944, + facing = 0, + }, + { + name = "energysolar", + x = 2744, + z = 3864, + facing = 3, + }, + { + name = "energysolar", + x = 2824, + z = 3816, + facing = 2, + }, + { + name = "energysolar", + x = 2184, + z = 3800, + facing = 1, + }, + { + name = "energysolar", + x = 472, + z = 2376, + facing = 1, + }, + { + name = "energysolar", + x = 2104, + z = 3848, + facing = 0, + }, + { + name = "energysolar", + x = 392, + z = 2424, + facing = 0, + }, + { + name = "energysolar", + x = 2056, + z = 3768, + facing = 3, + }, + { + name = "energysolar", + x = 344, + z = 2344, + facing = 3, + }, + { + name = "energysolar", + x = 424, + z = 2296, + facing = 2, + }, + { + name = "energysolar", + x = 1720, + z = 1160, + facing = 1, + }, + { + name = "energysolar", + x = 1640, + z = 1208, + facing = 0, + }, + { + name = "energysolar", + x = 1592, + z = 1128, + facing = 3, + }, + { + name = "energysolar", + x = 1672, + z = 1080, + facing = 2, + }, + { + name = "energysolar", + x = 2024, + z = 1016, + facing = 1, + }, + { + name = "energysolar", + x = 3512, + z = 904, + facing = 1, + }, + { + name = "energysolar", + x = 1944, + z = 1064, + facing = 0, + }, + { + name = "energysolar", + x = 1896, + z = 984, + facing = 3, + }, + { + name = "energysolar", + x = 3384, + z = 872, + facing = 3, + }, + { + name = "energysolar", + x = 1976, + z = 936, + facing = 2, + }, + { + name = "energysolar", + x = 3464, + z = 824, + facing = 2, + }, + { + name = "energysolar", + x = 824, + z = 664, + facing = 1, + }, + { + name = "energysolar", + x = 744, + z = 712, + facing = 0, + }, + { + name = "energysolar", + x = 696, + z = 632, + facing = 3, + }, + { + name = "energysolar", + x = 776, + z = 584, + facing = 2, + }, + { + name = "energysolar", + x = 2008, + z = 1784, + facing = 1, + }, + { + name = "energysolar", + x = 1928, + z = 1832, + facing = 0, + }, + { + name = "energysolar", + x = 1880, + z = 1752, + facing = 3, + }, + { + name = "energysolar", + x = 1960, + z = 1704, + facing = 2, + }, + { + name = "energysolar", + x = 2280, + z = 1624, + facing = 1, + }, + { + name = "energysolar", + x = 2200, + z = 1672, + facing = 0, + }, + { + name = "energysolar", + x = 2152, + z = 1592, + facing = 3, + }, + { + name = "energysolar", + x = 2232, + z = 1544, + facing = 2, + }, + { + name = "energysolar", + x = 2648, + z = 2456, + facing = 1, + }, + { + name = "energysolar", + x = 2568, + z = 2504, + facing = 0, + }, + { + name = "energysolar", + x = 2520, + z = 2424, + facing = 3, + }, + { + name = "energysolar", + x = 2600, + z = 2376, + facing = 2, + }, + { + name = "energysolar", + x = 2904, + z = 2264, + facing = 1, + }, + { + name = "energysolar", + x = 2824, + z = 2312, + facing = 0, + }, + { + name = "energysolar", + x = 2776, + z = 2232, + facing = 3, + }, + { + name = "energysolar", + x = 2856, + z = 2184, + facing = 2, + }, + { + name = "turretaafar", + x = 2592, + z = 4256, + facing = 1, + }, + { + name = "turretheavylaser", + x = 2968, + z = 4312, + facing = 1, + }, + { + name = "turretriot", + x = 2744, + z = 4424, + facing = 0, + }, + { + name = "turretriot", + x = 2312, + z = 4536, + facing = 0, + }, + { + name = "turretemp", + x = 2512, + z = 4464, + facing = 0, + }, + { + name = "turretlaser", + x = 1920, + z = 4320, + facing = 0, + }, + { + name = "turretmissile", + x = 1536, + z = 4416, + facing = 0, + }, + { + name = "turretmissile", + x = 1232, + z = 4432, + facing = 0, + }, + { + name = "turretmissile", + x = 912, + z = 4416, + facing = 0, + }, + { + name = "turretlaser", + x = 160, + z = 4448, + facing = 0, + }, + { + name = "staticradar", + x = 368, + z = 4368, + facing = 0, + }, + { + name = "staticradar", + x = 2784, + z = 4272, + facing = 0, + }, + { + name = "staticrearm", + x = 552, + z = 1576, + facing = 0, + }, + { + name = "factoryplane", + x = 536, + z = 1408, + facing = 1, + }, + { + name = "staticcon", + x = 408, + z = 1624, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {408, 1624}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {433, 1649}, options = {"shift"}}, + }, + }, + { + name = "staticstorage", + x = 440, + z = 1288, + facing = 1, + }, + { + name = "turretheavylaser", + x = 584, + z = 1784, + facing = 0, + }, + { + name = "turretriot", + x = 312, + z = 1832, + facing = 0, + }, + { + name = "turretemp", + x = 752, + z = 1568, + facing = 1, + }, + { + name = "turretriot", + x = 536, + z = 1256, + facing = 1, + }, + { + name = "turretheavylaser", + x = 3544, + z = 3832, + facing = 0, + }, + { + name = "turretriot", + x = 3432, + z = 3912, + facing = 0, + }, + { + name = "turretriot", + x = 3672, + z = 3768, + facing = 0, + }, + { + name = "turretaaflak", + x = 3480, + z = 3640, + facing = 0, + }, + { + name = "turretaaflak", + x = 1112, + z = 3880, + facing = 0, + }, + { + name = "turretlaser", + x = 1248, + z = 3824, + facing = 0, + }, + { + name = "staticradar", + x = 3456, + z = 352, + facing = 0, + }, + { + name = "turretheavylaser", + x = 3880, + z = 296, + facing = 1, + }, + { + name = "turretheavylaser", + x = 3720, + z = 632, + facing = 1, + }, + { + name = "turretriot", + x = 3864, + z = 488, + facing = 1, + }, + { + name = "turretriot", + x = 4008, + z = 152, + facing = 1, + }, + { + name = "turretriot", + x = 3656, + z = 808, + facing = 1, + }, + { + name = "turretaafar", + x = 3392, + z = 240, + facing = 1, + }, + { + name = "turretlaser", + x = 3360, + z = 592, + facing = 1, + }, + { + name = "turretlaser", + x = 3552, + z = 144, + facing = 1, + }, + { + name = "turretlaser", + x = 3104, + z = 928, + facing = 1, + }, + { + name = "turretriot", + x = 2424, + z = 1384, + facing = 1, + }, + { + name = "turretriot", + x = 2648, + z = 1240, + facing = 1, + }, + { + name = "turretheavylaser", + x = 2504, + z = 1272, + facing = 1, + }, + { + name = "turretriot", + x = 1560, + z = 1928, + facing = 0, + }, + { + name = "turretriot", + x = 1800, + z = 1896, + facing = 0, + }, + { + name = "turretheavylaser", + x = 1672, + z = 1832, + facing = 0, + }, + { + name = "turretaaflak", + x = 1720, + z = 1656, + facing = 0, + }, + { + name = "turretaaflak", + x = 2232, + z = 1272, + facing = 1, + }, + { + name = "factoryspider", + x = 616, + z = 3080, + facing = 1, + }, + { + name = "staticcon", + x = 488, + z = 3064, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {488, 3064}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {513, 3089}, options = {"shift"}}, + }, + }, + { + name = "energyfusion", + x = 1176, + z = 656, + facing = 0, + }, + { + name = "energyfusion", + x = 1448, + z = 720, + facing = 0, + }, + { + name = "energypylon", + x = 1320, + z = 904, + facing = 0, + }, + { + name = "energypylon", + x = 1928, + z = 1336, + facing = 0, + }, + { + name = "turretheavylaser", + x = 3400, + z = 2904, + facing = 1, + }, + { + name = "turretheavylaser", + x = 3304, + z = 1848, + facing = 1, + }, + { + name = "turretriot", + x = 3448, + z = 1784, + facing = 1, + }, + { + name = "turretriot", + x = 3544, + z = 2968, + facing = 1, + }, + { + name = "turretemp", + x = 3376, + z = 2352, + facing = 1, + }, + { + name = "staticcon", + x = 2824, + z = 1880, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2824, 1880}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2849, 1905}, options = {"shift"}}, + }, + }, + { + name = "factoryveh", + x = 2976, + z = 1856, + facing = 1, + }, + { + name = "factorycloak", + x = 1360, + z = 1688, + facing = 1, + }, + { + name = "staticcon", + x = 1208, + z = 1672, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1233, 1697}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1208, 1672}, options = {"shift"}}, + }, + }, + { + name = "spidercon", + x = 833, + z = 3104, + facing = 1, + }, + { + name = "spidercon", + x = 775, + z = 2997, + facing = 1, + }, + { + name = "spiderskirm", + x = 1052, + z = 3037, + facing = 2, + }, + { + name = "spiderskirm", + x = 990, + z = 2905, + facing = 1, + }, + { + name = "spiderriot", + x = 988, + z = 2948, + facing = 1, + }, + { + name = "spiderriot", + x = 1009, + z = 3039, + facing = 2, + }, + { + name = "cloakskirm", + x = 1687, + z = 1508, + facing = 2, + }, + { + name = "spiderassault", + x = 997, + z = 2996, + facing = 2, + }, + { + name = "cloakskirm", + x = 1647, + z = 1490, + facing = 2, + }, + { + name = "spiderassault", + x = 967, + z = 3032, + facing = 2, + }, + { + name = "cloakskirm", + x = 1607, + z = 1474, + facing = 2, + }, + { + name = "spideremp", + x = 944, + z = 2950, + facing = 1, + }, + { + name = "cloakskirm", + x = 1527, + z = 1442, + facing = 2, + }, + { + name = "spideremp", + x = 947, + z = 2993, + facing = 0, + }, + { + name = "cloakskirm", + x = 1758, + z = 1542, + facing = 2, + }, + { + name = "cloakskirm", + x = 1827, + z = 1608, + facing = 2, + }, + { + name = "cloakskirm", + x = 1724, + z = 1523, + facing = 2, + }, + { + name = "cloakskirm", + x = 1568, + z = 1458, + facing = 2, + }, + { + name = "veharty", + x = 3084, + z = 2299, + facing = 0, + }, + { + name = "cloakskirm", + x = 1485, + z = 1434, + facing = 2, + }, + { + name = "cloakskirm", + x = 1818, + z = 1651, + facing = 2, + }, + { + name = "veharty", + x = 3068, + z = 1597, + facing = 2, + }, + { + name = "cloakriot", + x = 1816, + z = 1697, + facing = 1, + }, + { + name = "veharty", + x = 3083, + z = 2061, + facing = 0, + }, + { + name = "cloakassault", + x = 1801, + z = 1570, + facing = 2, + }, + { + name = "veharty", + x = 3142, + z = 1859, + facing = 1, + }, + { + name = "veharty", + x = 3360, + z = 2005, + facing = 1, + }, + { + name = "vehriot", + x = 3355, + z = 1962, + facing = 1, + }, + { + name = "vehriot", + x = 3282, + z = 2057, + facing = 1, + }, + { + name = "vehassault", + x = 3320, + z = 2020, + facing = 0, + }, } }, }, defeatConditionConfig = { - + -- Indexed by allyTeam. + [0] = { }, + [1] = { + ignoreUnitLossDefeat = false, + vitalCommanders = true, + vitalUnitTypes = { + "factoryshield", + "factorygunship", + "factoryspider", + "factorytank", + }, + loseAfterSeconds = false, + allyTeamLossObjectiveID = 1, + doNotExplodeOnLoss = true, + }, + [2] = { + ignoreUnitLossDefeat = false, + vitalCommanders = true, + vitalUnitTypes = { + "factoryspider", + "factoryveh", + "factoryplane", + "factorycloak", + }, + loseAfterSeconds = false, + allyTeamLossObjectiveID = 1, + doNotExplodeOnLoss = true, + }, }, objectiveConfig = { -- This is just related to displaying objectives on the UI. + [1] = { + description = "Destroy all enemy Commanders and Factories", + satisfyCount = 2, + }, + [2] = { + description = "Protect your Commander", + }, }, bonusObjectiveConfig = { + [1] = { + satisfyOnce = true, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 4, + unitTypes = { + "striderarty", + }, + image = planetUtilities.ICON_DIR .. "striderarty.png", + imageOverlay = planetUtilities.ICON_OVERLAY.REPAIR, + description = "Have 4 Merlins", + experience = planetUtilities.BONUS_EXP, + }, + [2] = { + onlyCountRemovedUnits = true, + satisfyForever = true, + comparisionType = planetUtilities.COMPARE.AT_MOST, + targetNumber = 1, + unitTypes = { + "striderarty" + }, + image = planetUtilities.ICON_DIR .. "striderarty.png", + imageOverlay = planetUtilities.ICON_OVERLAY.GUARD, + description = "Do not lose more than 1 Merlin", + experience = planetUtilities.BONUS_EXP, + }, + [3] = { + satisfyByTime = 18*60, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 18, + unitTypes = { + "staticmex", + }, + image = planetUtilities.ICON_DIR .. "staticmex.png", + imageOverlay = planetUtilities.ICON_OVERLAY.REPAIR, + description = "Have 18 Metal Extractors by 18:00", + experience = planetUtilities.BONUS_EXP, + }, } }, completionReward = { diff --git a/campaign/sample/planets/planet59.lua b/campaign/sample/planets/planet59.lua index f974bdad2..32150233d 100644 --- a/campaign/sample/planets/planet59.lua +++ b/campaign/sample/planets/planet59.lua @@ -7,7 +7,7 @@ local function GetPlanet(planetUtilities, planetID) local image = LUA_DIRNAME .. "images/planets/barren03.png" local planetData = { - name = "Quasisar", + name = "Tempest", startingPlanet = false, mapDisplay = { x = (planetUtilities.planetPositions and planetUtilities.planetPositions[planetID][1]) or 0.675, @@ -24,60 +24,2828 @@ local function GetPlanet(planetUtilities, planetID) primary = "Jaas Non", primaryType = "G9VI", milRating = 1, - text = [[Intact unit wrecks on this planet will come back to life as zombies. Reduce your foes to scrap and put them all the way down with the Ultimatum's Disintegration Gun.]] + feedbackLink = "http://zero-k.info/Forum/Thread/24614", + text = [[Provoked by a rival salvager, the Artefact on this planet has released an automatic defensive measure - nanobots convert any destroyed unit wrecks into zombies, hostile to all intruders. Use the Ultimatum's Disintegrator Gun to put them all the way down, then get away before the Artefact does something even nastier.]] + }, + tips = { + { + image = "unitpics/module_resurrect.png", + text = [[In this mission, any wrecked units will eventually become alive again, as slower 'zombie' versions of themselves. The zombies will be hostile to all players. Reclaim or destroy the wrecks to prevent this from happening.]] + }, + { + image = "unitpics/striderantiheavy.png", + text = [[The Ultimatum can destroy most units with a single Disintegrator shot, and even the largest Striders can only withstand a few hits. The Disintegrator is also good at smashing wrecks so they will not return as zombies.]] + }, + { + image = "unitpics/pw_artefact.png", + text = [[The Artefact has no direct defences of its own but it is being defended by a rival. Push through the zombies and your opponent's defences to access the Artefact.]] + }, }, gameConfig = { mapName = "StormSiege_v3", + modoptions = { + zombies = 1, + zombies_delay = 10, + zombies_rezspeed = 500, + zombies_permaslow = 1, + zombies_partial_reclaim = 1, + }, playerConfig = { - startX = 100, - startZ = 100, + startX = 3500, + startZ = 1170, allyTeam = 0, - facplop = false, commanderParameters = { - facplop = false, - defeatIfDestroyedObjectiveID = 2, + facplop = true, + defeatIfDestroyedObjectiveID = 3, + victoryAtLocation = { + x = 3408, + z = 7280, + radius = 120, + objectiveID = 1, + }, }, extraUnlocks = { "striderantiheavy", }, startUnits = { + { + name = "striderantiheavy", + x = 3200, + z = 1100, + facing = 0, + }, + { + name = "striderantiheavy", + x = 3300, + z = 1100, + facing = 0, + difficultyAtMost = 2, + }, + { + name = "energyheavygeo", + x = 3416, + z = 1512, + facing = 0, + }, + { + name = "staticmex", + x = 3848, + z = 1064, + facing = 0, + }, + { + name = "staticmex", + x = 3640, + z = 552, + facing = 0, + }, + { + name = "staticmex", + x = 3848, + z = 344, + facing = 0, + }, + { + name = "staticmex", + x = 3272, + z = 600, + facing = 0, + }, + { + name = "staticmex", + x = 3032, + z = 760, + facing = 0, + }, + { + name = "staticmex", + x = 2616, + z = 648, + facing = 0, + }, + { + name = "staticmex", + x = 2920, + z = 1784, + facing = 0, + }, + { + name = "staticmex", + x = 3848, + z = 1784, + facing = 0, + }, + { + name = "energypylon", + x = 3496, + z = 888, + facing = 0, + }, + { + name = "energysolar", + x = 3912, + z = 360, + facing = 3, + }, + { + name = "energysolar", + x = 3832, + z = 408, + facing = 2, + }, + { + name = "energysolar", + x = 3784, + z = 328, + facing = 1, + }, + { + name = "energysolar", + x = 3864, + z = 280, + facing = 0, + }, + { + name = "staticcon", + x = 3176, + z = 968, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3176, 968}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3151, 993}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 3256, + z = 968, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3256, 968}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3231, 993}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 3336, + z = 968, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3336, 968}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3311, 993}, options = {"shift"}}, + }, + }, + { + name = "energysolar", + x = 2680, + z = 664, + facing = 3, + }, + { + name = "energysolar", + x = 2600, + z = 712, + facing = 2, + }, + { + name = "energysolar", + x = 2552, + z = 632, + facing = 1, + }, + { + name = "energysolar", + x = 2632, + z = 584, + facing = 0, + }, + { + name = "energysolar", + x = 2840, + z = 664, + facing = 0, + }, + { + name = "striderhub", + x = 3408, + z = 1056, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3408, 1056}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3383, 1081}, options = {"shift"}}, + }, + }, + { + name = "energysolar", + x = 3000, + z = 664, + facing = 0, + }, + { + name = "turretheavylaser", + x = 3240, + z = 1592, + facing = 0, + }, + { + name = "turretheavylaser", + x = 3576, + z = 1544, + facing = 0, + }, + { + name = "turretaaflak", + x = 3192, + z = 1288, + facing = 0, + }, + { + name = "turretaaflak", + x = 3608, + z = 1288, + facing = 0, + }, + { + name = "turretheavylaser", + x = 2696, + z = 1032, + facing = 0, + }, + { + name = "turretriot", + x = 2744, + z = 1192, + facing = 0, + }, + { + name = "turretriot", + x = 3976, + z = 1288, + facing = 0, + }, + { + name = "staticheavyradar", + x = 3088, + z = 1472, + facing = 0, + }, + { + name = "energyfusion", + x = 3512, + z = 288, + facing = 0, + }, } }, aiConfig = { { - startX = 4000, - startZ = 75, + humanName = "Architects", + -- aiLib = "Null AI", + -- bitDependant = false, + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + allyTeam = 0, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "factorygunship", + "gunshipcon", + "gunshipbomb", + "gunshipemp", + "gunshipaa", + "gunshipassault", + "gunshipheavyskirm", + "gunshipskirm", + "gunshipraid", + "gunshipkrow", + "factoryamph", + "amphcon", + "amphraid", + "amphimpulse", + "amphfloater", + "amphriot", + "amphassault", + "amphbomb", + "amphaa", + "factoryhover", + "hovercon", + "hoverraid", + "hoverriot", + "hoverskirm", + "hoverassault", + "hoverdepthcharge", + "hoverarty", + "hoveraa", + }, + commander = false, + startUnits = { + { + name = "staticcon", + x = 2088, + z = 392, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2088, 392}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2095, 555}, options = {"shift"}}, + }, + }, + { + name = "factoryhover", + x = 2096, + z = 592, + facing = 0, + }, + { + name = "staticmex", + x = 600, + z = 488, + facing = 0, + }, + { + name = "staticmex", + x = 360, + z = 456, + facing = 0, + }, + { + name = "staticmex", + x = 248, + z = 248, + facing = 0, + }, + { + name = "staticmex", + x = 2408, + z = 552, + facing = 0, + }, + { + name = "staticmex", + x = 1288, + z = 488, + facing = 0, + }, + { + name = "staticmex", + x = 1384, + z = 760, + facing = 0, + }, + { + name = "staticmex", + x = 1896, + z = 664, + facing = 0, + }, + { + name = "staticmex", + x = 1512, + z = 1400, + facing = 0, + }, + { + name = "staticmex", + x = 984, + z = 1496, + facing = 0, + }, + { + name = "staticmex", + x = 968, + z = 1960, + facing = 0, + }, + { + name = "energyfusion", + x = 1576, + z = 384, + facing = 0, + }, + { + name = "staticmex", + x = 376, + z = 1656, + facing = 0, + }, + { + name = "staticmex", + x = 168, + z = 1576, + facing = 0, + }, + { + name = "energypylon", + x = 1992, + z = 792, + facing = 0, + }, + { + name = "energypylon", + x = 952, + z = 680, + facing = 0, + }, + { + name = "energyfusion", + x = 712, + z = 176, + facing = 0, + }, + { + name = "energysolar", + x = 456, + z = 456, + facing = 0, + }, + { + name = "energysolar", + x = 328, + z = 344, + facing = 0, + }, + { + name = "energysolar", + x = 1480, + z = 680, + facing = 0, + }, + { + name = "turretheavylaser", + x = 2024, + z = 1096, + facing = 0, + }, + { + name = "turretriot", + x = 2056, + z = 1224, + facing = 0, + }, + { + name = "energypylon", + x = 1336, + z = 1368, + facing = 0, + }, + { + name = "turretheavy", + x = 1160, + z = 1672, + facing = 0, + }, + { + name = "energypylon", + x = 392, + z = 1384, + facing = 0, + }, + { + name = "turretheavy", + x = 520, + z = 1848, + facing = 0, + }, + { + name = "factorygunship", + x = 824, + z = 472, + facing = 0, + }, + { + name = "staticcon", + x = 808, + z = 360, + facing = 0, + }, + { + name = "staticcon", + x = 872, + z = 360, + facing = 0, + }, + { + name = "factoryamph", + x = 1480, + z = 1064, + facing = 0, + }, + { + name = "staticcon", + x = 1448, + z = 936, + facing = 0, + }, + { + name = "staticcon", + x = 1528, + z = 936, + facing = 0, + }, + { + name = "staticheavyradar", + x = 1264, + z = 1616, + facing = 0, + }, + { + name = "turretaaflak", + x = 312, + z = 1480, + facing = 0, + }, + { + name = "turretaaflak", + x = 1176, + z = 1448, + facing = 0, + }, + { + name = "turretaaflak", + x = 776, + z = 1512, + facing = 0, + }, + { + name = "turretaaflak", + x = 1816, + z = 968, + facing = 0, + }, + { + name = "hoverraid", + x = 1890, + z = 4532, + facing = 0, + }, + { + name = "staticstorage", + x = 1384, + z = 824, + facing = 0, + }, + { + name = "staticstorage", + x = 1480, + z = 616, + facing = 0, + }, + { + name = "gunshipskirm", + x = 802, + z = 3033, + facing = 0, + }, + { + name = "amphcon", + x = 1255, + z = 528, + facing = 3, + }, + { + name = "hoverassault", + x = 1231, + z = 4966, + facing = 2, + }, + { + name = "amphfloater", + x = 1637, + z = 3859, + facing = 3, + }, + { + name = "turretlaser", + x = 1536, + z = 640, + facing = 0, + }, + { + name = "hoverarty", + x = 2080, + z = 2893, + facing = 0, + }, + { + name = "staticmex", + x = 1992, + z = 1784, + facing = 0, + }, + { + name = "gunshipskirm", + x = 2686, + z = 3777, + facing = 2, + }, + { + name = "amphraid", + x = 1400, + z = 4422, + facing = 2, + }, + { + name = "staticcon", + x = 1496, + z = 888, + facing = 0, + }, + { + name = "amphraid", + x = 1382, + z = 4324, + facing = 2, + }, + { + name = "staticmex", + x = 1512, + z = 2152, + facing = 0, + buildProgress = 0.69660002, + }, + { + name = "staticcon", + x = 1576, + z = 952, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1576, 952}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1480, 1100}, options = {"shift"}}, + }, + }, + { + name = "amphfloater", + x = 1343, + z = 3003, + facing = 0, + }, + { + name = "gunshipskirm", + x = 1460, + z = 4264, + facing = 3, + }, + { + name = "amphcon", + x = 1088, + z = 1725, + facing = 0, + }, + { + name = "turretlaser", + x = 2544, + z = 688, + facing = 0, + }, + { + name = "amphcon", + x = 1985, + z = 1889, + facing = 0, + }, + { + name = "gunshipskirm", + x = 721, + z = 3328, + facing = 0, + }, + { + name = "gunshipskirm", + x = 770, + z = 2171, + facing = 0, + }, + { + name = "staticradar", + x = 2368, + z = 560, + facing = 0, + }, + { + name = "hoverraid", + x = 1840, + z = 772, + facing = 3, + }, + { + name = "amphcon", + x = 1507, + z = 2040, + facing = 0, + }, + { + name = "hovercon", + x = 3168, + z = 437, + facing = 1, + }, + { + name = "amphcon", + x = 2006, + z = 1738, + facing = 1, + }, + { + name = "turretlaser", + x = 1872, + z = 560, + facing = 0, + }, + { + name = "amphraid", + x = 1224, + z = 1910, + facing = 0, + }, + { + name = "hovercon", + x = 2315, + z = 665, + facing = 1, + }, + { + name = "gunshipassault", + x = 824, + z = 473, + facing = 1, + buildProgress = 0.3362, + }, + { + name = "turretlaser", + x = 1088, + z = 1840, + facing = 0, + buildProgress = 0.88050002, + }, + { + name = "amphcon", + x = 1623, + z = 1136, + facing = 1, + }, + { + name = "turretlaser", + x = 2016, + z = 1984, + facing = 0, + buildProgress = 0.62769997, + }, + { + name = "hoverskirm", + x = 2096, + z = 560, + facing = 0, + buildProgress = 0.2106, + }, + { + name = "amphfloater", + x = 1480, + z = 1100, + facing = 0, + buildProgress = 0.14219999, + }, + { + name = "turretlaser", + x = 2288, + z = 720, + facing = 0, + buildProgress = 0.0018, + }, + } + }, + { + startX = 2000, + startZ = 7700, + humanName = "Scabling", + -- aiLib = "Null AI", + -- bitDependant = false, aiLib = "Circuit_difficulty_autofill", - humanName = "Enemy", bitDependant = true, commanderParameters = { facplop = false, }, allyTeam = 1, unlocks = { - "cloakraid", + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "factoryjump", + "jumpcon", + "jumpraid", + "jumpskirm", + "jumpassault", + "jumpsumo", + "jumparty", + "jumpblackhole", + "jumpaa", + "factorytank", + "tankcon", + "tankassault", + "tankheavyassault", + "tankarty", + "tankheavyarty", + "tankaa", + "tankriot", + "factoryspider", + "spidercon", + "spiderscout", + "spiderriot", + "spideremp", + "spiderskirm", + "spiderassault", + "spidercrabe", + "spiderantiheavy", + "spideraa", + "factoryveh", + "vehcon", + "vehscout", + "vehraid", + "vehriot", + "vehassault", + "vehaa", + "vehsupport", + "veharty", + "vehheavyarty", + "vehcapture", + "striderhub", + "striderdante", + "striderarty", }, - commanderLevel = 2, + commanderLevel = 6, commander = { - name = "Most Loyal Opposition", - chassis = "engineer", + name = "Zachariah", + chassis = "guardian", decorations = { - "skin_support_dark", - icon_overhead = { image = "UW" } + "skin_bombard_steel", }, - modules = { } + modules = { + "commweapon_flamethrower", + "commweapon_disintegrator", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_autorepair", + "module_autorepair", + "module_autorepair", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + } }, startUnits = { + { + name = "staticmex", + x = 968, + z = 6744, + facing = 0, + }, + { + name = "staticmex", + x = 952, + z = 6280, + facing = 0, + }, + { + name = "staticmex", + x = 1512, + z = 6088, + facing = 0, + }, + { + name = "staticmex", + x = 1992, + z = 6456, + facing = 0, + }, + { + name = "staticmex", + x = 1512, + z = 6824, + facing = 0, + }, + { + name = "staticmex", + x = 1368, + z = 7480, + facing = 0, + }, + { + name = "staticmex", + x = 1272, + z = 7752, + facing = 0, + }, + { + name = "staticmex", + x = 1896, + z = 7592, + facing = 0, + }, + { + name = "staticmex", + x = 2408, + z = 7688, + facing = 0, + }, + { + name = "staticmex", + x = 584, + z = 7752, + facing = 0, + }, + { + name = "staticmex", + x = 344, + z = 7784, + facing = 0, + }, + { + name = "staticmex", + x = 248, + z = 7992, + facing = 0, + }, + { + name = "staticmex", + x = 168, + z = 6664, + facing = 0, + }, + { + name = "staticmex", + x = 376, + z = 6584, + facing = 0, + }, + { + name = "staticmex", + x = 2616, + z = 7592, + facing = 0, + }, + { + name = "staticmex", + x = 2920, + z = 6456, + facing = 0, + }, + { + name = "staticmex", + x = 3016, + z = 7480, + facing = 0, + }, + { + name = "staticmex", + x = 3272, + z = 7656, + facing = 0, + }, + { + name = "staticmex", + x = 3640, + z = 7688, + facing = 0, + }, + { + name = "staticmex", + x = 3848, + z = 7880, + facing = 0, + }, + { + name = "staticmex", + x = 3848, + z = 7176, + facing = 0, + }, + { + name = "staticmex", + x = 3848, + z = 6456, + facing = 0, + }, + { + name = "energygeo", + x = 3416, + z = 6712, + facing = 0, + }, + { + name = "energyfusion", + x = 3992, + z = 8096, + facing = 0, + }, + { + name = "energyfusion", + x = 3032, + z = 8048, + facing = 0, + }, + { + name = "energyfusion", + x = 2200, + z = 7936, + facing = 0, + }, + { + name = "energyfusion", + x = 1384, + z = 7968, + facing = 0, + }, + { + name = "energyfusion", + x = 424, + z = 8112, + facing = 0, + }, + { + name = "energypylon", + x = 744, + z = 7832, + facing = 0, + }, + { + name = "energypylon", + x = 1640, + z = 7672, + facing = 0, + }, + { + name = "energypylon", + x = 2568, + z = 7688, + facing = 0, + }, + { + name = "energypylon", + x = 3512, + z = 7688, + facing = 0, + }, + { + name = "factorytank", + x = 2096, + z = 7488, + facing = 2, + }, + { + name = "staticcon", + x = 2056, + z = 7608, + facing = 2, + }, + { + name = "staticcon", + x = 2136, + z = 7608, + facing = 2, + }, + { + name = "factoryveh", + x = 3696, + z = 7456, + facing = 2, + }, + { + name = "staticcon", + x = 3656, + z = 7592, + facing = 2, + }, + { + name = "staticcon", + x = 3736, + z = 7592, + facing = 2, + }, + { + name = "striderhub", + x = 2800, + z = 7776, + facing = 2, + }, + { + name = "staticcon", + x = 2888, + z = 7768, + facing = 2, + }, + { + name = "energypylon", + x = 3384, + z = 7032, + facing = 2, + }, + { + name = "turretheavy", + x = 3544, + z = 6712, + facing = 2, + }, + { + name = "turretheavy", + x = 3304, + z = 6696, + facing = 2, + }, + { + name = "turretaafar", + x = 3216, + z = 6992, + facing = 2, + }, + { + name = "turretaafar", + x = 3600, + z = 6992, + facing = 2, + }, + { + name = "turretriot", + x = 3272, + z = 7272, + facing = 3, + }, + { + name = "turretriot", + x = 3544, + z = 7272, + facing = 1, + }, + { + name = "factoryspider", + x = 376, + z = 7416, + facing = 2, + }, + { + name = "staticcon", + x = 344, + z = 7528, + facing = 2, + }, + { + name = "staticcon", + x = 424, + z = 7528, + facing = 2, + }, + { + name = "factoryjump", + x = 1048, + z = 7432, + facing = 2, + }, + { + name = "staticcon", + x = 1016, + z = 7560, + facing = 2, + }, + { + name = "staticcon", + x = 1096, + z = 7560, + facing = 2, + }, + { + name = "energypylon", + x = 408, + z = 6952, + facing = 2, + }, + { + name = "turretheavy", + x = 2632, + z = 7224, + facing = 2, + }, + { + name = "energypylon", + x = 1352, + z = 6904, + facing = 2, + }, + { + name = "turretheavy", + x = 1192, + z = 6552, + facing = 2, + }, + { + name = "turretheavy", + x = 1688, + z = 7224, + facing = 2, + }, + { + name = "turretheavy", + x = 520, + z = 6424, + facing = 2, + }, + { + name = "striderdante", + x = 2800, + z = 7680, + facing = 0, + buildProgress = 0.44049999, + }, + { + name = "tankcon", + x = 2389, + z = 6477, + facing = 0, + }, + { + name = "spideremp", + x = 2160, + z = 6249, + facing = 2, + }, + { + name = "vehraid", + x = 2148, + z = 6175, + facing = 2, + }, + { + name = "jumpassault", + x = 2096, + z = 6105, + facing = 2, + }, + { + name = "staticstorage", + x = 2024, + z = 7720, + facing = 2, + }, + { + name = "spidercon", + x = 1590, + z = 6433, + facing = 2, + }, + { + name = "tankcon", + x = 2254, + z = 5448, + facing = 2, + }, + { + name = "turretlaser", + x = 1872, + z = 7456, + facing = 2, + }, + { + name = "turretlaser", + x = 1600, + z = 7648, + facing = 2, + }, + { + name = "jumpcon", + x = 1054, + z = 5346, + facing = 0, + }, + { + name = "turretlaser", + x = 1088, + z = 5008, + facing = 1, + }, + { + name = "turretlaser", + x = 512, + z = 7888, + facing = 2, + }, + { + name = "tankcon", + x = 3349, + z = 5832, + facing = 0, + }, + { + name = "vehcon", + x = 3522, + z = 5846, + facing = 3, + }, + { + name = "jumpcon", + x = 2552, + z = 5828, + facing = 2, + }, + { + name = "staticradar", + x = 656, + z = 7968, + facing = 2, + }, + { + name = "staticradar", + x = 3632, + z = 7792, + facing = 2, + }, + { + name = "tankcon", + x = 2997, + z = 5870, + facing = 2, + }, + { + name = "vehassault", + x = 2121, + z = 6129, + facing = 2, + }, + { + name = "spidercon", + x = 434, + z = 5626, + facing = 2, + }, + { + name = "staticmex", + x = 2200, + z = 6152, + facing = 0, + }, + { + name = "turretlaser", + x = 976, + z = 6384, + facing = 2, + }, + { + name = "turretlaser", + x = 3792, + z = 7888, + facing = 2, + }, + { + name = "turretlaser", + x = 3184, + z = 7664, + facing = 2, + }, + { + name = "energypylon", + x = 2104, + z = 6232, + facing = 2, + }, + { + name = "tankcon", + x = 2189, + z = 5626, + facing = 2, + }, + { + name = "spidercon", + x = 223, + z = 5346, + facing = 1, + }, + { + name = "turretlaser", + x = 2048, + z = 6288, + facing = 2, + }, + { + name = "turretlaser", + x = 160, + z = 6624, + facing = 2, + }, + { + name = "staticradar", + x = 2096, + z = 6464, + facing = 2, + }, + { + name = "tankcon", + x = 2793, + z = 6159, + facing = 1, + }, + { + name = "spideremp", + x = 2180, + z = 6192, + facing = 2, + }, + { + name = "jumpraid", + x = 2447, + z = 5267, + facing = 1, + }, + { + name = "vehaa", + x = 3710, + z = 5565, + facing = 3, + }, + { + name = "energywind", + x = 1736, + z = 6568, + facing = 2, + }, + { + name = "staticmex", + x = 1096, + z = 5288, + facing = 0, + }, + { + name = "staticmex", + x = 2920, + z = 6040, + facing = 0, + }, + { + name = "staticmex", + x = 3640, + z = 6040, + facing = 0, + }, + { + name = "staticmex", + x = 472, + z = 5528, + facing = 0, + }, + { + name = "tankassault", + x = 2096, + z = 7460, + facing = 2, + buildProgress = 0.88739997, + }, + { + name = "turretlaser", + x = 2736, + z = 6112, + facing = 2, + }, + { + name = "jumpcon", + x = 1864, + z = 6667, + facing = 2, + }, + { + name = "turretlaser", + x = 336, + z = 5456, + facing = 1, + }, + { + name = "vehraid", + x = 2855, + z = 6521, + facing = 2, + }, + { + name = "turretlaser", + x = 3520, + z = 5808, + facing = 2, + }, + { + name = "jumpassault", + x = 1048, + z = 7408, + facing = 2, + buildProgress = 0.70270002, + }, + { + name = "staticmex", + x = 3512, + z = 5720, + facing = 0, + }, + { + name = "staticmex", + x = 104, + z = 5224, + facing = 0, + }, + { + name = "turretmissile", + x = 512, + z = 5456, + facing = 1, + buildProgress = 0.80989999, + }, + { + name = "staticmex", + x = 2296, + z = 5288, + facing = 0, + buildProgress = 0.02, + }, + { + name = "turretgauss", + x = 408, + z = 5272, + facing = 1, + buildProgress = 0.0025, + }, } }, }, - defeatConditionConfig = { - - }, - objectiveConfig = { - -- This is just related to displaying objectives on the UI. + neutralUnits = { + { + name = "pw_artefact", + x = 3408, + z = 7280, + facing = 0, + invincible = true, + ignoredByAI = true, + mapMarker = { + text = "Artefact", + color = "green" + }, + }, }, - bonusObjectiveConfig = { + initialWrecks = { + { + name = "staticmex_dead", + x = 3640, + z = 4264, + facing = 0, + }, + { + name = "staticmex_dead", + x = 3640, + z = 3992, + facing = 0, + }, + { + name = "staticmex_dead", + x = 2408, + z = 4392, + facing = 0, + }, + { + name = "staticmex_dead", + x = 3992, + z = 4120, + facing = 0, + }, + { + name = "staticmex_dead", + x = 2104, + z = 4264, + facing = 0, + }, + { + name = "staticmex_dead", + x = 3880, + z = 3672, + facing = 0, + }, + { + name = "staticmex_dead", + x = 2104, + z = 3976, + facing = 0, + }, + { + name = "staticmex_dead", + x = 3432, + z = 3224, + facing = 0, + }, + { + name = "staticmex_dead", + x = 2408, + z = 3832, + facing = 0, + }, + { + name = "staticmex_dead", + x = 2712, + z = 4120, + facing = 0, + }, + { + name = "staticmex_dead", + x = 3032, + z = 2952, + facing = 0, + }, + { + name = "staticmex_dead", + x = 2712, + z = 3336, + facing = 0, + }, + { + name = "staticmex_dead", + x = 2712, + z = 4904, + facing = 0, + }, + { + name = "staticmex_dead", + x = 2952, + z = 3752, + facing = 0, + }, + { + name = "staticmex_dead", + x = 2296, + z = 5288, + facing = 0, + }, + { + name = "staticmex_dead", + x = 1928, + z = 4984, + facing = 0, + }, + { + name = "staticmex_dead", + x = 2952, + z = 4504, + facing = 0, + }, + { + name = "staticmex_dead", + x = 1464, + z = 4520, + facing = 0, + }, + { + name = "staticmex_dead", + x = 1000, + z = 4360, + facing = 0, + }, + { + name = "staticmex_dead", + x = 3016, + z = 5288, + facing = 0, + }, + { + name = "staticmex_dead", + x = 696, + z = 4120, + facing = 0, + }, + { + name = "staticmex_dead", + x = 3432, + z = 5016, + facing = 0, + }, + { + name = "staticmex_dead", + x = 1000, + z = 3880, + facing = 0, + }, + { + name = "staticmex_dead", + x = 3880, + z = 4568, + facing = 0, + }, + { + name = "staticmex_dead", + x = 872, + z = 3448, + facing = 0, + }, + { + name = "staticmex_dead", + x = 456, + z = 3432, + facing = 0, + }, + { + name = "staticmex_dead", + x = 136, + z = 3736, + facing = 0, + }, + { + name = "staticmex_dead", + x = 3992, + z = 3016, + facing = 0, + }, + { + name = "staticmex_dead", + x = 136, + z = 4504, + facing = 0, + }, + { + name = "staticmex_dead", + x = 440, + z = 4808, + facing = 0, + }, + { + name = "staticmex_dead", + x = 872, + z = 4792, + facing = 0, + }, + { + name = "staticmex_dead", + x = 1096, + z = 5288, + facing = 0, + }, + { + name = "staticmex_dead", + x = 472, + z = 5528, + facing = 0, + }, + { + name = "energysolar_dead", + x = 3976, + z = 3144, + facing = 0, + }, + { + name = "energysolar_dead", + x = 3976, + z = 3288, + facing = 0, + }, + { + name = "staticmex_dead", + x = 104, + z = 5224, + facing = 0, + }, + { + name = "energysolar_dead", + x = 3960, + z = 3432, + facing = 0, + }, + { + name = "energysolar_dead", + x = 3960, + z = 3576, + facing = 0, + }, + { + name = "energysolar_dead", + x = 3960, + z = 3768, + facing = 0, + }, + { + name = "energysolar_dead", + x = 3992, + z = 3912, + facing = 0, + }, + { + name = "energysolar_dead", + x = 4040, + z = 4056, + facing = 0, + }, + { + name = "energysolar_dead", + x = 3848, + z = 4104, + facing = 0, + }, + { + name = "staticmex_dead", + x = 1464, + z = 3720, + facing = 0, + }, + { + name = "energysolar_dead", + x = 3688, + z = 4120, + facing = 0, + }, + { + name = "energysolar_dead", + x = 3560, + z = 4168, + facing = 0, + }, + { + name = "energysolar_dead", + x = 3752, + z = 4328, + facing = 0, + }, + { + name = "staticmex_dead", + x = 1928, + z = 3272, + facing = 0, + }, + { + name = "energysolar_dead", + x = 3880, + z = 4456, + facing = 0, + }, + { + name = "staticmex_dead", + x = 2296, + z = 2952, + facing = 0, + }, + { + name = "energysolar_dead", + x = 2824, + z = 4920, + facing = 0, + }, + { + name = "energysolar_dead", + x = 2952, + z = 5064, + facing = 0, + }, + { + name = "staticmex_dead", + x = 1096, + z = 2952, + facing = 0, + }, + { + name = "energysolar_dead", + x = 3080, + z = 5208, + facing = 0, + }, + { + name = "energysolar_dead", + x = 3192, + z = 5144, + facing = 0, + }, + { + name = "energysolar_dead", + x = 3320, + z = 5016, + facing = 0, + }, + { + name = "energyheavygeo_dead", + x = 1544, + z = 4104, + facing = 0, + }, + { + name = "energysolar_dead", + x = 2184, + z = 4056, + facing = 0, + }, + { + name = "energysolar_dead", + x = 2184, + z = 4200, + facing = 0, + }, + { + name = "energysolar_dead", + x = 2296, + z = 4232, + facing = 0, + }, + { + name = "energysolar_dead", + x = 2440, + z = 4312, + facing = 0, + }, + { + name = "energysolar_dead", + x = 2568, + z = 4296, + facing = 0, + }, + { + name = "energysolar_dead", + x = 2712, + z = 4248, + facing = 0, + }, + { + name = "turretriot_dead", + x = 1480, + z = 3976, + facing = 2, + }, + { + name = "turretriot_dead", + x = 1480, + z = 4216, + facing = 0, + }, + { + name = "turretaaflak_dead", + x = 1304, + z = 4120, + facing = 3, + }, + { + name = "energysolar_dead", + x = 2056, + z = 5000, + facing = 0, + }, + { + name = "energysolar_dead", + x = 2200, + z = 5096, + facing = 0, + }, + { + name = "turretemp_dead", + x = 1584, + z = 3984, + facing = 2, + buildProgress = 0.97490001, + }, + { + name = "energysolar_dead", + x = 2344, + z = 5192, + facing = 0, + }, + { + name = "turretemp_dead", + x = 1584, + z = 4224, + facing = 0, + }, + { + name = "turretlaser_dead", + x = 3936, + z = 2928, + facing = 2, + }, + { + name = "turretlaser_dead", + x = 3664, + z = 3088, + facing = 2, + }, + { + name = "turretlaser_dead", + x = 3168, + z = 3648, + facing = 2, + }, + { + name = "turretlaser_dead", + x = 2144, + z = 3216, + facing = 2, + }, + { + name = "turretlaser_dead", + x = 2064, + z = 3552, + facing = 3, + }, + { + name = "turretlaser_dead", + x = 1968, + z = 3856, + facing = 3, + }, + { + name = "turretlaser_dead", + x = 1952, + z = 4368, + facing = 3, + }, + { + name = "turretmissile_dead", + x = 1168, + z = 3216, + facing = 2, + }, + { + name = "turretmissile_dead", + x = 1072, + z = 3216, + facing = 2, + }, + { + name = "turretlaser_dead", + x = 2016, + z = 4640, + facing = 3, + }, + { + name = "turretmissile_dead", + x = 592, + z = 3216, + facing = 2, + }, + { + name = "turretmissile_dead", + x = 512, + z = 3216, + facing = 2, + }, + { + name = "turretlaser_dead", + x = 2368, + z = 5024, + facing = 0, + }, + { + name = "turretlaser_dead", + x = 2848, + z = 5328, + facing = 0, + }, + { + name = "turretmissile_dead", + x = 80, + z = 3808, + facing = 2, + }, + { + name = "turretmissile_dead", + x = 144, + z = 3824, + facing = 2, + }, + { + name = "turretlaser_dead", + x = 3360, + z = 5328, + facing = 0, + }, + { + name = "turretmissile_dead", + x = 80, + z = 4720, + facing = 0, + }, + { + name = "turretlaser_dead", + x = 3808, + z = 5120, + facing = 0, + }, + { + name = "turretmissile_dead", + x = 176, + z = 4736, + facing = 0, + }, + { + name = "turretheavylaser_dead", + x = 3672, + z = 5032, + facing = 0, + }, + { + name = "turretmissile_dead", + x = 608, + z = 5120, + facing = 0, + }, + { + name = "turretmissile_dead", + x = 672, + z = 5136, + facing = 0, + }, + { + name = "turretmissile_dead", + x = 1184, + z = 5248, + facing = 0, + }, + { + name = "turretmissile_dead", + x = 1248, + z = 5264, + facing = 0, + }, + { + name = "turretheavylaser_dead", + x = 3768, + z = 3208, + facing = 2, + }, + { + name = "turretmissile_dead", + x = 928, + z = 4512, + facing = 0, + }, + { + name = "turretmissile_dead", + x = 976, + z = 4528, + facing = 0, + }, + { + name = "turretgauss_dead", + x = 2600, + z = 3944, + facing = 2, + }, + { + name = "turretmissile_dead", + x = 912, + z = 3712, + facing = 2, + }, + { + name = "turretgauss_dead", + x = 3224, + z = 3944, + facing = 2, + }, + { + name = "turretmissile_dead", + x = 976, + z = 3696, + facing = 2, + }, + { + name = "turretaafar_dead", + x = 864, + z = 4112, + facing = 1, + }, + { + name = "energywind_dead", + x = 760, + z = 4200, + facing = 1, + }, + { + name = "energywind_dead", + x = 840, + z = 4248, + facing = 1, + }, + { + name = "turretgauss_dead", + x = 2632, + z = 4600, + facing = 0, + }, + { + name = "energywind_dead", + x = 920, + z = 4312, + facing = 1, + }, + { + name = "energywind_dead", + x = 728, + z = 4024, + facing = 1, + }, + { + name = "turretgauss_dead", + x = 3224, + z = 4584, + facing = 0, + }, + { + name = "energywind_dead", + x = 808, + z = 3960, + facing = 1, + }, + { + name = "energywind_dead", + x = 888, + z = 3896, + facing = 1, + }, + { + name = "energywind_dead", + x = 968, + z = 3832, + facing = 1, + }, + { + name = "energywind_dead", + x = 648, + z = 4072, + facing = 1, + }, + { + name = "energysolar_dead", + x = 2424, + z = 3736, + facing = 1, + }, + { + name = "energywind_dead", + x = 568, + z = 4008, + facing = 1, + }, + { + name = "energysolar_dead", + x = 2504, + z = 3592, + facing = 1, + }, + { + name = "energywind_dead", + x = 488, + z = 3928, + facing = 1, + }, + { + name = "energysolar_dead", + x = 2568, + z = 3448, + facing = 1, + }, + { + name = "energywind_dead", + x = 408, + z = 3864, + facing = 1, + }, + { + name = "energysolar_dead", + x = 2648, + z = 3304, + facing = 1, + }, + { + name = "energywind_dead", + x = 328, + z = 3800, + facing = 1, + }, + { + name = "energysolar_dead", + x = 2808, + z = 3384, + facing = 1, + }, + { + name = "energywind_dead", + x = 248, + z = 3736, + facing = 1, + }, + { + name = "energysolar_dead", + x = 2840, + z = 3528, + facing = 1, + }, + { + name = "energysolar_dead", + x = 2872, + z = 3672, + facing = 1, + }, + { + name = "energywind_dead", + x = 168, + z = 4424, + facing = 1, + }, + { + name = "energywind_dead", + x = 248, + z = 4392, + facing = 1, + }, + { + name = "energywind_dead", + x = 328, + z = 4344, + facing = 1, + }, + { + name = "energywind_dead", + x = 408, + z = 4312, + facing = 1, + }, + { + name = "energysolar_dead", + x = 3144, + z = 2968, + facing = 1, + }, + { + name = "energywind_dead", + x = 488, + z = 4264, + facing = 1, + }, + { + name = "energysolar_dead", + x = 3288, + z = 3048, + facing = 1, + }, + { + name = "energywind_dead", + x = 568, + z = 4232, + facing = 1, + }, + { + name = "energysolar_dead", + x = 3432, + z = 3144, + facing = 1, + }, + { + name = "energywind_dead", + x = 648, + z = 4184, + facing = 1, + }, + { + name = "energywind_dead", + x = 504, + z = 4744, + facing = 1, + }, + { + name = "energywind_dead", + x = 584, + z = 4744, + facing = 1, + }, + { + name = "energywind_dead", + x = 664, + z = 4744, + facing = 1, + }, + { + name = "energywind_dead", + x = 744, + z = 4744, + facing = 1, + }, + { + name = "energywind_dead", + x = 824, + z = 4744, + facing = 1, + }, + { + name = "staticcon_dead", + x = 760, + z = 4472, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {760, 4472}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {785, 4447}, options = {"shift"}}, + }, + }, + { + name = "staticcon_dead", + x = 760, + z = 4552, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {760, 4552}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {785, 4527}, options = {"shift"}}, + }, + }, + { + name = "factoryamph_dead", + x = 664, + z = 4568, + facing = 3, + }, + { + name = "staticcon_dead", + x = 2328, + z = 4792, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2328, 4792}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2303, 4767}, options = {"shift"}}, + }, + }, + { + name = "staticcon_dead", + x = 2408, + z = 4792, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2408, 4792}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2383, 4767}, options = {"shift"}}, + }, + }, + { + name = "factorytank_dead", + x = 2368, + z = 4672, + facing = 2, + }, + { + name = "staticcon_dead", + x = 3464, + z = 3800, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3464, 3800}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3439, 3825}, options = {"shift"}}, + }, + }, + { + name = "staticcon_dead", + x = 3544, + z = 3800, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3544, 3800}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3519, 3825}, options = {"shift"}}, + }, + }, + { + name = "factoryjump_dead", + x = 3496, + z = 3688, + facing = 2, + }, + { + name = "staticcon_dead", + x = 3512, + z = 4440, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3512, 4440}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3487, 4415}, options = {"shift"}}, + }, + }, + { + name = "staticcon_dead", + x = 3608, + z = 4440, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3608, 4440}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3583, 4415}, options = {"shift"}}, + }, + }, + { + name = "staticcon_dead", + x = 3560, + z = 4520, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3560, 4520}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3535, 4495}, options = {"shift"}}, + }, + }, + { + name = "striderhub_dead", + x = 3440, + z = 4528, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3440, 4528}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3415, 4503}, options = {"shift"}}, + }, + }, + { + name = "staticcon_dead", + x = 3512, + z = 4616, + facing = 2, + buildProgress = 0.05, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3512, 4616}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3487, 4591}, options = {"shift"}}, + }, + }, + { + name = "striderhub_dead", + x = 720, + z = 3712, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {720, 3712}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {745, 3737}, options = {"shift"}}, + }, + }, + { + name = "turretaaclose_dead", + x = 2680, + z = 3592, + facing = 2, + }, + { + name = "staticcon_dead", + x = 632, + z = 3704, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {632, 3704}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {657, 3729}, options = {"shift"}}, + }, + }, + { + name = "staticcon_dead", + x = 680, + z = 3624, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {680, 3624}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {705, 3649}, options = {"shift"}}, + }, + }, + { + name = "turretaaclose_dead", + x = 3656, + z = 3624, + facing = 2, + }, + { + name = "amphriot_dead", + x = 390, + z = 3538, + facing = 0, + }, + { + name = "amphriot_dead", + x = 436, + z = 4567, + facing = 0, + }, + { + name = "amphriot_dead", + x = 2231, + z = 3592, + facing = 0, + }, + { + name = "amphriot_dead", + x = 3195, + z = 4339, + facing = 0, + }, + { + name = "amphriot_dead", + x = 3877, + z = 3456, + facing = 0, + }, + { + name = "amphriot_dead", + x = 3231, + z = 4917, + facing = 0, + }, + { + name = "amphriot_dead", + x = 1390, + z = 5030, + facing = 0, + }, + { + name = "amphfloater_dead", + x = 1413, + z = 3238, + facing = 0, + }, + { + name = "amphfloater_dead", + x = 2340, + z = 3631, + facing = 0, + }, + { + name = "amphfloater_dead", + x = 3165, + z = 4230, + facing = 0, + }, + { + name = "amphfloater_dead", + x = 1297, + z = 4588, + facing = 0, + }, + { + name = "amphfloater_dead", + x = 3984, + z = 4321, + facing = 0, + }, + { + name = "amphassault_dead", + x = 636, + z = 3938, + facing = 0, + }, + { + name = "tankassault_dead", + x = 1408, + z = 4344, + facing = 0, + }, + { + name = "tankassault_dead", + x = 2821, + z = 4484, + facing = 0, + }, + { + name = "tankassault_dead", + x = 3153, + z = 3203, + facing = 0, + }, + { + name = "tankassault_dead", + x = 1755, + z = 3161, + facing = 0, + }, + { + name = "amphriot_dead", + x = 2958, + z = 4808, + facing = 0, + }, + { + name = "tankriot_dead", + x = 2264, + z = 4906, + facing = 0, + }, + { + name = "tankriot_dead", + x = 1174, + z = 4301, + facing = 0, + }, + { + name = "jumpassault_dead", + x = 3794, + z = 4041, + facing = 0, + }, + { + name = "jumpassault_dead", + x = 1652, + z = 3719, + facing = 0, + }, + { + name = "striderdante_dead", + x = 2919, + z = 2559, + facing = 0, + }, + { + name = "staticradar_dead", + x = 3296, + z = 3248, + facing = 2, + }, + { + name = "striderdante_dead", + x = 2268, + z = 4372, + facing = 0, + }, + { + name = "striderdante_dead", + x = 354, + z = 4186, + facing = 0, + }, + }, + defeatConditionConfig = { + [0] = { + loseAfterSeconds = 20*60, + timeLossObjectiveID = 2, + }, + [1] = { + ignoreUnitLossDefeat = true, + loseAfterSeconds = false, + }, + }, + objectiveConfig = { + [1] = { + description = "Bring your Commander to the Artefact", + }, + [2] = { + description = "Win before 20:00", + }, + [3] = { + description = "Protect your Commander", + }, + }, + bonusObjectiveConfig = { + [1] = { + victoryByTime = 15*60, + image = planetUtilities.ICON_OVERLAY.CLOCK, + description = "Win by 15:00", + experience = planetUtilities.BONUS_EXP, + }, + [2] = { + satisfyOnce = true, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 8, + unitTypes = { + "striderantiheavy", + }, + image = planetUtilities.ICON_DIR .. "striderantiheavy.png", + imageOverlay = planetUtilities.ICON_OVERLAY.REPAIR, + description = "Have 8 Ultimatums", + experience = planetUtilities.BONUS_EXP, + }, + [3] = { + satisfyOnce = true, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 4, + unitTypes = { + "energygeo", + "energyheavygeo", + }, + image = planetUtilities.ICON_DIR .. "energygeo.png", + imageOverlay = planetUtilities.ICON_OVERLAY.REPAIR, + description = "Have at least 4 Geothermals (of either kind)", + experience = planetUtilities.BONUS_EXP, + }, } }, completionReward = { diff --git a/campaign/sample/planets/planet6.lua b/campaign/sample/planets/planet6.lua index 4b0004ce9..a069f8a63 100644 --- a/campaign/sample/planets/planet6.lua +++ b/campaign/sample/planets/planet6.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Voblaka", primaryType = "F9V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24429", text = [[This battle is taking place at high altitude, so deploy Wind Generators for cheap and efficient energy income. Use the Knight's lightning gun to eliminate the enemy Jumpbots.]] }, tips = { diff --git a/campaign/sample/planets/planet60.lua b/campaign/sample/planets/planet60.lua index 72bdd1ca1..d96ef53b5 100644 --- a/campaign/sample/planets/planet60.lua +++ b/campaign/sample/planets/planet60.lua @@ -7,7 +7,7 @@ local function GetPlanet(planetUtilities, planetID) local image = LUA_DIRNAME .. "images/planets/terran02.png" local planetData = { - name = "Pen-Yilat", + name = "Pendust", startingPlanet = false, mapDisplay = { x = (planetUtilities.planetPositions and planetUtilities.planetPositions[planetID][1]) or 0.86, @@ -24,17 +24,31 @@ local function GetPlanet(planetUtilities, planetID) primary = "Narlapa", primaryType = "G7V", milRating = 1, - text = [[...]] + feedbackLink = "http://zero-k.info/Forum/Thread/24594", + text = [[Take control of the sea and then the enemy shoreline with Shogun battleships. You'd better hurry - if they finish their Zenith meteor controller, things will become a lot more difficult...]] + }, + tips = { + { + image = "unitpics/shipheavyarty.png", + text = [[The Shogun battleship is a straightforward unit; nine artillery cannons worth of firepower lay waste to your enemies. As artillery units go the Shogun is fairly tough, but keep it away from submarines - it has no defence against underwater foes.]] + }, + { + image = "unitpics/conversion_partillery.png", + text = [[If the terrain or enemy shields don't permit direct fire, Shoguns can be toggled to fire at a high angle instead. This firing mode is less accurate so use it only when necessary.]] + }, + { + image = "unitpics/zenith.png", + text = [[The Zenith superweapon collects meteors from space and flings them across the map. The best counter to any superweapon is to destroy it before it is completed.]] + }, }, gameConfig = { mapName = "Downs_of_Destruction_Fix", playerConfig = { - startX = 100, - startZ = 100, + startX = 5000, + startZ = 1500, allyTeam = 0, - facplop = false, commanderParameters = { - facplop = false, + facplop = true, defeatIfDestroyedObjectiveID = 2, }, extraUnlocks = { @@ -42,44 +56,4033 @@ local function GetPlanet(planetUtilities, planetID) "shipheavyarty", }, startUnits = { + { + name = "shipheavyarty", + x = 5450, + z = 1200, + facing = 0, + buildProgress = 0.5, + }, + -- flotilla + { + name = "shiparty", + x = 4800, + z = 1700, + facing = 0, + }, + { + name = "shipheavyarty", + x = 5000, + z = 1700, + facing = 0, + }, + { + name = "shiparty", + x = 5200, + z = 1700, + facing = 0, + }, + { + name = "shipskirm", + x = 4600, + z = 1800, + facing = 0, + }, + { + name = "shipriot", + x = 4800, + z = 1900, + facing = 0, + }, + { + name = "shipassault", + x = 5000, + z = 2000, + facing = 0, + }, + { + name = "shipriot", + x = 5200, + z = 1900, + facing = 0, + }, + { + name = "shipskirm", + x = 5400, + z = 1800, + facing = 0, + }, + -- + { + name = "pw_metal", + x = 4950, + z = 250, + facing = 0, + }, + { + name = "factoryship", + x = 5024, + z = 1232, + facing = 0, + }, + { + name = "staticmex", + x = 3336, + z = 1592, + facing = 0, + }, + { + name = "staticmex", + x = 4408, + z = 952, + facing = 0, + }, + { + name = "staticmex", + x = 5528, + z = 2392, + facing = 0, + }, + -- { + -- name = "shipheavyarty", + -- x = 5583, + -- z = 1713, + -- facing = 0, + -- }, + { + name = "energywind", + x = 4456, + z = 904, + facing = 2, + }, + { + name = "staticmex", + x = 4248, + z = 1768, + facing = 2, + }, + { + name = "staticcon", + x = 5176, + z = 1160, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5176, 1160}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5151, 1185}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5176, + z = 1256, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5176, 1256}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5151, 1281}, options = {"shift"}}, + }, + }, + { + name = "striderhub", + x = 5280, + z = 1200, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5280, 1200}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5255, 1225}, options = {"shift"}}, + }, + }, + { + name = "energywind", + x = 3384, + z = 1592, + facing = 1, + }, + { + name = "energywind", + x = 3384, + z = 1640, + facing = 1, + }, + { + name = "energywind", + x = 3336, + z = 1640, + facing = 0, + }, + { + name = "energywind", + x = 3288, + z = 1640, + facing = 0, + }, + { + name = "energywind", + x = 3288, + z = 1592, + facing = 3, + }, + { + name = "energywind", + x = 3288, + z = 1544, + facing = 3, + }, + { + name = "energywind", + x = 3336, + z = 1544, + facing = 2, + }, + { + name = "energywind", + x = 3384, + z = 1544, + facing = 2, + }, + { + name = "energywind", + x = 4456, + z = 952, + facing = 1, + }, + { + name = "energywind", + x = 4456, + z = 1000, + facing = 1, + }, + { + name = "energywind", + x = 4408, + z = 1000, + facing = 0, + }, + { + name = "energywind", + x = 4360, + z = 1000, + facing = 0, + }, + { + name = "energywind", + x = 4360, + z = 952, + facing = 3, + }, + { + name = "energywind", + x = 4360, + z = 904, + facing = 3, + }, + { + name = "energywind", + x = 4408, + z = 904, + facing = 2, + }, + { + name = "energysolar", + x = 4312, + z = 1784, + facing = 3, + }, + { + name = "staticcon", + x = 5176, + z = 1352, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5176, 1352}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5151, 1377}, options = {"shift"}}, + }, + }, + { + name = "energysolar", + x = 4184, + z = 1752, + facing = 1, + }, + { + name = "energywind", + x = 5576, + z = 2392, + facing = 3, + }, + { + name = "energywind", + x = 5576, + z = 2440, + facing = 3, + }, + { + name = "energywind", + x = 5528, + z = 2440, + facing = 2, + }, + { + name = "energywind", + x = 5480, + z = 2440, + facing = 2, + }, + { + name = "energywind", + x = 5480, + z = 2392, + facing = 1, + }, + { + name = "energywind", + x = 5480, + z = 2344, + facing = 1, + }, + { + name = "energywind", + x = 5528, + z = 2344, + facing = 0, + }, + { + name = "energywind", + x = 5576, + z = 2344, + facing = 0, + }, } }, aiConfig = { { - startX = 4000, - startZ = 75, + humanName = "Biobas", aiLib = "Circuit_difficulty_autofill", - humanName = "Enemy", bitDependant = true, - commanderParameters = { - facplop = false, - }, - allyTeam = 1, + --aiLib = "Null AI", + --bitDependant = false, + allyTeam = 0, unlocks = { - "cloakraid", + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "staticrearm", + "factoryplane", + "planecon", + "planescout", + "planefighter", + "planeheavyfighter", + "bomberprec", + "bomberdisarm", + "bomberheavy", + "factoryamph", + "amphcon", + "amphraid", + "amphimpulse", + "amphfloater", + "amphriot", + "amphassault", + "amphbomb", + "amphaa", + "factoryship", + "shipcon", + "shipaa", + "shiparty", + "shipassault", + "shipriot", + "shipscout", + "shipskirm", + "shiptorpraider", + "subraider", }, - commanderLevel = 2, - commander = { - name = "Most Loyal Opposition", - chassis = "engineer", - decorations = { - "skin_support_dark", - icon_overhead = { image = "UW" } + commander = false, + startUnits = { + { + name = "staticmex", + x = 2056, + z = 504, + facing = 0, + }, + { + name = "staticmex", + x = 1432, + z = 744, + facing = 0, + }, + { + name = "staticmex", + x = 456, + z = 936, + facing = 0, + }, + { + name = "staticmex", + x = 248, + z = 88, + facing = 0, + }, + { + name = "staticmex", + x = 1144, + z = 1720, + facing = 0, + }, + { + name = "staticmex", + x = 2744, + z = 264, + facing = 0, + }, + { + name = "staticmex", + x = 4072, + z = 264, + facing = 0, + }, + { + name = "energyheavygeo", + x = 1736, + z = 1368, + facing = 0, + }, + { + name = "turretlaser", + x = 2640, + z = 336, + facing = 0, + }, + { + name = "planecon", + x = 4987, + z = 3426, + facing = 1, + }, + { + name = "energypylon", + x = 1256, + z = 1224, + facing = 2, + }, + { + name = "energypylon", + x = 520, + z = 536, + facing = 2, + }, + { + name = "energywind", + x = 824, + z = 872, + facing = 2, + }, + { + name = "energywind", + x = 904, + z = 872, + facing = 2, + }, + { + name = "energywind", + x = 904, + z = 952, + facing = 2, + }, + { + name = "energywind", + x = 824, + z = 952, + facing = 2, + }, + { + name = "energypylon", + x = 2088, + z = 840, + facing = 2, + }, + { + name = "energypylon", + x = 2888, + z = 440, + facing = 2, + }, + { + name = "energyfusion", + x = 440, + z = 48, + facing = 2, + }, + { + name = "energyfusion", + x = 616, + z = 48, + facing = 2, + }, + { + name = "staticrearm", + x = 1000, + z = 1000, + facing = 3, + }, + { + name = "factoryplane", + x = 1384, + z = 992, + facing = 3, + }, + { + name = "staticcon", + x = 1288, + z = 824, + facing = 0, + }, + { + name = "staticcon", + x = 1368, + z = 872, + facing = 0, + }, + { + name = "factoryship", + x = 2800, + z = 1888, + facing = 0, + }, + { + name = "staticcon", + x = 2936, + z = 1816, + facing = 0, + }, + { + name = "staticcon", + x = 2936, + z = 1896, + facing = 0, + }, + { + name = "factoryamph", + x = 1656, + z = 2184, + facing = 0, + }, + { + name = "staticcon", + x = 1752, + z = 2056, + facing = 0, + }, + { + name = "staticcon", + x = 1656, + z = 2056, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1656, 2220}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1656, 2056}, options = {"shift"}}, + }, + }, + { + name = "turrettorp", + x = 1544, + z = 2488, + facing = 0, + }, + { + name = "turrettorp", + x = 1704, + z = 2488, + facing = 0, + }, + { + name = "turrettorp", + x = 584, + z = 2280, + facing = 0, + }, + { + name = "turrettorp", + x = 424, + z = 2280, + facing = 0, + }, + { + name = "turretmissile", + x = 304, + z = 1872, + facing = 0, + }, + { + name = "turretmissile", + x = 720, + z = 1904, + facing = 0, + }, + { + name = "turretmissile", + x = 1136, + z = 1920, + facing = 0, + }, + { + name = "turretmissile", + x = 1552, + z = 1904, + facing = 0, + }, + { + name = "turretmissile", + x = 1872, + z = 1920, + facing = 0, + }, + { + name = "turretmissile", + x = 2272, + z = 1872, + facing = 0, + }, + { + name = "staticheavyradar", + x = 2128, + z = 1408, + facing = 0, + }, + { + name = "pw_metal", + x = 1184, + z = 512, + facing = 0, + }, + { + name = "turretaafar", + x = 1968, + z = 1456, + facing = 0, + }, + { + name = "turretheavylaser", + x = 1864, + z = 1480, + facing = 0, + }, + { + name = "turrettorp", + x = 2888, + z = 2744, + facing = 0, + }, + { + name = "turrettorp", + x = 3080, + z = 2680, + facing = 0, + }, + { + name = "shipassault", + x = 3375, + z = 3861, + facing = 2, + }, + { + name = "amphcon", + x = 3643, + z = 2114, + facing = 0, + }, + { + name = "staticmex", + x = 3880, + z = 3128, + facing = 0, + }, + { + name = "turretmissile", + x = 1600, + z = 3888, + facing = 1, + }, + { + name = "bomberheavy", + x = 1647, + z = 1491, + facing = 1, + }, + { + name = "amphcon", + x = 2357, + z = 4382, + facing = 0, + }, + { + name = "staticstorage", + x = 1032, + z = 1736, + facing = 1, + }, + { + name = "staticcon", + x = 2808, + z = 1736, + facing = 0, + }, + { + name = "planeheavyfighter", + x = 3314, + z = 4916, + facing = 0, + }, + { + name = "staticradar", + x = 1248, + z = 2960, + facing = 1, + }, + { + name = "energypylon", + x = 920, + z = 1720, + facing = 1, + }, + { + name = "turretlaser", + x = 160, + z = 4064, + facing = 1, + }, + { + name = "staticcon", + x = 1592, + z = 2008, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1592, 2008}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1656, 2220}, options = {"shift"}}, + }, + }, + { + name = "staticradar", + x = 3264, + z = 2640, + facing = 0, + }, + { + name = "shipcon", + x = 3736, + z = 1558, + facing = 0, + }, + { + name = "staticcon", + x = 1640, + z = 2008, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1640, 2008}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1656, 2220}, options = {"shift"}}, + }, + }, + { + name = "energywind", + x = 4120, + z = 888, + facing = 0, + }, + { + name = "amphimpulse", + x = 1551, + z = 3329, + facing = 0, + }, + { + name = "staticcon", + x = 1688, + z = 2008, + facing = 1, + }, + { + name = "staticstorage", + x = 1032, + z = 1816, + facing = 1, + }, + { + name = "amphcon", + x = 2784, + z = 1313, + facing = 2, + }, + { + name = "shiptorpraider", + x = 2663, + z = 4400, + facing = 3, + patrolRoute = { + {2641, 4417}, + {2686, 4372}, + }, + }, + { + name = "turretlaser", + x = 2272, + z = 3376, + facing = 1, + }, + { + name = "turrettorp", + x = 3464, + z = 1512, + facing = 0, + }, + { + name = "energysolar", + x = 4200, + z = 536, + facing = 0, + }, + { + name = "shipcon", + x = 5204, + z = 2625, + facing = 3, + }, + { + name = "amphfloater", + x = 1041, + z = 4591, + facing = 0, + }, + { + name = "turretlaser", + x = 1248, + z = 1760, + facing = 1, + }, + { + name = "shipskirm", + x = 3233, + z = 3327, + facing = 2, + }, + { + name = "turretlaser", + x = 336, + z = 816, + facing = 1, + }, + { + name = "staticmex", + x = 3272, + z = 2712, + facing = 0, + }, + { + name = "shipcon", + x = 2265, + z = 2305, + facing = 3, + }, + { + name = "amphfloater", + x = 1082, + z = 4594, + facing = 0, + }, + { + name = "shiparty", + x = 3170, + z = 3452, + facing = 2, + }, + { + name = "amphraid", + x = 2397, + z = 3896, + facing = 1, + }, + { + name = "turrettorp", + x = 4424, + z = 1096, + facing = 0, + }, + { + name = "turrettorp", + x = 3240, + z = 2792, + facing = 0, + }, + { + name = "staticmex", + x = 2232, + z = 3112, + facing = 0, + }, + { + name = "amphcon", + x = 1542, + z = 3902, + facing = 0, + }, + { + name = "turretlaser", + x = 1616, + z = 624, + facing = 0, + }, + { + name = "amphfloater", + x = 1125, + z = 3724, + facing = 2, + }, + { + name = "staticradar", + x = 4336, + z = 1088, + facing = 0, + }, + { + name = "staticradar", + x = 1808, + z = 704, + facing = 0, + }, + { + name = "amphcon", + x = 5195, + z = 3413, + facing = 3, + }, + { + name = "amphaa", + x = 1170, + z = 4403, + facing = 0, + }, + { + name = "staticmex", + x = 2104, + z = 3704, + facing = 0, + }, + { + name = "turretlaser", + x = 1312, + z = 1200, + facing = 0, + }, + { + name = "amphcon", + x = 3795, + z = 3818, + facing = 1, + }, + { + name = "energywind", + x = 3496, + z = 1608, + facing = 0, + }, + { + name = "turretlaser", + x = 1584, + z = 1056, + facing = 0, + }, + { + name = "turrettorp", + x = 5368, + z = 2392, + facing = 0, + }, + { + name = "shipcon", + x = 3763, + z = 1492, + facing = 1, + }, + { + name = "staticmex", + x = 1208, + z = 3096, + facing = 0, + }, + { + name = "staticradar", + x = 1536, + z = 3632, + facing = 1, + }, + { + name = "staticmex", + x = 4440, + z = 3096, + facing = 0, + }, + { + name = "amphcon", + x = 1294, + z = 2691, + facing = 0, + }, + { + name = "shipassault", + x = 3836, + z = 2527, + facing = 1, + }, + { + name = "amphraid", + x = 2358, + z = 3907, + facing = 1, + }, + { + name = "energypylon", + x = 4328, + z = 1368, + facing = 0, + }, + { + name = "amphaa", + x = 1026, + z = 4379, + facing = 3, + }, + { + name = "energywind", + x = 3688, + z = 1480, + facing = 0, + }, + { + name = "turretlaser", + x = 4272, + z = 3120, + facing = 0, + }, + { + name = "staticcon", + x = 2760, + z = 1736, + facing = 0, + }, + { + name = "amphraid", + x = 2586, + z = 3882, + facing = 1, + }, + { + name = "staticcon", + x = 2856, + z = 1736, + facing = 0, + }, + { + name = "amphaa", + x = 1100, + z = 4455, + facing = 0, + }, + { + name = "turretlaser", + x = 6864, + z = 2784, + facing = 3, + }, + { + name = "subraider", + x = 4854, + z = 3691, + facing = 0, + }, + { + name = "shiparty", + x = 1183, + z = 3868, + facing = 0, + }, + { + name = "amphraid", + x = 2551, + z = 3870, + facing = 1, + }, + { + name = "amphraid", + x = 2321, + z = 3950, + facing = 1, + }, + { + name = "planeheavyfighter", + x = 3604, + z = 3874, + facing = 0, + }, + { + name = "turretlaser", + x = 4016, + z = 160, + facing = 0, + }, + { + name = "amphraid", + x = 2376, + z = 3881, + facing = 1, + }, + { + name = "turretmissile", + x = 5456, + z = 2160, + facing = 0, + }, + { + name = "amphaa", + x = 1010, + z = 4323, + facing = 0, + }, + { + name = "planeheavyfighter", + x = 3241, + z = 2470, + facing = 3, + }, + { + name = "amphraid", + x = 2580, + z = 3857, + facing = 1, + }, + { + name = "turretmissile", + x = 4048, + z = 2736, + facing = 0, + }, + { + name = "staticcon", + x = 5432, + z = 2248, + facing = 0, + }, + { + name = "turretmissile", + x = 1456, + z = 2992, + facing = 1, + }, + { + name = "amphcon", + x = 672, + z = 3177, + facing = 0, + }, + { + name = "energywind", + x = 4040, + z = 696, + facing = 0, + }, + { + name = "turretlaser", + x = 1728, + z = 4176, + facing = 1, + }, + { + name = "amphimpulse", + x = 3304, + z = 4126, + facing = 2, + }, + { + name = "amphimpulse", + x = 3342, + z = 4145, + facing = 2, + }, + { + name = "shiptorpraider", + x = 2752, + z = 4365, + facing = 3, + patrolRoute = { + {2675, 4364}, + {2645, 4416}, + }, + }, + { + name = "amphraid", + x = 2476, + z = 3877, + facing = 1, + }, + { + name = "shiptorpraider", + x = 2592, + z = 4391, + facing = 2, + patrolRoute = { + {2581, 4439}, + {2641, 4417}, + }, + }, + { + name = "turretmissile", + x = 1408, + z = 3936, + facing = 1, + }, + { + name = "staticradar", + x = 5376, + z = 2320, + facing = 0, + }, + { + name = "amphfloater", + x = 1606, + z = 3378, + facing = 3, + }, + { + name = "staticcon", + x = 2712, + z = 1736, + facing = 0, + }, + { + name = "amphfloater", + x = 1569, + z = 3283, + facing = 0, + }, + { + name = "energywind", + x = 4072, + z = 792, + facing = 0, + }, + { + name = "amphcon", + x = 1283, + z = 3133, + facing = 0, + }, + { + name = "amphriot", + x = 1616, + z = 2471, + facing = 0, + }, + { + name = "energywind", + x = 3800, + z = 1464, + facing = 0, + }, + { + name = "subraider", + x = 3168, + z = 2951, + facing = 0, + }, + { + name = "shiptorpraider", + x = 2926, + z = 2679, + facing = 0, + }, + { + name = "amphraid", + x = 1795, + z = 2984, + facing = 0, + }, + { + name = "energywind", + x = 3576, + z = 1496, + facing = 0, + }, + { + name = "amphraid", + x = 1723, + z = 2448, + facing = 0, + }, + { + name = "energywind", + x = 3608, + z = 1592, + facing = 0, + }, + { + name = "amphaa", + x = 1625, + z = 2243, + facing = 3, + }, + { + name = "shiparty", + x = 2808, + z = 1888, + facing = 0, + buildProgress = 0.23450001, }, - modules = { } - }, - startUnits = { } }, - }, - defeatConditionConfig = { - - }, - objectiveConfig = { - -- This is just related to displaying objectives on the UI. - }, - bonusObjectiveConfig = { - } + { + humanName = "Star Shine", + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + --aiLib = "Null AI", + --bitDependant = false, + allyTeam = 0, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "staticrearm", + "factorygunship", + "gunshipcon", + "gunshipbomb", + "gunshipemp", + "gunshipaa", + "gunshipassault", + "gunshipheavyskirm", + "gunshipskirm", + "gunshipraid", + "gunshipkrow", + "factoryhover", + "hovercon", + "hoverraid", + "hoverriot", + "hoverskirm", + "hoverassault", + "hoverdepthcharge", + "hoverarty", + "hoveraa", + "factoryship", + "shipcon", + "shipaa", + "shiparty", + "shipassault", + "shipriot", + "shipscout", + "shipskirm", + "shiptorpraider", + "subraider", + }, + commander = false, + startUnits = { + { + name = "staticmex", + x = 5416, + z = 168, + facing = 0, + }, + { + name = "staticmex", + x = 5656, + z = 552, + facing = 0, + }, + { + name = "staticmex", + x = 5880, + z = 184, + facing = 0, + }, + { + name = "staticmex", + x = 6200, + z = 808, + facing = 0, + }, + { + name = "staticmex", + x = 6664, + z = 680, + facing = 0, + }, + { + name = "staticmex", + x = 6600, + z = 1224, + facing = 0, + }, + { + name = "staticmex", + x = 7288, + z = 1208, + facing = 0, + }, + { + name = "staticmex", + x = 7624, + z = 616, + facing = 0, + }, + { + name = "staticmex", + x = 7624, + z = 104, + facing = 0, + }, + { + name = "staticmex", + x = 7128, + z = 280, + facing = 0, + }, + { + name = "staticmex", + x = 7512, + z = 1640, + facing = 0, + }, + { + name = "staticmex", + x = 7096, + z = 1672, + facing = 0, + }, + { + name = "staticmex", + x = 6824, + z = 2872, + facing = 0, + }, + { + name = "staticmex", + x = 7704, + z = 3032, + facing = 0, + }, + { + name = "energyfusion", + x = 8104, + z = 64, + facing = 2, + }, + { + name = "energyfusion", + x = 8104, + z = 352, + facing = 2, + }, + { + name = "energyfusion", + x = 8104, + z = 640, + facing = 2, + }, + { + name = "energyfusion", + x = 8104, + z = 928, + facing = 2, + }, + { + name = "energypylon", + x = 7576, + z = 472, + facing = 2, + }, + { + name = "energypylon", + x = 7304, + z = 1352, + facing = 2, + }, + { + name = "energypylon", + x = 6696, + z = 904, + facing = 2, + }, + { + name = "energypylon", + x = 5864, + z = 440, + facing = 2, + }, + { + name = "factoryship", + x = 6304, + z = 2384, + facing = 0, + }, + { + name = "staticcon", + x = 6440, + z = 2328, + facing = 0, + }, + { + name = "staticcon", + x = 6440, + z = 2248, + facing = 0, + }, + { + name = "factoryhover", + x = 7424, + z = 2832, + facing = 0, + }, + { + name = "staticcon", + x = 7384, + z = 2664, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7384, 2664}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7424, 2796}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7480, + z = 2680, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7480, 2680}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7424, 2796}, options = {"shift"}}, + }, + }, + { + name = "turretheavylaser", + x = 6776, + z = 3192, + facing = 0, + }, + { + name = "staticradar", + x = 6656, + z = 2192, + facing = 0, + }, + { + name = "pw_metal", + x = 7344, + z = 112, + facing = 0, + }, + { + name = "turretaafar", + x = 6960, + z = 2160, + facing = 0, + }, + { + name = "turretheavylaser", + x = 6712, + z = 2280, + facing = 0, + }, + { + name = "turretheavylaser", + x = 7368, + z = 2472, + facing = 0, + }, + { + name = "turretriot", + x = 7048, + z = 2360, + facing = 0, + }, + { + name = "turrettorp", + x = 7512, + z = 3192, + facing = 0, + }, + { + name = "turrettorp", + x = 7240, + z = 3112, + facing = 0, + }, + { + name = "turrettorp", + x = 6408, + z = 2984, + facing = 0, + }, + { + name = "turrettorp", + x = 6120, + z = 3160, + facing = 0, + }, + { + name = "energypylon", + x = 776, + z = 3032, + facing = 1, + buildProgress = 0.1566, + }, + { + name = "turrettorp", + x = 5112, + z = 3080, + facing = 0, + }, + { + name = "shipscout", + x = 5698, + z = 2649, + facing = 3, + }, + { + name = "hoverassault", + x = 6106, + z = 3066, + facing = 3, + }, + { + name = "hovercon", + x = 5106, + z = 3415, + facing = 0, + }, + { + name = "hoveraa", + x = 5108, + z = 4092, + facing = 1, + }, + { + name = "shipscout", + x = 3263, + z = 5088, + facing = 0, + }, + { + name = "turretlaser", + x = 6528, + z = 2384, + facing = 3, + }, + { + name = "hoverassault", + x = 4816, + z = 4175, + facing = 3, + }, + { + name = "hoverassault", + x = 4359, + z = 4420, + facing = 0, + }, + { + name = "hoverriot", + x = 7414, + z = 2900, + facing = 3, + }, + { + name = "staticcon", + x = 7432, + z = 2680, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7432, 2680}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7424, 2796}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7512, + z = 2632, + facing = 3, + }, + { + name = "staticstorage", + x = 7000, + z = 1688, + facing = 3, + }, + { + name = "hovercon", + x = 766, + z = 2920, + facing = 0, + }, + { + name = "hovercon", + x = 1110, + z = 3265, + facing = 3, + }, + { + name = "staticstorage", + x = 7192, + z = 1752, + facing = 3, + }, + { + name = "hoverarty", + x = 5082, + z = 3297, + facing = 0, + }, + { + name = "staticmex", + x = 7912, + z = 3992, + facing = 0, + }, + { + name = "turrettorp", + x = 5544, + z = 2536, + facing = 0, + }, + { + name = "hovercon", + x = 6734, + z = 2338, + facing = 3, + }, + { + name = "hoverraid", + x = 4959, + z = 3154, + facing = 2, + }, + { + name = "shipassault", + x = 5272, + z = 3475, + facing = 1, + }, + { + name = "staticcon", + x = 7464, + z = 2632, + facing = 3, + }, + { + name = "hovercon", + x = 7024, + z = 2055, + facing = 3, + }, + { + name = "staticmex", + x = 5048, + z = 3448, + facing = 0, + buildProgress = 0.67110002, + }, + { + name = "hoverraid", + x = 2997, + z = 3158, + facing = 2, + }, + { + name = "hoverraid", + x = 5358, + z = 2354, + facing = 1, + }, + { + name = "staticcon", + x = 7528, + z = 2680, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7528, 2680}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7424, 2796}, options = {"shift"}}, + }, + }, + { + name = "shipassault", + x = 4966, + z = 3804, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5008, 3824}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4892, 3944}, options = {"shift"}}, + }, + }, + { + name = "energywind", + x = 5336, + z = 392, + facing = 0, + }, + { + name = "hoverskirm", + x = 5161, + z = 3744, + facing = 2, + }, + { + name = "turretlaser", + x = 6080, + z = 2384, + facing = 3, + }, + { + name = "hoverassault", + x = 4776, + z = 4197, + facing = 3, + }, + { + name = "shipskirm", + x = 5127, + z = 3265, + facing = 1, + }, + { + name = "staticradar", + x = 7312, + z = 480, + facing = 0, + }, + { + name = "hoveraa", + x = 5592, + z = 4039, + facing = 1, + }, + { + name = "staticradar", + x = 7952, + z = 3936, + facing = 3, + }, + { + name = "energypylon", + x = 3848, + z = 264, + facing = 0, + }, + { + name = "shipriot", + x = 5982, + z = 2648, + facing = 1, + }, + { + name = "shipcon", + x = 3240, + z = 3142, + facing = 1, + }, + { + name = "staticcon", + x = 7416, + z = 2616, + facing = 3, + }, + { + name = "staticradar", + x = 5600, + z = 320, + facing = 0, + }, + { + name = "hoverassault", + x = 4389, + z = 4351, + facing = 0, + }, + { + name = "energypylon", + x = 7240, + z = 2152, + facing = 3, + }, + { + name = "hovercon", + x = 5104, + z = 3366, + facing = 0, + }, + { + name = "staticcon", + x = 7368, + z = 2616, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7368, 2616}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7424, 2796}, options = {"shift"}}, + }, + }, + { + name = "hoverarty", + x = 7680, + z = 2957, + facing = 2, + }, + { + name = "hoverraid", + x = 3844, + z = 2620, + facing = 1, + }, + { + name = "hoveraa", + x = 6904, + z = 2534, + facing = 3, + }, + { + name = "shipassault", + x = 5333, + z = 3476, + facing = 1, + }, + { + name = "shipcon", + x = 5572, + z = 3351, + facing = 3, + }, + { + name = "hovercon", + x = 7005, + z = 3153, + facing = 3, + }, + { + name = "hoverraid", + x = 7221, + z = 1561, + facing = 2, + }, + { + name = "energypylon", + x = 4792, + z = 344, + facing = 0, + }, + { + name = "hovercon", + x = 7010, + z = 2303, + facing = 3, + }, + { + name = "hovercon", + x = 5670, + z = 2683, + facing = 1, + }, + { + name = "shipcon", + x = 3184, + z = 4527, + facing = 0, + }, + { + name = "hoveraa", + x = 5651, + z = 3987, + facing = 1, + }, + { + name = "shipcon", + x = 5050, + z = 3820, + facing = 0, + }, + { + name = "hovercon", + x = 4876, + z = 3806, + facing = 0, + }, + { + name = "shipaa", + x = 5346, + z = 2702, + facing = 1, + }, + { + name = "staticradar", + x = 2880, + z = 304, + facing = 0, + }, + { + name = "hovercon", + x = 5608, + z = 2716, + facing = 1, + }, + { + name = "shipcon", + x = 5667, + z = 2623, + facing = 0, + }, + { + name = "shipscout", + x = 4793, + z = 2960, + facing = 2, + }, + { + name = "turretaalaser", + x = 3016, + z = 4600, + facing = 1, + }, + { + name = "energypylon", + x = 7160, + z = 2952, + facing = 3, + }, + { + name = "hovercon", + x = 3292, + z = 3318, + facing = 0, + }, + { + name = "hoveraa", + x = 5669, + z = 4080, + facing = 1, + }, + { + name = "shiparty", + x = 6312, + z = 2384, + facing = 0, + buildProgress = 0.1741, + }, + { + name = "hoverraid", + x = 7424, + z = 2800, + facing = 0, + buildProgress = 0.74580002, + }, + } + }, + { + startX = 6864, + startZ = 7800, + humanName = "Warbak", + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + --aiLib = "Null AI", + --bitDependant = false, + commanderParameters = { + facplop = false, + }, + allyTeam = 1, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticantinuke", + "staticrearm", + "gunshipbomb", + "gunshipemp", + "gunshipaa", + "gunshipassault", + "gunshipheavyskirm", + "gunshipskirm", + "gunshipraid", + "gunshipkrow", + }, + commanderLevel = 6, + commander = { + name = "Mezzanin", + chassis = "guardian", + decorations = { + }, + modules = { + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "commweapon_rocketlauncher", + "commweapon_rocketlauncher", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_radarnet", + "module_autorepair", + "module_autorepair", + "module_high_power_servos", + "module_high_power_servos", + } + }, + startUnits = { + { + name = "zenith", + x = 6864, + z = 7328, + facing = 0, + buildProgress = 0.93, + difficultyAtMost = 4, + difficultyAtLeast = 4, + }, + { + name = "zenith", + x = 6864, + z = 7328, + facing = 0, + buildProgress = 0.88, + difficultyAtMost = 3, + difficultyAtLeast = 3, + }, + { + name = "zenith", + x = 6864, + z = 7328, + facing = 0, + buildProgress = 0.84, + difficultyAtMost = 2, + difficultyAtLeast = 2, + }, + { + name = "zenith", + x = 6864, + z = 7328, + facing = 0, + buildProgress = 0.80, + difficultyAtMost = 1, + difficultyAtLeast = 1, + }, + { + name = "factorygunship", + x = 6328, + z = 7992, + facing = 1, + }, + { + name = "staticcon", + x = 6500, + z = 7992, + facing = 2, + }, + { + name = "staticcon", + x = 6712, + z = 7464, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6712, 7464}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6489, 7125}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 6792, + z = 7464, + facing = 2, + }, + { + name = "staticcon", + x = 6872, + z = 7464, + facing = 2, + }, + { + name = "staticcon", + x = 6712, + z = 7544, + facing = 2, + }, + { + name = "turretaaflak", + x = 7016, + z = 7272, + facing = 2, + }, + { + name = "turretaaflak", + x = 6840, + z = 7192, + facing = 2, + }, + { + name = "turretaaflak", + x = 6728, + z = 7320, + facing = 2, + }, + { + name = "pw_metal", + x = 7440, + z = 8032, + facing = 0, + }, + { + name = "gunshipskirm", + x = 6221, + z = 5300, + facing = 2, + }, + { + name = "gunshipaa", + x = 6278, + z = 3858, + facing = 3, + }, + { + name = "energysolar", + x = 6392, + z = 7480, + facing = 2, + }, + { + name = "energywind", + x = 6376, + z = 7592, + facing = 2, + }, + { + name = "staticradar", + x = 7088, + z = 6640, + facing = 3, + }, + { + name = "turretlaser", + x = 6272, + z = 7792, + facing = 2, + }, + { + name = "gunshipaa", + x = 6273, + z = 3875, + facing = 3, + }, + { + name = "staticradar", + x = 5040, + z = 7472, + facing = 2, + }, + { + name = "turretlaser", + x = 6128, + z = 7936, + facing = 2, + }, + } + }, + { + humanName = "Fallacy", + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + --aiLib = "Null AI", + --bitDependant = false, + allyTeam = 1, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "staticrearm", + "factoryplane", + "planecon", + "planescout", + "planefighter", + "planeheavyfighter", + "bomberprec", + "bomberdisarm", + "bomberheavy", + "factoryamph", + "amphcon", + "amphraid", + "amphimpulse", + "amphfloater", + "amphriot", + "amphassault", + "amphbomb", + "amphaa", + "factoryship", + "shipcon", + "shipaa", + "shiparty", + "shipassault", + "shipriot", + "shipscout", + "shipskirm", + "shiptorpraider", + "subraider", + "striderhub", + "striderhub", + "shipcarrier", + }, + commander = false, + startUnits = { + { + name = "staticmex", + x = 744, + z = 6936, + facing = 0, + }, + { + name = "staticmex", + x = 1112, + z = 6712, + facing = 0, + }, + { + name = "staticmex", + x = 696, + z = 6408, + facing = 0, + }, + { + name = "staticmex", + x = 1336, + z = 7416, + facing = 0, + }, + { + name = "staticmex", + x = 1768, + z = 7608, + facing = 0, + }, + { + name = "staticmex", + x = 1976, + z = 7976, + facing = 0, + }, + { + name = "staticmex", + x = 2344, + z = 8152, + facing = 0, + }, + { + name = "staticmex", + x = 2648, + z = 7816, + facing = 0, + }, + { + name = "staticmex", + x = 1768, + z = 7176, + facing = 0, + }, + { + name = "staticmex", + x = 632, + z = 7672, + facing = 0, + }, + { + name = "staticmex", + x = 744, + z = 8104, + facing = 0, + }, + { + name = "staticmex", + x = 200, + z = 7848, + facing = 0, + }, + { + name = "staticmex", + x = 3592, + z = 7176, + facing = 0, + }, + { + name = "staticmex", + x = 3720, + z = 6440, + facing = 0, + }, + { + name = "energyfusion", + x = 56, + z = 8144, + facing = 2, + }, + { + name = "energyfusion", + x = 264, + z = 8144, + facing = 2, + }, + { + name = "energyfusion", + x = 504, + z = 8144, + facing = 2, + }, + { + name = "energyfusion", + x = 56, + z = 7952, + facing = 2, + }, + { + name = "energypylon", + x = 888, + z = 7704, + facing = 2, + }, + { + name = "energypylon", + x = 1672, + z = 7656, + facing = 2, + }, + { + name = "energypylon", + x = 840, + z = 6840, + facing = 2, + }, + { + name = "energypylon", + x = 2376, + z = 7912, + facing = 2, + }, + { + name = "staticrearm", + x = 1176, + z = 8088, + facing = 2, + }, + { + name = "factoryplane", + x = 1344, + z = 8104, + facing = 2, + }, + { + name = "staticcon", + x = 1304, + z = 7992, + facing = 2, + }, + { + name = "staticcon", + x = 1384, + z = 7992, + facing = 2, + }, + { + name = "factoryship", + x = 2416, + z = 6528, + facing = 2, + }, + { + name = "staticcon", + x = 2296, + z = 6632, + facing = 2, + }, + { + name = "staticcon", + x = 2296, + z = 6552, + facing = 2, + }, + { + name = "factoryamph", + x = 584, + z = 6152, + facing = 2, + }, + { + name = "staticcon", + x = 552, + z = 6296, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {552, 6296}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {584, 6116}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 632, + z = 6296, + facing = 2, + }, + { + name = "staticradar", + x = 1168, + z = 5952, + facing = 0, + }, + { + name = "turretheavylaser", + x = 984, + z = 5608, + facing = 2, + }, + { + name = "turretgauss", + x = 1256, + z = 5688, + facing = 2, + }, + { + name = "turretgauss", + x = 1512, + z = 5848, + facing = 2, + }, + { + name = "turrettorp", + x = 360, + z = 5096, + facing = 2, + }, + { + name = "turrettorp", + x = 728, + z = 5176, + facing = 2, + }, + { + name = "turrettorp", + x = 1032, + z = 5240, + facing = 2, + }, + { + name = "pw_metal", + x = 192, + z = 7568, + facing = 0, + }, + { + name = "energywind", + x = 4200, + z = 6552, + facing = 2, + }, + { + name = "turretaalaser", + x = 4760, + z = 5032, + facing = 2, + }, + { + name = "amphcon", + x = 1120, + z = 5247, + facing = 0, + }, + { + name = "turrettorp", + x = 3048, + z = 6200, + facing = 2, + }, + { + name = "turrettorp", + x = 3336, + z = 6840, + facing = 2, + }, + { + name = "turretheavylaser", + x = 1752, + z = 6264, + facing = 2, + }, + { + name = "turretaafar", + x = 1360, + z = 6048, + facing = 2, + }, + { + name = "shipcon", + x = 2948, + z = 5392, + facing = 1, + }, + { + name = "shipcon", + x = 2996, + z = 6066, + facing = 1, + }, + { + name = "shipskirm", + x = 5776, + z = 5855, + facing = 3, + }, + { + name = "shiparty", + x = 757, + z = 5744, + facing = 2, + }, + { + name = "shiparty", + x = 6930, + z = 4638, + facing = 0, + }, + { + name = "amphcon", + x = 3177, + z = 5337, + facing = 2, + }, + { + name = "bomberheavy", + x = 1525, + z = 7401, + facing = 1, + }, + { + name = "staticmex", + x = 2616, + z = 5832, + facing = 0, + }, + { + name = "staticcon", + x = 680, + z = 6280, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {680, 6280}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {584, 6116}, options = {"shift"}}, + }, + }, + { + name = "turrettorp", + x = 2616, + z = 5752, + facing = 2, + }, + { + name = "amphaa", + x = 853, + z = 5037, + facing = 2, + }, + { + name = "staticstorage", + x = 1048, + z = 6824, + facing = 1, + }, + { + name = "amphcon", + x = 2221, + z = 5815, + facing = 1, + }, + { + name = "staticcon", + x = 2408, + z = 6664, + facing = 2, + }, + { + name = "staticmex", + x = 472, + z = 4968, + facing = 0, + }, + { + name = "staticstorage", + x = 1128, + z = 6792, + facing = 1, + }, + { + name = "energywind", + x = 5032, + z = 6888, + facing = 2, + }, + { + name = "amphcon", + x = 4027, + z = 5664, + facing = 1, + }, + { + name = "turrettorp", + x = 424, + z = 4968, + facing = 1, + }, + { + name = "staticcon", + x = 600, + z = 6344, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {600, 6344}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {584, 6116}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 648, + z = 6344, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {648, 6344}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {584, 6116}, options = {"shift"}}, + }, + }, + { + name = "shipskirm", + x = 2960, + z = 5898, + facing = 2, + }, + { + name = "turretaalaser", + x = 1464, + z = 5160, + facing = 1, + }, + { + name = "shipcon", + x = 4421, + z = 6194, + facing = 2, + }, + { + name = "amphcon", + x = 2626, + z = 6080, + facing = 1, + }, + { + name = "bomberheavy", + x = 777, + z = 8238, + facing = 3, + }, + { + name = "amphimpulse", + x = 1566, + z = 5575, + facing = 2, + }, + { + name = "energywind", + x = 4696, + z = 5688, + facing = 2, + }, + { + name = "energywind", + x = 4696, + z = 5576, + facing = 2, + }, + { + name = "energywind", + x = 5144, + z = 6856, + facing = 2, + }, + { + name = "energysolar", + x = 5032, + z = 7096, + facing = 2, + }, + { + name = "energypylon", + x = 4680, + z = 6328, + facing = 2, + }, + { + name = "turretheavylaser", + x = 2632, + z = 6024, + facing = 2, + }, + { + name = "shiptorpraider", + x = 2539, + z = 5618, + facing = 2, + }, + { + name = "shipassault", + x = 1665, + z = 5689, + facing = 2, + }, + { + name = "shipcon", + x = 2273, + z = 5911, + facing = 3, + }, + { + name = "amphriot", + x = 1510, + z = 5674, + facing = 2, + }, + { + name = "energywind", + x = 4696, + z = 5800, + facing = 2, + }, + { + name = "amphcon", + x = 2550, + z = 5573, + facing = 2, + }, + { + name = "energywind", + x = 4888, + z = 6936, + facing = 2, + }, + { + name = "staticcon", + x = 552, + z = 6344, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {552, 6344}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {584, 6116}, options = {"shift"}}, + }, + }, + { + name = "turretaalaser", + x = 4696, + z = 6280, + facing = 2, + }, + { + name = "amphraid", + x = 1013, + z = 5981, + facing = 1, + }, + { + name = "bomberprec", + x = 1543, + z = 7812, + facing = 2, + }, + { + name = "shipaa", + x = 6577, + z = 5186, + facing = 0, + }, + { + name = "turretriot", + x = 1416, + z = 4968, + facing = 1, + }, + { + name = "shiparty", + x = 2465, + z = 5678, + facing = 3, + }, + { + name = "energypylon", + x = 3656, + z = 6808, + facing = 2, + }, + { + name = "turretaalaser", + x = 2712, + z = 5736, + facing = 2, + }, + { + name = "staticcon", + x = 1512, + z = 5240, + facing = 1, + }, + { + name = "amphaa", + x = 824, + z = 4986, + facing = 3, + }, + { + name = "amphaa", + x = 1063, + z = 6067, + facing = 2, + }, + { + name = "energysolar", + x = 5112, + z = 7016, + facing = 2, + }, + { + name = "amphfloater", + x = 1437, + z = 5525, + facing = 3, + }, + { + name = "energypylon", + x = 4712, + z = 5096, + facing = 2, + }, + { + name = "amphfloater", + x = 859, + z = 4902, + facing = 2, + }, + { + name = "energysolar", + x = 5192, + z = 6984, + facing = 2, + }, + { + name = "shipskirm", + x = 5269, + z = 6048, + facing = 3, + }, + { + name = "amphaa", + x = 1435, + z = 5676, + facing = 2, + }, + { + name = "turretheavylaser", + x = 4872, + z = 5176, + facing = 2, + }, + { + name = "energysolar", + x = 5112, + z = 7096, + facing = 2, + }, + { + name = "energywind", + x = 5160, + z = 6744, + facing = 2, + }, + { + name = "energywind", + x = 5160, + z = 6632, + facing = 2, + }, + { + name = "energywind", + x = 5112, + z = 6536, + facing = 2, + }, + { + name = "turretaalaser", + x = 4712, + z = 4952, + facing = 2, + }, + { + name = "amphfloater", + x = 905, + z = 5870, + facing = 2, + }, + { + name = "turretaalaser", + x = 520, + z = 5064, + facing = 1, + }, + { + name = "amphcon", + x = 2253, + z = 6624, + facing = 1, + }, + { + name = "subraider", + x = 2978, + z = 6143, + facing = 2, + }, + { + name = "shiptorpraider", + x = 4058, + z = 5786, + facing = 3, + }, + { + name = "amphraid", + x = 2625, + z = 5284, + facing = 2, + }, + { + name = "energywind", + x = 4088, + z = 6584, + facing = 2, + }, + { + name = "amphcon", + x = 1873, + z = 5768, + facing = 1, + }, + { + name = "shipskirm", + x = 2789, + z = 6003, + facing = 3, + }, + { + name = "amphraid", + x = 2360, + z = 5392, + facing = 1, + }, + { + name = "shipscout", + x = 2985, + z = 6105, + facing = 1, + }, + { + name = "amphaa", + x = 761, + z = 6010, + facing = 1, + }, + { + name = "staticcon", + x = 2360, + z = 6664, + facing = 2, + buildProgress = 0.50599998, + }, + { + name = "subraider", + x = 2408, + z = 6527, + facing = 2, + buildProgress = 0.73830003, + }, + { + name = "amphcon", + x = 625, + z = 6119, + facing = 0, + }, + { + name = "amphraid", + x = 584, + z = 6116, + facing = 2, + buildProgress = 0.26660001, + }, + } + }, + { + humanName = "Ractyi", + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + --aiLib = "Null AI", + --bitDependant = false, + allyTeam = 1, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "staticrearm", + "factoryhover", + "hovercon", + "hoverraid", + "hoverriot", + "hoverskirm", + "hoverassault", + "hoverdepthcharge", + "hoverarty", + "hoveraa", + "factoryship", + "shipcon", + "shipaa", + "shiparty", + "shipassault", + "shipriot", + "shipscout", + "shipskirm", + "shiptorpraider", + "subraider", + }, + commander = false, + midgameUnits = { + { + name = "shipheavyarty", + x = 100, + z = 4950, + facing = 1, + spawnRadius = 50, + delay = 6*30*60, + orbitalDrop = false, + }, + { + name = "shipcarrier", + x = 100, + z = 4950, + facing = 1, + spawnRadius = 50, + delay = 9*30*60, + orbitalDrop = false, + }, + { + name = "shipheavyarty", + x = 100, + z = 5000, + facing = 1, + spawnRadius = 50, + delay = 9*30*60, + orbitalDrop = false, + difficultyAtLeast = 3, + }, + }, + startUnits = { + { + name = "shipcarrier", + x = 4100, + z = 7000, + facing = 0, + }, + { + name = "shipheavyarty", + x = 3900, + z = 7000, + facing = 0, + difficultyAtLeast = 4, + }, + { + name = "staticmex", + x = 5032, + z = 7608, + facing = 0, + }, + { + name = "staticmex", + x = 5752, + z = 7944, + facing = 0, + }, + { + name = "staticmex", + x = 6328, + z = 7512, + facing = 0, + }, + { + name = "staticmex", + x = 7528, + z = 7256, + facing = 0, + }, + { + name = "staticmex", + x = 7944, + z = 8024, + facing = 0, + }, + { + name = "staticmex", + x = 7112, + z = 6424, + facing = 0, + }, + { + name = "staticmex", + x = 4008, + z = 7864, + facing = 0, + }, + { + name = "staticmex", + x = 4728, + z = 6328, + facing = 0, + }, + { + name = "energyheavygeo", + x = 5416, + z = 6904, + facing = 0, + }, + { + name = "staticarty", + x = 6488, + z = 6264, + facing = 2, + }, + { + name = "staticshield", + x = 6512, + z = 6496, + facing = 2, + }, + { + name = "turretaafar", + x = 6624, + z = 6464, + facing = 2, + }, + { + name = "turretheavylaser", + x = 6744, + z = 6664, + facing = 1, + }, + { + name = "turretheavylaser", + x = 6648, + z = 6312, + facing = 1, + }, + { + name = "turretriot", + x = 6728, + z = 6456, + facing = 1, + }, + { + name = "turretaaflak", + x = 6648, + z = 6584, + facing = 1, + }, + { + name = "staticcon", + x = 6520, + z = 6392, + facing = 1, + }, + { + name = "energyfusion", + x = 8136, + z = 8144, + facing = 2, + }, + { + name = "energyfusion", + x = 8024, + z = 8144, + facing = 2, + }, + { + name = "energyfusion", + x = 5736, + z = 8064, + facing = 2, + }, + { + name = "energyfusion", + x = 5720, + z = 8160, + facing = 2, + }, + { + name = "energypylon", + x = 7560, + z = 7656, + facing = 2, + }, + { + name = "energypylon", + x = 7048, + z = 6904, + facing = 2, + }, + { + name = "energypylon", + x = 6328, + z = 6696, + facing = 2, + }, + { + name = "energypylon", + x = 5960, + z = 7512, + facing = 2, + }, + { + name = "energypylon", + x = 5304, + z = 7432, + facing = 2, + }, + { + name = "factoryhover", + x = 5744, + z = 6176, + facing = 2, + }, + { + name = "staticcon", + x = 5704, + z = 6344, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5768, 6392}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5704, 6344}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5784, + z = 6344, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5768, 6392}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5784, 6344}, options = {"shift"}}, + }, + }, + { + name = "factoryship", + x = 4928, + z = 6688, + facing = 2, + }, + { + name = "staticcon", + x = 5048, + z = 6776, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5048, 6776}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5023, 6751}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5048, + z = 6696, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5048, 6696}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5023, 6671}, options = {"shift"}}, + }, + }, + { + name = "pw_metal", + x = 4992, + z = 7984, + facing = 0, + }, + { + name = "staticradar", + x = 2816, + z = 5824, + facing = 2, + }, + { + name = "turrettorp", + x = 6936, + z = 5720, + facing = 2, + }, + { + name = "turrettorp", + x = 6280, + z = 5704, + facing = 2, + }, + { + name = "turrettorp", + x = 5464, + z = 5688, + facing = 2, + }, + { + name = "turrettorp", + x = 4968, + z = 5832, + facing = 2, + }, + { + name = "turrettorp", + x = 4344, + z = 5832, + facing = 2, + }, + { + name = "turretmissile", + x = 7248, + z = 6112, + facing = 2, + }, + { + name = "turretmissile", + x = 7536, + z = 6032, + facing = 2, + }, + { + name = "turretmissile", + x = 7936, + z = 5984, + facing = 2, + }, + { + name = "turretmissile", + x = 8112, + z = 5984, + facing = 2, + }, + { + name = "shipcon", + x = 4998, + z = 5383, + facing = 2, + }, + { + name = "turrettorp", + x = 2728, + z = 5816, + facing = 2, + }, + { + name = "hoverassault", + x = 5828, + z = 5468, + facing = 3, + }, + { + name = "shiparty", + x = 3088, + z = 5358, + facing = 3, + }, + { + name = "shipcon", + x = 6804, + z = 4743, + facing = 2, + }, + { + name = "hovercon", + x = 2981, + z = 5469, + facing = 3, + }, + { + name = "staticstorage", + x = 6232, + z = 7496, + facing = 2, + }, + { + name = "hoverarty", + x = 4856, + z = 5765, + facing = 1, + }, + { + name = "shipcon", + x = 5823, + z = 6040, + facing = 2, + }, + { + name = "hoverassault", + x = 6950, + z = 5462, + facing = 3, + }, + { + name = "shipassault", + x = 3946, + z = 5861, + facing = 2, + }, + { + name = "turrettorp", + x = 3624, + z = 7064, + facing = 2, + }, + { + name = "staticradar", + x = 4784, + z = 5296, + facing = 2, + }, + { + name = "staticradar", + x = 3552, + z = 7056, + facing = 2, + }, + { + name = "hovercon", + x = 5254, + z = 5494, + facing = 1, + }, + { + name = "hovercon", + x = 4577, + z = 4659, + facing = 1, + }, + { + name = "shipcon", + x = 5039, + z = 5192, + facing = 3, + }, + { + name = "shipskirm", + x = 4597, + z = 6274, + facing = 3, + }, + { + name = "turrettorp", + x = 4776, + z = 6280, + facing = 2, + }, + { + name = "staticcon", + x = 4920, + z = 6840, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4920, 6840}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4919, 6697}, options = {"shift"}}, + }, + }, + { + name = "turretlaser", + x = 5952, + z = 6208, + facing = 2, + }, + { + name = "hoverassault", + x = 5871, + z = 5461, + facing = 3, + }, + { + name = "staticradar", + x = 2816, + z = 5888, + facing = 2, + }, + { + name = "turretlaser", + x = 6192, + z = 7536, + facing = 2, + }, + { + name = "shipcon", + x = 1759, + z = 5392, + facing = 1, + }, + { + name = "hoverriot", + x = 5432, + z = 5738, + facing = 2, + }, + { + name = "turretmissile", + x = 528, + z = 5136, + facing = 1, + }, + { + name = "staticmex", + x = 4120, + z = 4984, + facing = 0, + }, + { + name = "hoveraa", + x = 5622, + z = 5667, + facing = 3, + }, + { + name = "staticstorage", + x = 6408, + z = 7544, + facing = 2, + }, + { + name = "turretlaser", + x = 4880, + z = 7536, + facing = 2, + }, + { + name = "shipskirm", + x = 5537, + z = 5538, + facing = 1, + }, + { + name = "turrettorp", + x = 2712, + z = 5896, + facing = 2, + }, + { + name = "turretmissile", + x = 2416, + z = 5952, + facing = 2, + }, + { + name = "shipcon", + x = 3585, + z = 5807, + facing = 1, + }, + { + name = "turretheavylaser", + x = 4776, + z = 5160, + facing = 2, + }, + { + name = "shipaa", + x = 6944, + z = 4464, + facing = 0, + }, + { + name = "hoveraa", + x = 5667, + z = 5669, + facing = 3, + }, + { + name = "staticcon", + x = 2616, + z = 5880, + facing = 2, + }, + { + name = "staticcon", + x = 4872, + z = 6824, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4872, 6824}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4919, 6697}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5672, + z = 6392, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5672, 6392}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5768, 6392}, options = {"shift"}}, + }, + }, + { + name = "shiptorpraider", + x = 4920, + z = 6634, + facing = 2, + }, + { + name = "staticmex", + x = 4760, + z = 5096, + facing = 0, + }, + { + name = "turretmissile", + x = 4608, + z = 6336, + facing = 2, + }, + { + name = "shipassault", + x = 6415, + z = 5371, + facing = 1, + }, + { + name = "turrettorp", + x = 4696, + z = 5192, + facing = 2, + }, + { + name = "staticcon", + x = 4856, + z = 6392, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4856, 6392}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4919, 6697}, options = {"shift"}}, + }, + }, + { + name = "turretheavylaser", + x = 4680, + z = 6120, + facing = 2, + }, + { + name = "hovercon", + x = 7324, + z = 5004, + facing = 2, + }, + { + name = "staticcon", + x = 4824, + z = 6824, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4824, 6824}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4919, 6697}, options = {"shift"}}, + }, + }, + { + name = "staticradar", + x = 4768, + z = 6384, + facing = 2, + }, + { + name = "turrettorp", + x = 4744, + z = 6200, + facing = 2, + }, + { + name = "hovercon", + x = 5802, + z = 6504, + facing = 2, + }, + { + name = "shipassault", + x = 5588, + z = 5598, + facing = 2, + }, + { + name = "turrettorp", + x = 4600, + z = 6152, + facing = 2, + }, + { + name = "shipcon", + x = 3060, + z = 5727, + facing = 2, + }, + { + name = "hovercon", + x = 5894, + z = 6297, + facing = 3, + }, + { + name = "hoverarty", + x = 7115, + z = 5529, + facing = 1, + }, + { + name = "staticcon", + x = 616, + z = 5112, + facing = 1, + }, + { + name = "staticcon", + x = 5720, + z = 6392, + facing = 2, + }, + { + name = "staticcon", + x = 5768, + z = 6392, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5768, 6392}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5743, 6367}, options = {"shift"}}, + }, + }, + { + name = "shipskirm", + x = 5963, + z = 5522, + facing = 1, + }, + { + name = "shipcon", + x = 5842, + z = 5921, + facing = 1, + }, + { + name = "turretheavylaser", + x = 2712, + z = 5976, + facing = 2, + }, + { + name = "shipassault", + x = 4970, + z = 6461, + facing = 2, + }, + { + name = "shipcon", + x = 6432, + z = 5315, + facing = 2, + }, + { + name = "staticcon", + x = 5656, + z = 6344, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5768, 6392}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5656, 6344}, options = {"shift"}}, + }, + }, + { + name = "staticradar", + x = 352, + z = 4992, + facing = 1, + }, + { + name = "shipaa", + x = 3853, + z = 5867, + facing = 2, + }, + { + name = "turretlaser", + x = 5504, + z = 6208, + facing = 2, + }, + { + name = "shipscout", + x = 4698, + z = 4724, + facing = 2, + }, + { + name = "turretlaser", + x = 3904, + z = 4992, + facing = 2, + buildProgress = 0.59249997, + }, + { + name = "hoverraid", + x = 5242, + z = 5610, + facing = 2, + }, + { + name = "hovercon", + x = 5820, + z = 6278, + facing = 3, + }, + } + }, + }, + defeatConditionConfig = { + -- Indexed by allyTeam. + [0] = { }, + [1] = { + ignoreUnitLossDefeat = false, + vitalCommanders = false, + vitalUnitTypes = { + "factoryplane", + "factorygunship", + "factoryamph", + "factoryship", + "factoryhover", + }, + loseAfterSeconds = false, + allyTeamLossObjectiveID = 1, + }, + }, + objectiveConfig = { + -- This is just related to displaying objectives on the UI. + [1] = { + description = "Destroy all enemy Factories", + }, + [2] = { + description = "Protect your Commander", + }, + }, + bonusObjectiveConfig = { + [1] = { + satisfyOnce = true, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 4, + unitTypes = { + "shipheavyarty", + }, + image = planetUtilities.ICON_DIR .. "shipheavyarty.png", + imageOverlay = planetUtilities.ICON_OVERLAY.REPAIR, + description = "Have 4 Shoguns", + experience = planetUtilities.BONUS_EXP, + }, + [2] = { + victoryByTime = 20*60, + image = planetUtilities.ICON_OVERLAY.CLOCK, + description = "Win by 20:00", + experience = planetUtilities.BONUS_EXP, + }, + }, }, completionReward = { experience = planetUtilities.MAIN_EXP, diff --git a/campaign/sample/planets/planet61.lua b/campaign/sample/planets/planet61.lua index 80495ae7a..431bf4c6c 100644 --- a/campaign/sample/planets/planet61.lua +++ b/campaign/sample/planets/planet61.lua @@ -7,7 +7,7 @@ local function GetPlanet(planetUtilities, planetID) local image = LUA_DIRNAME .. "images/planets/tundra02.png" local planetData = { - name = "Zimeskli", + name = "Hibiliha", startingPlanet = false, mapDisplay = { x = (planetUtilities.planetPositions and planetUtilities.planetPositions[planetID][1]) or 0.83, @@ -24,17 +24,33 @@ local function GetPlanet(planetUtilities, planetID) primary = "Toque", primaryType = "F9IV", milRating = 1, - text = [[]] + feedbackLink = "http://zero-k.info/Forum/Thread/24614", + text = [[The high mountains of this battlefield, and the enemy's defensive bastions seated upon them, have so far resisted assault. The Funnelweb strider is well equipped to dislodge them.]] + }, + tips = { + { + image = "unitpics/striderfunnelweb.png", + text = [[Funnelwebs have no direct weapon - instead they manufacture drones to attack enemies at long distance. An attack order given to a Funnelweb will be observed by its drones.]] + }, + { + image = "unitpics/energyfusion.png", + text = [[Since you don't have any infrastructure in place yet, your ally has given you some Fusion Reactors to power your Funnelwebs' shields. Make sure you keep them alive.]] + }, + { + image = "unitpics/staticmex.png", + text = [[At the moment the enemy controls far more of the map than your team does. Push out with your starting Funnelwebs and take metal points to even the odds.]] + }, }, gameConfig = { mapName = "Melt_V2", playerConfig = { - startX = 100, - startZ = 100, + startX = 620, + startZ = 6150, + --startX = 7000, + --startZ = 7000, allyTeam = 0, - facplop = false, commanderParameters = { - facplop = false, + facplop = true, defeatIfDestroyedObjectiveID = 2, }, extraUnlocks = { @@ -42,44 +58,3295 @@ local function GetPlanet(planetUtilities, planetID) "striderfunnelweb", }, startUnits = { + { + name = "energyfusion", + x = 6872, + z = 6992, + facing = 0, + }, + { + name = "energyfusion", + x = 7032, + z = 6848, + facing = 0, + }, + { + name = "striderfunnelweb", + x = 620, + z = 5950, + facing = 1, + }, + { + name = "striderfunnelweb", + x = 620, + z = 5750, + facing = 1, + }, } }, aiConfig = { { - startX = 4000, - startZ = 75, + humanName = "Ridgeback", + --aiLib = "Null AI", + --bitDependant = false, + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + allyTeam = 0, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "staticrearm", + "factoryshield", + "shieldcon", + "shieldraid", + "shieldassault", + "shieldriot", + "shieldskirm", + "shieldbomb", + "shieldaa", + "shieldfelon", + "shieldshield", + "shieldarty", + "factoryspider", + "spidercon", + "spiderscout", + "spiderriot", + "spideremp", + "spiderskirm", + "spiderassault", + "spidercrabe", + "spiderantiheavy", + "spideraa", + }, + commander = false, + startUnits = { + { + name = "staticheavyradar", + x = 5456, + z = 5216, + facing = 0, + }, + { + name = "staticstorage", + x = 6856, + z = 6808, + facing = 0, + }, + { + name = "staticmex", + x = 6696, + z = 6664, + facing = 0, + }, + { + name = "turretlaser", + x = 6928, + z = 5488, + facing = 2, + }, + { + name = "staticmex", + x = 6728, + z = 7048, + facing = 0, + }, + { + name = "staticmex", + x = 5800, + z = 6712, + facing = 0, + }, + { + name = "staticmex", + x = 7128, + z = 6728, + facing = 0, + }, + { + name = "staticmex", + x = 5592, + z = 6712, + facing = 0, + }, + { + name = "staticmex", + x = 6712, + z = 5560, + facing = 0, + }, + { + name = "energysolar", + x = 6744, + z = 6920, + facing = 0, + }, + { + name = "energysolar", + x = 6744, + z = 6776, + facing = 0, + }, + { + name = "staticmex", + x = 6808, + z = 5304, + facing = 0, + }, + { + name = "energysolar", + x = 6840, + z = 6680, + facing = 0, + }, + { + name = "energysolar", + x = 6984, + z = 6712, + facing = 0, + }, + { + name = "staticcon", + x = 6584, + z = 6632, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6584, 6632}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6816, 6429}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 6680, + z = 6552, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6680, 6552}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6816, 6429}, options = {"shift"}}, + }, + }, + { + name = "factoryspider", + x = 6440, + z = 6744, + facing = 3, + }, + { + name = "staticmex", + x = 6840, + z = 4104, + facing = 0, + }, + { + name = "staticmex", + x = 6568, + z = 3880, + facing = 0, + }, + { + name = "staticmex", + x = 6936, + z = 3688, + facing = 0, + }, + { + name = "staticmex", + x = 5096, + z = 4664, + facing = 3, + }, + { + name = "energysolar", + x = 6760, + z = 5432, + facing = 2, + }, + { + name = "staticmex", + x = 4040, + z = 6568, + facing = 3, + }, + { + name = "staticmex", + x = 5208, + z = 4824, + facing = 3, + }, + { + name = "energywind", + x = 5144, + z = 4664, + facing = 2, + }, + { + name = "staticmex", + x = 4456, + z = 6584, + facing = 3, + }, + { + name = "energywind", + x = 5144, + z = 4712, + facing = 2, + }, + { + name = "energywind", + x = 5096, + z = 4712, + facing = 1, + }, + { + name = "staticmex", + x = 4296, + z = 6216, + facing = 3, + }, + { + name = "energywind", + x = 5048, + z = 4712, + facing = 1, + }, + { + name = "energywind", + x = 5048, + z = 4664, + facing = 0, + }, + { + name = "energywind", + x = 5048, + z = 4616, + facing = 0, + }, + { + name = "energywind", + x = 5096, + z = 4616, + facing = 3, + }, + { + name = "energywind", + x = 5144, + z = 4616, + facing = 3, + }, + { + name = "energywind", + x = 5256, + z = 4824, + facing = 2, + }, + { + name = "energywind", + x = 5256, + z = 4872, + facing = 2, + }, + { + name = "energywind", + x = 5208, + z = 4872, + facing = 1, + }, + { + name = "energywind", + x = 5160, + z = 4872, + facing = 1, + }, + { + name = "energywind", + x = 5160, + z = 4824, + facing = 0, + }, + { + name = "energywind", + x = 5160, + z = 4776, + facing = 0, + }, + { + name = "energywind", + x = 5208, + z = 4776, + facing = 3, + }, + { + name = "energywind", + x = 5256, + z = 4776, + facing = 3, + }, + { + name = "factoryshield", + x = 6816, + z = 6440, + facing = 2, + }, + { + name = "turretaafar", + x = 5472, + z = 5472, + facing = 2, + }, + { + name = "turretheavylaser", + x = 4936, + z = 4488, + facing = 2, + }, + { + name = "turretheavylaser", + x = 5304, + z = 4360, + facing = 2, + }, + { + name = "turretheavylaser", + x = 4808, + z = 4840, + facing = 3, + }, + { + name = "turretemp", + x = 4864, + z = 4608, + facing = 3, + }, + { + name = "turretemp", + x = 5104, + z = 4432, + facing = 2, + }, + { + name = "turretaaflak", + x = 4984, + z = 4824, + facing = 2, + }, + { + name = "turretaaflak", + x = 5288, + z = 4616, + facing = 2, + }, + { + name = "energysolar", + x = 4152, + z = 6488, + facing = 2, + }, + { + name = "energysolar", + x = 4280, + z = 6344, + facing = 2, + }, + { + name = "energysolar", + x = 4392, + z = 6488, + facing = 2, + }, + { + name = "turretheavylaser", + x = 4040, + z = 6248, + facing = 3, + }, + { + name = "turretemp", + x = 4240, + z = 6096, + facing = 3, + }, + { + name = "turretlaser", + x = 4368, + z = 6032, + facing = 3, + }, + { + name = "turretlaser", + x = 3872, + z = 6528, + facing = 3, + }, + { + name = "turretemp", + x = 3920, + z = 6672, + facing = 3, + }, + { + name = "turretlaser", + x = 5088, + z = 4960, + facing = 0, + }, + { + name = "turretemp", + x = 4592, + z = 6448, + facing = 1, + }, + { + name = "turretlaser", + x = 4608, + z = 6560, + facing = 1, + }, + { + name = "turretlaser", + x = 5424, + z = 4704, + facing = 1, + }, + { + name = "energysolar", + x = 6680, + z = 3912, + facing = 1, + }, + { + name = "energysolar", + x = 6824, + z = 3784, + facing = 1, + }, + { + name = "energysolar", + x = 6840, + z = 3944, + facing = 1, + }, + { + name = "energywind", + x = 6904, + z = 4056, + facing = 1, + }, + { + name = "turretlaser", + x = 5680, + z = 6880, + facing = 3, + }, + { + name = "turretlaser", + x = 5744, + z = 6560, + facing = 3, + }, + { + name = "turretheavylaser", + x = 6712, + z = 3608, + facing = 2, + }, + { + name = "energysolar", + x = 5704, + z = 6696, + facing = 3, + }, + { + name = "turretheavylaser", + x = 7112, + z = 3768, + facing = 2, + }, + { + name = "turretemp", + x = 6976, + z = 3600, + facing = 2, + }, + { + name = "turretaalaser", + x = 6984, + z = 3896, + facing = 2, + }, + { + name = "turretheavylaser", + x = 6520, + z = 3736, + facing = 3, + }, + { + name = "turretlaser", + x = 6592, + z = 5360, + facing = 2, + }, + { + name = "turretheavylaser", + x = 6616, + z = 4136, + facing = 3, + }, + { + name = "turretemp", + x = 6480, + z = 3984, + facing = 3, + }, + { + name = "shieldassault", + x = 6041, + z = 3876, + facing = 3, + }, + { + name = "shieldfelon", + x = 5618, + z = 3990, + facing = 0, + }, + { + name = "spidercon", + x = 5104, + z = 4889, + facing = 3, + }, + { + name = "shieldcon", + x = 6874, + z = 3994, + facing = 1, + }, + { + name = "spideremp", + x = 5741, + z = 3935, + facing = 1, + }, + { + name = "shieldcon", + x = 4986, + z = 4860, + facing = 3, + }, + { + name = "staticradar", + x = 6752, + z = 6688, + facing = 3, + }, + { + name = "spiderscout", + x = 2574, + z = 7339, + facing = 0, + }, + { + name = "staticcon", + x = 6840, + z = 6616, + facing = 3, + }, + { + name = "spiderscout", + x = 3074, + z = 6850, + facing = 3, + }, + { + name = "staticcon", + x = 6792, + z = 6616, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6792, 6616}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6816, 6429}, options = {"shift"}}, + }, + }, + { + name = "turretlaser", + x = 6416, + z = 6544, + facing = 2, + }, + { + name = "spidercon", + x = 4992, + z = 6219, + facing = 1, + }, + { + name = "turretlaser", + x = 7040, + z = 6720, + facing = 3, + }, + { + name = "spiderassault", + x = 5955, + z = 3704, + facing = 3, + }, + { + name = "shieldcon", + x = 4932, + z = 6341, + facing = 1, + }, + { + name = "turretlaser", + x = 5840, + z = 6800, + facing = 2, + }, + { + name = "spiderriot", + x = 5324, + z = 3924, + facing = 0, + }, + { + name = "spiderriot", + x = 4151, + z = 6088, + facing = 0, + }, + { + name = "staticcon", + x = 6744, + z = 6616, + facing = 3, + }, + { + name = "spidercon", + x = 6984, + z = 4184, + facing = 2, + }, + { + name = "turretlaser", + x = 6768, + z = 5344, + facing = 3, + }, + { + name = "shieldskirm", + x = 5639, + z = 4019, + facing = 3, + }, + { + name = "spidercon", + x = 4492, + z = 6166, + facing = 1, + }, + { + name = "shieldcon", + x = 6377, + z = 6919, + facing = 1, + }, + { + name = "spiderscout", + x = 2512, + z = 7383, + facing = 0, + }, + { + name = "turretmissile", + x = 6368, + z = 3824, + facing = 3, + }, + { + name = "shieldfelon", + x = 6810, + z = 6352, + facing = 2, + }, + { + name = "spiderassault", + x = 4050, + z = 7387, + facing = 3, + }, + { + name = "shieldassault", + x = 5854, + z = 3891, + facing = 2, + }, + { + name = "spiderassault", + x = 6003, + z = 3607, + facing = 2, + }, + { + name = "spidercon", + x = 4928, + z = 4544, + facing = 1, + }, + { + name = "staticradar", + x = 4368, + z = 6384, + facing = 2, + }, + { + name = "shieldassault", + x = 6013, + z = 3907, + facing = 2, + }, + { + name = "spiderassault", + x = 6022, + z = 3730, + facing = 0, + }, + { + name = "energysolar", + x = 6616, + z = 6568, + facing = 3, + }, + { + name = "energysolar", + x = 5528, + z = 6696, + facing = 2, + }, + { + name = "shieldassault", + x = 5857, + z = 3933, + facing = 1, + }, + { + name = "energysolar", + x = 6776, + z = 5560, + facing = 3, + }, + { + name = "turretheavylaser", + x = 4904, + z = 4808, + facing = 3, + buildProgress = 0.30829999, + }, + { + name = "turretlaser", + x = 5424, + z = 4880, + facing = 3, + }, + { + name = "shieldassault", + x = 5919, + z = 3904, + facing = 1, + }, + { + name = "turretlaser", + x = 4208, + z = 6432, + facing = 2, + }, + { + name = "energysolar", + x = 5544, + z = 6616, + facing = 2, + }, + { + name = "turretmissile", + x = 6816, + z = 3856, + facing = 3, + }, + { + name = "spiderassault", + x = 6012, + z = 3582, + facing = 0, + }, + { + name = "spiderscout", + x = 7353, + z = 3767, + facing = 3, + }, + { + name = "energysolar", + x = 5272, + z = 5000, + facing = 3, + }, + { + name = "spiderscout", + x = 4616, + z = 6960, + facing = 3, + }, + { + name = "shieldassault", + x = 5778, + z = 3950, + facing = 1, + }, + { + name = "energysolar", + x = 4920, + z = 4696, + facing = 3, + }, + { + name = "turretmissile", + x = 5456, + z = 4512, + facing = 3, + }, + { + name = "spiderassault", + x = 5970, + z = 3661, + facing = 1, + }, + { + name = "energysolar", + x = 5368, + z = 4728, + facing = 3, + }, + { + name = "shieldskirm", + x = 6031, + z = 3980, + facing = 0, + }, + { + name = "turretlaser", + x = 6624, + z = 3888, + facing = 3, + }, + { + name = "staticradar", + x = 6752, + z = 4064, + facing = 3, + }, + { + name = "turretmissile", + x = 4928, + z = 4992, + facing = 3, + }, + { + name = "spiderassault", + x = 5643, + z = 3609, + facing = 2, + }, + { + name = "shieldskirm", + x = 6096, + z = 4127, + facing = 0, + }, + { + name = "staticstorage", + x = 5096, + z = 4760, + facing = 3, + }, + { + name = "spideremp", + x = 5912, + z = 3966, + facing = 1, + }, + { + name = "staticcon", + x = 5352, + z = 4808, + facing = 3, + }, + { + name = "shieldaa", + x = 3470, + z = 6503, + facing = 3, + }, + { + name = "spiderscout", + x = 3187, + z = 6825, + facing = 3, + }, + { + name = "spiderscout", + x = 4681, + z = 6863, + facing = 2, + }, + { + name = "shieldaa", + x = 3392, + z = 6533, + facing = 3, + }, + { + name = "staticcon", + x = 6808, + z = 6568, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6808, 6568}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6816, 6429}, options = {"shift"}}, + }, + }, + { + name = "shieldfelon", + x = 6345, + z = 6489, + facing = 2, + patrolRoute = { + {6330, 6498}, + {6373, 6448}, + }, + }, + { + name = "turretheavylaser", + x = 6984, + z = 3976, + facing = 3, + buildProgress = 0.764, + }, + { + name = "spiderscout", + x = 1904, + z = 7591, + facing = 3, + }, + { + name = "spidercon", + x = 5218, + z = 6625, + facing = 3, + }, + { + name = "staticradar", + x = 5232, + z = 4688, + facing = 3, + }, + { + name = "spiderscout", + x = 7357, + z = 3711, + facing = 3, + }, + { + name = "spiderassault", + x = 4188, + z = 7419, + facing = 3, + }, + { + name = "spiderassault", + x = 6299, + z = 6460, + facing = 0, + patrolRoute = { + {6298, 6441}, + {6331, 6496}, + }, + }, + { + name = "shieldcon", + x = 5510, + z = 6518, + facing = 2, + }, + { + name = "spiderscout", + x = 3349, + z = 6729, + facing = 3, + }, + { + name = "energysolar", + x = 5176, + z = 5064, + facing = 3, + }, + { + name = "energysolar", + x = 6632, + z = 6696, + facing = 3, + }, + { + name = "spiderscout", + x = 3935, + z = 6623, + facing = 3, + }, + { + name = "shieldskirm", + x = 6325, + z = 6464, + facing = 0, + patrolRoute = { + {6295, 6443}, + {6331, 6496}, + }, + }, + { + name = "turretlaser", + x = 5248, + z = 5056, + facing = 3, + }, + { + name = "shieldskirm", + x = 6320, + z = 6522, + facing = 2, + patrolRoute = { + {6310, 6556}, + {6331, 6496}, + }, + }, + { + name = "spiderscout", + x = 4334, + z = 7078, + facing = 3, + }, + { + name = "shieldskirm", + x = 6841, + z = 6337, + facing = 2, + }, + { + name = "shieldraid", + x = 6816, + z = 6428, + facing = 2, + }, + { + name = "spiderscout", + x = 6404, + z = 6744, + facing = 3, + buildProgress = 0.5, + }, + } + }, + { + startX = 1500, + startZ = 1300, + humanName = "Skiffy", + --aiLib = "Null AI", + --bitDependant = false, aiLib = "Circuit_difficulty_autofill", - humanName = "Enemy", bitDependant = true, commanderParameters = { facplop = false, }, allyTeam = 1, unlocks = { - "cloakraid", + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaaclose", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "staticrearm", + "factoryspider", + "spidercon", + "spiderscout", + "spiderriot", + "spideremp", + "spiderskirm", + "spiderassault", + "spidercrabe", + "spiderantiheavy", + "spideraa", + "factoryplane", + "planecon", + "planescout", + "planefighter", + "planeheavyfighter", + "bomberprec", + "bomberdisarm", + --"bomberheavy", + "striderhub", + "striderscorpion", }, - commanderLevel = 2, + difficultyDependantUnlocks = { + [4] = {"bomberheavy"}, + }, + commanderLevel = 5, commander = { - name = "Most Loyal Opposition", + name = "Abomination", chassis = "engineer", - decorations = { - "skin_support_dark", - icon_overhead = { image = "UW" } - }, - modules = { } + modules = { + "commweapon_missilelauncher", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_adv_nano", + "module_adv_nano", + "module_adv_nano", + "module_adv_nano", + "module_adv_nano", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_high_power_servos", + "module_high_power_servos", + } }, startUnits = { - } - }, - }, - defeatConditionConfig = { - - }, - objectiveConfig = { - -- This is just related to displaying objectives on the UI. - }, - bonusObjectiveConfig = { - } + { + name = "staticheavyradar", + x = 2592, + z = 2816, + facing = 0, + }, + { + name = "staticstorage", + x = 1400, + z = 936, + facing = 0, + }, + { + name = "striderhub", + x = 1760, + z = 1264, + facing = 0, + }, + { + name = "turretgauss", + x = 1064, + z = 3912, + facing = 0, + }, + { + name = "staticmex", + x = 2568, + z = 2472, + facing = 0, + }, + { + name = "staticmex", + x = 2792, + z = 2568, + facing = 0, + }, + { + name = "staticmex", + x = 1144, + z = 1016, + facing = 0, + }, + { + name = "staticmex", + x = 1096, + z = 2664, + facing = 0, + }, + { + name = "staticmex", + x = 1064, + z = 2424, + facing = 0, + }, + { + name = "staticmex", + x = 1144, + z = 1384, + facing = 0, + }, + { + name = "staticmex", + x = 1480, + z = 1144, + facing = 0, + }, + { + name = "staticmex", + x = 1160, + z = 3688, + facing = 3, + }, + { + name = "staticmex", + x = 1240, + z = 4152, + facing = 3, + }, + { + name = "staticmex", + x = 1496, + z = 3880, + facing = 3, + }, + { + name = "staticmex", + x = 1784, + z = 5160, + facing = 3, + }, + { + name = "energysolar", + x = 1112, + z = 1256, + facing = 3, + }, + { + name = "energysolar", + x = 1128, + z = 1128, + facing = 3, + }, + { + name = "staticmex", + x = 1656, + z = 6376, + facing = 3, + }, + { + name = "energysolar", + x = 1240, + z = 1048, + facing = 3, + }, + { + name = "staticmex", + x = 1960, + z = 6504, + facing = 3, + }, + { + name = "energysolar", + x = 1368, + z = 1112, + facing = 3, + }, + { + name = "staticmex", + x = 1752, + z = 6776, + facing = 3, + }, + { + name = "turretaalaser", + x = 1352, + z = 3736, + facing = 0, + }, + { + name = "energywind", + x = 2616, + z = 2472, + facing = 2, + }, + { + name = "energywind", + x = 2616, + z = 2520, + facing = 2, + }, + { + name = "energywind", + x = 2568, + z = 2520, + facing = 1, + }, + { + name = "staticmex", + x = 2984, + z = 4984, + facing = 3, + }, + { + name = "energywind", + x = 2520, + z = 2520, + facing = 1, + }, + { + name = "energywind", + x = 2520, + z = 2472, + facing = 0, + }, + { + name = "energywind", + x = 2520, + z = 2424, + facing = 0, + }, + { + name = "staticmex", + x = 3176, + z = 4840, + facing = 3, + }, + { + name = "energywind", + x = 2568, + z = 2424, + facing = 3, + }, + { + name = "energywind", + x = 2616, + z = 2424, + facing = 3, + }, + { + name = "factoryplane", + x = 1584, + z = 1016, + facing = 0, + }, + { + name = "energywind", + x = 2840, + z = 2568, + facing = 2, + }, + { + name = "energywind", + x = 2840, + z = 2616, + facing = 2, + }, + { + name = "factoryspider", + x = 1416, + z = 1384, + facing = 0, + }, + { + name = "energywind", + x = 2792, + z = 2616, + facing = 1, + }, + { + name = "staticcon", + x = 1560, + z = 1240, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1585, 1265}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1560, 1240}, options = {"shift"}}, + }, + }, + { + name = "energywind", + x = 2744, + z = 2616, + facing = 1, + }, + { + name = "energywind", + x = 2744, + z = 2568, + facing = 0, + }, + { + name = "energywind", + x = 2744, + z = 2520, + facing = 0, + }, + { + name = "staticcon", + x = 1640, + z = 1240, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1665, 1265}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1640, 1240}, options = {"shift"}}, + }, + }, + { + name = "staticmex", + x = 1864, + z = 5368, + facing = 3, + }, + { + name = "energywind", + x = 2792, + z = 2520, + facing = 3, + }, + { + name = "energywind", + x = 2840, + z = 2520, + facing = 3, + }, + { + name = "energywind", + x = 3032, + z = 4984, + facing = 2, + }, + { + name = "energywind", + x = 3032, + z = 5032, + facing = 2, + }, + { + name = "energywind", + x = 2984, + z = 5032, + facing = 1, + }, + { + name = "energywind", + x = 2936, + z = 5032, + facing = 1, + }, + { + name = "energywind", + x = 2936, + z = 4984, + facing = 0, + }, + { + name = "energywind", + x = 2936, + z = 4936, + facing = 0, + }, + { + name = "energywind", + x = 2984, + z = 4936, + facing = 3, + }, + { + name = "energywind", + x = 3032, + z = 4936, + facing = 3, + }, + { + name = "energywind", + x = 3224, + z = 4840, + facing = 2, + }, + { + name = "energywind", + x = 3224, + z = 4888, + facing = 2, + }, + { + name = "energywind", + x = 3176, + z = 4888, + facing = 1, + }, + { + name = "energywind", + x = 3128, + z = 4888, + facing = 1, + }, + { + name = "energywind", + x = 3128, + z = 4840, + facing = 0, + }, + { + name = "energywind", + x = 3128, + z = 4792, + facing = 0, + }, + { + name = "energywind", + x = 3176, + z = 4792, + facing = 3, + }, + { + name = "energywind", + x = 3224, + z = 4792, + facing = 3, + }, + { + name = "energywind", + x = 2696, + z = 2248, + facing = 2, + }, + { + name = "energywind", + x = 2776, + z = 2248, + facing = 2, + }, + { + name = "energywind", + x = 2856, + z = 2248, + facing = 2, + }, + { + name = "energywind", + x = 2936, + z = 2248, + facing = 2, + }, + { + name = "energywind", + x = 2936, + z = 2328, + facing = 2, + }, + { + name = "energywind", + x = 2856, + z = 2328, + facing = 2, + }, + { + name = "energywind", + x = 2776, + z = 2328, + facing = 2, + }, + { + name = "energywind", + x = 2696, + z = 2328, + facing = 2, + }, + { + name = "energywind", + x = 2696, + z = 2408, + facing = 2, + }, + { + name = "energywind", + x = 2776, + z = 2408, + facing = 2, + }, + { + name = "energywind", + x = 2856, + z = 2408, + facing = 2, + }, + { + name = "energywind", + x = 2936, + z = 2408, + facing = 2, + }, + { + name = "energypylon", + x = 3288, + z = 1832, + facing = 2, + }, + { + name = "energypylon", + x = 2456, + z = 1800, + facing = 2, + }, + { + name = "energypylon", + x = 1912, + z = 1400, + facing = 2, + }, + { + name = "energypylon", + x = 2696, + z = 2488, + facing = 0, + }, + { + name = "staticarty", + x = 2488, + z = 2824, + facing = 0, + }, + { + name = "energypylon", + x = 1496, + z = 1992, + facing = 0, + }, + { + name = "energysolar", + x = 1080, + z = 2536, + facing = 0, + }, + { + name = "turretheavy", + x = 1864, + z = 2280, + facing = 0, + }, + { + name = "energypylon", + x = 984, + z = 2488, + facing = 0, + }, + { + name = "turretheavy", + x = 1144, + z = 2904, + facing = 0, + }, + { + name = "turretaalaser", + x = 1400, + z = 2632, + facing = 0, + }, + { + name = "staticshield", + x = 2608, + z = 2592, + facing = 0, + }, + { + name = "turretaalaser", + x = 3544, + z = 1880, + facing = 0, + }, + { + name = "turretheavy", + x = 2808, + z = 2744, + facing = 0, + }, + { + name = "turretemp", + x = 2144, + z = 2768, + facing = 0, + }, + { + name = "turretgauss", + x = 2264, + z = 2936, + facing = 0, + }, + { + name = "turretemp", + x = 2464, + z = 3024, + facing = 0, + }, + { + name = "energyfusion", + x = 984, + z = 1008, + facing = 0, + }, + { + name = "turretheavylaser", + x = 2792, + z = 5208, + facing = 0, + }, + { + name = "turretemp", + x = 2976, + z = 5136, + facing = 0, + }, + { + name = "turretheavylaser", + x = 3240, + z = 5000, + facing = 0, + }, + { + name = "turretriot", + x = 3208, + z = 4664, + facing = 1, + }, + { + name = "turretriot", + x = 2632, + z = 4856, + facing = 3, + }, + { + name = "turretemp", + x = 2928, + z = 4752, + facing = 2, + }, + { + name = "turretaalaser", + x = 2840, + z = 4920, + facing = 0, + }, + { + name = "turretlaser", + x = 2016, + z = 5408, + facing = 0, + }, + { + name = "turretlaser", + x = 1728, + z = 5280, + facing = 0, + }, + { + name = "turretriot", + x = 1752, + z = 6568, + facing = 3, + }, + { + name = "turretmissile", + x = 1824, + z = 6256, + facing = 3, + }, + { + name = "turretmissile", + x = 2000, + z = 6800, + facing = 3, + }, + { + name = "turretheavylaser", + x = 584, + z = 2808, + facing = 0, + }, + { + name = "turretaaclose", + x = 408, + z = 2808, + facing = 0, + }, + { + name = "turretgauss", + x = 1464, + z = 4120, + facing = 0, + }, + { + name = "spiderassault", + x = 4775, + z = 3661, + facing = 1, + }, + { + name = "energysolar", + x = 1480, + z = 1208, + facing = 0, + }, + { + name = "spidercon", + x = 1893, + z = 3685, + facing = 1, + patrolRoute = { + {1720, 3422}, + {2523, 4223}, + }, + }, + { + name = "spideremp", + x = 4609, + z = 3745, + facing = 1, + }, + { + name = "spidercon", + x = 2689, + z = 2950, + facing = 0, + }, + { + name = "turretlaser", + x = 1296, + z = 1088, + facing = 0, + }, + { + name = "spidercon", + x = 3160, + z = 6009, + facing = 0, + }, + { + name = "staticcon", + x = 1448, + z = 1272, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1448, 1272}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1473, 1297}, options = {"shift"}}, + }, + }, + { + name = "staticradar", + x = 1312, + z = 1264, + facing = 0, + }, + { + name = "spiderassault", + x = 4732, + z = 3667, + facing = 1, + }, + { + name = "turretlaser", + x = 1936, + z = 1296, + facing = 0, + }, + { + name = "turretlaser", + x = 2576, + z = 176, + facing = 0, + }, + { + name = "staticcon", + x = 1400, + z = 1272, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1400, 1272}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1425, 1297}, options = {"shift"}}, + }, + }, + { + name = "energysolar", + x = 2152, + z = 2184, + facing = 1, + }, + { + name = "spiderassault", + x = 4697, + z = 3709, + facing = 1, + }, + { + name = "bomberprec", + x = 1574, + z = 2207, + facing = 0, + }, + { + name = "staticcon", + x = 1432, + z = 1128, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1432, 1128}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1457, 1153}, options = {"shift"}}, + }, + }, + { + name = "spiderassault", + x = 4677, + z = 3752, + facing = 1, + }, + { + name = "staticcon", + x = 1416, + z = 1224, + facing = 0, + }, + { + name = "staticradar", + x = 2752, + z = 448, + facing = 0, + }, + { + name = "spiderriot", + x = 1573, + z = 2114, + facing = 1, + }, + { + name = "spiderscout", + x = 2916, + z = 2903, + facing = 1, + }, + { + name = "spiderassault", + x = 4739, + z = 3700, + facing = 1, + }, + { + name = "staticmex", + x = 2632, + z = 328, + facing = 0, + }, + { + name = "staticcon", + x = 1416, + z = 1176, + facing = 0, + }, + { + name = "staticcon", + x = 1496, + z = 1272, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1496, 1272}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1521, 1297}, options = {"shift"}}, + }, + }, + { + name = "staticradar", + x = 2544, + z = 2608, + facing = 1, + }, + { + name = "spiderscout", + x = 3596, + z = 4186, + facing = 0, + }, + { + name = "spidercon", + x = 3231, + z = 2815, + facing = 0, + }, + { + name = "turretlaser", + x = 992, + z = 2448, + facing = 1, + }, + { + name = "spiderassault", + x = 3679, + z = 4833, + facing = 3, + }, + { + name = "staticcon", + x = 1368, + z = 1192, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1368, 1192}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1393, 1217}, options = {"shift"}}, + }, + }, + { + name = "staticmex", + x = 2760, + z = 200, + facing = 0, + }, + { + name = "energypylon", + x = 2696, + z = 264, + facing = 0, + }, + { + name = "turretlaser", + x = 1792, + z = 1072, + facing = 0, + }, + { + name = "staticrearm", + x = 1656, + z = 824, + facing = 0, + }, + { + name = "energypylon", + x = 3528, + z = 728, + facing = 0, + }, + { + name = "spiderassault", + x = 7610, + z = 3198, + facing = 1, + }, + { + name = "spiderscout", + x = 2674, + z = 2733, + facing = 0, + }, + { + name = "spideremp", + x = 1551, + z = 2065, + facing = 0, + }, + { + name = "spiderscout", + x = 3234, + z = 6348, + facing = 0, + }, + { + name = "spiderassault", + x = 2042, + z = 2858, + facing = 1, + }, + { + name = "staticstorage", + x = 2712, + z = 2680, + facing = 0, + }, + { + name = "spiderassault", + x = 3521, + z = 5515, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3172, 5861}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3126, 5816}, options = {"shift"}}, + }, + }, + { + name = "spiderassault", + x = 3093, + z = 5846, + facing = 1, + patrolRoute = { + {3087, 5868}, + {3126, 5816}, + }, + }, + { + name = "spiderassault", + x = 3142, + z = 5827, + facing = 1, + patrolRoute = { + {3126, 5816}, + {3158, 5872}, + }, + }, + { + name = "spiderscout", + x = 2975, + z = 6105, + facing = 0, + }, + { + name = "spiderscout", + x = 4234, + z = 4207, + facing = 0, + }, + { + name = "spiderassault", + x = 2032, + z = 2790, + facing = 0, + }, + { + name = "spiderassault", + x = 3084, + z = 5811, + facing = 2, + patrolRoute = { + {3062, 5815}, + {3126, 5816}, + }, + }, + { + name = "spiderassault", + x = 1964, + z = 5082, + facing = 0, + }, + { + name = "turretlaser", + x = 4096, + z = 1040, + facing = 0, + }, + { + name = "spiderassault", + x = 1901, + z = 5034, + facing = 0, + }, + { + name = "spiderscout", + x = 4473, + z = 3841, + facing = 1, + }, + { + name = "spiderscout", + x = 3301, + z = 4618, + facing = 0, + }, + { + name = "spiderscout", + x = 3290, + z = 4595, + facing = 0, + }, + { + name = "staticradar", + x = 4000, + z = 1328, + facing = 0, + }, + { + name = "spiderscout", + x = 2781, + z = 4780, + facing = 0, + }, + { + name = "spideremp", + x = 1607, + z = 2264, + facing = 1, + }, + { + name = "bomberdisarm", + x = 3963, + z = 2990, + facing = 1, + }, + { + name = "spiderassault", + x = 1557, + z = 2217, + facing = 0, + }, + { + name = "spiderassault", + x = 1692, + z = 2375, + facing = 0, + }, + { + name = "spiderassault", + x = 1716, + z = 2412, + facing = 0, + }, + { + name = "spiderassault", + x = 1528, + z = 2158, + facing = 0, + }, + { + name = "spiderassault", + x = 1637, + z = 2294, + facing = 0, + }, + { + name = "spiderscout", + x = 3198, + z = 2979, + facing = 1, + }, + { + name = "turretlaser", + x = 2992, + z = 2640, + facing = 0, + }, + { + name = "spiderscout", + x = 3070, + z = 3076, + facing = 1, + }, + { + name = "spiderriot", + x = 1254, + z = 2129, + facing = 0, + }, + { + name = "bomberdisarm", + x = 1546, + z = 1036, + facing = 0, + buildProgress = 0.86299998, + }, + { + name = "spiderscout", + x = 1956, + z = 2078, + facing = 0, + }, + { + name = "spiderscout", + x = 1922, + z = 1856, + facing = 1, + }, + { + name = "spiderscout", + x = 1820, + z = 1770, + facing = 1, + }, + { + name = "spiderscout", + x = 1697, + z = 1553, + facing = 1, + }, + { + name = "spidercon", + x = 1416, + z = 1420, + facing = 0, + buildProgress = 0.0649, + }, + { + name = "spidercrabe", + x = 2086, + z = 6316, + facing = 0, + }, + { + name = "spideremp", + x = 2185, + z = 6477, + facing = 0, + }, + { + name = "spideremp", + x = 2094, + z = 6085, + facing = 0, + }, + } + }, + { + humanName = "Sundown", + --aiLib = "Null AI", + --bitDependant = false, + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + allyTeam = 1, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "staticrearm", + "factoryspider", + "spidercon", + "spiderscout", + "spiderriot", + "spideremp", + "spiderskirm", + "spiderassault", + "spidercrabe", + "spiderantiheavy", + "spideraa", + "factoryjump", + "jumpcon", + "jumpraid", + "jumpskirm", + "jumpassault", + "jumpsumo", + "jumparty", + "jumpblackhole", + "jumpaa", + }, + commander = false, + startUnits = { + { + name = "staticheavyradar", + x = 5792, + z = 2992, + facing = 0, + }, + { + name = "staticstorage", + x = 6952, + z = 888, + facing = 0, + }, + { + name = "turretriot", + x = 3816, + z = 1304, + facing = 0, + }, + { + name = "staticmex", + x = 5704, + z = 2696, + facing = 0, + }, + { + name = "staticmex", + x = 5608, + z = 2456, + facing = 0, + }, + { + name = "staticmex", + x = 6568, + z = 1160, + facing = 0, + }, + { + name = "staticmex", + x = 6920, + z = 1048, + facing = 0, + }, + { + name = "staticmex", + x = 6600, + z = 792, + facing = 0, + }, + { + name = "staticmex", + x = 7416, + z = 2312, + facing = 0, + }, + { + name = "staticmex", + x = 7336, + z = 2536, + facing = 0, + }, + { + name = "staticmex", + x = 4040, + z = 1336, + facing = 0, + }, + { + name = "staticmex", + x = 3880, + z = 1048, + facing = 0, + }, + { + name = "staticmex", + x = 4248, + z = 1048, + facing = 0, + }, + { + name = "turretriot", + x = 4040, + z = 872, + facing = 2, + }, + { + name = "energysolar", + x = 3912, + z = 1144, + facing = 0, + }, + { + name = "energysolar", + x = 4040, + z = 1240, + facing = 0, + }, + { + name = "energysolar", + x = 4168, + z = 1144, + facing = 0, + }, + { + name = "energysolar", + x = 6616, + z = 1064, + facing = 0, + }, + { + name = "energysolar", + x = 6648, + z = 904, + facing = 0, + }, + { + name = "energysolar", + x = 6792, + z = 1032, + facing = 0, + }, + { + name = "factoryspider", + x = 6952, + z = 1240, + facing = 0, + }, + { + name = "factoryjump", + x = 6760, + z = 1240, + facing = 0, + }, + { + name = "energywind", + x = 5656, + z = 2456, + facing = 1, + }, + { + name = "energywind", + x = 5656, + z = 2504, + facing = 1, + }, + { + name = "energywind", + x = 5608, + z = 2504, + facing = 0, + }, + { + name = "energywind", + x = 5560, + z = 2504, + facing = 0, + }, + { + name = "energywind", + x = 5560, + z = 2456, + facing = 3, + }, + { + name = "energywind", + x = 5560, + z = 2408, + facing = 3, + }, + { + name = "energywind", + x = 5608, + z = 2408, + facing = 2, + }, + { + name = "energywind", + x = 5656, + z = 2408, + facing = 2, + }, + { + name = "energywind", + x = 5752, + z = 2696, + facing = 1, + }, + { + name = "energywind", + x = 5752, + z = 2744, + facing = 1, + }, + { + name = "energywind", + x = 5704, + z = 2744, + facing = 0, + }, + { + name = "energywind", + x = 5656, + z = 2744, + facing = 0, + }, + { + name = "energypylon", + x = 4056, + z = 1608, + facing = 2, + }, + { + name = "energywind", + x = 5656, + z = 2696, + facing = 3, + }, + { + name = "energywind", + x = 5656, + z = 2648, + facing = 3, + }, + { + name = "energywind", + x = 5704, + z = 2648, + facing = 2, + }, + { + name = "energywind", + x = 5752, + z = 2648, + facing = 2, + }, + { + name = "energywind", + x = 5752, + z = 2344, + facing = 2, + }, + { + name = "energywind", + x = 5832, + z = 2344, + facing = 2, + }, + { + name = "energypylon", + x = 4968, + z = 1848, + facing = 2, + }, + { + name = "energywind", + x = 5912, + z = 2344, + facing = 2, + }, + { + name = "energywind", + x = 5912, + z = 2424, + facing = 2, + }, + { + name = "energywind", + x = 5832, + z = 2424, + facing = 2, + }, + { + name = "energywind", + x = 5752, + z = 2424, + facing = 2, + }, + { + name = "energywind", + x = 5752, + z = 2504, + facing = 2, + }, + { + name = "energywind", + x = 5832, + z = 2504, + facing = 2, + }, + { + name = "energywind", + x = 5912, + z = 2504, + facing = 2, + }, + { + name = "energywind", + x = 5912, + z = 2584, + facing = 2, + }, + { + name = "energywind", + x = 5832, + z = 2584, + facing = 2, + }, + { + name = "energypylon", + x = 5736, + z = 2136, + facing = 2, + }, + { + name = "energywind", + x = 5752, + z = 2584, + facing = 2, + }, + { + name = "energypylon", + x = 6488, + z = 1560, + facing = 2, + }, + { + name = "energysolar", + x = 7384, + z = 2424, + facing = 0, + }, + { + name = "turretheavylaser", + x = 7400, + z = 2680, + facing = 0, + }, + { + name = "turretriot", + x = 7256, + z = 2680, + facing = 0, + }, + { + name = "turretriot", + x = 7528, + z = 2744, + facing = 0, + }, + { + name = "turretaaflak", + x = 7608, + z = 2568, + facing = 0, + }, + { + name = "turretaaflak", + x = 7192, + z = 2360, + facing = 0, + }, + { + name = "turretlaser", + x = 7280, + z = 2176, + facing = 0, + }, + { + name = "turretlaser", + x = 7584, + z = 2224, + facing = 0, + }, + { + name = "energypylon", + x = 5848, + z = 2792, + facing = 0, + }, + { + name = "turretheavy", + x = 5480, + z = 2584, + facing = 3, + }, + { + name = "turretheavy", + x = 6056, + z = 2952, + facing = 1, + }, + { + name = "turretaalaser", + x = 5752, + z = 2824, + facing = 0, + }, + { + name = "turretaalaser", + x = 5464, + z = 1928, + facing = 0, + }, + { + name = "turretantiheavy", + x = 4032, + z = 1824, + facing = 0, + }, + { + name = "turretheavylaser", + x = 4968, + z = 2152, + facing = 0, + }, + { + name = "turretaalaser", + x = 4600, + z = 1736, + facing = 0, + }, + { + name = "energyfusion", + x = 4040, + z = 1024, + facing = 0, + }, + { + name = "staticcon", + x = 7032, + z = 1112, + facing = 0, + }, + { + name = "staticcon", + x = 7032, + z = 1016, + facing = 0, + }, + { + name = "energypylon", + x = 7352, + z = 2008, + facing = 0, + }, + { + name = "energyfusion", + x = 6840, + z = 864, + facing = 0, + }, + { + name = "turretriot", + x = 4312, + z = 1320, + facing = 0, + }, + { + name = "staticmex", + x = 5288, + z = 744, + facing = 0, + }, + { + name = "jumpraid", + x = 4938, + z = 1946, + facing = 1, + }, + { + name = "spidercon", + x = 4540, + z = 2883, + facing = 3, + }, + { + name = "jumpraid", + x = 6734, + z = 2331, + facing = 3, + }, + { + name = "staticcon", + x = 6728, + z = 1032, + facing = 0, + }, + { + name = "jumpcon", + x = 5727, + z = 1502, + facing = 3, + }, + { + name = "spiderscout", + x = 4354, + z = 4015, + facing = 0, + }, + { + name = "jumpassault", + x = 6381, + z = 1506, + facing = 3, + patrolRoute = { + {6385, 1497}, + {6357, 1555}, + }, + }, + { + name = "jumpcon", + x = 3736, + z = 1643, + facing = 3, + }, + { + name = "spideremp", + x = 6148, + z = 3754, + facing = 3, + }, + { + name = "staticcon", + x = 6776, + z = 1096, + facing = 0, + }, + { + name = "jumpskirm", + x = 5993, + z = 3212, + facing = 0, + }, + { + name = "spidercon", + x = 6356, + z = 2832, + facing = 3, + }, + { + name = "staticradar", + x = 6704, + z = 1104, + facing = 0, + }, + { + name = "spiderassault", + x = 5829, + z = 3266, + facing = 1, + }, + { + name = "jumpcon", + x = 4412, + z = 3388, + facing = 0, + }, + { + name = "spidercon", + x = 4592, + z = 3046, + facing = 0, + }, + { + name = "jumpassault", + x = 5862, + z = 3786, + facing = 1, + }, + { + name = "staticcon", + x = 6824, + z = 1096, + facing = 0, + }, + { + name = "spiderassault", + x = 5634, + z = 3297, + facing = 1, + }, + { + name = "staticmex", + x = 5592, + z = 776, + facing = 0, + }, + { + name = "jumpcon", + x = 5597, + z = 3384, + facing = 3, + }, + { + name = "spiderassault", + x = 5677, + z = 3284, + facing = 1, + }, + { + name = "staticcon", + x = 6680, + z = 1032, + facing = 0, + }, + { + name = "jumpcon", + x = 4066, + z = 2148, + facing = 0, + }, + { + name = "spiderassault", + x = 5837, + z = 3198, + facing = 1, + }, + { + name = "staticcon", + x = 6728, + z = 984, + facing = 0, + }, + { + name = "jumpcon", + x = 4608, + z = 3409, + facing = 1, + }, + { + name = "staticcon", + x = 6680, + z = 984, + facing = 0, + }, + { + name = "turretlaser", + x = 6944, + z = 992, + facing = 0, + }, + { + name = "spiderassault", + x = 6137, + z = 3215, + facing = 1, + }, + { + name = "jumpcon", + x = 6043, + z = 1552, + facing = 3, + }, + { + name = "spiderassault", + x = 6178, + z = 3206, + facing = 1, + }, + { + name = "jumpassault", + x = 6389, + z = 2870, + facing = 1, + }, + { + name = "spiderassault", + x = 6081, + z = 3153, + facing = 1, + }, + { + name = "jumpskirm", + x = 6068, + z = 3227, + facing = 0, + }, + { + name = "spiderassault", + x = 6671, + z = 2984, + facing = 1, + }, + { + name = "jumpassault", + x = 6521, + z = 2827, + facing = 1, + }, + { + name = "spideremp", + x = 6832, + z = 1320, + facing = 3, + }, + { + name = "spiderassault", + x = 6681, + z = 3217, + facing = 2, + }, + { + name = "staticstorage", + x = 5608, + z = 2552, + facing = 0, + }, + { + name = "spiderscout", + x = 4719, + z = 3724, + facing = 2, + }, + { + name = "jumpraid", + x = 6708, + z = 2337, + facing = 3, + }, + { + name = "spiderscout", + x = 4672, + z = 3697, + facing = 2, + }, + { + name = "jumpraid", + x = 5811, + z = 1657, + facing = 3, + }, + { + name = "spiderassault", + x = 6336, + z = 1573, + facing = 3, + patrolRoute = { + {6357, 1555}, + {6306, 1594}, + }, + }, + { + name = "spiderassault", + x = 6346, + z = 1501, + facing = 0, + patrolRoute = { + {6371, 1493}, + {6357, 1555}, + }, + }, + { + name = "jumpcon", + x = 5793, + z = 1496, + facing = 3, + }, + { + name = "spiderassault", + x = 6356, + z = 1540, + facing = 3, + patrolRoute = { + {6357, 1555}, + {6316, 1506}, + }, + }, + { + name = "staticmex", + x = 4248, + z = 3576, + facing = 0, + terraformHeight = 690, + }, + { + name = "jumpcon", + x = 7036, + z = 2200, + facing = 0, + }, + { + name = "spidercon", + x = 6876, + z = 1978, + facing = 0, + }, + { + name = "jumpcon", + x = 6214, + z = 1543, + facing = 3, + }, + { + name = "spiderassault", + x = 6613, + z = 1449, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6357, 1555}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6421, 1552}, options = {"shift"}}, + }, + }, + { + name = "spiderscout", + x = 6947, + z = 2010, + facing = 0, + }, + { + name = "jumpskirm", + x = 6760, + z = 1264, + facing = 0, + buildProgress = 0.9777, + }, + { + name = "spiderassault", + x = 6952, + z = 1276, + facing = 0, + buildProgress = 0.0708, + }, + } + }, + }, + defeatConditionConfig = { + -- Indexed by allyTeam. + [0] = { }, + [1] = { + ignoreUnitLossDefeat = false, + vitalCommanders = false, + vitalUnitTypes = { + "factoryplane", + "factoryspider", + "factoryjump", + "striderhub", + }, + loseAfterSeconds = false, + allyTeamLossObjectiveID = 1, + }, + }, + objectiveConfig = { + -- This is just related to displaying objectives on the UI. + [1] = { + description = "Destroy all enemy Factories and Strider Hubs", + }, + [2] = { + description = "Protect your Commander", + }, + }, + bonusObjectiveConfig = { + [1] = { + satisfyOnce = true, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 4, + unitTypes = { + "striderfunnelweb", + }, + image = planetUtilities.ICON_DIR .. "striderfunnelweb.png", + imageOverlay = planetUtilities.ICON_OVERLAY.REPAIR, + description = "Have 4 Funnelwebs", + experience = planetUtilities.BONUS_EXP, + }, + [2] = { + onlyCountRemovedUnits = true, + satisfyForever = true, + comparisionType = planetUtilities.COMPARE.AT_MOST, + targetNumber = 0, + unitTypes = { + "striderfunnelweb" + }, + image = planetUtilities.ICON_DIR .. "striderfunnelweb.png", + imageOverlay = planetUtilities.ICON_OVERLAY.GUARD, + description = "Do not lose any Funnelwebs", + experience = planetUtilities.BONUS_EXP, + }, + [3] = { + victoryByTime = 30*60, + image = planetUtilities.ICON_OVERLAY.CLOCK, + description = "Win by 30:00", + experience = planetUtilities.BONUS_EXP, + }, + }, }, completionReward = { experience = planetUtilities.MAIN_EXP, diff --git a/campaign/sample/planets/planet62.lua b/campaign/sample/planets/planet62.lua index 65b294c74..cd925b741 100644 --- a/campaign/sample/planets/planet62.lua +++ b/campaign/sample/planets/planet62.lua @@ -24,6 +24,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Ilvasia", primaryType = "G7V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24566", text = [[Your enemy is causing trouble with a collection of heavy units, including large Paladin striders. Ambush and destroy their heavies in the mountains with Scorpions.]] }, tips = { @@ -3897,7 +3898,7 @@ local function GetPlanet(planetUtilities, planetID) }, }, bonusObjectiveConfig = { - [1] = { -- Make twelve Hermits + [1] = { satisfyOnce = true, comparisionType = planetUtilities.COMPARE.AT_LEAST, targetNumber = 5, diff --git a/campaign/sample/planets/planet63.lua b/campaign/sample/planets/planet63.lua index 648fd4983..8d8e1d759 100644 --- a/campaign/sample/planets/planet63.lua +++ b/campaign/sample/planets/planet63.lua @@ -7,7 +7,7 @@ local function GetPlanet(planetUtilities, planetID) local image = LUA_DIRNAME .. "images/planets/ocean03.png" local planetData = { - name = "Larunina", + name = "Sapphire", startingPlanet = false, mapDisplay = { x = (planetUtilities.planetPositions and planetUtilities.planetPositions[planetID][1]) or 0.74, @@ -24,62 +24,3102 @@ local function GetPlanet(planetUtilities, planetID) primary = "Malnoa", primaryType = "B5II", milRating = 1, - text = [[...]] + feedbackLink = "http://zero-k.info/Forum/Thread/24614", + text = [[Your Tech Lab is attempting to discover how the hostiles on this planet have subjugated a hive of Chickens. Protect the Lab until the research is complete.]] + }, + tips = { + { + image = "unitpics/turretheavy.png", + text = [[The Desolator turret is the final word in general-purpose defensive emplacements. It has a massive cannon, a heat ray sidearm, and the ability to armor up against artillery fire. Its only weakness is that it must be connected to a large energy grid.]] + }, + { + image = "unitpics/turretantiheavy.png", + text = [[Lucifer tachyon projectors fire an incredibly powerful beam at a single target. It requires an energy grid connection and the refire rate is low, so this turret is not so effective against groups of smaller targets.]] + }, + { + image = "unitpics/turretaaheavy.png", + text = [[The Artemis fires incredibly powerful anti-air missiles at long range. Each missile takes 20 seconds to produce, but they can be fired in quick succession.]] + }, + { + image = "unitpics/energysingu.png", + text = [[Of all energy producers the Singularity Reactor is the most powerful. Make sure to protect them against enemy attack; if a Singularity Reactor is destroyed the explosion is liable to destroy most of your base.]] + }, }, gameConfig = { mapName = "SapphireShores_Dry_V2.1", + modoptions = { + graceperiod = 4, + chicken_nominiqueen = 1, + chicken_minaggro = 5, -- aggro influences chicken tech-up rate (and queen time reduction from killing burrows, but queens are disabled here) + chicken_maxaggro = 5, + chicken_endless = 1, + chicken_hidepanel = 1, + chicken_nowavemessages = 1, + campaign_chicken_types_special = {}, + }, + modoptionDifficulties = { + [1] = { + chickenspawnrate = 70, + burrowspawnrate = 300, + campaign_chicken_types_offense = { + chicken = {time = -60, squadSize = 3, obsolete = 12}, + chicken_pigeon = {time = 3, squadSize = 1.4, obsolete = 15}, + chickens = {time = 6, squadSize = 1, obsolete = 18}, + chickena = {time = 9, squadSize = 0.5, obsolete = 21}, + chickenr = {time = 12, squadSize = 1.2, obsolete = 24}, + chicken_leaper = {time = 12, squadSize = 1.0, obsolete = 27}, + chicken_roc = {time = 15, squadSize = 0.4}, + chicken_sporeshooter= {time = 15, squadSize = 0.5}, + chickenf = {time = 18, squadSize = 0.5}, + chickenc = {time = 18, squadSize = 0.5}, + chickenblobber = {time = 21, squadSize = 0.3}, + chicken_blimpy = {time = 24, squadSize = 0.2}, + chicken_tiamat = {time = 24, squadSize = 0.2}, + }, + campaign_chicken_types_defense = { + chickend = {time = 4, squadSize = 0.6, cost = 1 }, + chicken_rafflesia = {time = 8, squadSize = 0.4, cost = 2 }, + }, + campaign_chicken_types_support = { + chicken_shield = {time = 18, squadSize = 0.4}, + chicken_dodo = {time = 4, squadSize = 2}, + chicken_spidermonkey = {time = 18, squadSize = 0.6}, + }, + }, + [2] = { + chickenspawnrate = 60, + burrowspawnrate = 280, + campaign_chicken_types_offense = { + chicken = {time = -60, squadSize = 3*1.1, obsolete = 12}, + chicken_pigeon = {time = 3, squadSize = 1.4*1.1, obsolete = 15}, + chickens = {time = 6, squadSize = 1*1.1, obsolete = 18}, + chickena = {time = 9, squadSize = 0.5*1.1, obsolete = 21}, + chickenr = {time = 12, squadSize = 1.2*1.1, obsolete = 24}, + chicken_leaper = {time = 12, squadSize = 1.0*1.1, obsolete = 27}, + chicken_roc = {time = 15, squadSize = 0.4*1.1}, + chicken_sporeshooter= {time = 15, squadSize = 0.5*1.1}, + chickenf = {time = 18, squadSize = 0.5*1.1}, + chickenc = {time = 18, squadSize = 0.5*1.1}, + chickenblobber = {time = 21, squadSize = 0.3*1.1}, + chicken_blimpy = {time = 24, squadSize = 0.2*1.1}, + chicken_tiamat = {time = 24, squadSize = 0.2*1.1}, + }, + campaign_chicken_types_defense = { + chickend = {time = 4, squadSize = 0.6, cost = 1 }, + chicken_rafflesia = {time = 8, squadSize = 0.4, cost = 2 }, + }, + campaign_chicken_types_support = { + chicken_shield = {time = 16, squadSize = 0.4}, + chicken_dodo = {time = 4, squadSize = 2}, + chicken_spidermonkey = {time = 16, squadSize = 0.6}, + }, + }, + [3] = { + chickenspawnrate = 55, + burrowspawnrate = 260, + campaign_chicken_types_offense = { + chicken = {time = -60, squadSize = 3*1.25, obsolete = 12}, + chicken_pigeon = {time = 3, squadSize = 1.4*1.25, obsolete = 15}, + chickens = {time = 6, squadSize = 1*1.25, obsolete = 18}, + chickena = {time = 9, squadSize = 0.5*1.25, obsolete = 21}, + chickenr = {time = 12, squadSize = 1.2*1.25, obsolete = 24}, + chicken_leaper = {time = 12, squadSize = 1.0*1.25, obsolete = 27}, + chicken_roc = {time = 15, squadSize = 0.4*1.25}, + chicken_sporeshooter= {time = 15, squadSize = 0.5*1.25}, + chickenf = {time = 18, squadSize = 0.5*1.25}, + chickenc = {time = 18, squadSize = 0.5*1.25}, + chickenblobber = {time = 21, squadSize = 0.3*1.25}, + chicken_blimpy = {time = 24, squadSize = 0.2*1.25}, + chicken_tiamat = {time = 24, squadSize = 0.2*1.25}, + }, + campaign_chicken_types_defense = { + chickend = {time = 4, squadSize = 0.6, cost = 1 }, + chicken_rafflesia = {time = 8, squadSize = 0.4, cost = 2 }, + }, + campaign_chicken_types_support = { + chicken_shield = {time = 14, squadSize = 0.4}, + chicken_dodo = {time = 4, squadSize = 2}, + chicken_spidermonkey = {time = 14, squadSize = 0.6}, + }, + }, + [4] = { + chickenspawnrate = 45, + burrowspawnrate = 240, + campaign_chicken_types_offense = { + chicken = {time = -60, squadSize = 3*1.4, obsolete = 12}, + chicken_pigeon = {time = 3, squadSize = 1.4*1.4, obsolete = 15}, + chickens = {time = 6, squadSize = 1*1.4, obsolete = 18}, + chickena = {time = 9, squadSize = 0.5*1.4, obsolete = 21}, + chickenr = {time = 12, squadSize = 1.2*1.4, obsolete = 24}, + chicken_leaper = {time = 12, squadSize = 1.0*1.4, obsolete = 27}, + chicken_roc = {time = 15, squadSize = 0.4*1.4}, + chicken_sporeshooter= {time = 15, squadSize = 0.5*1.4}, + chickenf = {time = 18, squadSize = 0.5*1.4}, + chickenc = {time = 18, squadSize = 0.5*1.4}, + chickenblobber = {time = 21, squadSize = 0.3*1.4}, + chicken_blimpy = {time = 24, squadSize = 0.2*1.4}, + chicken_tiamat = {time = 24, squadSize = 0.2*1.4}, + }, + campaign_chicken_types_defense = { + chickend = {time = 4, squadSize = 0.6, cost = 1 }, + chicken_rafflesia = {time = 8, squadSize = 0.4, cost = 2 }, + }, + campaign_chicken_types_support = { + chicken_shield = {time = 12, squadSize = 0.4}, + chicken_dodo = {time = 4, squadSize = 2}, + chicken_spidermonkey = {time = 12, squadSize = 0.6}, + }, + }, + }, playerConfig = { - startX = 100, - startZ = 100, + startX = 8200, + startZ = 2100, allyTeam = 0, - facplop = false, commanderParameters = { - facplop = false, + facplop = true, defeatIfDestroyedObjectiveID = 2, }, extraUnlocks = { "turretheavy", "turretantiheavy", "energysingu", + "turretaaheavy", }, startUnits = { + { + name = "staticmex", + x = 8552, + z = 1048, + facing = 0, + }, + { + name = "energywind", + x = 9176, + z = 1208, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 3176, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 3176, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 3096, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 3096, + facing = 3, + }, + { + name = "staticmex", + x = 8568, + z = 3288, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 1128, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 3016, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 3016, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 2936, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 2936, + facing = 3, + }, + { + name = "staticmex", + x = 8568, + z = 2152, + facing = 3, + }, + { + name = "energywind", + x = 9016, + z = 1128, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 1128, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 2856, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 2856, + facing = 3, + }, + { + name = "energywind", + x = 8280, + z = 4072, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 1896, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 2776, + facing = 3, + }, + { + name = "energywind", + x = 9016, + z = 136, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 2776, + facing = 3, + }, + { + name = "pw_techlab", + x = 8656, + z = 3032, + facing = 0, + defeatIfDestroyedObjectiveID = 1, + }, + { + name = "energywind", + x = 9176, + z = 1896, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 968, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 136, + facing = 3, + }, + { + name = "energywind", + x = 9016, + z = 1048, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 2696, + facing = 3, + }, + { + name = "staticmex", + x = 8408, + z = 3656, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 2696, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 136, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 2616, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 2616, + facing = 3, + }, + { + name = "energywind", + x = 9016, + z = 1288, + facing = 3, + }, + { + name = "staticmex", + x = 8376, + z = 2936, + facing = 3, + }, + { + name = "energywind", + x = 8840, + z = 3912, + facing = 3, + }, + { + name = "energywind", + x = 8760, + z = 3912, + facing = 3, + }, + { + name = "energywind", + x = 9016, + z = 1208, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 56, + facing = 3, + }, + { + name = "energywind", + x = 8680, + z = 3912, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 2536, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 56, + facing = 3, + }, + { + name = "energywind", + x = 8600, + z = 3912, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 2536, + facing = 3, + }, + { + name = "energywind", + x = 9016, + z = 56, + facing = 3, + }, + { + name = "energywind", + x = 8936, + z = 56, + facing = 3, + }, + { + name = "energywind", + x = 8520, + z = 3912, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 2456, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 2456, + facing = 3, + }, + { + name = "energywind", + x = 8440, + z = 3912, + facing = 3, + }, + { + name = "energywind", + x = 8856, + z = 56, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 1048, + facing = 3, + }, + { + name = "energywind", + x = 8360, + z = 3912, + facing = 3, + }, + { + name = "energywind", + x = 8776, + z = 56, + facing = 3, + }, + { + name = "staticmex", + x = 8456, + z = 2552, + facing = 3, + }, + { + name = "energywind", + x = 8696, + z = 56, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 2376, + facing = 3, + }, + { + name = "energywind", + x = 8280, + z = 3912, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 2376, + facing = 3, + }, + { + name = "energywind", + x = 8280, + z = 3992, + facing = 3, + }, + { + name = "energywind", + x = 8616, + z = 56, + facing = 3, + }, + { + name = "energywind", + x = 8360, + z = 3992, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 2296, + facing = 3, + }, + { + name = "energywind", + x = 8440, + z = 3992, + facing = 3, + }, + { + name = "energywind", + x = 8536, + z = 56, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 2296, + facing = 3, + }, + { + name = "energywind", + x = 8520, + z = 3992, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 968, + facing = 3, + }, + { + name = "energywind", + x = 8456, + z = 56, + facing = 3, + }, + { + name = "energywind", + x = 8600, + z = 3992, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 1048, + facing = 3, + }, + { + name = "energywind", + x = 8376, + z = 56, + facing = 3, + }, + { + name = "energywind", + x = 8680, + z = 3992, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 2216, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 2216, + facing = 3, + }, + { + name = "energywind", + x = 8296, + z = 56, + facing = 3, + }, + { + name = "energywind", + x = 8760, + z = 3992, + facing = 3, + }, + { + name = "energywind", + x = 8296, + z = 136, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 2136, + facing = 3, + }, + { + name = "energywind", + x = 8376, + z = 136, + facing = 3, + }, + { + name = "energywind", + x = 8840, + z = 3992, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 2136, + facing = 3, + }, + { + name = "energywind", + x = 8456, + z = 136, + facing = 3, + }, + { + name = "energywind", + x = 8840, + z = 4072, + facing = 3, + }, + { + name = "energywind", + x = 9016, + z = 968, + facing = 3, + }, + { + name = "energywind", + x = 8536, + z = 136, + facing = 3, + }, + { + name = "energywind", + x = 8760, + z = 4072, + facing = 3, + }, + { + name = "energywind", + x = 8680, + z = 4072, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 1208, + facing = 3, + }, + { + name = "energywind", + x = 8616, + z = 136, + facing = 3, + }, + { + name = "energywind", + x = 8600, + z = 4072, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 2056, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 2056, + facing = 3, + }, + { + name = "energywind", + x = 8696, + z = 136, + facing = 3, + }, + { + name = "energywind", + x = 8520, + z = 4072, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 1976, + facing = 3, + }, + { + name = "energywind", + x = 8776, + z = 136, + facing = 3, + }, + { + name = "energywind", + x = 8440, + z = 4072, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 1976, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 1288, + facing = 3, + }, + { + name = "energywind", + x = 8856, + z = 136, + facing = 3, + }, + { + name = "energywind", + x = 8360, + z = 4072, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 1288, + facing = 3, + }, + { + name = "energywind", + x = 8936, + z = 136, + facing = 3, + }, + { + name = "energywind", + x = 8936, + z = 1288, + facing = 3, + }, + { + name = "energywind", + x = 8856, + z = 1288, + facing = 3, + }, + { + name = "energywind", + x = 8856, + z = 1368, + facing = 3, + }, + { + name = "energywind", + x = 8936, + z = 1368, + facing = 3, + }, + { + name = "energysingu", + x = 8712, + z = 3592, + facing = 3, + }, + { + name = "energywind", + x = 9016, + z = 1368, + facing = 3, + }, + { + name = "energywind", + x = 9096, + z = 1368, + facing = 3, + }, + { + name = "energypylon", + x = 8296, + z = 3432, + facing = 3, + }, + { + name = "energywind", + x = 9176, + z = 1368, + facing = 3, + }, + { + name = "energysingu", + x = 8776, + z = 1832, + facing = 3, + }, + { + name = "energypylon", + x = 8552, + z = 2632, + facing = 3, + }, + { + name = "staticmex", + x = 8520, + z = 1832, + facing = 3, + }, + { + name = "energypylon", + x = 8408, + z = 1672, + facing = 3, + }, + { + name = "energywind", + x = 8296, + z = 216, + facing = 3, + }, + { + name = "energywind", + x = 8376, + z = 216, + facing = 3, + }, + { + name = "turretheavy", + x = 8072, + z = 2440, + facing = 3, + }, + { + name = "energywind", + x = 8456, + z = 216, + facing = 3, + }, + { + name = "energywind", + x = 8456, + z = 296, + facing = 3, + }, + { + name = "energywind", + x = 8376, + z = 296, + facing = 3, + }, + { + name = "energywind", + x = 8296, + z = 296, + facing = 3, + }, + { + name = "energywind", + x = 8296, + z = 376, + facing = 3, + }, + { + name = "energywind", + x = 8376, + z = 376, + facing = 3, + }, + { + name = "energywind", + x = 8456, + z = 376, + facing = 3, + }, + { + name = "turretantiheavy", + x = 7984, + z = 1344, + facing = 3, + terraformHeight = 629, + }, + { + name = "turretantiheavy", + x = 7920, + z = 3104, + facing = 3, + terraformHeight = 626, + }, + { + name = "turretheavy", + x = 7912, + z = 3656, + facing = 3, + }, + { + name = "energypylon", + x = 8168, + z = 808, + facing = 3, + }, + { + name = "turretheavy", + x = 7912, + z = 408, + facing = 3, + }, + { + name = "turretaaheavy", + x = 8096, + z = 2832, + facing = 3, + }, + { + name = "staticmex", + x = 8408, + z = 696, + facing = 0, + }, + { + name = "tankcon", + x = 8092, + z = 1960, + facing = 0, + }, + { + name = "tankcon", + x = 8098, + z = 2051, + facing = 0, + }, + { + name = "spidercon", + x = 8084, + z = 1879, + facing = 0, + }, + { + name = "spidercon", + x = 8085, + z = 2127, + facing = 0, + }, + { + name = "staticcon", + x = 8216, + z = 1752, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8216, 1752}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8191, 1777}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8296, + z = 1752, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8296, 1752}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8271, 1777}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8376, + z = 1752, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8376, 1752}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8351, 1777}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8376, + z = 1832, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8376, 1832}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8351, 1857}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8296, + z = 1832, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8296, 1832}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8271, 1857}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8216, + z = 1832, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8216, 1832}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8191, 1857}, options = {"shift"}}, + }, + }, + { + name = "staticheavyradar", + x = 8016, + z = 2560, + facing = 1, + }, } }, aiConfig = { { - startX = 4000, - startZ = 75, + startX = 660, + startZ = 1070, aiLib = "Circuit_difficulty_autofill", - humanName = "Enemy", + humanName = "Directorate", bitDependant = true, commanderParameters = { facplop = false, }, allyTeam = 1, unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "staticrearm", + "turretaafar", + "turretheavy", + "factorycloak", + "cloakcon", "cloakraid", + "cloakriot", + "cloakskirm", + "cloakassault", + "cloakaa", + "cloakarty", + "cloaksnipe", + "cloakheavyraid", + "cloakbomb", + "factoryshield", + "shieldcon", + "shieldraid", + "shieldassault", + "shieldriot", + "shieldskirm", + "shieldbomb", + "shieldaa", + "shieldfelon", + "shieldshield", + "shieldarty", + "factorytank", + "tankcon", + "tankassault", + "tankheavyassault", + "tankarty", + "tankheavyarty", + "tankaa", + "tankriot", + "factoryamph", + "amphcon", + "amphraid", + "amphimpulse", + "amphfloater", + "amphriot", + "amphassault", + "amphbomb", + "amphaa", + "factoryplane", + "planecon", + "planescout", + "planefighter", + "planeheavyfighter", + "bomberprec", + "bomberdisarm", + "bomberheavy", + "striderhub", + "striderdante", + "striderarty", + "striderfunnelweb", + "striderscorpion", + "striderantiheavy", + "striderbantha", + }, + difficultyDependantUnlocks = { + [3] = {"staticnuke"}, + [4] = {"staticnuke","staticheavyarty"}, }, - commanderLevel = 2, + commanderLevel = 6, commander = { - name = "Most Loyal Opposition", - chassis = "engineer", + name = "Dekki", + chassis = "recon", decorations = { - "skin_support_dark", - icon_overhead = { image = "UW" } + "skin_recon_dark", + }, + modules = { + "commweapon_lightninggun", + "commweapon_concussion", + "module_autorepair", + "module_autorepair", + "module_autorepair", + "module_autorepair", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_adv_nano", + "module_adv_nano", + "module_adv_nano", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + } + }, + midgameUnits = { + { + name = "nebula", + x = 1600, + z = 900, + facing = 0, + spawnRadius = 50, + delay = 15*30*60, + orbitalDrop = true, + }, + { + name = "nebula", + x = 1600, + z = 900, + facing = 0, + spawnRadius = 50, + delay = 15*30*60, + orbitalDrop = true, + difficultyAtLeast = 4, + }, + { + name = "nebula", + x = 1600, + z = 2200, + facing = 0, + spawnRadius = 50, + delay = 15*30*60, + orbitalDrop = true, + difficultyAtLeast = 2, + }, + { + name = "nebula", + x = 1600, + z = 2200, + facing = 0, + spawnRadius = 50, + delay = 15*30*60, + orbitalDrop = true, + }, + { + name = "nebula", + x = 1600, + z = 2200, + facing = 0, + spawnRadius = 50, + delay = 15*30*60, + orbitalDrop = true, + }, + { + name = "chicken_dragon", + x = 1600, + z = 900, + facing = 0, + spawnRadius = 50, + delay = 19*30*60, + orbitalDrop = true, + }, + { + name = "chicken_dragon", + x = 1600, + z = 2200, + facing = 0, + spawnRadius = 50, + delay = 19*30*60, + orbitalDrop = true, + difficultyAtLeast = 3, + }, + { + name = "striderbantha", + x = 1600, + z = 900, + facing = 0, + spawnRadius = 50, + delay = 22*30*60, + orbitalDrop = true, + }, + { + name = "striderbantha", + x = 1600, + z = 2200, + facing = 0, + spawnRadius = 50, + delay = 22*30*60, + orbitalDrop = true, + difficultyAtLeast = 2, + }, + { + name = "chickenflyerqueen", + x = 2500, + z = 2200, + facing = 0, + spawnRadius = 50, + delay = 28*30*60, + orbitalDrop = true, + difficultyAtLeast = 1, + difficultyAtLeast = 1, + }, + { + name = "striderdetriment", + x = 2700, + z = 2200, + facing = 0, + spawnRadius = 50, + delay = 28*30*60, + orbitalDrop = true, + difficultyAtLeast = 1, + difficultyAtLeast = 1, + }, + { + name = "chickenflyerqueen", + x = 2500, + z = 2200, + facing = 0, + spawnRadius = 50, + delay = 27.5*30*60, + orbitalDrop = true, + difficultyAtLeast = 2, + difficultyAtLeast = 2, + }, + { + name = "striderdetriment", + x = 2700, + z = 2200, + facing = 0, + spawnRadius = 50, + delay = 27.5*30*60, + orbitalDrop = true, + difficultyAtLeast = 2, + difficultyAtLeast = 2, + }, + { + name = "chickenflyerqueen", + x = 2500, + z = 2200, + facing = 0, + spawnRadius = 50, + delay = 26.75*30*60, + orbitalDrop = true, + difficultyAtLeast = 3, + difficultyAtLeast = 3, + }, + { + name = "striderdetriment", + x = 2700, + z = 2200, + facing = 0, + spawnRadius = 50, + delay = 26.75*30*60, + orbitalDrop = true, + difficultyAtLeast = 3, + difficultyAtLeast = 3, + }, + { + name = "chickenflyerqueen", + x = 2500, + z = 2200, + facing = 0, + spawnRadius = 50, + delay = 26*30*60, + orbitalDrop = true, + difficultyAtLeast = 4, + difficultyAtLeast = 4, + }, + { + name = "striderdetriment", + x = 2700, + z = 2200, + facing = 0, + spawnRadius = 50, + delay = 26*30*60, + orbitalDrop = true, + difficultyAtLeast = 4, + difficultyAtLeast = 4, }, - modules = { } }, startUnits = { + { + name = "gunshipcon", + x = 1781, + z = 2749, + facing = 0, + }, + { + name = "staticantinuke", + x = 496, + z = 1576, + facing = 1, + }, + { + name = "gunshipcon", + x = 1023, + z = 2797, + facing = 2, + }, + { + name = "staticantinuke", + x = 768, + z = 696, + facing = 1, + }, + { + name = "energysingu", + x = 504, + z = 200, + facing = 3, + }, + { + name = "staticshield", + x = 352, + z = 208, + facing = 1, + }, + { + name = "staticshield", + x = 384, + z = 352, + facing = 1, + }, + { + name = "factorytank", + x = 848, + z = 2448, + facing = 1, + }, + { + name = "staticcon", + x = 728, + z = 2424, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {728, 2424}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {753, 2399}, options = {"shift"}}, + }, + }, + { + name = "factoryamph", + x = 1848, + z = 2728, + facing = 1, + }, + { + name = "gunshipcon", + x = 361, + z = 3805, + facing = 0, + }, + { + name = "staticcon", + x = 1720, + z = 2680, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1720, 2680}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1745, 2655}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 792, + z = 2328, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {792, 2328}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {817, 2303}, options = {"shift"}}, + }, + }, + { + name = "factorycloak", + x = 1776, + z = 504, + facing = 1, + }, + { + name = "gunshipcon", + x = 1658, + z = 527, + facing = 3, + }, + { + name = "staticshield", + x = 320, + z = 3808, + facing = 1, + }, + { + name = "staticcon", + x = 1640, + z = 536, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1640, 536}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1665, 561}, options = {"shift"}}, + }, + }, + { + name = "staticshield", + x = 1088, + z = 336, + facing = 3, + }, + { + name = "staticshield", + x = 368, + z = 3936, + facing = 1, + }, + { + name = "staticshield", + x = 1040, + z = 704, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 424, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 424, + facing = 3, + }, + { + name = "staticshield", + x = 1056, + z = 1040, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 424, + facing = 3, + }, + { + name = "staticshield", + x = 1088, + z = 1536, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 424, + facing = 3, + }, + { + name = "staticshield", + x = 1008, + z = 1984, + facing = 3, + }, + { + name = "staticshield", + x = 1024, + z = 2352, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 504, + facing = 3, + }, + { + name = "staticshield", + x = 1120, + z = 2800, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 504, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 504, + facing = 3, + }, + { + name = "staticshield", + x = 1184, + z = 3216, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 504, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 584, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 584, + facing = 3, + }, + { + name = "staticshield", + x = 1168, + z = 3744, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 584, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 584, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 664, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 664, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 664, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 664, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 744, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 744, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 744, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 744, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 824, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 824, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 824, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 824, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 904, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 904, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 904, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 904, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 984, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 984, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 984, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 984, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 1064, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 1064, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 1064, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 1064, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 1144, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 1144, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 1144, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 1144, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 1224, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 1224, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 1224, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 1224, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 1304, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 1304, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 1304, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 1304, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 1384, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 1384, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 1384, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 1384, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 1464, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 1464, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 1464, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 1464, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 1544, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 1544, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 1544, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 1544, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 1624, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 1624, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 1624, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 1624, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 1704, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 1704, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 1704, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 1704, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 1784, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 1784, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 1784, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 1784, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 1864, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 1864, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 1864, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 1864, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 1944, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 1944, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 1944, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 1944, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 2024, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 2024, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 2024, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 2024, + facing = 3, + }, + { + name = "staticarty", + x = 1336, + z = 1448, + facing = 1, + terraformHeight = 594, + }, + { + name = "staticarty", + x = 1336, + z = 1608, + facing = 1, + terraformHeight = 608, + }, + { + name = "energywind", + x = 264, + z = 2104, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 2104, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 2104, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 2104, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 2184, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 2184, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 2184, + facing = 3, + }, + { + name = "staticarty", + x = 1320, + z = 1752, + facing = 1, + terraformHeight = 610, + }, + { + name = "energywind", + x = 264, + z = 2184, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 2264, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 2264, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 2264, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 2264, + facing = 3, + }, + { + name = "energypylon", + x = 824, + z = 1576, + facing = 1, + }, + { + name = "energywind", + x = 24, + z = 2344, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 2344, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 2344, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 2344, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 2424, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 2424, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 2424, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 2424, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 2504, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 2504, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 2504, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 2504, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 2584, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 2584, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 2584, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 2584, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 2664, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 2664, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 2664, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 2664, + facing = 3, + }, + { + name = "energywind", + x = 344, + z = 1384, + facing = 1, + }, + { + name = "energywind", + x = 264, + z = 2744, + facing = 3, + }, + { + name = "energywind", + x = 344, + z = 1464, + facing = 1, + }, + { + name = "energywind", + x = 184, + z = 2744, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 2744, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 2744, + facing = 3, + }, + { + name = "energywind", + x = 344, + z = 1544, + facing = 1, + }, + { + name = "energywind", + x = 24, + z = 2824, + facing = 3, + }, + { + name = "staticarty", + x = 1448, + z = 3064, + facing = 1, + }, + { + name = "energywind", + x = 104, + z = 2824, + facing = 3, + }, + { + name = "staticarty", + x = 1416, + z = 3480, + facing = 1, + }, + { + name = "energywind", + x = 184, + z = 2824, + facing = 3, + }, + { + name = "energywind", + x = 344, + z = 1624, + facing = 1, + }, + { + name = "energywind", + x = 264, + z = 2824, + facing = 3, + }, + { + name = "energywind", + x = 344, + z = 1704, + facing = 1, + }, + { + name = "turretantiheavy", + x = 1392, + z = 3264, + facing = 1, + terraformHeight = 599, + }, + { + name = "energywind", + x = 344, + z = 1784, + facing = 1, + }, + { + name = "turretheavy", + x = 1416, + z = 2968, + facing = 1, + }, + { + name = "energywind", + x = 264, + z = 2904, + facing = 3, + }, + { + name = "energypylon", + x = 600, + z = 984, + facing = 1, + }, + { + name = "energywind", + x = 184, + z = 2904, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 2904, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 2904, + facing = 3, + }, + { + name = "turretheavy", + x = 1432, + z = 3608, + facing = 1, + }, + { + name = "energypylon", + x = 936, + z = 440, + facing = 1, + }, + { + name = "energywind", + x = 24, + z = 2984, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 2984, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 2984, + facing = 3, + }, + { + name = "turretheavy", + x = 1224, + z = 2296, + facing = 1, + }, + { + name = "energypylon", + x = 1112, + z = 3592, + facing = 1, + }, + { + name = "energypylon", + x = 600, + z = 2344, + facing = 1, + }, + { + name = "energypylon", + x = 1000, + z = 2840, + facing = 1, + }, + { + name = "energywind", + x = 264, + z = 2984, + facing = 3, + }, + { + name = "turretheavy", + x = 1224, + z = 2040, + facing = 1, + }, + { + name = "energywind", + x = 264, + z = 3064, + facing = 3, + }, + { + name = "energypylon", + x = 520, + z = 3192, + facing = 1, + }, + { + name = "turretantiheavy", + x = 1264, + z = 1920, + facing = 1, + }, + { + name = "turretantiheavy", + x = 1264, + z = 2432, + facing = 1, + }, + { + name = "energywind", + x = 184, + z = 3064, + facing = 3, + }, + { + name = "energypylon", + x = 952, + z = 2184, + facing = 1, + }, + { + name = "energywind", + x = 104, + z = 3064, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 3064, + facing = 3, + }, + { + name = "turretemp", + x = 1568, + z = 2432, + facing = 1, + }, + { + name = "turretemp", + x = 1584, + z = 2368, + facing = 1, + }, + { + name = "energywind", + x = 24, + z = 3144, + facing = 3, + }, + { + name = "turretemp", + x = 1600, + z = 2304, + facing = 1, + }, + { + name = "energywind", + x = 104, + z = 3144, + facing = 3, + }, + { + name = "turretemp", + x = 1568, + z = 1904, + facing = 1, + }, + { + name = "turretemp", + x = 1600, + z = 1968, + facing = 1, + }, + { + name = "turretemp", + x = 1616, + z = 2048, + facing = 1, + }, + { + name = "energywind", + x = 184, + z = 3144, + facing = 3, + }, + { + name = "energypylon", + x = 984, + z = 1016, + facing = 1, + }, + { + name = "energywind", + x = 264, + z = 3144, + facing = 3, + }, + { + name = "staticshield", + x = 1056, + z = 960, + facing = 1, + }, + { + name = "staticshield", + x = 1056, + z = 1104, + facing = 1, + }, + { + name = "energywind", + x = 264, + z = 3224, + facing = 3, + }, + { + name = "staticshield", + x = 1040, + z = 2192, + facing = 1, + }, + { + name = "staticshield", + x = 1136, + z = 1600, + facing = 1, + }, + { + name = "energywind", + x = 184, + z = 3224, + facing = 3, + }, + { + name = "turretheavy", + x = 1304, + z = 1240, + facing = 1, + }, + { + name = "turretheavy", + x = 1256, + z = 1160, + facing = 1, + }, + { + name = "energywind", + x = 104, + z = 3224, + facing = 3, + }, + { + name = "turretheavy", + x = 1272, + z = 712, + facing = 1, + }, + { + name = "energywind", + x = 24, + z = 3224, + facing = 3, + }, + { + name = "turretheavy", + x = 1224, + z = 792, + facing = 1, + }, + { + name = "turretantiheavy", + x = 1168, + z = 976, + facing = 1, + }, + { + name = "energywind", + x = 24, + z = 3304, + facing = 3, + }, + { + name = "turretantiheavy", + x = 1376, + z = 288, + facing = 1, + }, + { + name = "turretheavy", + x = 1464, + z = 3928, + facing = 1, + }, + { + name = "energywind", + x = 104, + z = 3304, + facing = 3, + }, + { + name = "turretheavy", + x = 1384, + z = 376, + facing = 1, + }, + { + name = "turretaaheavy", + x = 1088, + z = 560, + facing = 1, + }, + { + name = "turretaaheavy", + x = 1072, + z = 3440, + facing = 1, + }, + { + name = "energywind", + x = 184, + z = 3304, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 3304, + facing = 3, + }, + { + name = "turretaaheavy", + x = 800, + z = 2128, + facing = 1, + }, + { + name = "turretaafar", + x = 1200, + z = 3040, + facing = 1, + }, + { + name = "energywind", + x = 264, + z = 3384, + facing = 3, + }, + { + name = "turretaafar", + x = 992, + z = 2688, + facing = 1, + }, + { + name = "energywind", + x = 184, + z = 3384, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 3384, + facing = 3, + }, + { + name = "turretaafar", + x = 976, + z = 1360, + facing = 1, + }, + { + name = "energywind", + x = 24, + z = 3384, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 3464, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 3464, + facing = 3, + }, + { + name = "factoryshield", + x = 760, + z = 1104, + facing = 1, + }, + { + name = "energywind", + x = 184, + z = 3464, + facing = 3, + }, + { + name = "staticcon", + x = 632, + z = 1096, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {632, 1096}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {657, 1121}, options = {"shift"}}, + }, + }, + { + name = "striderhub", + x = 768, + z = 1744, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {768, 1744}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {793, 1769}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 632, + z = 1176, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {632, 1176}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {657, 1201}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 776, + z = 1832, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {776, 1832}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {801, 1857}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 680, + z = 1832, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {680, 1832}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {705, 1857}, options = {"shift"}}, + }, + }, + { + name = "energywind", + x = 264, + z = 3464, + facing = 3, + }, + { + name = "staticcon", + x = 680, + z = 1752, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {680, 1752}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {705, 1777}, options = {"shift"}}, + }, + }, + { + name = "energywind", + x = 264, + z = 3544, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 3544, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 3544, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 3544, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 3624, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 3624, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 3624, + facing = 3, + }, + { + name = "staticrearm", + x = 968, + z = 3320, + facing = 1, + }, + { + name = "energywind", + x = 264, + z = 3624, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 3704, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 3704, + facing = 3, + }, + { + name = "factoryplane", + x = 664, + z = 3344, + facing = 1, + }, + { + name = "energywind", + x = 104, + z = 3704, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 3704, + facing = 3, + }, + { + name = "staticcon", + x = 536, + z = 3320, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {536, 3320}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {561, 3295}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 552, + z = 3416, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {552, 3416}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {577, 3391}, options = {"shift"}}, + }, + }, + { + name = "energysingu", + x = 440, + z = 3832, + facing = 3, + }, + { + name = "staticrearm", + x = 840, + z = 3160, + facing = 1, + }, + { + name = "staticantinuke", + x = 640, + z = 2936, + facing = 1, + }, + { + name = "staticantinuke", + x = 464, + z = 2360, + facing = 1, + }, + } + }, + { + humanName = "Chickens", + aiLib = "Chicken: Custom", + bitDependant = false, + --aiLib = "Null AI", + --bitDependant = false, + allyTeam = 1, + unlocks = { + }, + commander = false, + startUnits = { + { + name = "roost", + x = 952, + z = 840, + facing = 0, + }, + { + name = "roost", + x = 2056, + z = 760, + facing = 0, + }, + { + name = "roost", + x = 968, + z = 2072, + facing = 0, + }, + { + name = "roost", + x = 2040, + z = 2088, + facing = 0, + }, + { + name = "roost", + x = 984, + z = 3128, + facing = 0, + }, + { + name = "roost", + x = 2072, + z = 3112, + facing = 0, + }, + { + name = "roost", + x = 2968, + z = 1176, + facing = 0, + }, + { + name = "roost", + x = 2984, + z = 2040, + facing = 0, + }, } }, }, defeatConditionConfig = { - + -- Indexed by allyTeam. + [0] = { }, + [1] = { + ignoreUnitLossDefeat = false, + loseAfterSeconds = 30*60, + allyTeamLossObjectiveID = 1, + }, }, objectiveConfig = { -- This is just related to displaying objectives on the UI. + [1] = { + description = "Protect the Tech Lab for 30 minutes", + }, + [2] = { + description = "Protect your Commander", + }, }, bonusObjectiveConfig = { + [1] = { + satisfyOnce = true, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 5, + unitTypes = { + "energysingu", + }, + image = planetUtilities.ICON_DIR .. "energysingu.png", + imageOverlay = planetUtilities.ICON_OVERLAY.REPAIR, + description = "Have 5 Singularity Reactors", + experience = planetUtilities.BONUS_EXP, + }, + [2] = { -- Lose no more than 3 grizzlies + onlyCountRemovedUnits = true, + satisfyForever = true, + comparisionType = planetUtilities.COMPARE.AT_MOST, + targetNumber = 0, + unitTypes = { + "turretantiheavy" + }, + image = planetUtilities.ICON_DIR .. "turretantiheavy.png", + imageOverlay = planetUtilities.ICON_OVERLAY.GUARD, + description = "Do not lose any Lucifers", + experience = planetUtilities.BONUS_EXP, + }, + [3] = { + satisfyAfterTime = 10*60, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 12, + unitTypes = { + "staticmex", + }, + image = planetUtilities.ICON_DIR .. "staticmex.png", + imageOverlay = planetUtilities.ICON_OVERLAY.REPAIR, + description = "Have 12 Metal Extractors at all times after 10:00", + experience = planetUtilities.BONUS_EXP, + }, } }, completionReward = { @@ -88,6 +3128,7 @@ local function GetPlanet(planetUtilities, planetID) "turretheavy", "turretantiheavy", "energysingu", + "turretaaheavy", }, modules = { "module_battle_drone_LIMIT_C_2", diff --git a/campaign/sample/planets/planet64.lua b/campaign/sample/planets/planet64.lua index 30f80f28f..a5c719377 100644 --- a/campaign/sample/planets/planet64.lua +++ b/campaign/sample/planets/planet64.lua @@ -7,7 +7,7 @@ local function GetPlanet(planetUtilities, planetID) local image = LUA_DIRNAME .. "images/planets/barren03.png" local planetData = { - name = "Taufsan", + name = "Intrepid", startingPlanet = false, mapDisplay = { x = (planetUtilities.planetPositions and planetUtilities.planetPositions[planetID][1]) or 0.835, @@ -24,62 +24,4664 @@ local function GetPlanet(planetUtilities, planetID) primary = "Vallaf", primaryType = "G4V", milRating = 1, - text = [[...]] + feedbackLink = "http://zero-k.info/Forum/Thread/24642", + text = [[This battle will take place on a massive salt plain, littered with sharp spikes. Use Paladin striders to dominate all aspects of the fight.]] + }, + tips = { + { + image = "unitpics/striderbantha.png", + text = [[The Paladin strider wields a massive laser beam, manual-fire EMP missiles (press D to fire), and Lightning Gun sidearms. Paladins are expensive but effective against almost any opposition.]] + }, + { + image = "unitpics/striderdante.png", + text = [[You can expect to face many enemy Striders from here on out. The Paladin's Tachyon Accelerator is very effective against most Striders - keep it away from Ultimatums and multiple Scorpions, though.]] + }, }, gameConfig = { mapName = "Valiant_Saltscape", playerConfig = { - startX = 2500, - startZ = 3500, + startX = 8300, + startZ = 2900, allyTeam = 0, - facplop = false, commanderParameters = { - facplop = false, + facplop = true, defeatIfDestroyedObjectiveID = 2, }, extraUnlocks = { "striderhub", "striderbantha", - "turretaaheavy", }, startUnits = { + { + name = "staticmex", + x = 8312, + z = 2808, + facing = 0, + }, + { + name = "energyheavygeo", + x = 8552, + z = 2376, + facing = 3, + }, + { + name = "staticmex", + x = 8264, + z = 3384, + facing = 0, + }, + { + name = "staticmex", + x = 7608, + z = 3944, + facing = 0, + }, + { + name = "staticmex", + x = 7112, + z = 3752, + facing = 0, + }, + { + name = "staticmex", + x = 7224, + z = 3224, + facing = 0, + }, + { + name = "staticmex", + x = 7160, + z = 2632, + facing = 0, + }, + { + name = "staticmex", + x = 7640, + z = 2280, + facing = 0, + }, + { + name = "staticmex", + x = 8072, + z = 1800, + facing = 0, + }, + { + name = "staticmex", + x = 8680, + z = 1768, + facing = 0, + }, + { + name = "staticmex", + x = 9032, + z = 2328, + facing = 0, + }, + { + name = "staticmex", + x = 9080, + z = 2728, + facing = 0, + }, + { + name = "staticmex", + x = 9288, + z = 3448, + facing = 0, + }, + { + name = "staticmex", + x = 7992, + z = 4712, + facing = 0, + }, + { + name = "staticmex", + x = 6568, + z = 3992, + facing = 0, + }, + { + name = "staticmex", + x = 6200, + z = 3208, + facing = 0, + }, + { + name = "staticmex", + x = 6712, + z = 2184, + facing = 0, + }, + { + name = "staticmex", + x = 7224, + z = 1576, + facing = 0, + }, + { + name = "energygeo", + x = 7336, + z = 4568, + facing = 3, + }, + { + name = "energyheavygeo", + x = 8424, + z = 4392, + facing = 3, + }, + { + name = "energypylon", + x = 7560, + z = 5048, + facing = 3, + }, + { + name = "energypylon", + x = 6936, + z = 4888, + facing = 3, + }, + { + name = "energypylon", + x = 6456, + z = 4488, + facing = 3, + }, + { + name = "energypylon", + x = 7144, + z = 4088, + facing = 3, + }, + { + name = "energypylon", + x = 7800, + z = 4296, + facing = 3, + }, + { + name = "energypylon", + x = 8168, + z = 3592, + facing = 3, + }, + { + name = "energypylon", + x = 7288, + z = 3320, + facing = 3, + }, + { + name = "energypylon", + x = 6680, + z = 3272, + facing = 3, + }, + { + name = "energypylon", + x = 6696, + z = 2504, + facing = 3, + }, + { + name = "energypylon", + x = 7544, + z = 2488, + facing = 3, + }, + { + name = "energypylon", + x = 8360, + z = 2680, + facing = 3, + }, + { + name = "energypylon", + x = 8360, + z = 1992, + facing = 3, + }, + { + name = "energypylon", + x = 7576, + z = 1656, + facing = 3, + }, + { + name = "energypylon", + x = 6824, + z = 1608, + facing = 3, + }, + { + name = "staticheavyradar", + x = 8144, + z = 1296, + facing = 3, + }, + { + name = "staticheavyradar", + x = 7360, + z = 4272, + facing = 3, + }, + { + name = "striderhub", + x = 7824, + z = 2896, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7824, 2896}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7799, 2921}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7944, + z = 2824, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7944, 2824}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7919, 2849}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8008, + z = 2824, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8008, 2824}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7983, 2849}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8008, + z = 2888, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8008, 2888}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7983, 2913}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7944, + z = 2888, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7944, 2888}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7919, 2913}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7944, + z = 2952, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7944, 2952}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7919, 2977}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8008, + z = 2952, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8008, 2952}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7983, 2977}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8008, + z = 3016, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7983, 3041}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8008, 3016}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7944, + z = 3016, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7944, 3016}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7919, 3041}, options = {"shift"}}, + }, + }, + { + name = "staticstorage", + x = 8504, + z = 3080, + facing = 3, + }, + { + name = "staticstorage", + x = 8536, + z = 2968, + facing = 3, + }, + { + name = "staticcon", + x = 8024, + z = 2472, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8024, 2472}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7999, 2497}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8024, + z = 2536, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8024, 2536}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7999, 2561}, options = {"shift"}}, + }, + }, + { + name = "striderbantha", + x = 7694, + z = 2524, + facing = 3, + }, + { + name = "striderdante", + x = 7775, + z = 2602, + facing = 3, + }, + { + name = "striderarty", + x = 7781, + z = 2463, + facing = 3, + }, + { + name = "turretheavylaser", + x = 6984, + z = 1896, + facing = 3, + }, + { + name = "turretriot", + x = 7624, + z = 1912, + facing = 3, + }, + { + name = "turretriot", + x = 7624, + z = 2072, + facing = 3, + }, + { + name = "turretaafar", + x = 7360, + z = 3920, + facing = 3, + }, + { + name = "turretriot", + x = 7272, + z = 3832, + facing = 3, + }, + { + name = "turretriot", + x = 7256, + z = 3992, + facing = 3, + }, + { + name = "turretheavy", + x = 6424, + z = 3384, + facing = 3, + }, + { + name = "turretheavy", + x = 6376, + z = 2200, + facing = 3, + }, + { + name = "turretgauss", + x = 6360, + z = 2552, + facing = 3, + }, + { + name = "turretemp", + x = 6320, + z = 2848, + facing = 3, + }, + { + name = "turretemp", + x = 6288, + z = 3056, + facing = 3, + }, + { + name = "turretgauss", + x = 6232, + z = 3400, + facing = 3, + }, + { + name = "turretgauss", + x = 6312, + z = 3688, + facing = 3, + }, + { + name = "turretgauss", + x = 6248, + z = 1960, + facing = 3, + }, + { + name = "turretgauss", + x = 6344, + z = 1544, + facing = 3, + }, + { + name = "turretemp", + x = 6320, + z = 1408, + facing = 3, + }, + { + name = "turretaalaser", + x = 6504, + z = 1768, + facing = 3, + }, + { + name = "turretaalaser", + x = 6552, + z = 2552, + facing = 3, + }, + { + name = "turretaalaser", + x = 6632, + z = 3672, + facing = 3, + }, + { + name = "turretaalaser", + x = 6504, + z = 4792, + facing = 3, + }, + { + name = "turretheavylaser", + x = 6936, + z = 3896, + facing = 3, + }, + { + name = "turretheavylaser", + x = 7048, + z = 3176, + facing = 3, + }, + { + name = "turretheavylaser", + x = 7016, + z = 2536, + facing = 3, + }, + { + name = "turretaafar", + x = 7712, + z = 1984, + facing = 3, + }, + { + name = "staticantinuke", + x = 8384, + z = 2968, + facing = 3, + }, } }, aiConfig = { { - startX = 4000, - startZ = 75, aiLib = "Circuit_difficulty_autofill", - humanName = "Enemy", bitDependant = true, - commanderParameters = { - facplop = false, - }, - allyTeam = 1, + --aiLib = "Null AI", + --bitDependant = false, + humanName = "Unovis", + allyTeam = 0, unlocks = { - "cloakraid", - }, - commanderLevel = 2, - commander = { - name = "Most Loyal Opposition", - chassis = "engineer", - decorations = { - "skin_support_dark", - icon_overhead = { image = "UW" } - }, - modules = { } + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energyheavygeo", + "energysingu", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "staticrearm", + "turretaafar", + "turretheavy", + "staticnuke", + "staticheavyarty", + "staticarty", + "factoryspider", + "spidercon", + "spideremp", + "spiderskirm", + "spiderassault", + "spidercrabe", + "spiderantiheavy", + "spideraa", + "factorytank", + "tankcon", + "tankassault", + "tankheavyassault", + "tankarty", + "tankheavyarty", + "tankaa", + "tankriot", + "factoryjump", + "jumpcon", + "jumpassault", + "jumpsumo", + "jumparty", + "jumpaa", + "factoryplane", + "planecon", + "planescout", + "planefighter", + "planeheavyfighter", + "bomberprec", + "bomberdisarm", + "bomberheavy", + -- "striderhub", + -- "striderdante", + -- "striderarty", + -- "striderscorpion", + -- "striderfunnelweb", + -- "striderantiheavy", }, + commander = false, startUnits = { - } - }, - }, - defeatConditionConfig = { - - }, - objectiveConfig = { - -- This is just related to displaying objectives on the UI. - }, - bonusObjectiveConfig = { + { + name = "staticmex", + x = 8792, + z = 472, + facing = 0, + }, + { + name = "staticmex", + x = 8840, + z = 4920, + facing = 0, + }, + { + name = "staticmex", + x = 9096, + z = 1224, + facing = 0, + }, + { + name = "staticmex", + x = 9720, + z = 2024, + facing = 0, + }, + { + name = "staticmex", + x = 8616, + z = 5400, + facing = 0, + }, + { + name = "staticmex", + x = 9672, + z = 712, + facing = 0, + }, + { + name = "staticmex", + x = 7928, + z = 5336, + facing = 0, + }, + { + name = "staticmex", + x = 10328, + z = 680, + facing = 0, + }, + { + name = "staticmex", + x = 7640, + z = 5992, + facing = 0, + }, + { + name = "staticmex", + x = 10776, + z = 1448, + facing = 0, + }, + { + name = "staticmex", + x = 10936, + z = 184, + facing = 0, + }, + { + name = "staticmex", + x = 6664, + z = 5096, + facing = 0, + }, + { + name = "staticmex", + x = 11096, + z = 2824, + facing = 0, + }, + { + name = "staticmex", + x = 6088, + z = 5192, + facing = 0, + }, + { + name = "staticmex", + x = 10792, + z = 3608, + facing = 0, + }, + { + name = "staticmex", + x = 6136, + z = 4392, + facing = 0, + }, + { + name = "staticmex", + x = 11160, + z = 3704, + facing = 0, + }, + { + name = "staticmex", + x = 10056, + z = 3064, + facing = 0, + }, + { + name = "spidercrabe", + x = 8163, + z = 5110, + facing = 3, + }, + { + name = "staticmex", + x = 9384, + z = 4072, + facing = 0, + }, + { + name = "staticmex", + x = 7832, + z = 728, + facing = 0, + }, + { + name = "staticmex", + x = 10088, + z = 4712, + facing = 0, + }, + { + name = "staticmex", + x = 7160, + z = 280, + facing = 0, + }, + { + name = "staticmex", + x = 9768, + z = 5272, + facing = 0, + }, + { + name = "staticmex", + x = 6952, + z = 824, + facing = 0, + }, + { + name = "staticmex", + x = 9480, + z = 5960, + facing = 0, + }, + { + name = "staticmex", + x = 6344, + z = 472, + facing = 0, + }, + { + name = "staticmex", + x = 10584, + z = 5400, + facing = 0, + }, + { + name = "staticmex", + x = 11176, + z = 5832, + facing = 0, + }, + { + name = "staticmex", + x = 11032, + z = 4568, + facing = 0, + }, + { + name = "energyheavygeo", + x = 10184, + z = 4024, + facing = 3, + }, + { + name = "energysingu", + x = 11128, + z = 5112, + facing = 3, + }, + { + name = "energysingu", + x = 11128, + z = 1288, + facing = 3, + }, + { + name = "energypylon", + x = 9160, + z = 5720, + facing = 3, + }, + { + name = "energypylon", + x = 10744, + z = 5656, + facing = 3, + }, + { + name = "energypylon", + x = 9160, + z = 4984, + facing = 3, + }, + { + name = "energypylon", + x = 10760, + z = 4184, + facing = 3, + }, + { + name = "energypylon", + x = 9176, + z = 4248, + facing = 3, + }, + { + name = "energypylon", + x = 10776, + z = 3448, + facing = 3, + }, + { + name = "energypylon", + x = 9176, + z = 3512, + facing = 3, + }, + { + name = "energypylon", + x = 9192, + z = 2776, + facing = 3, + }, + { + name = "energypylon", + x = 9192, + z = 2040, + facing = 3, + }, + { + name = "energypylon", + x = 10808, + z = 1240, + facing = 3, + }, + { + name = "energypylon", + x = 9944, + z = 1320, + facing = 3, + }, + { + name = "energypylon", + x = 10824, + z = 504, + facing = 3, + }, + { + name = "energypylon", + x = 9208, + z = 1240, + facing = 3, + }, + { + name = "energypylon", + x = 8968, + z = 552, + facing = 3, + }, + { + name = "energypylon", + x = 10744, + z = 2152, + facing = 3, + }, + { + name = "energypylon", + x = 8328, + z = 1048, + facing = 3, + }, + { + name = "energypylon", + x = 10872, + z = 2712, + facing = 3, + }, + { + name = "energypylon", + x = 7784, + z = 472, + facing = 3, + }, + { + name = "energypylon", + x = 6904, + z = 440, + facing = 3, + }, + { + name = "energypylon", + x = 10600, + z = 5000, + facing = 3, + }, + { + name = "energypylon", + x = 8424, + z = 5736, + facing = 3, + }, + { + name = "energypylon", + x = 9960, + z = 5656, + facing = 3, + }, + { + name = "energypylon", + x = 7752, + z = 5400, + facing = 3, + }, + { + name = "energypylon", + x = 7256, + z = 5960, + facing = 3, + }, + { + name = "energypylon", + x = 6888, + z = 5384, + facing = 3, + }, + { + name = "energypylon", + x = 6408, + z = 5912, + facing = 3, + }, + { + name = "energypylon", + x = 9992, + z = 2712, + facing = 3, + }, + { + name = "energypylon", + x = 6328, + z = 5224, + facing = 3, + }, + { + name = "energypylon", + x = 10008, + z = 1976, + facing = 3, + }, + { + name = "energypylon", + x = 10024, + z = 504, + facing = 3, + }, + { + name = "energypylon", + x = 10024, + z = 4792, + facing = 3, + }, + { + name = "energypylon", + x = 10056, + z = 4136, + facing = 3, + }, + { + name = "energysingu", + x = 11112, + z = 3320, + facing = 3, + }, + { + name = "factorytank", + x = 7120, + z = 4944, + facing = 3, + }, + { + name = "staticcon", + x = 7240, + z = 4920, + facing = 3, + }, + { + name = "staticcon", + x = 7304, + z = 4984, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7279, 4959}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7304, 4984}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7240, + z = 4984, + facing = 3, + }, + { + name = "staticcon", + x = 8104, + z = 1000, + facing = 3, + }, + { + name = "staticcon", + x = 8168, + z = 1000, + facing = 3, + }, + { + name = "staticcon", + x = 8168, + z = 1064, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8143, 1089}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8168, 1064}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8104, + z = 1064, + facing = 3, + }, + { + name = "factoryjump", + x = 7976, + z = 1032, + facing = 3, + }, + { + name = "staticcon", + x = 9480, + z = 1832, + facing = 3, + }, + { + name = "staticcon", + x = 9544, + z = 1832, + facing = 3, + }, + { + name = "staticcon", + x = 9544, + z = 1896, + facing = 3, + }, + { + name = "staticcon", + x = 9480, + z = 1896, + facing = 3, + }, + { + name = "staticcon", + x = 10456, + z = 3112, + facing = 3, + }, + { + name = "staticantinuke", + x = 9712, + z = 4472, + facing = 3, + }, + { + name = "staticcon", + x = 9480, + z = 5176, + facing = 3, + }, + { + name = "staticcon", + x = 9544, + z = 5176, + facing = 3, + }, + { + name = "staticcon", + x = 9544, + z = 5240, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9519, 5215}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9544, 5240}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 9480, + z = 5240, + facing = 3, + }, + { + name = "factoryplane", + x = 10376, + z = 3248, + facing = 3, + }, + { + name = "staticcon", + x = 10328, + z = 3112, + facing = 3, + }, + { + name = "staticcon", + x = 10392, + z = 3112, + facing = 3, + }, + { + name = "striderhub", + x = 9536, + z = 1984, + facing = 3, + }, + { + name = "staticrearm", + x = 8872, + z = 3384, + facing = 3, + }, + { + name = "staticrearm", + x = 8872, + z = 3592, + facing = 3, + }, + { + name = "staticcon", + x = 9016, + z = 3464, + facing = 3, + }, + { + name = "staticcon", + x = 9016, + z = 3560, + facing = 3, + }, + { + name = "turretheavy", + x = 5960, + z = 5224, + facing = 3, + }, + { + name = "turretgauss", + x = 6152, + z = 3992, + facing = 3, + }, + { + name = "turretgauss", + x = 6008, + z = 4440, + facing = 3, + }, + { + name = "turretemp", + x = 6128, + z = 4256, + facing = 3, + }, + { + name = "turretgauss", + x = 5944, + z = 4888, + facing = 3, + }, + { + name = "turretemp", + x = 5840, + z = 5200, + facing = 3, + }, + { + name = "energypylon", + x = 6888, + z = 1000, + facing = 3, + }, + { + name = "turretgauss", + x = 5912, + z = 5464, + facing = 3, + }, + { + name = "turretgauss", + x = 5928, + z = 5768, + facing = 3, + }, + { + name = "turretgauss", + x = 5928, + z = 6008, + facing = 3, + }, + { + name = "turretaalaser", + x = 6344, + z = 4696, + facing = 3, + }, + { + name = "turretaalaser", + x = 6312, + z = 5640, + facing = 3, + }, + { + name = "turretheavy", + x = 6456, + z = 744, + facing = 3, + }, + { + name = "turretgauss", + x = 6360, + z = 1144, + facing = 3, + }, + { + name = "turretgauss", + x = 6248, + z = 552, + facing = 3, + }, + { + name = "turretgauss", + x = 6312, + z = 280, + facing = 3, + }, + { + name = "turretemp", + x = 6272, + z = 416, + facing = 3, + }, + { + name = "staticstorage", + x = 9640, + z = 5304, + facing = 1, + }, + { + name = "staticstorage", + x = 9688, + z = 5208, + facing = 1, + }, + { + name = "staticstorage", + x = 10376, + z = 3384, + facing = 1, + }, + { + name = "staticstorage", + x = 9720, + z = 1864, + facing = 1, + }, + { + name = "staticstorage", + x = 9672, + z = 1768, + facing = 1, + }, + { + name = "staticantinuke", + x = 9840, + z = 2056, + facing = 3, + }, + { + name = "factoryspider", + x = 9352, + z = 5144, + facing = 3, + }, + { + name = "energypylon", + x = 8456, + z = 4776, + facing = 3, + }, + { + name = "spideremp", + x = 7763, + z = 4833, + facing = 3, + }, + { + name = "tankriot", + x = 7726, + z = 4749, + facing = 0, + }, + { + name = "jumpassault", + x = 6846, + z = 2941, + facing = 3, + patrolRoute = { + {6850, 2984}, + {6819, 2928}, + }, + }, + { + name = "bomberheavy", + x = 8833, + z = 3630, + facing = 1, + }, + { + name = "spidercon", + x = 7014, + z = 3764, + facing = 3, + }, + { + name = "spidercon", + x = 6434, + z = 3118, + facing = 3, + }, + { + name = "spidercon", + x = 7061, + z = 5362, + facing = 1, + }, + { + name = "spidercon", + x = 7260, + z = 1020, + facing = 0, + }, + { + name = "jumpcon", + x = 9987, + z = 960, + facing = 1, + }, + { + name = "staticmex", + x = 6264, + z = 2696, + facing = 0, + }, + { + name = "spidercon", + x = 6972, + z = 2671, + facing = 3, + }, + { + name = "staticcon", + x = 9528, + z = 5128, + facing = 3, + }, + { + name = "jumpcon", + x = 6500, + z = 1454, + facing = 0, + }, + { + name = "spidercon", + x = 7364, + z = 2358, + facing = 3, + }, + { + name = "staticcon", + x = 9480, + z = 5080, + facing = 3, + }, + { + name = "jumpaa", + x = 7053, + z = 2775, + facing = 3, + }, + { + name = "staticradar", + x = 9968, + z = 864, + facing = 3, + }, + { + name = "staticcon", + x = 9480, + z = 5128, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9455, 5103}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9480, 5128}, options = {"shift"}}, + }, + }, + { + name = "spidercon", + x = 6046, + z = 5429, + facing = 0, + }, + { + name = "turretmissile", + x = 7504, + z = 4096, + facing = 3, + }, + { + name = "staticcon", + x = 9592, + z = 5176, + facing = 3, + }, + { + name = "jumpcon", + x = 6394, + z = 3799, + facing = 1, + }, + { + name = "staticcon", + x = 9576, + z = 5128, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9551, 5103}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9576, 5128}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 9592, + z = 5224, + facing = 3, + }, + { + name = "spidercon", + x = 6104, + z = 5718, + facing = 3, + }, + { + name = "tankassault", + x = 7795, + z = 4927, + facing = 2, + }, + { + name = "jumparty", + x = 6342, + z = 1252, + facing = 3, + }, + { + name = "spideremp", + x = 7717, + z = 4792, + facing = 2, + }, + { + name = "turretlaser", + x = 7072, + z = 576, + facing = 0, + }, + { + name = "spidercon", + x = 7592, + z = 5667, + facing = 2, + }, + { + name = "turretlaser", + x = 7584, + z = 3888, + facing = 3, + }, + { + name = "spidercon", + x = 7280, + z = 3754, + facing = 2, + }, + { + name = "turretlaser", + x = 7824, + z = 5120, + facing = 3, + }, + { + name = "turretlaser", + x = 9920, + z = 656, + facing = 3, + }, + { + name = "spidercon", + x = 6362, + z = 1490, + facing = 1, + }, + { + name = "turretlaser", + x = 7088, + z = 4704, + facing = 2, + }, + { + name = "staticmex", + x = 6168, + z = 3736, + facing = 0, + }, + { + name = "staticradar", + x = 10032, + z = 3184, + facing = 3, + }, + { + name = "spidercon", + x = 7399, + z = 3513, + facing = 3, + }, + { + name = "jumpcon", + x = 8069, + z = 2693, + facing = 1, + }, + { + name = "tankassault", + x = 7590, + z = 4582, + facing = 3, + }, + { + name = "spiderassault", + x = 7530, + z = 4561, + facing = 3, + }, + { + name = "jumpcon", + x = 8581, + z = 2494, + facing = 1, + }, + { + name = "turretaalaser", + x = 7240, + z = 3752, + facing = 3, + }, + { + name = "turretlaser", + x = 9120, + z = 2592, + facing = 3, + }, + { + name = "staticradar", + x = 9568, + z = 5776, + facing = 3, + }, + { + name = "turretlaser", + x = 9376, + z = 6016, + facing = 3, + }, + { + name = "turretlaser", + x = 7152, + z = 5200, + facing = 2, + }, + { + name = "staticcon", + x = 9624, + z = 5128, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9599, 5103}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9624, 5128}, options = {"shift"}}, + }, + }, + { + name = "spidercon", + x = 6411, + z = 3041, + facing = 2, + }, + { + name = "staticradar", + x = 6256, + z = 1488, + facing = 0, + }, + { + name = "jumpaa", + x = 6560, + z = 5435, + facing = 0, + }, + { + name = "spideraa", + x = 6562, + z = 5968, + facing = 2, + }, + { + name = "turretlaser", + x = 7680, + z = 6016, + facing = 2, + }, + { + name = "turretlaser", + x = 11136, + z = 5920, + facing = 3, + }, + { + name = "turretlaser", + x = 10640, + z = 1536, + facing = 3, + }, + { + name = "spidercon", + x = 6452, + z = 3053, + facing = 3, + }, + { + name = "spidercrabe", + x = 7673, + z = 4774, + facing = 1, + }, + { + name = "energysolar", + x = 9672, + z = 3080, + facing = 3, + }, + { + name = "jumpcon", + x = 6273, + z = 1402, + facing = 2, + }, + { + name = "turretlaser", + x = 7792, + z = 5840, + facing = 2, + }, + { + name = "planecon", + x = 6334, + z = 1373, + facing = 3, + }, + { + name = "staticradar", + x = 7584, + z = 5824, + facing = 2, + }, + { + name = "energywind", + x = 9560, + z = 3160, + facing = 3, + }, + { + name = "turretlaser", + x = 10896, + z = 3728, + facing = 3, + }, + { + name = "jumparty", + x = 6349, + z = 1192, + facing = 3, + }, + { + name = "turretlaser", + x = 10912, + z = 4624, + facing = 3, + }, + { + name = "turretlaser", + x = 6464, + z = 3856, + facing = 2, + buildProgress = 0.63700002, + }, + { + name = "turretlaser", + x = 10016, + z = 2976, + facing = 3, + }, + { + name = "turretlaser", + x = 8640, + z = 5168, + facing = 3, + }, + { + name = "tankarty", + x = 6598, + z = 5005, + facing = 2, + }, + { + name = "turretlaser", + x = 6752, + z = 2192, + facing = 3, + }, + { + name = "staticradar", + x = 8384, + z = 3264, + facing = 3, + }, + { + name = "bomberheavy", + x = 8313, + z = 3742, + facing = 3, + }, + { + name = "spidercon", + x = 7322, + z = 3738, + facing = 2, + }, + { + name = "staticradar", + x = 10960, + z = 5616, + facing = 3, + }, + { + name = "spidercon", + x = 7616, + z = 1775, + facing = 0, + }, + { + name = "tankassault", + x = 7781, + z = 4768, + facing = 3, + }, + { + name = "energywind", + x = 10392, + z = 3016, + facing = 3, + }, + { + name = "spidercon", + x = 6458, + z = 3010, + facing = 3, + }, + { + name = "spiderassault", + x = 7523, + z = 5179, + facing = 2, + }, + { + name = "energywind", + x = 10504, + z = 3016, + facing = 3, + }, + { + name = "jumpassault", + x = 6902, + z = 2992, + facing = 2, + patrolRoute = { + {6914, 2992}, + {6850, 2984}, + }, + }, + { + name = "turretlaser", + x = 7504, + z = 2528, + facing = 3, + }, + { + name = "spidercon", + x = 6263, + z = 2825, + facing = 3, + }, + { + name = "turretlaser", + x = 9440, + z = 3760, + facing = 3, + }, + { + name = "turretlaser", + x = 8208, + z = 2992, + facing = 3, + }, + { + name = "spidercon", + x = 7055, + z = 3859, + facing = 0, + }, + { + name = "energysolar", + x = 7080, + z = 2104, + facing = 3, + }, + { + name = "spidercon", + x = 6723, + z = 3208, + facing = 3, + }, + { + name = "energywind", + x = 9496, + z = 520, + facing = 3, + }, + { + name = "staticcon", + x = 9480, + z = 5288, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9455, 5263}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9480, 5288}, options = {"shift"}}, + }, + }, + { + name = "spidercon", + x = 9433, + z = 5181, + facing = 2, + }, + { + name = "turretlaser", + x = 9936, + z = 4864, + facing = 3, + }, + { + name = "jumpassault", + x = 6873, + z = 2983, + facing = 3, + patrolRoute = { + {6911, 3004}, + {6850, 2984}, + }, + }, + { + name = "spidercrabe", + x = 7676, + z = 4831, + facing = 1, + }, + { + name = "tankheavyassault", + x = 7712, + z = 4881, + facing = 0, + }, + { + name = "turretlaser", + x = 8352, + z = 1680, + facing = 3, + }, + { + name = "staticcon", + x = 9560, + z = 5016, + facing = 3, + }, + { + name = "planeheavyfighter", + x = 6726, + z = 5614, + facing = 3, + }, + { + name = "energywind", + x = 7192, + z = 2168, + facing = 3, + }, + { + name = "turretlaser", + x = 7472, + z = 3712, + facing = 3, + }, + { + name = "spiderassault", + x = 7722, + z = 4830, + facing = 2, + }, + { + name = "staticmex", + x = 6216, + z = 1384, + facing = 0, + }, + { + name = "spiderantiheavy", + x = 6177, + z = 2531, + facing = 0, + }, + { + name = "jumpcon", + x = 6361, + z = 2845, + facing = 0, + }, + { + name = "turretlaser", + x = 9216, + z = 1184, + facing = 3, + }, + { + name = "turretmissile", + x = 6080, + z = 3072, + facing = 3, + }, + { + name = "energypylon", + x = 6232, + z = 2952, + facing = 3, + }, + { + name = "jumpassault", + x = 6848, + z = 2973, + facing = 2, + patrolRoute = { + {6850, 2984}, + {6853, 2920}, + }, + }, + { + name = "spidercon", + x = 9222, + z = 5134, + facing = 1, + }, + { + name = "planeheavyfighter", + x = 8833, + z = 3553, + facing = 1, + }, + { + name = "spidercon", + x = 6846, + z = 3270, + facing = 2, + }, + { + name = "turretmissile", + x = 5728, + z = 5744, + facing = 2, + }, + { + name = "spiderassault", + x = 7982, + z = 5017, + facing = 3, + }, + { + name = "turretlaser", + x = 6144, + z = 6016, + facing = 2, + }, + { + name = "turretheavylaser", + x = 7272, + z = 3912, + facing = 3, + }, + { + name = "planeheavyfighter", + x = 6429, + z = 6027, + facing = 2, + }, + { + name = "staticradar", + x = 6368, + z = 2912, + facing = 3, + }, + { + name = "jumpcon", + x = 7138, + z = 3213, + facing = 3, + }, + { + name = "spidercon", + x = 7419, + z = 5404, + facing = 3, + }, + { + name = "jumpcon", + x = 6574, + z = 2298, + facing = 0, + }, + { + name = "spidercrabe", + x = 8381, + z = 5176, + facing = 3, + }, + { + name = "turretlaser", + x = 6480, + z = 3088, + facing = 3, + }, + { + name = "turretmissile", + x = 7440, + z = 5968, + facing = 2, + }, + { + name = "jumpassault", + x = 7750, + z = 1603, + facing = 2, + patrolRoute = { + {7779, 1634}, + {7761, 1573}, + }, + }, + { + name = "turretaafar", + x = 6288, + z = 2928, + facing = 3, + buildProgress = 0.51789999, + }, + { + name = "turretlaser", + x = 6480, + z = 1312, + facing = 0, + }, + { + name = "spiderassault", + x = 8458, + z = 5149, + facing = 3, + }, + { + name = "staticcon", + x = 9512, + z = 5000, + facing = 3, + }, + { + name = "spiderassault", + x = 8583, + z = 5103, + facing = 3, + }, + { + name = "jumpassault", + x = 7903, + z = 1270, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7761, 1573}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7824, 1587}, options = {"shift"}}, + }, + }, + { + name = "energypylon", + x = 6216, + z = 1336, + facing = 0, + buildProgress = 0.64819998, + }, + { + name = "energywind", + x = 7336, + z = 728, + facing = 0, + }, + { + name = "spidercon", + x = 9399, + z = 5255, + facing = 0, + }, + { + name = "turretmissile", + x = 6560, + z = 1520, + facing = 0, + }, + { + name = "tankassault", + x = 7092, + z = 4944, + facing = 3, + buildProgress = 0.29409999, + }, + { + name = "spidercon", + x = 9344, + z = 5228, + facing = 1, + }, + { + name = "staticcon", + x = 9528, + z = 5288, + facing = 3, + }, + { + name = "jumpcon", + x = 7944, + z = 1197, + facing = 0, + }, + { + name = "spiderassault", + x = 9287, + z = 5245, + facing = 0, + }, + { + name = "jumpassault", + x = 7952, + z = 1032, + facing = 3, + buildProgress = 0.0983, + }, + { + name = "turretmissile", + x = 7344, + z = 3552, + facing = 3, + buildProgress = 0.0899, + }, + { + name = "spidercrabe", + x = 9316, + z = 5144, + facing = 3, + buildProgress = 0.0391, + }, + } + }, + { + startX = 1330, + startZ = 3300, + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + --aiLib = "Null AI", + --bitDependant = false, + humanName = "Bilious", + commanderParameters = { + facplop = false, + }, + allyTeam = 1, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energyheavygeo", + "energysingu", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "staticrearm", + "turretaafar", + "turretheavy", + "staticnuke", + "staticheavyarty", + "staticarty", + "spidercon", + "spideremp", + "spiderskirm", + "spiderassault", + "spidercrabe", + "spiderantiheavy", + "spideraa", + "factorytank", + "tankcon", + "tankassault", + "tankheavyassault", + "tankarty", + "tankheavyarty", + "tankaa", + "tankriot", + "factoryamph", + "amphcon", + "amphfloater", + "amphriot", + "amphassault", + "amphaa", + "factoryjump", + "jumpcon", + "jumpassault", + "jumpsumo", + "jumparty", + "jumpaa", + "factoryplane", + "planecon", + "planescout", + "planefighter", + "planeheavyfighter", + "bomberprec", + "bomberdisarm", + "bomberheavy", + -- "striderhub", + -- "striderdante", + -- "striderarty", + -- "striderscorpion", + -- "striderfunnelweb", + -- "striderantiheavy", + }, + commanderLevel = 7, + commander = { + name = "Vespid", + chassis = "strike", + decorations = { + }, + modules = { + "commweapon_shotgun", + "commweapon_disintegrator", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_personal_cloak", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_autorepair", + "module_autorepair", + } + }, + startUnits = { + { + name = "staticmex", + x = 3000, + z = 2760, + facing = 0, + }, + { + name = "staticmex", + x = 2232, + z = 3816, + facing = 0, + }, + { + name = "staticmex", + x = 1976, + z = 2696, + facing = 0, + }, + { + name = "staticmex", + x = 2952, + z = 3336, + facing = 0, + }, + { + name = "staticmex", + x = 2184, + z = 3416, + facing = 0, + }, + { + name = "staticmex", + x = 3192, + z = 4344, + facing = 0, + }, + { + name = "staticmex", + x = 1880, + z = 2072, + facing = 0, + }, + { + name = "staticmex", + x = 1544, + z = 4120, + facing = 0, + }, + { + name = "staticmex", + x = 2584, + z = 4376, + facing = 0, + }, + { + name = "staticmex", + x = 4040, + z = 2920, + facing = 0, + }, + { + name = "energyheavygeo", + x = 2712, + z = 3784, + facing = 3, + }, + { + name = "staticmex", + x = 1176, + z = 1432, + facing = 0, + }, + { + name = "staticmex", + x = 4152, + z = 2392, + facing = 0, + }, + { + name = "staticmex", + x = 2168, + z = 4920, + facing = 0, + }, + { + name = "staticmex", + x = 1496, + z = 872, + facing = 0, + }, + { + name = "staticmex", + x = 3656, + z = 2200, + facing = 0, + }, + { + name = "staticmex", + x = 2472, + z = 5672, + facing = 0, + }, + { + name = "staticmex", + x = 1784, + z = 184, + facing = 0, + }, + { + name = "energyheavygeo", + x = 1096, + z = 2136, + facing = 3, + }, + { + name = "staticmex", + x = 3272, + z = 1432, + facing = 0, + }, + { + name = "staticmex", + x = 1592, + z = 5432, + facing = 0, + }, + { + name = "staticmex", + x = 3432, + z = 5416, + facing = 0, + }, + { + name = "staticmex", + x = 3336, + z = 808, + facing = 0, + }, + { + name = "staticmex", + x = 2648, + z = 744, + facing = 0, + }, + { + name = "staticmex", + x = 936, + z = 5464, + facing = 0, + }, + { + name = "staticmex", + x = 4104, + z = 5864, + facing = 0, + }, + { + name = "staticmex", + x = 2424, + z = 1224, + facing = 0, + }, + { + name = "energyheavygeo", + x = 2840, + z = 1752, + facing = 3, + }, + { + name = "staticmex", + x = 328, + z = 5960, + facing = 0, + }, + { + name = "staticmex", + x = 4312, + z = 5320, + facing = 0, + }, + { + name = "staticmex", + x = 4920, + z = 5672, + facing = 0, + }, + { + name = "energygeo", + x = 3928, + z = 1576, + facing = 3, + }, + { + name = "staticmex", + x = 488, + z = 4696, + facing = 0, + }, + { + name = "staticmex", + x = 680, + z = 744, + facing = 0, + }, + { + name = "staticmex", + x = 3624, + z = 152, + facing = 0, + }, + { + name = "staticmex", + x = 5048, + z = 4760, + facing = 0, + }, + { + name = "staticmex", + x = 88, + z = 312, + facing = 0, + }, + { + name = "staticmex", + x = 168, + z = 3320, + facing = 0, + }, + { + name = "staticmex", + x = 4552, + z = 3960, + facing = 0, + }, + { + name = "staticmex", + x = 4600, + z = 1048, + facing = 0, + }, + { + name = "staticmex", + x = 232, + z = 1576, + facing = 0, + }, + { + name = "staticmex", + x = 4104, + z = 3512, + facing = 0, + }, + { + name = "staticmex", + x = 5176, + z = 952, + facing = 0, + }, + { + name = "staticmex", + x = 1208, + z = 3080, + facing = 0, + }, + { + name = "staticmex", + x = 3624, + z = 3864, + facing = 0, + }, + { + name = "staticmex", + x = 5128, + z = 1752, + facing = 0, + }, + { + name = "staticmex", + x = 104, + z = 2440, + facing = 0, + }, + { + name = "staticmex", + x = 472, + z = 2536, + facing = 0, + }, + { + name = "staticmex", + x = 4040, + z = 4568, + facing = 0, + }, + { + name = "staticmex", + x = 4696, + z = 2152, + facing = 0, + }, + { + name = "staticmex", + x = 5096, + z = 2408, + facing = 0, + }, + { + name = "energypylon", + x = 520, + z = 2056, + facing = 3, + }, + { + name = "energypylon", + x = 520, + z = 1176, + facing = 3, + }, + { + name = "energypylon", + x = 504, + z = 568, + facing = 3, + }, + { + name = "energypylon", + x = 1368, + z = 568, + facing = 3, + }, + { + name = "energypylon", + x = 1352, + z = 1384, + facing = 3, + }, + { + name = "energypylon", + x = 4040, + z = 568, + facing = 3, + }, + { + name = "energypylon", + x = 4008, + z = 1304, + facing = 3, + }, + { + name = "energypylon", + x = 1320, + z = 2984, + facing = 3, + }, + { + name = "energypylon", + x = 1320, + z = 3720, + facing = 3, + }, + { + name = "energypylon", + x = 4664, + z = 552, + facing = 3, + }, + { + name = "energypylon", + x = 3928, + z = 2776, + facing = 3, + }, + { + name = "energypylon", + x = 1304, + z = 4456, + facing = 3, + }, + { + name = "energypylon", + x = 4648, + z = 1288, + facing = 3, + }, + { + name = "energypylon", + x = 3896, + z = 3512, + facing = 3, + }, + { + name = "energypylon", + x = 1304, + z = 5192, + facing = 3, + }, + { + name = "energypylon", + x = 4632, + z = 2024, + facing = 3, + }, + { + name = "energypylon", + x = 1288, + z = 5928, + facing = 3, + }, + { + name = "energypylon", + x = 4600, + z = 3496, + facing = 3, + }, + { + name = "energypylon", + x = 3800, + z = 5720, + facing = 3, + }, + { + name = "energypylon", + x = 3720, + z = 5048, + facing = 3, + }, + { + name = "energypylon", + x = 4584, + z = 4232, + facing = 3, + }, + { + name = "energypylon", + x = 3720, + z = 4392, + facing = 3, + }, + { + name = "energypylon", + x = 4568, + z = 4968, + facing = 3, + }, + { + name = "energypylon", + x = 280, + z = 2824, + facing = 3, + }, + { + name = "energypylon", + x = 4552, + z = 5704, + facing = 3, + }, + { + name = "energypylon", + x = 312, + z = 3560, + facing = 3, + }, + { + name = "energypylon", + x = 328, + z = 4296, + facing = 3, + }, + { + name = "energypylon", + x = 3832, + z = 2120, + facing = 3, + }, + { + name = "energypylon", + x = 360, + z = 5032, + facing = 3, + }, + { + name = "energypylon", + x = 4568, + z = 2824, + facing = 3, + }, + { + name = "energypylon", + x = 376, + z = 5768, + facing = 3, + }, + { + name = "energypylon", + x = 2328, + z = 440, + facing = 3, + }, + { + name = "energypylon", + x = 2312, + z = 1176, + facing = 3, + }, + { + name = "energypylon", + x = 2296, + z = 2648, + facing = 3, + }, + { + name = "energypylon", + x = 2280, + z = 3384, + facing = 3, + }, + { + name = "energypylon", + x = 2280, + z = 4120, + facing = 3, + }, + { + name = "energypylon", + x = 2264, + z = 4856, + facing = 3, + }, + { + name = "energypylon", + x = 2248, + z = 5592, + facing = 3, + }, + { + name = "energypylon", + x = 1992, + z = 1976, + facing = 3, + }, + { + name = "energypylon", + x = 3240, + z = 488, + facing = 3, + }, + { + name = "energypylon", + x = 3224, + z = 1224, + facing = 3, + }, + { + name = "energypylon", + x = 3176, + z = 2696, + facing = 3, + }, + { + name = "energysingu", + x = 136, + z = 5544, + facing = 3, + }, + { + name = "energypylon", + x = 3160, + z = 3432, + facing = 3, + }, + { + name = "energypylon", + x = 3144, + z = 4168, + facing = 3, + }, + { + name = "energysingu", + x = 568, + z = 3736, + facing = 3, + }, + { + name = "energypylon", + x = 3144, + z = 5048, + facing = 3, + }, + { + name = "energysingu", + x = 504, + z = 2312, + facing = 3, + }, + { + name = "energysingu", + x = 424, + z = 120, + facing = 3, + }, + { + name = "energypylon", + x = 2968, + z = 1960, + facing = 3, + }, + { + name = "staticheavyradar", + x = 3904, + z = 1872, + facing = 3, + }, + { + name = "staticheavyradar", + x = 3952, + z = 4944, + facing = 3, + }, + { + name = "staticcon", + x = 3448, + z = 1432, + facing = 1, + }, + { + name = "staticcon", + x = 3512, + z = 1432, + facing = 1, + }, + { + name = "staticcon", + x = 3512, + z = 1496, + facing = 1, + }, + { + name = "staticcon", + x = 3448, + z = 1496, + facing = 1, + }, + { + name = "factorytank", + x = 3488, + z = 1616, + facing = 1, + }, + { + name = "staticcon", + x = 3400, + z = 4408, + facing = 1, + }, + { + name = "staticcon", + x = 3464, + z = 4408, + facing = 1, + }, + { + name = "staticcon", + x = 3464, + z = 4472, + facing = 1, + }, + { + name = "staticcon", + x = 3400, + z = 4472, + facing = 1, + }, + { + name = "factorytank", + x = 3440, + z = 4592, + facing = 1, + }, + { + name = "staticrearm", + x = 3704, + z = 3096, + facing = 1, + }, + { + name = "staticrearm", + x = 3704, + z = 2888, + facing = 1, + }, + { + name = "staticcon", + x = 3448, + z = 3048, + facing = 1, + }, + { + name = "staticcon", + x = 3368, + z = 3048, + facing = 1, + }, + { + name = "staticcon", + x = 3288, + z = 3048, + facing = 1, + }, + { + name = "staticcon", + x = 3320, + z = 3128, + facing = 1, + }, + { + name = "factoryamph", + x = 3320, + z = 3256, + facing = 1, + }, + { + name = "factoryjump", + x = 1192, + z = 5384, + facing = 1, + }, + { + name = "factoryplane", + x = 936, + z = 2928, + facing = 1, + }, + { + name = "staticcon", + x = 904, + z = 2760, + facing = 1, + }, + { + name = "staticcon", + x = 1000, + z = 5288, + facing = 1, + }, + { + name = "staticcon", + x = 968, + z = 2760, + facing = 1, + }, + { + name = "staticcon", + x = 1032, + z = 2760, + facing = 1, + }, + { + name = "staticcon", + x = 1064, + z = 5288, + facing = 1, + }, + { + name = "staticcon", + x = 1064, + z = 5352, + facing = 1, + }, + { + name = "staticcon", + x = 1000, + z = 5352, + facing = 1, + }, + { + name = "factoryspider", + x = 1240, + z = 856, + facing = 1, + }, + { + name = "staticcon", + x = 1080, + z = 808, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1080, 808}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1276, 856}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 1144, + z = 808, + facing = 1, + }, + { + name = "staticcon", + x = 1144, + z = 872, + facing = 1, + }, + { + name = "staticcon", + x = 1080, + z = 872, + facing = 1, + }, + { + name = "staticcon", + x = 1944, + z = 2344, + facing = 3, + }, + { + name = "staticcon", + x = 2008, + z = 2344, + facing = 3, + }, + { + name = "staticcon", + x = 2072, + z = 2344, + facing = 3, + }, + { + name = "staticcon", + x = 2072, + z = 2408, + facing = 3, + }, + { + name = "staticcon", + x = 2008, + z = 2408, + facing = 3, + }, + { + name = "staticcon", + x = 1944, + z = 2408, + facing = 3, + }, + { + name = "striderhub", + x = 2016, + z = 2496, + facing = 1, + }, + { + name = "turretheavy", + x = 4888, + z = 5336, + facing = 1, + }, + { + name = "turretgauss", + x = 5112, + z = 5288, + facing = 1, + }, + { + name = "turretemp", + x = 5104, + z = 5456, + facing = 1, + }, + { + name = "turretemp", + x = 5040, + z = 5104, + facing = 1, + }, + { + name = "turretgauss", + x = 5032, + z = 5864, + facing = 1, + }, + { + name = "turretgauss", + x = 4968, + z = 4680, + facing = 1, + }, + { + name = "turretemp", + x = 5008, + z = 4496, + facing = 1, + }, + { + name = "turretgauss", + x = 5032, + z = 4296, + facing = 1, + }, + { + name = "turretgauss", + x = 4984, + z = 3912, + facing = 1, + }, + { + name = "turretemp", + x = 4976, + z = 3680, + facing = 1, + }, + { + name = "turretgauss", + x = 5080, + z = 3480, + facing = 1, + }, + { + name = "turretgauss", + x = 5016, + z = 3064, + facing = 1, + }, + { + name = "turretemp", + x = 5072, + z = 2848, + facing = 1, + }, + { + name = "turretgauss", + x = 5064, + z = 2664, + facing = 1, + }, + { + name = "turretgauss", + x = 5096, + z = 2264, + facing = 1, + }, + { + name = "turretemp", + x = 5136, + z = 2112, + facing = 1, + }, + { + name = "turretgauss", + x = 5144, + z = 1960, + facing = 1, + }, + { + name = "turretgauss", + x = 5144, + z = 1480, + facing = 1, + }, + { + name = "turretemp", + x = 5200, + z = 1312, + facing = 1, + }, + { + name = "turretgauss", + x = 5304, + z = 1160, + facing = 1, + }, + { + name = "turretaafar", + x = 3568, + z = 5040, + facing = 1, + }, + { + name = "turretgauss", + x = 5208, + z = 488, + facing = 1, + }, + { + name = "turretemp", + x = 5264, + z = 352, + facing = 1, + }, + { + name = "turretheavylaser", + x = 520, + z = 280, + facing = 1, + }, + { + name = "turretgauss", + x = 5240, + z = 200, + facing = 1, + }, + { + name = "turretheavylaser", + x = 408, + z = 456, + facing = 1, + }, + { + name = "turretaaheavy", + x = 1872, + z = 4528, + facing = 1, + }, + { + name = "turretheavy", + x = 728, + z = 2264, + facing = 1, + }, + { + name = "turretheavylaser", + x = 600, + z = 3528, + facing = 1, + }, + { + name = "turretaaheavy", + x = 1680, + z = 1504, + facing = 1, + }, + { + name = "turretantiheavy", + x = 4736, + z = 4432, + facing = 1, + }, + { + name = "turretheavylaser", + x = 680, + z = 3864, + facing = 1, + }, + { + name = "turretheavy", + x = 4792, + z = 3688, + facing = 1, + }, + { + name = "turretheavy", + x = 4840, + z = 2888, + facing = 1, + }, + { + name = "turretheavylaser", + x = 344, + z = 5320, + facing = 1, + }, + { + name = "turretaafar", + x = 3552, + z = 1136, + facing = 1, + }, + { + name = "turretheavylaser", + x = 520, + z = 5688, + facing = 1, + }, + { + name = "turretheavy", + x = 4952, + z = 2248, + facing = 1, + }, + { + name = "turretaafar", + x = 3648, + z = 2608, + facing = 1, + }, + { + name = "turretantiheavy", + x = 4896, + z = 1456, + facing = 1, + }, + { + name = "turretheavy", + x = 5128, + z = 792, + facing = 1, + }, + { + name = "turretaalaser", + x = 4296, + z = 888, + facing = 1, + }, + { + name = "turretaalaser", + x = 3128, + z = 968, + facing = 1, + }, + { + name = "turretaalaser", + x = 2872, + z = 2968, + facing = 1, + }, + { + name = "turretaalaser", + x = 4424, + z = 2936, + facing = 1, + }, + { + name = "turretaalaser", + x = 2808, + z = 4456, + facing = 1, + }, + { + name = "turretaalaser", + x = 4264, + z = 4936, + facing = 1, + }, + { + name = "turretaaflak", + x = 632, + z = 5048, + facing = 1, + }, + { + name = "turretaaflak", + x = 776, + z = 5544, + facing = 1, + }, + { + name = "turretaaflak", + x = 984, + z = 3544, + facing = 1, + }, + { + name = "turretaaflak", + x = 840, + z = 1864, + facing = 1, + }, + { + name = "turretaaflak", + x = 824, + z = 648, + facing = 1, + }, + { + name = "staticantinuke", + x = 1616, + z = 1656, + facing = 3, + }, + { + name = "staticantinuke", + x = 1216, + z = 3208, + facing = 3, + }, + { + name = "staticantinuke", + x = 1152, + z = 4648, + facing = 3, + }, + { + name = "staticantinuke", + x = 3328, + z = 3448, + facing = 3, + }, + { + name = "energypylon", + x = 1320, + z = 2232, + facing = 3, + }, + { + name = "staticstorage", + x = 3048, + z = 2728, + facing = 1, + }, + { + name = "tankriot", + x = 3941, + z = 2829, + facing = 1, + }, + { + name = "tankriot", + x = 4922, + z = 3399, + facing = 2, + }, + { + name = "amphcon", + x = 4272, + z = 3622, + facing = 3, + }, + { + name = "jumpassault", + x = 3850, + z = 3877, + facing = 0, + patrolRoute = { + {3942, 3757}, + {3808, 3984}, + }, + }, + { + name = "bomberheavy", + x = 956, + z = 2890, + facing = 3, + }, + { + name = "spidercrabe", + x = 4459, + z = 1625, + facing = 1, + }, + { + name = "energysolar", + x = 1256, + z = 3016, + facing = 1, + }, + { + name = "amphcon", + x = 4553, + z = 3150, + facing = 3, + }, + { + name = "tankcon", + x = 5491, + z = 1045, + facing = 0, + }, + { + name = "jumpcon", + x = 4040, + z = 5208, + facing = 2, + }, + { + name = "amphaa", + x = 5320, + z = 5838, + facing = 1, + }, + { + name = "amphcon", + x = 3312, + z = 4296, + facing = 1, + }, + { + name = "jumpassault", + x = 5400, + z = 2690, + facing = 0, + }, + { + name = "staticstorage", + x = 2920, + z = 2728, + facing = 1, + }, + { + name = "tankcon", + x = 5111, + z = 2772, + facing = 2, + }, + { + name = "tankcon", + x = 5407, + z = 2100, + facing = 2, + }, + { + name = "turretlaser", + x = 3504, + z = 1376, + facing = 1, + }, + { + name = "amphcon", + x = 2989, + z = 3010, + facing = 2, + }, + { + name = "energypylon", + x = 1848, + z = 3768, + facing = 1, + }, + { + name = "staticstorage", + x = 2920, + z = 2680, + facing = 1, + }, + { + name = "amphcon", + x = 2281, + z = 2550, + facing = 1, + }, + { + name = "tankassault", + x = 4578, + z = 1714, + facing = 2, + patrolRoute = { + {4572, 1739}, + {4551, 1679}, + }, + }, + { + name = "turretlaser", + x = 3776, + z = 3792, + facing = 1, + }, + { + name = "turretlaser", + x = 4320, + z = 5696, + facing = 2, + }, + { + name = "jumpcon", + x = 3969, + z = 1398, + facing = 1, + }, + { + name = "turretlaser", + x = 2160, + z = 4976, + facing = 1, + }, + { + name = "staticradar", + x = 3696, + z = 3552, + facing = 1, + }, + { + name = "amphassault", + x = 5349, + z = 1791, + facing = 0, + }, + { + name = "spidercrabe", + x = 4484, + z = 1680, + facing = 1, + }, + { + name = "jumpassault", + x = 4335, + z = 5103, + facing = 3, + }, + { + name = "tankcon", + x = 5409, + z = 1492, + facing = 2, + }, + { + name = "staticstorage", + x = 3064, + z = 2680, + facing = 1, + }, + { + name = "energysolar", + x = 2712, + z = 4472, + facing = 1, + }, + { + name = "tankassault", + x = 6049, + z = 4198, + facing = 1, + }, + { + name = "jumpassault", + x = 4267, + z = 5664, + facing = 3, + }, + { + name = "tankcon", + x = 3489, + z = 1290, + facing = 1, + }, + { + name = "staticradar", + x = 2208, + z = 4720, + facing = 1, + }, + { + name = "turretlaser", + x = 528, + z = 4768, + facing = 1, + }, + { + name = "turretlaser", + x = 4128, + z = 4672, + facing = 2, + }, + { + name = "jumpassault", + x = 1901, + z = 5535, + facing = 1, + }, + { + name = "energypylon", + x = 5032, + z = 4536, + facing = 2, + }, + { + name = "staticmex", + x = 5064, + z = 2936, + facing = 0, + }, + { + name = "energywind", + x = 1816, + z = 2808, + facing = 1, + }, + { + name = "jumpcon", + x = 4205, + z = 2178, + facing = 2, + }, + { + name = "tankassault", + x = 4187, + z = 3527, + facing = 1, + patrolRoute = { + {4176, 3616}, + {4304, 3502}, + }, + }, + { + name = "staticmex", + x = 5000, + z = 3448, + facing = 0, + }, + { + name = "tankcon", + x = 5463, + z = 1728, + facing = 0, + }, + { + name = "turretlaser", + x = 2992, + z = 4368, + facing = 1, + }, + { + name = "planecon", + x = 5244, + z = 1878, + facing = 1, + }, + { + name = "jumpcon", + x = 4793, + z = 5430, + facing = 1, + }, + { + name = "turretlaser", + x = 5312, + z = 944, + facing = 0, + }, + { + name = "staticradar", + x = 448, + z = 4576, + facing = 1, + }, + { + name = "turretlaser", + x = 1904, + z = 2304, + facing = 1, + }, + { + name = "turretlaser", + x = 1344, + z = 5568, + facing = 1, + }, + { + name = "jumparty", + x = 4773, + z = 5083, + facing = 1, + }, + { + name = "staticradar", + x = 4976, + z = 4752, + facing = 2, + }, + { + name = "tankcon", + x = 5198, + z = 1832, + facing = 1, + }, + { + name = "energywind", + x = 792, + z = 2904, + facing = 1, + }, + { + name = "turretlaser", + x = 4960, + z = 3296, + facing = 1, + }, + { + name = "amphaa", + x = 5340, + z = 5800, + facing = 3, + }, + { + name = "spiderassault", + x = 4536, + z = 1603, + facing = 3, + patrolRoute = { + {4551, 1679}, + {4511, 1629}, + }, + }, + { + name = "energypylon", + x = 4840, + z = 3192, + facing = 1, + }, + { + name = "planeheavyfighter", + x = 6617, + z = 5787, + facing = 1, + }, + { + name = "energywind", + x = 1768, + z = 5752, + facing = 1, + }, + { + name = "planecon", + x = 5384, + z = 1702, + facing = 0, + }, + { + name = "tankcon", + x = 5376, + z = 1875, + facing = 2, + }, + { + name = "turretlaser", + x = 336, + z = 2416, + facing = 1, + }, + { + name = "spidercon", + x = 4620, + z = 827, + facing = 1, + }, + { + name = "turretlaser", + x = 2224, + z = 3680, + facing = 1, + }, + { + name = "amphcon", + x = 5143, + z = 3094, + facing = 2, + }, + { + name = "turretlaser", + x = 3264, + z = 1200, + facing = 1, + }, + { + name = "planescout", + x = 2856, + z = 5038, + facing = 3, + }, + { + name = "turretmissile", + x = 5168, + z = 3216, + facing = 1, + }, + { + name = "turretlaser", + x = 1344, + z = 3088, + facing = 1, + }, + { + name = "tankcon", + x = 5165, + z = 1521, + facing = 1, + }, + { + name = "turretlaser", + x = 2496, + z = 864, + facing = 1, + }, + { + name = "spiderassault", + x = 4507, + z = 1634, + facing = 0, + patrolRoute = { + {4511, 1628}, + {4551, 1679}, + }, + }, + { + name = "tankcon", + x = 5408, + z = 1846, + facing = 2, + }, + { + name = "jumpaa", + x = 5201, + z = 5767, + facing = 3, + }, + { + name = "tankassault", + x = 3516, + z = 1616, + facing = 1, + buildProgress = 0.7148, + }, + { + name = "turretlaser", + x = 3056, + z = 3072, + facing = 1, + }, + { + name = "tankcon", + x = 5284, + z = 1785, + facing = 2, + }, + { + name = "spiderantiheavy", + x = 5291, + z = 1953, + facing = 3, + }, + { + name = "amphaa", + x = 5435, + z = 5950, + facing = 1, + }, + { + name = "energypylon", + x = 1560, + z = 184, + facing = 1, + }, + { + name = "turretmissile", + x = 5216, + z = 3008, + facing = 1, + buildProgress = 0.43489999, + }, + { + name = "tankcon", + x = 5277, + z = 3481, + facing = 0, + }, + { + name = "staticradar", + x = 432, + z = 2592, + facing = 1, + }, + { + name = "staticstorage", + x = 2872, + z = 2712, + facing = 1, + }, + { + name = "amphaa", + x = 5361, + z = 5870, + facing = 1, + }, + { + name = "jumparty", + x = 4039, + z = 5293, + facing = 1, + }, + { + name = "staticmex", + x = 5640, + z = 104, + facing = 0, + }, + { + name = "turretheavylaser", + x = 5224, + z = 1208, + facing = 0, + }, + { + name = "turretlaser", + x = 4800, + z = 3168, + facing = 1, + }, + { + name = "staticradar", + x = 3696, + z = 336, + facing = 0, + }, + { + name = "spidercon", + x = 4113, + z = 1051, + facing = 0, + }, + { + name = "turretlaser", + x = 3440, + z = 1872, + facing = 1, + }, + { + name = "tankcon", + x = 3428, + z = 2700, + facing = 1, + }, + { + name = "spideraa", + x = 1374, + z = 893, + facing = 0, + }, + { + name = "turretlaser", + x = 5168, + z = 1728, + facing = 0, + }, + { + name = "staticmex", + x = 5624, + z = 2152, + facing = 0, + }, + { + name = "spideraa", + x = 4192, + z = 3685, + facing = 1, + }, + { + name = "tankcon", + x = 5291, + z = 1217, + facing = 2, + }, + { + name = "staticradar", + x = 1376, + z = 1296, + facing = 1, + }, + { + name = "tankcon", + x = 4832, + z = 5708, + facing = 2, + }, + { + name = "amphaa", + x = 5201, + z = 5672, + facing = 1, + }, + { + name = "spiderantiheavy", + x = 1795, + z = 931, + facing = 1, + }, + { + name = "tankassault", + x = 4548, + z = 1662, + facing = 2, + patrolRoute = { + {4551, 1679}, + {4505, 1633}, + }, + }, + { + name = "jumpassault", + x = 3724, + z = 5793, + facing = 1, + }, + { + name = "turretheavylaser", + x = 5000, + z = 2984, + facing = 1, + }, + { + name = "turretlaser", + x = 224, + z = 5840, + facing = 1, + }, + { + name = "turretlaser", + x = 4016, + z = 2208, + facing = 1, + }, + { + name = "turretlaser", + x = 1888, + z = 128, + facing = 1, + }, + { + name = "spiderantiheavy", + x = 4295, + z = 1770, + facing = 1, + }, + { + name = "turretlaser", + x = 5488, + z = 2016, + facing = 0, + }, + { + name = "turretlaser", + x = 1328, + z = 1088, + facing = 1, + }, + { + name = "amphfloater", + x = 4295, + z = 2129, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4551, 1679}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4584, 1733}, options = {"shift"}}, + }, + }, + { + name = "tankcon", + x = 5287, + z = 3520, + facing = 2, + }, + { + name = "spidercon", + x = 3962, + z = 1008, + facing = 1, + }, + { + name = "jumpassault", + x = 3754, + z = 5792, + facing = 1, + }, + { + name = "amphfloater", + x = 4370, + z = 1938, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4551, 1679}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4519, 1734}, options = {"shift"}}, + }, + }, + { + name = "turretlaser", + x = 5184, + z = 4704, + facing = 2, + }, + { + name = "tankassault", + x = 5122, + z = 3286, + facing = 0, + }, + { + name = "turretmissile", + x = 5344, + z = 1856, + facing = 0, + }, + { + name = "spidercrabe", + x = 2237, + z = 1184, + facing = 3, + }, + { + name = "staticcon", + x = 5256, + z = 1064, + facing = 0, + buildProgress = 0.58740002, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5256, 1064}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5281, 1089}, options = {"shift"}}, + }, + }, + { + name = "tankcon", + x = 3901, + z = 3842, + facing = 0, + }, + { + name = "turretheavylaser", + x = 5176, + z = 1368, + facing = 0, + }, + { + name = "turretlaser", + x = 624, + z = 752, + facing = 1, + }, + { + name = "amphcon", + x = 3375, + z = 2658, + facing = 1, + }, + { + name = "tankheavyassault", + x = 4251, + z = 1673, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4551, 1679}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4581, 1735}, options = {"shift"}}, + }, + }, + { + name = "planeheavyfighter", + x = 3849, + z = 5457, + facing = 2, + }, + { + name = "turretmissile", + x = 5520, + z = 976, + facing = 0, + }, + { + name = "turretlaser", + x = 240, + z = 1536, + facing = 1, + }, + { + name = "jumpcon", + x = 4217, + z = 4254, + facing = 2, + }, + { + name = "amphcon", + x = 4632, + z = 3069, + facing = 2, + }, + { + name = "turretlaser", + x = 5680, + z = 128, + facing = 0, + }, + { + name = "jumpassault", + x = 3184, + z = 5731, + facing = 1, + }, + { + name = "tankcon", + x = 3913, + z = 2951, + facing = 2, + }, + { + name = "amphcon", + x = 4823, + z = 3504, + facing = 2, + }, + { + name = "tankcon", + x = 5353, + z = 3491, + facing = 1, + }, + { + name = "turretriot", + x = 5448, + z = 776, + facing = 0, + }, + { + name = "amphcon", + x = 4093, + z = 2352, + facing = 1, + }, + { + name = "energypylon", + x = 3400, + z = 152, + facing = 0, + }, + { + name = "jumpcon", + x = 2729, + z = 5372, + facing = 2, + }, + { + name = "planeheavyfighter", + x = 5382, + z = 6085, + facing = 1, + }, + { + name = "turretheavylaser", + x = 5224, + z = 2040, + facing = 0, + }, + { + name = "amphassault", + x = 3356, + z = 3256, + facing = 1, + buildProgress = 0.87620002, + }, + { + name = "tankheavyassault", + x = 3468, + z = 4592, + facing = 1, + buildProgress = 0.73720002, + }, + { + name = "jumpcon", + x = 2572, + z = 4080, + facing = 1, + }, + { + name = "spidercon", + x = 2524, + z = 1205, + facing = 1, + }, + { + name = "planeheavyfighter", + x = 4386, + z = 5344, + facing = 1, + }, + { + name = "jumpcon", + x = 2957, + z = 5661, + facing = 1, + }, + { + name = "turretaalaser", + x = 5160, + z = 3432, + facing = 1, + }, + { + name = "spiderassault", + x = 1714, + z = 1077, + facing = 1, + }, + { + name = "jumpassault", + x = 1318, + z = 5391, + facing = 1, + }, + { + name = "planeheavyfighter", + x = 956, + z = 2965, + facing = 1, + buildProgress = 0.7166, + }, + { + name = "striderarty", + x = 879, + z = 1249, + facing = 0, + }, + { + name = "striderarty", + x = 171, + z = 4768, + facing = 0, + }, + { + name = "striderscorpion", + x = 2576, + z = 5397, + facing = 0, + }, + { + name = "striderscorpion", + x = 2810, + z = 981, + facing = 0, + }, + { + name = "striderdante", + x = 3698, + z = 2157, + facing = 0, + }, + { + name = "striderdante", + x = 3481, + z = 3654, + facing = 1, + }, + { + name = "jumpassault", + x = 1216, + z = 5384, + facing = 1, + buildProgress = 0.0694, + }, + { + name = "turretaalaser", + x = 5384, + z = 1656, + facing = 0, + buildProgress = 0.0482, + }, + { + name = "spideraa", + x = 1276, + z = 856, + facing = 1, + buildProgress = 0.1891, + }, + { + name = "striderfunnelweb", + x = 2169, + z = 2438, + facing = 0, + }, + { + name = "striderfunnelweb", + x = 2150, + z = 2644, + facing = 0, + }, + } + }, + }, + defeatConditionConfig = { + [0] = { }, + [1] = { + ignoreUnitLossDefeat = false, + vitalCommanders = false, + vitalUnitTypes = { + "energysingu", + "energygeo", + "energyheavygeo", + }, + loseAfterSeconds = false, + allyTeamLossObjectiveID = 1, + }, + }, + objectiveConfig = { + -- This is just related to displaying objectives on the UI. + [1] = { + description = "Destroy all enemy Singularity Reactors and Geothermals", + }, + [2] = { + description = "Protect your Commander", + }, + }, + bonusObjectiveConfig = { + [1] = { + satisfyOnce = true, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 3, + unitTypes = { + "striderbantha", + }, + image = planetUtilities.ICON_DIR .. "striderbantha.png", + imageOverlay = planetUtilities.ICON_OVERLAY.REPAIR, + description = "Have 3 Paladins", + experience = planetUtilities.BONUS_EXP, + }, + [2] = { + victoryByTime = 30*60, + image = planetUtilities.ICON_OVERLAY.CLOCK, + description = "Win by 30:00", + experience = planetUtilities.BONUS_EXP, + }, } }, completionReward = { @@ -87,7 +4689,6 @@ local function GetPlanet(planetUtilities, planetID) units = { "striderhub", "striderbantha", - "turretaaheavy", }, modules = { "weaponmod_stun_booster", diff --git a/campaign/sample/planets/planet65.lua b/campaign/sample/planets/planet65.lua index c1add1ca6..773041f9c 100644 --- a/campaign/sample/planets/planet65.lua +++ b/campaign/sample/planets/planet65.lua @@ -7,7 +7,7 @@ local function GetPlanet(planetUtilities, planetID) local image = LUA_DIRNAME .. "images/planets/swamp03.png" local planetData = { - name = "Dugonah", + name = "Mannia", startingPlanet = false, mapDisplay = { x = (planetUtilities.planetPositions and planetUtilities.planetPositions[planetID][1]) or 0.895, @@ -24,13 +24,24 @@ local function GetPlanet(planetUtilities, planetID) primary = "Wabloz Met", primaryType = "G8V", milRating = 1, - text = [[...]] + feedbackLink = "http://zero-k.info/Forum/Thread/24642", + text = [[The deep water channels and hills of this battleground present a challenging tactical landscape. The ultra-heavy amphibious Detriment strider is ideally suited to such mixed terrain.]] + }, + tips = { + { + image = "unitpics/striderdetriment.png", + text = [[Detriments are the ultimate assault strider, armed with laser beams, ground-smoothing missiles, an anti-air battery, and multiple massive Gauss cannons on each arm. They are effective on land and sea and generally end battles very quickly.]] + }, + { + image = "unitpics/striderbantha.png", + text = [[Insofar as the Detriment has a weakness at all, it is heavy hitters which can strike from outside the Detriment's range, like the Paladin and Shogun.]] + }, }, gameConfig = { mapName = "Rage_v1", playerConfig = { - startX = 100, - startZ = 100, + startX = 5500, + startZ = 750, allyTeam = 0, facplop = false, commanderParameters = { @@ -41,43 +52,4754 @@ local function GetPlanet(planetUtilities, planetID) "striderdetriment", }, startUnits = { + { + name = "striderdetriment", + x = 5420, + z = 1000, + facing = 0, + }, + { + name = "staticmex", + x = 5288, + z = 856, + facing = 0, + }, + { + name = "staticmex", + x = 5432, + z = 552, + facing = 0, + }, + { + name = "staticmex", + x = 5400, + z = 200, + facing = 0, + }, + { + name = "staticmex", + x = 5112, + z = 3448, + facing = 0, + }, + { + name = "staticmex", + x = 5208, + z = 3016, + facing = 0, + }, + { + name = "staticmex", + x = 5112, + z = 2584, + facing = 0, + }, + { + name = "energysingu", + x = 5016, + z = 152, + facing = 0, + }, + { + name = "pw_metal", + x = 5648, + z = 160, + facing = 0, + }, + { + name = "energypylon", + x = 5368, + z = 568, + facing = 0, + }, + { + name = "energypylon", + x = 5128, + z = 1512, + facing = 0, + }, + { + name = "energypylon", + x = 5176, + z = 2504, + facing = 0, + }, + { + name = "energypylon", + x = 4776, + z = 3752, + facing = 0, + }, + { + name = "energypylon", + x = 5240, + z = 3352, + facing = 0, + }, + { + name = "staticcon", + x = 5592, + z = 792, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5592, 792}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5567, 817}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5672, + z = 792, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5672, 792}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5647, 817}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5672, + z = 872, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5672, 872}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5647, 897}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5592, + z = 872, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5592, 872}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5567, 897}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5592, + z = 952, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5592, 952}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5567, 977}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5672, + z = 952, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5672, 952}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5647, 977}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5672, + z = 1032, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5672, 1032}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5647, 1057}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5592, + z = 1032, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5592, 1032}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5567, 1057}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5592, + z = 1112, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5592, 1112}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5567, 1137}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5672, + z = 1112, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5672, 1112}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5647, 1137}, options = {"shift"}}, + }, + }, + { + name = "striderhub", + x = 5488, + z = 864, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5488, 864}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5463, 889}, options = {"shift"}}, + }, + }, + { + name = "turretheavy", + x = 4648, + z = 4056, + facing = 0, + }, + { + name = "turretheavy", + x = 5048, + z = 3816, + facing = 0, + }, + { + name = "turretheavy", + x = 5528, + z = 3656, + facing = 0, + }, + { + name = "turretaafar", + x = 4880, + z = 3504, + facing = 0, + }, + { + name = "turretaafar", + x = 4992, + z = 928, + facing = 0, + }, } }, aiConfig = { { - startX = 4000, - startZ = 75, + humanName = "Ally", aiLib = "Circuit_difficulty_autofill", - humanName = "Enemy", bitDependant = true, - commanderParameters = { - facplop = false, - }, - allyTeam = 1, + -- aiLib = "Null AI", + -- bitDependant = false, + allyTeam = 0, unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energyheavygeo", + "energysingu", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "staticrearm", + "turretaafar", + "turretheavy", + "staticnuke", + "staticheavyarty", + "staticarty", + "factoryship", + "shipcon", + "shipaa", + "shiparty", + "shipassault", + "shipriot", + "shipscout", + "shipskirm", + "shiptorpraider", + "subraider", + "factoryamph", + "amphcon", + "amphraid", + "amphimpulse", + "amphfloater", + "amphriot", + "amphassault", + "amphbomb", + "amphaa", + "factoryhover", + "hovercon", + "hoverraid", + "hoverriot", + "hoverskirm", + "hoverassault", + "hoverdepthcharge", + "hoverarty", + "hoveraa", + "striderhub", + "striderdante", + "striderscorpion", + "striderfunnelweb", + "striderarty", + "striderantiheavy", + "factorycloak", + "cloakcon", "cloakraid", + "cloakriot", + "cloakskirm", + "cloakassault", + "cloakaa", + "cloakarty", + "cloaksnipe", + "cloakheavyraid", + "cloakbomb", + "factorygunship", + "gunshipcon", + "gunshipbomb", + "gunshipemp", + "gunshipaa", + "gunshipassault", + "gunshipheavyskirm", + "gunshipskirm", + "gunshipraid", + "gunshipkrow", + "factorytank", + "tankcon", + "tankassault", + "tankheavyassault", + "tankarty", + "tankheavyarty", + "tankaa", + "tankriot", }, - commanderLevel = 2, - commander = { - name = "Most Loyal Opposition", - chassis = "engineer", - decorations = { - "skin_support_dark", - icon_overhead = { image = "UW" } - }, - modules = { } - }, + commander = false, startUnits = { - } - }, - }, - defeatConditionConfig = { - - }, - objectiveConfig = { - -- This is just related to displaying objectives on the UI. - }, - bonusObjectiveConfig = { + { + name = "striderbantha", + x = 778, + z = 1538, + facing = 0, + difficultyAtMost = 3, + }, + { + name = "staticheavyarty", + x = 2336, + z = 752, + facing = 0, + }, + { + name = "staticheavyarty", + x = 8288, + z = 880, + facing = 0, + }, + { + name = "staticheavyradar", + x = 2208, + z = 2032, + facing = 0, + }, + { + name = "staticheavyradar", + x = 8592, + z = 2432, + facing = 0, + }, + { + name = "staticmex", + x = 3048, + z = 1496, + facing = 0, + }, + { + name = "staticmex", + x = 6568, + z = 3128, + facing = 0, + }, + { + name = "staticmex", + x = 3240, + z = 1160, + facing = 0, + }, + { + name = "staticmex", + x = 3416, + z = 1640, + facing = 0, + }, + { + name = "staticmex", + x = 7240, + z = 3496, + facing = 0, + }, + { + name = "staticmex", + x = 6920, + z = 3832, + facing = 0, + }, + { + name = "staticmex", + x = 3624, + z = 696, + facing = 0, + }, + { + name = "staticmex", + x = 7432, + z = 3944, + facing = 0, + }, + { + name = "tankarty", + x = 3032, + z = 4969, + facing = 0, + }, + { + name = "staticmex", + x = 4440, + z = 1848, + facing = 0, + }, + { + name = "staticmex", + x = 8264, + z = 4424, + facing = 0, + }, + { + name = "staticmex", + x = 8376, + z = 3912, + facing = 0, + }, + { + name = "staticmex", + x = 8600, + z = 3864, + facing = 0, + }, + { + name = "staticmex", + x = 3672, + z = 3384, + facing = 0, + }, + { + name = "staticmex", + x = 3336, + z = 3608, + facing = 0, + }, + { + name = "staticmex", + x = 8584, + z = 3352, + facing = 0, + }, + { + name = "staticmex", + x = 3208, + z = 3160, + facing = 0, + }, + { + name = "staticmex", + x = 8664, + z = 2696, + facing = 0, + }, + { + name = "staticmex", + x = 2840, + z = 3416, + facing = 0, + }, + { + name = "staticmex", + x = 2184, + z = 3448, + facing = 0, + }, + { + name = "staticmex", + x = 8552, + z = 1928, + facing = 0, + }, + { + name = "staticmex", + x = 8664, + z = 1176, + facing = 0, + }, + { + name = "staticmex", + x = 1976, + z = 2904, + facing = 0, + }, + { + name = "staticmex", + x = 8408, + z = 1144, + facing = 0, + }, + { + name = "staticmex", + x = 1944, + z = 2360, + facing = 0, + }, + { + name = "staticmex", + x = 8392, + z = 440, + facing = 0, + }, + { + name = "staticmex", + x = 1864, + z = 1560, + facing = 0, + }, + { + name = "staticmex", + x = 7464, + z = 728, + facing = 0, + }, + { + name = "staticmex", + x = 7576, + z = 1112, + facing = 0, + }, + { + name = "staticmex", + x = 1912, + z = 904, + facing = 0, + }, + { + name = "staticmex", + x = 7208, + z = 1064, + facing = 0, + }, + { + name = "staticmex", + x = 2232, + z = 1000, + facing = 0, + }, + { + name = "staticmex", + x = 6952, + z = 648, + facing = 0, + }, + { + name = "staticmex", + x = 2264, + z = 296, + facing = 0, + }, + { + name = "staticmex", + x = 6248, + z = 1896, + facing = 0, + }, + { + name = "staticmex", + x = 984, + z = 1000, + facing = 0, + }, + { + name = "staticmex", + x = 776, + z = 616, + facing = 0, + }, + { + name = "staticmex", + x = 520, + z = 1016, + facing = 0, + }, + { + name = "staticmex", + x = 936, + z = 1880, + facing = 0, + }, + { + name = "staticmex", + x = 9448, + z = 1752, + facing = 0, + }, + { + name = "staticmex", + x = 984, + z = 3064, + facing = 0, + }, + { + name = "staticmex", + x = 9880, + z = 1048, + facing = 0, + }, + { + name = "staticmex", + x = 840, + z = 3464, + facing = 0, + }, + { + name = "staticmex", + x = 9752, + z = 648, + facing = 0, + }, + { + name = "staticmex", + x = 664, + z = 3816, + facing = 0, + }, + { + name = "staticmex", + x = 9352, + z = 824, + facing = 0, + }, + { + name = "staticmex", + x = 1160, + z = 3880, + facing = 0, + }, + { + name = "staticmex", + x = 9576, + z = 3032, + facing = 0, + }, + { + name = "amphfloater", + x = 7809, + z = 5510, + facing = 2, + }, + { + name = "staticmex", + x = 9560, + z = 3576, + facing = 0, + }, + { + name = "staticmex", + x = 9736, + z = 3976, + facing = 0, + }, + { + name = "staticmex", + x = 9272, + z = 3928, + facing = 0, + }, + { + name = "energysingu", + x = 8776, + z = 136, + facing = 0, + }, + { + name = "energysingu", + x = 1448, + z = 136, + facing = 0, + }, + { + name = "energypylon", + x = 312, + z = 408, + facing = 0, + }, + { + name = "energypylon", + x = 1032, + z = 408, + facing = 0, + }, + { + name = "energypylon", + x = 1752, + z = 408, + facing = 0, + }, + { + name = "energypylon", + x = 10008, + z = 280, + facing = 0, + }, + { + name = "energypylon", + x = 9288, + z = 280, + facing = 0, + }, + { + name = "energypylon", + x = 3192, + z = 408, + facing = 0, + }, + { + name = "energypylon", + x = 8568, + z = 280, + facing = 0, + }, + { + name = "energypylon", + x = 3192, + z = 1128, + facing = 0, + }, + { + name = "energypylon", + x = 7848, + z = 280, + facing = 0, + }, + { + name = "energypylon", + x = 2472, + z = 1128, + facing = 0, + }, + { + name = "energypylon", + x = 7128, + z = 280, + facing = 0, + }, + { + name = "energypylon", + x = 1752, + z = 1128, + facing = 0, + }, + { + name = "energypylon", + x = 7128, + z = 1000, + facing = 0, + }, + { + name = "energypylon", + x = 1032, + z = 1128, + facing = 0, + }, + { + name = "energypylon", + x = 7848, + z = 1000, + facing = 0, + }, + { + name = "energypylon", + x = 312, + z = 1128, + facing = 0, + }, + { + name = "energypylon", + x = 8568, + z = 1000, + facing = 0, + }, + { + name = "energypylon", + x = 312, + z = 1848, + facing = 0, + }, + { + name = "energypylon", + x = 9288, + z = 1000, + facing = 0, + }, + { + name = "energypylon", + x = 1032, + z = 1848, + facing = 0, + }, + { + name = "energypylon", + x = 10008, + z = 1000, + facing = 0, + }, + { + name = "energypylon", + x = 1752, + z = 1848, + facing = 0, + }, + { + name = "energypylon", + x = 9288, + z = 1720, + facing = 0, + }, + { + name = "energypylon", + x = 2472, + z = 1848, + facing = 0, + }, + { + name = "energypylon", + x = 8568, + z = 1720, + facing = 0, + }, + { + name = "energypylon", + x = 3192, + z = 1848, + facing = 0, + }, + { + name = "energypylon", + x = 7848, + z = 1720, + facing = 0, + }, + { + name = "energypylon", + x = 7128, + z = 1720, + facing = 0, + }, + { + name = "energypylon", + x = 2568, + z = 248, + facing = 0, + }, + { + name = "factoryhover", + x = 1104, + z = 1472, + facing = 0, + }, + { + name = "staticcon", + x = 1064, + z = 1288, + facing = 0, + }, + { + name = "staticcon", + x = 1144, + z = 1288, + facing = 0, + }, + { + name = "factorytank", + x = 3088, + z = 3648, + facing = 0, + }, + { + name = "staticcon", + x = 3064, + z = 3512, + facing = 0, + }, + { + name = "staticcon", + x = 3144, + z = 3512, + facing = 0, + }, + { + name = "staticcon", + x = 3144, + z = 3432, + facing = 0, + }, + { + name = "staticcon", + x = 3064, + z = 3432, + facing = 0, + }, + { + name = "factoryamph", + x = 7368, + z = 3144, + facing = 0, + }, + { + name = "staticcon", + x = 7336, + z = 2936, + facing = 0, + }, + { + name = "staticcon", + x = 7416, + z = 2936, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7368, 3182}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7416, 2936}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7416, + z = 3016, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7368, 3182}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7416, 3016}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7336, + z = 3016, + facing = 0, + }, + { + name = "staticcon", + x = 1064, + z = 1192, + facing = 0, + }, + { + name = "staticcon", + x = 1144, + z = 1192, + facing = 0, + }, + { + name = "factorygunship", + x = 9240, + z = 1336, + facing = 0, + }, + { + name = "staticcon", + x = 9208, + z = 1144, + facing = 0, + }, + { + name = "staticcon", + x = 9288, + z = 1144, + facing = 0, + }, + { + name = "staticcon", + x = 9288, + z = 1224, + facing = 0, + }, + { + name = "staticcon", + x = 9208, + z = 1224, + facing = 0, + }, + { + name = "striderhub", + x = 9072, + z = 1216, + facing = 2, + }, + { + name = "striderhub", + x = 1232, + z = 1280, + facing = 2, + }, + { + name = "staticantinuke", + x = 7112, + z = 2640, + facing = 2, + }, + { + name = "staticantinuke", + x = 2808, + z = 2928, + facing = 2, + }, + { + name = "energypylon", + x = 8264, + z = 2520, + facing = 0, + }, + { + name = "energypylon", + x = 8040, + z = 3272, + facing = 0, + }, + { + name = "turretaaheavy", + x = 1920, + z = 1904, + facing = 0, + }, + { + name = "energypylon", + x = 8200, + z = 4104, + facing = 0, + }, + { + name = "turretaaheavy", + x = 8448, + z = 2096, + facing = 0, + }, + { + name = "turretaafar", + x = 1968, + z = 3824, + facing = 0, + }, + { + name = "turretaafar", + x = 2224, + z = 3824, + facing = 0, + }, + { + name = "turretaafar", + x = 8368, + z = 3584, + facing = 0, + }, + { + name = "turretaafar", + x = 8576, + z = 3568, + facing = 0, + }, + { + name = "energypylon", + x = 2888, + z = 2568, + facing = 0, + }, + { + name = "energypylon", + x = 2680, + z = 3464, + facing = 0, + }, + { + name = "energypylon", + x = 3240, + z = 3960, + facing = 0, + }, + { + name = "staticmex", + x = 2152, + z = 4184, + facing = 0, + }, + { + name = "staticmex", + x = 1896, + z = 3528, + facing = 0, + }, + { + name = "energypylon", + x = 2152, + z = 4296, + facing = 2, + }, + { + name = "turretheavy", + x = 1880, + z = 4680, + facing = 0, + }, + { + name = "turretheavy", + x = 2376, + z = 4728, + facing = 0, + }, + { + name = "staticshield", + x = 2128, + z = 4672, + facing = 0, + }, + { + name = "staticshield", + x = 2128, + z = 4736, + facing = 0, + }, + { + name = "turretheavy", + x = 8424, + z = 4600, + facing = 0, + }, + { + name = "turretheavy", + x = 7992, + z = 4568, + facing = 0, + }, + { + name = "staticshield", + x = 8176, + z = 4576, + facing = 0, + }, + { + name = "staticshield", + x = 8240, + z = 4576, + facing = 0, + }, + { + name = "turretaaflak", + x = 8088, + z = 4472, + facing = 0, + }, + { + name = "turretaaflak", + x = 8392, + z = 4472, + facing = 0, + }, + { + name = "turretaaflak", + x = 1976, + z = 4568, + facing = 0, + }, + { + name = "turretaaflak", + x = 2280, + z = 4616, + facing = 0, + }, + { + name = "staticradar", + x = 7040, + z = 3792, + facing = 3, + }, + { + name = "amphcon", + x = 3292, + z = 632, + facing = 3, + }, + { + name = "tankriot", + x = 4791, + z = 3632, + facing = 1, + }, + { + name = "striderfunnelweb", + x = 4334, + z = 3632, + facing = 1, + }, + { + name = "striderarty", + x = 7271, + z = 4946, + facing = 0, + }, + { + name = "gunshipheavyskirm", + x = 9345, + z = 5955, + facing = 3, + }, + { + name = "staticcon", + x = 1336, + z = 1448, + facing = 1, + }, + { + name = "hoverassault", + x = 5454, + z = 3357, + facing = 1, + }, + { + name = "turretmissile", + x = 912, + z = 4048, + facing = 1, + }, + { + name = "amphassault", + x = 8762, + z = 5472, + facing = 0, + }, + { + name = "gunshipcon", + x = 7930, + z = 3754, + facing = 2, + }, + { + name = "amphcon", + x = 7524, + z = 4800, + facing = 3, + }, + { + name = "turretlaser", + x = 7232, + z = 3872, + facing = 3, + }, + { + name = "hovercon", + x = 1626, + z = 2421, + facing = 1, + }, + { + name = "tankcon", + x = 4186, + z = 832, + facing = 3, + }, + { + name = "gunshipheavyskirm", + x = 7499, + z = 2936, + facing = 0, + patrolRoute = { + {7528, 2904}, + {7404, 3038}, + }, + }, + { + name = "tankcon", + x = 1658, + z = 3628, + facing = 1, + }, + { + name = "turretlaser", + x = 7504, + z = 1072, + facing = 0, + }, + { + name = "turretlaser", + x = 2912, + z = 3360, + facing = 1, + }, + { + name = "amphcon", + x = 4355, + z = 2798, + facing = 0, + }, + { + name = "staticradar", + x = 3200, + z = 3264, + facing = 1, + }, + { + name = "turretlaser", + x = 8512, + z = 3344, + facing = 3, + }, + { + name = "amphcon", + x = 3137, + z = 1063, + facing = 3, + }, + { + name = "tankcon", + x = 1000, + z = 3534, + facing = 3, + }, + { + name = "staticradar", + x = 7152, + z = 944, + facing = 0, + }, + { + name = "hovercon", + x = 1499, + z = 1386, + facing = 2, + }, + { + name = "staticradar", + x = 5328, + z = 688, + facing = 0, + }, + { + name = "turretlaser", + x = 3328, + z = 1376, + facing = 0, + }, + { + name = "turretlaser", + x = 8352, + z = 4064, + facing = 3, + }, + { + name = "staticcon", + x = 1288, + z = 1496, + facing = 1, + }, + { + name = "staticmex", + x = 3240, + z = 4600, + facing = 0, + }, + { + name = "hoverarty", + x = 7028, + z = 4403, + facing = 0, + }, + { + name = "turretlaser", + x = 8448, + z = 384, + facing = 0, + }, + { + name = "tankassault", + x = 4874, + z = 3802, + facing = 0, + }, + { + name = "amphcon", + x = 4105, + z = 2519, + facing = 3, + }, + { + name = "turretlaser", + x = 9424, + z = 1872, + facing = 3, + }, + { + name = "turretlaser", + x = 848, + z = 1440, + facing = 1, + }, + { + name = "droneheavyslow", + x = 4247, + z = 3630, + facing = 2, + }, + { + name = "turretmissile", + x = 800, + z = 3632, + facing = 1, + }, + { + name = "gunshipheavyskirm", + x = 5769, + z = 4195, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5524, 4387}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5567, 4340}, options = {"shift"}}, + }, + }, + { + name = "turretlaser", + x = 5040, + z = 2880, + facing = 0, + }, + { + name = "tankcon", + x = 1347, + z = 3127, + facing = 0, + }, + { + name = "staticradar", + x = 9296, + z = 1680, + facing = 3, + }, + { + name = "amphcon", + x = 4345, + z = 1637, + facing = 0, + }, + { + name = "turrettorp", + x = 6216, + z = 2024, + facing = 0, + }, + { + name = "staticradar", + x = 9472, + z = 3984, + facing = 3, + }, + { + name = "turretmissile", + x = 880, + z = 3424, + facing = 1, + buildProgress = 0.50989997, + }, + { + name = "turretlaser", + x = 9568, + z = 912, + facing = 3, + }, + { + name = "turretlaser", + x = 896, + z = 1936, + facing = 1, + }, + { + name = "turretlaser", + x = 1008, + z = 3600, + facing = 1, + }, + { + name = "striderarty", + x = 4716, + z = 1079, + facing = 0, + }, + { + name = "striderarty", + x = 7729, + z = 4558, + facing = 3, + }, + { + name = "staticmex", + x = 8104, + z = 5032, + facing = 0, + }, + { + name = "amphcon", + x = 6563, + z = 1984, + facing = 1, + }, + { + name = "staticradar", + x = 4960, + z = 2704, + facing = 0, + }, + { + name = "amphaa", + x = 8736, + z = 4671, + facing = 2, + }, + { + name = "turrettorp", + x = 8616, + z = 2744, + facing = 3, + }, + { + name = "dronelight", + x = 4326, + z = 3585, + facing = 1, + }, + { + name = "dronelight", + x = 4269, + z = 3558, + facing = 1, + }, + { + name = "amphcon", + x = 7442, + z = 4586, + facing = 0, + }, + { + name = "gunshipaa", + x = 7477, + z = 3187, + facing = 1, + patrolRoute = { + {7544, 3144}, + {7342, 3275}, + }, + }, + { + name = "staticradar", + x = 1040, + z = 3792, + facing = 1, + }, + { + name = "amphcon", + x = 2482, + z = 1513, + facing = 3, + }, + { + name = "turrettorp", + x = 8168, + z = 4936, + facing = 3, + }, + { + name = "turretlaser", + x = 9392, + z = 3792, + facing = 3, + }, + { + name = "tankcon", + x = 3090, + z = 4471, + facing = 2, + }, + { + name = "amphcon", + x = 7961, + z = 1964, + facing = 0, + }, + { + name = "droneheavyslow", + x = 4334, + z = 3698, + facing = 3, + }, + { + name = "tankcon", + x = 1175, + z = 1347, + facing = 1, + }, + { + name = "striderscorpion", + x = 9072, + z = 1120, + facing = 0, + buildProgress = 0.1002, + }, + { + name = "dronelight", + x = 4325, + z = 3636, + facing = 2, + }, + { + name = "staticcon", + x = 1288, + z = 1400, + facing = 1, + }, + { + name = "tankassault", + x = 3580, + z = 3686, + facing = 1, + }, + { + name = "dronelight", + x = 4252, + z = 3572, + facing = 1, + }, + { + name = "turrettorp", + x = 8776, + z = 2696, + facing = 3, + }, + { + name = "amphcon", + x = 7361, + z = 4633, + facing = 1, + }, + { + name = "turretlaser", + x = 6528, + z = 3040, + facing = 0, + }, + { + name = "hovercon", + x = 2106, + z = 3448, + facing = 1, + }, + { + name = "turretlaser", + x = 832, + z = 3840, + facing = 1, + }, + { + name = "turretlaser", + x = 1952, + z = 2864, + facing = 1, + }, + { + name = "staticmex", + x = 9512, + z = 5704, + facing = 0, + }, + { + name = "hovercon", + x = 3112, + z = 4223, + facing = 2, + }, + { + name = "dronelight", + x = 4294, + z = 3627, + facing = 1, + }, + { + name = "dronelight", + x = 4415, + z = 3632, + facing = 1, + }, + { + name = "amphraid", + x = 9614, + z = 7178, + facing = 2, + }, + { + name = "tankheavyassault", + x = 3107, + z = 4025, + facing = 2, + }, + { + name = "turrettorp", + x = 6120, + z = 1816, + facing = 0, + }, + { + name = "tankcon", + x = 1432, + z = 3216, + facing = 1, + }, + { + name = "amphcon", + x = 8743, + z = 4411, + facing = 1, + }, + { + name = "turretlaser", + x = 9472, + z = 5920, + facing = 3, + }, + { + name = "amphcon", + x = 8154, + z = 5088, + facing = 3, + }, + { + name = "amphcon", + x = 4976, + z = 2771, + facing = 3, + }, + { + name = "hovercon", + x = 2503, + z = 3822, + facing = 2, + }, + { + name = "turretheavylaser", + x = 632, + z = 3768, + facing = 1, + }, + { + name = "turrettorp", + x = 4520, + z = 1832, + facing = 0, + }, + { + name = "amphraid", + x = 9764, + z = 7272, + facing = 1, + }, + { + name = "turretlaser", + x = 5280, + z = 448, + facing = 0, + }, + { + name = "gunshipheavyskirm", + x = 7236, + z = 5047, + facing = 0, + }, + { + name = "turretlaser", + x = 2048, + z = 4192, + facing = 1, + }, + { + name = "staticcon", + x = 1336, + z = 1496, + facing = 1, + }, + { + name = "energysolar", + x = 3688, + z = 1416, + facing = 0, + }, + { + name = "turretlaser", + x = 2096, + z = 3408, + facing = 1, + }, + { + name = "staticradar", + x = 9440, + z = 5728, + facing = 3, + }, + { + name = "energypylon", + x = 4440, + z = 1624, + facing = 0, + }, + { + name = "amphraid", + x = 9628, + z = 7250, + facing = 2, + }, + { + name = "amphfloater", + x = 7735, + z = 5270, + facing = 2, + }, + { + name = "turretlaser", + x = 8528, + z = 1200, + facing = 0, + }, + { + name = "striderdante", + x = 1615, + z = 1041, + facing = 1, + }, + { + name = "staticcon", + x = 1384, + z = 1448, + facing = 1, + }, + { + name = "amphfloater", + x = 7738, + z = 5422, + facing = 0, + }, + { + name = "striderdante", + x = 9120, + z = 1830, + facing = 0, + }, + { + name = "staticstorage", + x = 4392, + z = 1832, + facing = 0, + }, + { + name = "staticcon", + x = 1288, + z = 1448, + facing = 1, + }, + { + name = "tankcon", + x = 3189, + z = 4440, + facing = 0, + }, + { + name = "amphcon", + x = 6559, + z = 2996, + facing = 2, + }, + { + name = "hovercon", + x = 1639, + z = 2310, + facing = 1, + }, + { + name = "gunshipskirm", + x = 5754, + z = 4751, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5523, 4451}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5520, 4387}, options = {"shift"}}, + }, + }, + { + name = "energypylon", + x = 4232, + z = 1736, + facing = 0, + }, + { + name = "amphraid", + x = 5830, + z = 4074, + facing = 3, + }, + { + name = "tankcon", + x = 3127, + z = 4447, + facing = 2, + }, + { + name = "turretmissile", + x = 7216, + z = 3664, + facing = 3, + }, + { + name = "hovercon", + x = 1472, + z = 1419, + facing = 2, + }, + { + name = "amphcon", + x = 8325, + z = 3942, + facing = 1, + }, + { + name = "tankcon", + x = 3119, + z = 4370, + facing = 2, + }, + { + name = "staticcon", + x = 1288, + z = 1304, + facing = 1, + }, + { + name = "hovercon", + x = 1598, + z = 2318, + facing = 1, + }, + { + name = "amphraid", + x = 5880, + z = 4235, + facing = 3, + }, + { + name = "turretaalaser", + x = 1048, + z = 3864, + facing = 1, + }, + { + name = "hovercon", + x = 1855, + z = 3376, + facing = 1, + }, + { + name = "staticcon", + x = 1288, + z = 1544, + facing = 1, + }, + { + name = "staticstorage", + x = 4376, + z = 1960, + facing = 0, + }, + { + name = "amphraid", + x = 6361, + z = 4282, + facing = 1, + }, + { + name = "tankassault", + x = 4935, + z = 3809, + facing = 0, + }, + { + name = "hovercon", + x = 1214, + z = 1533, + facing = 1, + }, + { + name = "energypylon", + x = 4312, + z = 1432, + facing = 0, + }, + { + name = "amphcon", + x = 7424, + z = 3563, + facing = 0, + }, + { + name = "turretmissile", + x = 5168, + z = 2720, + facing = 0, + }, + { + name = "hovercon", + x = 1488, + z = 1446, + facing = 2, + }, + { + name = "amphcon", + x = 7309, + z = 3617, + facing = 3, + }, + { + name = "staticcon", + x = 1336, + z = 1544, + facing = 1, + }, + { + name = "energysolar", + x = 4920, + z = 2280, + facing = 0, + }, + { + name = "turrettorp", + x = 2072, + z = 2328, + facing = 1, + }, + { + name = "hoveraa", + x = 4721, + z = 3164, + facing = 0, + }, + { + name = "staticcon", + x = 1336, + z = 1352, + facing = 1, + }, + { + name = "gunshipaa", + x = 8607, + z = 3910, + facing = 2, + }, + { + name = "staticcon", + x = 1384, + z = 1496, + facing = 1, + }, + { + name = "staticcon", + x = 1336, + z = 1304, + facing = 1, + }, + { + name = "turretlaser", + x = 5248, + z = 2928, + facing = 0, + }, + { + name = "energywind", + x = 4840, + z = 2104, + facing = 0, + }, + { + name = "amphraid", + x = 5909, + z = 4231, + facing = 0, + }, + { + name = "hovercon", + x = 2497, + z = 3588, + facing = 1, + }, + { + name = "tankcon", + x = 3077, + z = 4365, + facing = 2, + }, + { + name = "staticcon", + x = 1384, + z = 1352, + facing = 1, + }, + { + name = "energywind", + x = 4760, + z = 2024, + facing = 0, + }, + { + name = "amphcon", + x = 7406, + z = 4594, + facing = 0, + }, + { + name = "staticcon", + x = 1288, + z = 1592, + facing = 1, + }, + { + name = "staticcon", + x = 1384, + z = 1544, + facing = 1, + }, + { + name = "turretlaser", + x = 7056, + z = 4000, + facing = 3, + }, + { + name = "staticradar", + x = 3488, + z = 1248, + facing = 0, + }, + { + name = "tankcon", + x = 4420, + z = 3383, + facing = 1, + }, + { + name = "hoverraid", + x = 4451, + z = 3286, + facing = 1, + }, + { + name = "turretriot", + x = 1112, + z = 3784, + facing = 1, + }, + { + name = "amphcon", + x = 7391, + z = 3423, + facing = 0, + }, + { + name = "staticstorage", + x = 4552, + z = 1928, + facing = 0, + }, + { + name = "staticcon", + x = 1336, + z = 1592, + facing = 1, + }, + { + name = "hoverraid", + x = 4033, + z = 3027, + facing = 1, + }, + { + name = "staticcon", + x = 1288, + z = 1640, + facing = 1, + }, + { + name = "tankcon", + x = 3048, + z = 4537, + facing = 3, + }, + { + name = "turretheavylaser", + x = 4888, + z = 2744, + facing = 0, + buildProgress = 0.5309, + }, + { + name = "hoverraid", + x = 3939, + z = 2963, + facing = 1, + }, + { + name = "amphcon", + x = 7395, + z = 3625, + facing = 0, + }, + { + name = "staticcon", + x = 1432, + z = 1432, + facing = 1, + }, + { + name = "gunshipcon", + x = 8559, + z = 2420, + facing = 0, + }, + { + name = "staticcon", + x = 1432, + z = 1480, + facing = 1, + }, + { + name = "hovercon", + x = 1198, + z = 2902, + facing = 1, + }, + { + name = "turretheavylaser", + x = 7352, + z = 3512, + facing = 3, + }, + { + name = "staticcon", + x = 1432, + z = 1384, + facing = 1, + }, + { + name = "energywind", + x = 3816, + z = 1416, + facing = 0, + }, + { + name = "tankassault", + x = 3198, + z = 3766, + facing = 1, + }, + { + name = "staticcon", + x = 1384, + z = 1400, + facing = 1, + }, + { + name = "hoverraid", + x = 2698, + z = 2540, + facing = 1, + }, + { + name = "energypylon", + x = 6568, + z = 2904, + facing = 0, + buildProgress = 0.7737, + }, + { + name = "hoverraid", + x = 2501, + z = 2414, + facing = 1, + }, + { + name = "amphraid", + x = 6683, + z = 3554, + facing = 3, + }, + { + name = "hoverraid", + x = 1960, + z = 2232, + facing = 1, + }, + { + name = "gunshipaa", + x = 9243, + z = 1587, + facing = 0, + }, + { + name = "staticcon", + x = 1288, + z = 1352, + facing = 1, + }, + { + name = "hoverraid", + x = 1064, + z = 2057, + facing = 0, + }, + { + name = "amphimpulse", + x = 7366, + z = 3193, + facing = 0, + }, + { + name = "striderantiheavy", + x = 1232, + z = 1200, + facing = 0, + buildProgress = 0.53860003, + }, + { + name = "energypylon", + x = 1720, + z = 2360, + facing = 1, + buildProgress = 0.29159999, + }, + { + name = "turretmissile", + x = 8064, + z = 5120, + facing = 3, + buildProgress = 0.3574, + }, + { + name = "gunshipaa", + x = 9240, + z = 1337, + facing = 2, + buildProgress = 0.73949999, + }, + { + name = "hoverraid", + x = 1104, + z = 1440, + facing = 0, + }, + { + name = "staticcon", + x = 1384, + z = 1304, + facing = 1, + buildProgress = 0.77420002, + }, + { + name = "tankcon", + x = 3088, + z = 3676, + facing = 0, + buildProgress = 0.1093, + }, + { + name = "staticcon", + x = 1336, + z = 1400, + facing = 1, + buildProgress = 0.0556, + }, + { + name = "turretmissile", + x = 7408, + z = 3744, + facing = 3, + buildProgress = 0.0874, + }, + { + name = "turretlaser", + x = 3264, + z = 4544, + facing = 1, + buildProgress = 0.0305, + }, + } + }, + { + startX = 4900, + startZ = 8700, + humanName = "Enemy", + aiLib = "Circuit_difficulty_autofill", + bitDependant = true, + -- aiLib = "Null AI", + -- bitDependant = false, + commanderParameters = { + facplop = false, + }, + allyTeam = 1, + unlocks = { + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energyheavygeo", + "energysingu", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "staticrearm", + "turretaafar", + "turretheavy", + "staticnuke", + "staticheavyarty", + "staticarty", + "factoryship", + "shipcon", + "shipaa", + "shiparty", + "shipassault", + "shipriot", + "shipscout", + "shipskirm", + "shiptorpraider", + "subraider", + "factoryamph", + "amphcon", + "amphraid", + "amphimpulse", + "amphfloater", + "amphriot", + "amphassault", + "amphbomb", + "amphaa", + "factoryhover", + "hovercon", + "hoverraid", + "hoverriot", + "hoverskirm", + "hoverassault", + "hoverdepthcharge", + "hoverarty", + "hoveraa", + "striderhub", + "striderdante", + "striderscorpion", + "striderfunnelweb", + "striderarty", + "striderantiheavy", + "striderbantha", + "shipcarrier", + "shipheavyarty", + "factorycloak", + "cloakcon", + "cloakraid", + "cloakriot", + "cloakskirm", + "cloakassault", + "cloakaa", + "cloakarty", + "cloaksnipe", + "cloakheavyraid", + "cloakbomb", + "factorygunship", + "gunshipcon", + "gunshipbomb", + "gunshipemp", + "gunshipaa", + "gunshipassault", + "gunshipheavyskirm", + "gunshipskirm", + "gunshipraid", + "gunshipkrow", + "factorytank", + "tankcon", + "tankassault", + "tankheavyassault", + "tankarty", + "tankheavyarty", + "tankaa", + "tankriot", + }, + commanderLevel = 7, + commander = { + name = "Yngas", + chassis = "strike", + modules = { + "commweapon_beamlaser", + "commweapon_beamlaser", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_autorepair", + "module_autorepair", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + } + }, + midgameUnits = { + { + name = "striderbantha", + x = 900, + z = 9000, + facing = 0, + spawnRadius = 150, + delay = 6*30*60, + orbitalDrop = true, + difficultyAtLeast = 3, + }, + { + name = "striderfunnelweb", + x = 9800, + z = 9000, + facing = 0, + spawnRadius = 150, + delay = 6*30*60, + orbitalDrop = true, + }, + { + name = "striderfunnelweb", + x = 9800, + z = 9000, + facing = 0, + spawnRadius = 150, + delay = 6*30*60, + orbitalDrop = true, + }, + { + name = "striderfunnelweb", + x = 9800, + z = 9000, + facing = 0, + spawnRadius = 150, + delay = 6*30*60, + orbitalDrop = true, + difficultyAtLeast = 4, + }, + { + name = "striderbantha", + x = 9800, + z = 9000, + facing = 0, + spawnRadius = 150, + delay = 12*30*60, + orbitalDrop = true, + }, + { + name = "striderdante", + x = 9800, + z = 9000, + facing = 0, + spawnRadius = 150, + delay = 12*30*60, + orbitalDrop = true, + }, + { + name = "striderdante", + x = 9800, + z = 9000, + facing = 0, + spawnRadius = 150, + delay = 12*30*60, + orbitalDrop = true, + }, + { + name = "striderfunnelweb", + x = 900, + z = 9000, + facing = 0, + spawnRadius = 150, + delay = 12*30*60, + orbitalDrop = true, + }, + { + name = "striderfunnelweb", + x = 900, + z = 9000, + facing = 0, + spawnRadius = 150, + delay = 12*30*60, + orbitalDrop = true, + }, + { + name = "striderfunnelweb", + x = 900, + z = 9000, + facing = 0, + spawnRadius = 150, + delay = 12*30*60, + orbitalDrop = true, + }, + }, + startUnits = { + { + name = "staticheavyarty", + x = 4912, + z = 8688, + facing = 2, + }, + { + name = "staticheavyarty", + x = 5120, + z = 8688, + facing = 2, + }, + { + name = "energypylon", + x = 4136, + z = 9944, + facing = 0, + }, + { + name = "staticmex", + x = 4936, + z = 9128, + facing = 0, + }, + { + name = "staticmex", + x = 5080, + z = 8776, + facing = 0, + }, + { + name = "staticmex", + x = 2936, + z = 8728, + facing = 0, + }, + { + name = "staticmex", + x = 3048, + z = 9160, + facing = 0, + }, + { + name = "striderdante", + x = 7797, + z = 6434, + facing = 1, + }, + { + name = "staticmex", + x = 3384, + z = 8920, + facing = 0, + }, + { + name = "staticmex", + x = 3496, + z = 9368, + facing = 0, + }, + { + name = "staticmex", + x = 6088, + z = 8408, + facing = 0, + }, + { + name = "staticmex", + x = 4152, + z = 8328, + facing = 0, + }, + { + name = "staticmex", + x = 6728, + z = 9080, + facing = 0, + }, + { + name = "staticmex", + x = 7176, + z = 9320, + facing = 0, + }, + { + name = "staticmex", + x = 7144, + z = 9784, + facing = 0, + }, + { + name = "staticmex", + x = 7528, + z = 9624, + facing = 0, + }, + { + name = "staticmex", + x = 2312, + z = 9032, + facing = 0, + }, + { + name = "staticmex", + x = 2040, + z = 9032, + facing = 0, + }, + { + name = "staticmex", + x = 8216, + z = 9416, + facing = 0, + }, + { + name = "staticmex", + x = 8488, + z = 9384, + facing = 0, + }, + { + name = "staticmex", + x = 2232, + z = 8440, + facing = 0, + }, + { + name = "staticmex", + x = 8440, + z = 9896, + facing = 0, + }, + { + name = "staticmex", + x = 2056, + z = 7496, + facing = 0, + }, + { + name = "staticmex", + x = 9320, + z = 9432, + facing = 0, + }, + { + name = "staticmex", + x = 9528, + z = 9080, + facing = 0, + }, + { + name = "staticmex", + x = 2152, + z = 6792, + facing = 0, + }, + { + name = "staticmex", + x = 9752, + z = 9448, + facing = 0, + }, + { + name = "staticmex", + x = 2168, + z = 6184, + facing = 0, + }, + { + name = "staticmex", + x = 2408, + z = 6152, + facing = 0, + }, + { + name = "staticmex", + x = 9768, + z = 8168, + facing = 0, + }, + { + name = "staticmex", + x = 2184, + z = 5736, + facing = 0, + }, + { + name = "staticmex", + x = 1256, + z = 6040, + facing = 0, + }, + { + name = "staticmex", + x = 8376, + z = 7800, + facing = 0, + }, + { + name = "staticmex", + x = 696, + z = 6072, + facing = 0, + }, + { + name = "staticmex", + x = 8376, + z = 8584, + facing = 0, + }, + { + name = "staticmex", + x = 936, + z = 5544, + facing = 0, + }, + { + name = "staticmex", + x = 1032, + z = 6872, + facing = 0, + }, + { + name = "staticmex", + x = 8328, + z = 6984, + facing = 0, + }, + { + name = "gunshipassault", + x = 2512, + z = 8073, + facing = 2, + }, + { + name = "staticmex", + x = 7992, + z = 6200, + facing = 0, + }, + { + name = "staticmex", + x = 952, + z = 8648, + facing = 0, + }, + { + name = "staticradar", + x = 9360, + z = 9440, + facing = 2, + }, + { + name = "staticmex", + x = 984, + z = 9448, + facing = 0, + }, + { + name = "turretaaflak", + x = 5016, + z = 8648, + facing = 2, + }, + { + name = "staticmex", + x = 840, + z = 9864, + facing = 0, + }, + { + name = "staticmex", + x = 7224, + z = 5624, + facing = 0, + }, + { + name = "staticmex", + x = 440, + z = 9528, + facing = 0, + }, + { + name = "shipcon", + x = 6458, + z = 5214, + facing = 2, + }, + { + name = "staticmex", + x = 2264, + z = 9752, + facing = 0, + }, + { + name = "staticmex", + x = 7336, + z = 7080, + facing = 0, + }, + { + name = "shiparty", + x = 6727, + z = 8004, + facing = 1, + }, + { + name = "turretlaser", + x = 7216, + z = 6208, + facing = 3, + }, + { + name = "staticmex", + x = 5240, + z = 6488, + facing = 0, + }, + { + name = "staticmex", + x = 3048, + z = 6712, + facing = 0, + }, + { + name = "staticmex", + x = 5256, + z = 5960, + facing = 0, + }, + { + name = "staticmex", + x = 3512, + z = 6776, + facing = 0, + }, + { + name = "staticmex", + x = 3928, + z = 6600, + facing = 0, + }, + { + name = "staticmex", + x = 3352, + z = 6344, + facing = 0, + }, + { + name = "hoverarty", + x = 9105, + z = 7671, + facing = 3, + }, + { + name = "turretmissile", + x = 5216, + z = 5584, + facing = 2, + }, + { + name = "staticmex", + x = 6056, + z = 5160, + facing = 0, + }, + { + name = "turretlaser", + x = 8256, + z = 9648, + facing = 2, + }, + { + name = "shipskirm", + x = 5552, + z = 8123, + facing = 2, + }, + { + name = "pw_metal", + x = 192, + z = 8528, + facing = 0, + }, + { + name = "pw_metal", + x = 2240, + z = 10096, + facing = 0, + }, + { + name = "pw_metal", + x = 8400, + z = 10128, + facing = 0, + }, + { + name = "pw_metal", + x = 10112, + z = 8656, + facing = 0, + }, + { + name = "energysingu", + x = 5720, + z = 10120, + facing = 0, + }, + { + name = "energysingu", + x = 4680, + z = 10184, + facing = 0, + }, + { + name = "energysingu", + x = 10168, + z = 10152, + facing = 0, + }, + { + name = "energysingu", + x = 88, + z = 10120, + facing = 0, + }, + { + name = "energypylon", + x = 9960, + z = 10008, + facing = 0, + }, + { + name = "energypylon", + x = 9240, + z = 10008, + facing = 0, + }, + { + name = "energypylon", + x = 7800, + z = 10008, + facing = 0, + }, + { + name = "energypylon", + x = 7080, + z = 10008, + facing = 0, + }, + { + name = "energypylon", + x = 6360, + z = 10008, + facing = 0, + }, + { + name = "energypylon", + x = 5640, + z = 10008, + facing = 0, + }, + { + name = "energypylon", + x = 3480, + z = 10008, + facing = 0, + }, + { + name = "energypylon", + x = 2760, + z = 10008, + facing = 0, + }, + { + name = "energypylon", + x = 2040, + z = 10008, + facing = 0, + }, + { + name = "energypylon", + x = 1320, + z = 10008, + facing = 0, + }, + { + name = "energypylon", + x = 600, + z = 10008, + facing = 0, + }, + { + name = "energypylon", + x = 600, + z = 9288, + facing = 0, + }, + { + name = "energypylon", + x = 1320, + z = 9288, + facing = 0, + }, + { + name = "energypylon", + x = 2760, + z = 9288, + facing = 0, + }, + { + name = "energypylon", + x = 3480, + z = 9288, + facing = 0, + }, + { + name = "energypylon", + x = 4200, + z = 9288, + facing = 0, + }, + { + name = "energypylon", + x = 4920, + z = 9288, + facing = 0, + }, + { + name = "energypylon", + x = 5640, + z = 9288, + facing = 0, + }, + { + name = "energypylon", + x = 6360, + z = 9288, + facing = 0, + }, + { + name = "energypylon", + x = 7080, + z = 9288, + facing = 0, + }, + { + name = "energypylon", + x = 7800, + z = 9288, + facing = 0, + }, + { + name = "energypylon", + x = 8520, + z = 9288, + facing = 0, + }, + { + name = "energypylon", + x = 9240, + z = 9288, + facing = 0, + }, + { + name = "energypylon", + x = 9960, + z = 9288, + facing = 0, + }, + { + name = "energypylon", + x = 9960, + z = 8568, + facing = 0, + }, + { + name = "energypylon", + x = 9240, + z = 8568, + facing = 0, + }, + { + name = "energypylon", + x = 8520, + z = 8568, + facing = 0, + }, + { + name = "energypylon", + x = 5640, + z = 8568, + facing = 0, + }, + { + name = "energypylon", + x = 4920, + z = 8568, + facing = 0, + }, + { + name = "energypylon", + x = 4200, + z = 8568, + facing = 0, + }, + { + name = "energypylon", + x = 3480, + z = 8568, + facing = 0, + }, + { + name = "energypylon", + x = 2760, + z = 8568, + facing = 0, + }, + { + name = "energypylon", + x = 2040, + z = 8568, + facing = 0, + }, + { + name = "energypylon", + x = 1320, + z = 8568, + facing = 0, + }, + { + name = "energypylon", + x = 600, + z = 8568, + facing = 0, + }, + { + name = "energypylon", + x = 4776, + z = 9976, + facing = 0, + }, + { + name = "factoryship", + x = 5840, + z = 8608, + facing = 2, + }, + { + name = "staticcon", + x = 5960, + z = 8568, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5960, 8568}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5832, 8607}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 6040, + z = 8568, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6040, 8568}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5832, 8607}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 6040, + z = 8648, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6040, 8648}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5832, 8607}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5960, + z = 8648, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5960, 8648}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5832, 8607}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5960, + z = 8728, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5960, 8728}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5832, 8607}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 6040, + z = 8728, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6040, 8728}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5832, 8607}, options = {"shift"}}, + }, + }, + { + name = "striderhub", + x = 4128, + z = 8976, + facing = 2, + }, + { + name = "staticcon", + x = 4024, + z = 8840, + facing = 2, + }, + { + name = "staticcon", + x = 3944, + z = 8840, + facing = 2, + }, + { + name = "staticcon", + x = 3944, + z = 8920, + facing = 2, + }, + { + name = "staticcon", + x = 4024, + z = 8920, + facing = 2, + }, + { + name = "staticcon", + x = 4024, + z = 9000, + facing = 2, + }, + { + name = "staticcon", + x = 3944, + z = 9000, + facing = 2, + }, + { + name = "factorygunship", + x = 1304, + z = 9608, + facing = 2, + }, + { + name = "staticcon", + x = 1272, + z = 9736, + facing = 2, + }, + { + name = "staticcon", + x = 1352, + z = 9736, + facing = 2, + }, + { + name = "staticcon", + x = 1352, + z = 9816, + facing = 2, + }, + { + name = "staticcon", + x = 1272, + z = 9816, + facing = 2, + }, + { + name = "factoryamph", + x = 3288, + z = 7144, + facing = 2, + }, + { + name = "staticcon", + x = 3256, + z = 7288, + facing = 2, + }, + { + name = "staticcon", + x = 3336, + z = 7288, + facing = 2, + }, + { + name = "staticcon", + x = 3336, + z = 7368, + facing = 2, + }, + { + name = "staticcon", + x = 3256, + z = 7368, + facing = 2, + }, + { + name = "factorytank", + x = 7120, + z = 7392, + facing = 2, + }, + { + name = "staticcon", + x = 7080, + z = 7528, + facing = 2, + }, + { + name = "staticcon", + x = 7160, + z = 7528, + facing = 2, + }, + { + name = "staticcon", + x = 7160, + z = 7608, + facing = 2, + }, + { + name = "staticcon", + x = 7080, + z = 7608, + facing = 2, + }, + { + name = "factoryhover", + x = 9552, + z = 8752, + facing = 2, + }, + { + name = "staticcon", + x = 9464, + z = 8920, + facing = 2, + }, + { + name = "staticcon", + x = 9544, + z = 8920, + facing = 2, + }, + { + name = "staticcon", + x = 9624, + z = 8920, + facing = 2, + }, + { + name = "staticcon", + x = 9704, + z = 8920, + facing = 2, + }, + { + name = "striderhub", + x = 1104, + z = 9808, + facing = 2, + }, + { + name = "striderhub", + x = 9760, + z = 9040, + facing = 2, + }, + { + name = "staticantinuke", + x = 8136, + z = 7504, + facing = 2, + }, + { + name = "staticantinuke", + x = 4936, + z = 8864, + facing = 2, + }, + { + name = "staticantinuke", + x = 1992, + z = 7056, + facing = 2, + }, + { + name = "staticheavyradar", + x = 2368, + z = 8096, + facing = 0, + }, + { + name = "staticheavyradar", + x = 8576, + z = 8080, + facing = 0, + }, + { + name = "staticshield", + x = 5008, + z = 8752, + facing = 2, + }, + { + name = "turretheavylaser", + x = 5272, + z = 8616, + facing = 2, + }, + { + name = "turretheavylaser", + x = 5048, + z = 8520, + facing = 2, + }, + { + name = "turretheavylaser", + x = 4760, + z = 8664, + facing = 2, + }, + { + name = "turretaaflak", + x = 4792, + z = 8856, + facing = 2, + }, + { + name = "turretaaflak", + x = 5256, + z = 8856, + facing = 2, + }, + { + name = "turretheavylaser", + x = 2712, + z = 6008, + facing = 2, + }, + { + name = "turretheavylaser", + x = 3000, + z = 6152, + facing = 2, + }, + { + name = "turretheavylaser", + x = 3224, + z = 6200, + facing = 2, + }, + { + name = "turretheavylaser", + x = 3528, + z = 6136, + facing = 2, + }, + { + name = "turretaalaser", + x = 3400, + z = 6232, + facing = 2, + }, + { + name = "turretaalaser", + x = 2824, + z = 6152, + facing = 2, + }, + { + name = "turretheavylaser", + x = 4872, + z = 5752, + facing = 2, + }, + { + name = "turretheavylaser", + x = 5112, + z = 5784, + facing = 2, + }, + { + name = "turretheavylaser", + x = 5336, + z = 5752, + facing = 2, + }, + { + name = "turretaalaser", + x = 4984, + z = 5832, + facing = 2, + }, + { + name = "turretaalaser", + x = 5224, + z = 5832, + facing = 2, + }, + { + name = "turretheavylaser", + x = 6840, + z = 5912, + facing = 2, + }, + { + name = "turretheavylaser", + x = 7112, + z = 6008, + facing = 2, + }, + { + name = "turretheavylaser", + x = 7352, + z = 6040, + facing = 2, + }, + { + name = "turretheavylaser", + x = 7608, + z = 5976, + facing = 2, + }, + { + name = "turretaalaser", + x = 7496, + z = 6040, + facing = 2, + }, + { + name = "turretaalaser", + x = 6952, + z = 6008, + facing = 2, + }, + { + name = "staticshield", + x = 6896, + z = 6128, + facing = 2, + }, + { + name = "staticshield", + x = 7504, + z = 6192, + facing = 2, + }, + { + name = "staticshield", + x = 3424, + z = 6384, + facing = 2, + }, + { + name = "staticshield", + x = 2752, + z = 6240, + facing = 2, + }, + { + name = "staticshield", + x = 5104, + z = 5856, + facing = 2, + }, + { + name = "shipcon", + x = 5883, + z = 7339, + facing = 2, + }, + { + name = "staticstorage", + x = 5016, + z = 8792, + facing = 2, + }, + { + name = "striderdante", + x = 6377, + z = 6466, + facing = 1, + }, + { + name = "staticradar", + x = 7184, + z = 9600, + facing = 2, + }, + { + name = "turrettorp", + x = 6152, + z = 5032, + facing = 3, + }, + { + name = "striderbantha", + x = 1104, + z = 9712, + facing = 0, + buildProgress = 0.85110003, + }, + { + name = "staticstorage", + x = 5064, + z = 8728, + facing = 2, + }, + { + name = "striderbantha", + x = 9799, + z = 8953, + facing = 1, + }, + { + name = "turrettorp", + x = 8328, + z = 7896, + facing = 3, + }, + { + name = "hoverraid", + x = 5455, + z = 5036, + facing = 3, + }, + { + name = "shiparty", + x = 4317, + z = 5107, + facing = 2, + }, + { + name = "hovercon", + x = 7965, + z = 9159, + facing = 2, + }, + { + name = "amphraid", + x = 5573, + z = 5023, + facing = 3, + }, + { + name = "shipcon", + x = 4897, + z = 7679, + facing = 1, + }, + { + name = "energywind", + x = 5992, + z = 8920, + facing = 2, + }, + { + name = "amphassault", + x = 6541, + z = 5532, + facing = 0, + }, + { + name = "staticradar", + x = 3856, + z = 6816, + facing = 2, + }, + { + name = "shipcon", + x = 5714, + z = 4971, + facing = 1, + }, + { + name = "energysolar", + x = 5144, + z = 8776, + facing = 2, + }, + { + name = "gunshipheavyskirm", + x = 5746, + z = 5592, + facing = 1, + }, + { + name = "turretlaser", + x = 6080, + z = 8592, + facing = 2, + }, + { + name = "shipassault", + x = 5494, + z = 7252, + facing = 2, + }, + { + name = "hovercon", + x = 7964, + z = 6882, + facing = 1, + }, + { + name = "turretlaser", + x = 8416, + z = 6912, + facing = 3, + }, + { + name = "turretlaser", + x = 7328, + z = 9456, + facing = 2, + }, + { + name = "amphraid", + x = 5616, + z = 4616, + facing = 0, + }, + { + name = "hoverarty", + x = 6180, + z = 6498, + facing = 1, + }, + { + name = "turrettorp", + x = 4088, + z = 8280, + facing = 2, + }, + { + name = "staticstorage", + x = 5208, + z = 8744, + facing = 2, + }, + { + name = "tankarty", + x = 8487, + z = 6633, + facing = 0, + }, + { + name = "turretlaser", + x = 2160, + z = 6880, + facing = 1, + }, + { + name = "amphcon", + x = 1872, + z = 5499, + facing = 2, + }, + { + name = "shipcon", + x = 5848, + z = 8831, + facing = 0, + }, + { + name = "striderbantha", + x = 4889, + z = 7349, + facing = 2, + }, + { + name = "hoverraid", + x = 5119, + z = 5086, + facing = 3, + }, + { + name = "staticradar", + x = 4192, + z = 8368, + facing = 2, + }, + { + name = "amphfloater", + x = 5126, + z = 7315, + facing = 1, + }, + { + name = "shipassault", + x = 5435, + z = 7328, + facing = 2, + }, + { + name = "gunshipcon", + x = 2711, + z = 8108, + facing = 1, + }, + { + name = "tankcon", + x = 7213, + z = 5921, + facing = 2, + }, + { + name = "tankassault", + x = 8558, + z = 6184, + facing = 1, + }, + { + name = "staticstorage", + x = 5064, + z = 8680, + facing = 2, + }, + { + name = "amphaa", + x = 3416, + z = 6035, + facing = 2, + }, + { + name = "turretlaser", + x = 7184, + z = 6896, + facing = 3, + }, + { + name = "turretlaser", + x = 8416, + z = 8688, + facing = 2, + }, + { + name = "hovercon", + x = 9618, + z = 7584, + facing = 2, + }, + { + name = "amphcon", + x = 4278, + z = 6473, + facing = 3, + }, + { + name = "turrettorp", + x = 2008, + z = 7448, + facing = 1, + }, + { + name = "turretlaser", + x = 2208, + z = 6064, + facing = 1, + }, + { + name = "amphcon", + x = 1179, + z = 6612, + facing = 1, + }, + { + name = "staticradar", + x = 7008, + z = 7024, + facing = 3, + }, + { + name = "tankcon", + x = 7153, + z = 5636, + facing = 0, + }, + { + name = "turretlaser", + x = 848, + z = 9504, + facing = 2, + }, + { + name = "shipcon", + x = 4423, + z = 6184, + facing = 2, + }, + { + name = "energypylon", + x = 8152, + z = 7592, + facing = 3, + }, + { + name = "staticstorage", + x = 5160, + z = 8712, + facing = 2, + }, + { + name = "staticradar", + x = 2224, + z = 7632, + facing = 1, + }, + { + name = "tankheavyarty", + x = 7631, + z = 6361, + facing = 1, + }, + { + name = "hoverraid", + x = 6071, + z = 6331, + facing = 3, + }, + { + name = "amphcon", + x = 3486, + z = 5750, + facing = 3, + }, + { + name = "energysolar", + x = 2040, + z = 9336, + facing = 2, + }, + { + name = "staticradar", + x = 2352, + z = 6208, + facing = 1, + }, + { + name = "shipcon", + x = 5973, + z = 5181, + facing = 2, + }, + { + name = "turretlaser", + x = 9408, + z = 9232, + facing = 3, + }, + { + name = "staticradar", + x = 928, + z = 9680, + facing = 2, + }, + { + name = "energypylon", + x = 1832, + z = 7496, + facing = 1, + }, + { + name = "shipcon", + x = 5758, + z = 6880, + facing = 1, + }, + { + name = "gunshipheavyskirm", + x = 7495, + z = 7495, + facing = 1, + patrolRoute = { + {7496, 7496}, + {7365, 7365}, + }, + }, + { + name = "turrettorp", + x = 5976, + z = 8280, + facing = 2, + }, + { + name = "turretlaser", + x = 5120, + z = 9040, + facing = 2, + }, + { + name = "amphcon", + x = 6025, + z = 5220, + facing = 3, + }, + { + name = "turretlaser", + x = 1024, + z = 8560, + facing = 1, + }, + { + name = "turretlaser", + x = 5568, + z = 8592, + facing = 2, + }, + { + name = "turrettorp", + x = 8312, + z = 7816, + facing = 3, + }, + { + name = "staticradar", + x = 6032, + z = 8384, + facing = 2, + }, + { + name = "shipcon", + x = 5728, + z = 6777, + facing = 2, + }, + { + name = "tankcon", + x = 7176, + z = 5943, + facing = 2, + }, + { + name = "shipcon", + x = 5397, + z = 7537, + facing = 1, + }, + { + name = "hovercon", + x = 9685, + z = 7503, + facing = 3, + }, + { + name = "amphcon", + x = 5810, + z = 6568, + facing = 1, + }, + { + name = "tankcon", + x = 6880, + z = 6957, + facing = 0, + }, + { + name = "shipcon", + x = 5067, + z = 4888, + facing = 3, + }, + { + name = "energysolar", + x = 2040, + z = 9144, + facing = 2, + }, + { + name = "hoveraa", + x = 8613, + z = 6041, + facing = 1, + }, + { + name = "turretlaser", + x = 8224, + z = 6832, + facing = 3, + }, + { + name = "gunshipaa", + x = 7535, + z = 7122, + facing = 1, + }, + { + name = "amphcon", + x = 1792, + z = 5676, + facing = 2, + }, + { + name = "turretlaser", + x = 9824, + z = 8256, + facing = 3, + }, + { + name = "turretlaser", + x = 3824, + z = 6624, + facing = 2, + }, + { + name = "shipaa", + x = 4986, + z = 7516, + facing = 2, + }, + { + name = "energywind", + x = 8344, + z = 8072, + facing = 3, + }, + { + name = "turretlaser", + x = 8048, + z = 6272, + facing = 3, + }, + { + name = "tankassault", + x = 7929, + z = 6271, + facing = 2, + }, + { + name = "energywind", + x = 2040, + z = 9464, + facing = 2, + }, + { + name = "amphaa", + x = 3423, + z = 6077, + facing = 2, + }, + { + name = "amphimpulse", + x = 6264, + z = 6458, + facing = 1, + }, + { + name = "gunshipaa", + x = 8319, + z = 6762, + facing = 3, + }, + { + name = "turretlaser", + x = 928, + z = 5824, + facing = 1, + }, + { + name = "hoverraid", + x = 5295, + z = 5063, + facing = 3, + }, + { + name = "shiparty", + x = 6643, + z = 8052, + facing = 1, + }, + { + name = "turretlaser", + x = 7920, + z = 6464, + facing = 3, + }, + { + name = "turretlaser", + x = 2144, + z = 9808, + facing = 2, + }, + { + name = "turretlaser", + x = 3216, + z = 8800, + facing = 2, + }, + { + name = "staticmex", + x = 6904, + z = 7112, + facing = 0, + buildProgress = 0.2299, + }, + { + name = "tankcon", + x = 6349, + z = 6880, + facing = 3, + }, + { + name = "amphraid", + x = 5509, + z = 4681, + facing = 1, + }, + { + name = "gunshipcon", + x = 5638, + z = 5175, + facing = 2, + }, + { + name = "tankcon", + x = 5557, + z = 6846, + facing = 0, + }, + { + name = "shipskirm", + x = 5559, + z = 7063, + facing = 2, + }, + { + name = "amphraid", + x = 5621, + z = 4640, + facing = 1, + }, + { + name = "hoverassault", + x = 8202, + z = 7769, + facing = 3, + }, + { + name = "shiptorpraider", + x = 4685, + z = 7082, + facing = 2, + }, + { + name = "amphraid", + x = 5554, + z = 4700, + facing = 1, + }, + { + name = "amphraid", + x = 5620, + z = 4668, + facing = 1, + }, + { + name = "gunshipassault", + x = 4077, + z = 6983, + facing = 2, + }, + { + name = "amphraid", + x = 5644, + z = 4614, + facing = 1, + }, + { + name = "tankcon", + x = 8180, + z = 6245, + facing = 1, + }, + { + name = "shipcon", + x = 4511, + z = 6007, + facing = 0, + }, + { + name = "staticmex", + x = 5176, + z = 5576, + facing = 0, + }, + { + name = "amphcon", + x = 1755, + z = 5697, + facing = 2, + }, + { + name = "tankassault", + x = 8899, + z = 5975, + facing = 1, + }, + { + name = "turretmissile", + x = 7968, + z = 6080, + facing = 3, + }, + { + name = "energypylon", + x = 8328, + z = 6760, + facing = 3, + }, + { + name = "turretlaser", + x = 7328, + z = 5648, + facing = 3, + }, + { + name = "shipcon", + x = 5754, + z = 7250, + facing = 1, + }, + { + name = "turretlaser", + x = 2192, + z = 8816, + facing = 2, + }, + { + name = "striderscorpion", + x = 4564, + z = 8736, + facing = 1, + }, + { + name = "amphraid", + x = 5249, + z = 5264, + facing = 3, + }, + { + name = "hoverraid", + x = 5812, + z = 6349, + facing = 3, + }, + { + name = "turretlaser", + x = 5408, + z = 5968, + facing = 2, + }, + { + name = "staticradar", + x = 6032, + z = 5392, + facing = 3, + }, + { + name = "amphcon", + x = 4495, + z = 5759, + facing = 1, + }, + { + name = "shipcon", + x = 5929, + z = 7367, + facing = 2, + }, + { + name = "tankassault", + x = 8226, + z = 6204, + facing = 1, + }, + { + name = "turretmissile", + x = 8240, + z = 7040, + facing = 3, + }, + { + name = "shipskirm", + x = 6544, + z = 8009, + facing = 3, + }, + { + name = "hovercon", + x = 8120, + z = 9252, + facing = 3, + }, + { + name = "staticcon", + x = 9768, + z = 9176, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9792, 8943}, options = {"shift"}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9768, 9176}, options = {"shift"}}, + }, + }, + { + name = "amphcon", + x = 2951, + z = 8020, + facing = 0, + }, + { + name = "shipcarrier", + x = 4160, + z = 8832, + facing = 0, + buildProgress = 0.69440001, + }, + { + name = "shipassault", + x = 5245, + z = 7680, + facing = 2, + }, + { + name = "amphcon", + x = 3320, + z = 6114, + facing = 2, + }, + { + name = "hovercon", + x = 9495, + z = 7113, + facing = 2, + }, + { + name = "tankaa", + x = 7728, + z = 6522, + facing = 1, + }, + { + name = "turretmissile", + x = 6016, + z = 5184, + facing = 3, + }, + { + name = "amphaa", + x = 3456, + z = 6284, + facing = 2, + }, + { + name = "turretlaser", + x = 976, + z = 6896, + facing = 1, + }, + { + name = "turretheavylaser", + x = 7112, + z = 5784, + facing = 3, + buildProgress = 0.88029999, + }, + { + name = "amphcon", + x = 3051, + z = 7705, + facing = 0, + }, + { + name = "hoveraa", + x = 9632, + z = 8389, + facing = 2, + }, + { + name = "energywind", + x = 1928, + z = 7912, + facing = 1, + }, + { + name = "amphaa", + x = 3272, + z = 6641, + facing = 2, + }, + { + name = "striderdante", + x = 3383, + z = 6623, + facing = 1, + }, + { + name = "gunshipaa", + x = 1477, + z = 9408, + facing = 2, + }, + { + name = "turrettorp", + x = 1944, + z = 5416, + facing = 1, + buildProgress = 0.69999999, + }, + { + name = "tankaa", + x = 7120, + z = 7364, + facing = 2, + buildProgress = 0.63270003, + }, + { + name = "staticcon", + x = 5944, + z = 5288, + facing = 3, + buildProgress = 0.33399999, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5944, 5288}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5919, 5263}, options = {"shift"}}, + }, + }, + { + name = "staticmex", + x = 8248, + z = 6152, + facing = 0, + buildProgress = 0.87330002, + }, + { + name = "gunshipaa", + x = 1304, + z = 9607, + facing = 0, + buildProgress = 0.1567, + }, + { + name = "shipskirm", + x = 5832, + z = 8607, + facing = 2, + }, + { + name = "hoveraa", + x = 9551, + z = 8784, + facing = 2, + buildProgress = 0.27990001, + }, + { + name = "amphaa", + x = 3288, + z = 7108, + facing = 2, + buildProgress = 0.37220001, + }, + } + }, + }, + defeatConditionConfig = { + [0] = { }, + [1] = { + ignoreUnitLossDefeat = false, + vitalCommanders = false, + vitalUnitTypes = { + "energysingu", + "pw_metal", + }, + loseAfterSeconds = false, + allyTeamLossObjectiveID = 1, + }, + }, + objectiveConfig = { + -- This is just related to displaying objectives on the UI. + [1] = { + description = "Destroy all enemy Singularity Reactors and Ancient Fabricators", + }, + [2] = { + description = "Protect your Commander", + }, + }, + bonusObjectiveConfig = { + [1] = { + satisfyForever = true, + failOnUnitLoss = true, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 0, + unitTypes = { + "striderdetriment", + }, + image = planetUtilities.ICON_DIR .. "striderdetriment.png", + imageOverlay = planetUtilities.ICON_OVERLAY.GUARD, + description = "Don't lose any Detriments", + experience = planetUtilities.BONUS_EXP, + }, + [2] = { + victoryByTime = 30*60, + image = planetUtilities.ICON_OVERLAY.CLOCK, + description = "Win by 30:00", + experience = planetUtilities.BONUS_EXP, + }, } }, completionReward = { diff --git a/campaign/sample/planets/planet66.lua b/campaign/sample/planets/planet66.lua index b6277f187..b5f3b9dd6 100644 --- a/campaign/sample/planets/planet66.lua +++ b/campaign/sample/planets/planet66.lua @@ -7,7 +7,7 @@ local function GetPlanet(planetUtilities, planetID) local image = LUA_DIRNAME .. "images/planets/desert02.png" local planetData = { - name = "Ulka Cadere", + name = "Caderical", startingPlanet = false, mapDisplay = { x = (planetUtilities.planetPositions and planetUtilities.planetPositions[planetID][1]) or 0.77, @@ -24,15 +24,29 @@ local function GetPlanet(planetUtilities, planetID) primary = "Taolis", primaryType = "G4V", milRating = 1, - text = [[Two duelling Zenith meteor controllers threaten to reduce this planet to space dust. Sneak into the enemy base and destroy their Zenith so you'll at least have the satisfaction of being the owner of that space dust.]] + feedbackLink = "http://zero-k.info/Forum/Thread/24642", + text = [[Two duelling Zenith meteor controllers threaten to reduce this planet to space dust. If you can destroy the enemy Zenith, you'll at least have the satisfaction of being the owner of that space dust.]] + }, + tips = { + { + image = "unitpics/zenith.png", + text = [[The Zenith collects meteors from orbit and holds them in reserve until given an attack order, whereupon it flings all its collected meteors (and any new ones) at the target. Be warned that if you collect too many meteors, they might fall on your base instead.]] + }, + { + image = "unitpics/cloakassault.png", + text = [[You have a wide variety of units spread out across the battlefield. Pause the game when you enter the battle to take stock, and later on when you need to give many orders at once.]] + }, + { + image = "unitpics/cremcom.png", + text = [[This is one of the final missions of the campaign. If you don't have some of the other late-game unit unlocks it might be very hard!]] + }, }, gameConfig = { mapName = "Lost_v2", playerConfig = { - startX = 100, - startZ = 100, + startX = 9650, + startZ = 3950, allyTeam = 0, - facplop = false, commanderParameters = { facplop = false, defeatIfDestroyedObjectiveID = 2, @@ -41,12 +55,1168 @@ local function GetPlanet(planetUtilities, planetID) "zenith" }, startUnits = { + { + name = "zenith", + x = 10080, + z = 4000, + facing = 3, + }, + { + name = "energygeo", + x = 9416, + z = 3912, + facing = 3, + }, + { + name = "staticmex", + x = 6360, + z = 6808, + facing = 3, + }, + { + name = "staticmex", + x = 6344, + z = 7672, + facing = 3, + }, + { + name = "staticmex", + x = 9448, + z = 2824, + facing = 0, + }, + { + name = "staticmex", + x = 9624, + z = 3128, + facing = 0, + }, + { + name = "staticmex", + x = 9224, + z = 3144, + facing = 0, + }, + { + name = "staticmex", + x = 9544, + z = 6888, + facing = 0, + }, + { + name = "staticmex", + x = 9224, + z = 7128, + facing = 0, + }, + { + name = "staticmex", + x = 9560, + z = 7336, + facing = 0, + }, + { + name = "staticmex", + x = 8264, + z = 3192, + facing = 0, + }, + { + name = "staticmex", + x = 8008, + z = 2840, + facing = 0, + }, + { + name = "staticmex", + x = 7784, + z = 3224, + facing = 0, + }, + { + name = "staticmex", + x = 7928, + z = 7400, + facing = 0, + }, + { + name = "staticmex", + x = 7768, + z = 7080, + facing = 0, + }, + { + name = "staticmex", + x = 7544, + z = 7400, + facing = 0, + }, + { + name = "staticmex", + x = 7896, + z = 968, + facing = 0, + }, + { + name = "staticmex", + x = 7928, + z = 648, + facing = 0, + }, + { + name = "staticmex", + x = 7512, + z = 872, + facing = 0, + }, + { + name = "staticmex", + x = 7848, + z = 5000, + facing = 0, + }, + { + name = "staticmex", + x = 7992, + z = 4664, + facing = 0, + }, + { + name = "staticmex", + x = 7528, + z = 4712, + facing = 0, + }, + { + name = "staticmex", + x = 9560, + z = 888, + facing = 0, + }, + { + name = "staticmex", + x = 9880, + z = 776, + facing = 0, + }, + { + name = "staticmex", + x = 9592, + z = 504, + facing = 0, + }, + { + name = "staticmex", + x = 9032, + z = 4728, + facing = 0, + }, + { + name = "staticmex", + x = 9480, + z = 4792, + facing = 0, + }, + { + name = "staticmex", + x = 9208, + z = 5160, + facing = 0, + }, + { + name = "energyheavygeo", + x = 7624, + z = 3944, + facing = 0, + }, + { + name = "energywind", + x = 9496, + z = 7304, + facing = 0, + }, + { + name = "energywind", + x = 9576, + z = 7192, + facing = 0, + }, + { + name = "energywind", + x = 9560, + z = 7112, + facing = 0, + }, + { + name = "energywind", + x = 9416, + z = 7224, + facing = 0, + }, + { + name = "energysolar", + x = 7608, + z = 824, + facing = 0, + }, + { + name = "energysolar", + x = 7752, + z = 776, + facing = 0, + }, + { + name = "energysolar", + x = 7896, + z = 744, + facing = 0, + }, + { + name = "energysolar", + x = 7816, + z = 920, + facing = 0, + }, + { + name = "energypylon", + x = 7768, + z = 3480, + facing = 0, + }, + { + name = "energypylon", + x = 7720, + z = 4440, + facing = 0, + }, + { + name = "energysolar", + x = 7624, + z = 4808, + facing = 0, + }, + { + name = "energysolar", + x = 7752, + z = 4936, + facing = 0, + }, + { + name = "energysolar", + x = 7880, + z = 3144, + facing = 0, + }, + { + name = "energysolar", + x = 7944, + z = 4888, + facing = 0, + }, + { + name = "energysolar", + x = 7944, + z = 2968, + facing = 0, + }, + { + name = "energysolar", + x = 8056, + z = 4744, + facing = 0, + }, + { + name = "energysolar", + x = 8088, + z = 2952, + facing = 0, + }, + { + name = "energysolar", + x = 8168, + z = 3096, + facing = 0, + }, + { + name = "energywind", + x = 9080, + z = 4776, + facing = 0, + }, + { + name = "energywind", + x = 9128, + z = 4856, + facing = 0, + }, + { + name = "energywind", + x = 9160, + z = 4936, + facing = 0, + }, + { + name = "energywind", + x = 9240, + z = 5096, + facing = 0, + }, + { + name = "energywind", + x = 9208, + z = 5016, + facing = 0, + }, + { + name = "energywind", + x = 9304, + z = 5080, + facing = 0, + }, + { + name = "energywind", + x = 9320, + z = 3112, + facing = 0, + }, + { + name = "energywind", + x = 9336, + z = 5000, + facing = 0, + }, + { + name = "energywind", + x = 9368, + z = 3032, + facing = 0, + }, + { + name = "energywind", + x = 9432, + z = 2952, + facing = 0, + }, + { + name = "energywind", + x = 9384, + z = 4920, + facing = 0, + }, + { + name = "energywind", + x = 9416, + z = 4840, + facing = 0, + }, + { + name = "energywind", + x = 9480, + z = 2872, + facing = 0, + }, + { + name = "energywind", + x = 9512, + z = 2968, + facing = 0, + }, + { + name = "energywind", + x = 9592, + z = 3048, + facing = 0, + }, + { + name = "turretheavylaser", + x = 9784, + z = 4280, + facing = 0, + }, + { + name = "energywind", + x = 9544, + z = 6952, + facing = 0, + }, + { + name = "energywind", + x = 9560, + z = 7032, + facing = 0, + }, + { + name = "turretheavylaser", + x = 9720, + z = 3592, + facing = 2, + }, + { + name = "energywind", + x = 9576, + z = 7272, + facing = 0, + }, + { + name = "energywind", + x = 9352, + z = 7144, + facing = 0, + }, + { + name = "turretheavylaser", + x = 9192, + z = 3896, + facing = 3, + }, + { + name = "energywind", + x = 9272, + z = 7064, + facing = 0, + }, + { + name = "turretaalaser", + x = 9432, + z = 3720, + facing = 2, + }, + { + name = "turretaalaser", + x = 9416, + z = 4088, + facing = 0, + }, + { + name = "energysolar", + x = 7800, + z = 7176, + facing = 0, + }, + { + name = "energysolar", + x = 7880, + z = 7320, + facing = 0, + }, + { + name = "energysolar", + x = 7736, + z = 7288, + facing = 0, + }, + { + name = "energysolar", + x = 7592, + z = 7304, + facing = 0, + }, + { + name = "striderscorpion", + x = 9745, + z = 3836, + facing = 3, + }, + { + name = "striderdante", + x = 9726, + z = 4115, + facing = 0, + }, + { + name = "striderarty", + x = 9808, + z = 3987, + facing = 3, + }, + { + name = "staticantinuke", + x = 8904, + z = 6304, + facing = 0, + }, + { + name = "tankcon", + x = 8244, + z = 5123, + facing = 0, + }, + { + name = "turretaafar", + x = 7632, + z = 992, + facing = 3, + }, + { + name = "turretheavylaser", + x = 7336, + z = 1048, + facing = 3, + }, + { + name = "turretriot", + x = 7336, + z = 632, + facing = 3, + }, + { + name = "turretheavylaser", + x = 7864, + z = 456, + facing = 3, + }, + { + name = "turretriot", + x = 7720, + z = 1224, + facing = 3, + }, + { + name = "tankcon", + x = 8352, + z = 5110, + facing = 0, + }, + { + name = "staticantinuke", + x = 9048, + z = 1920, + facing = 0, + }, + { + name = "turretheavylaser", + x = 7480, + z = 2600, + facing = 2, + }, + { + name = "turretriot", + x = 8072, + z = 7704, + facing = 3, + }, + { + name = "turretriot", + x = 7800, + z = 2520, + facing = 2, + }, + { + name = "turretheavylaser", + x = 7752, + z = 7688, + facing = 3, + }, + { + name = "turretriot", + x = 7352, + z = 3432, + facing = 3, + }, + { + name = "turretriot", + x = 7032, + z = 7224, + facing = 3, + }, + { + name = "turretheavylaser", + x = 7336, + z = 6680, + facing = 3, + }, + { + name = "turretriot", + x = 7288, + z = 4472, + facing = 3, + }, + { + name = "turretriot", + x = 7800, + z = 6440, + facing = 3, + }, + { + name = "turretaafar", + x = 7520, + z = 7040, + facing = 3, + }, + { + name = "turretheavylaser", + x = 7816, + z = 5512, + facing = 3, + }, + { + name = "turretaaflak", + x = 8136, + z = 4984, + facing = 3, + }, + { + name = "factoryspider", + x = 8488, + z = 872, + facing = 3, + }, + { + name = "staticcon", + x = 8616, + z = 856, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8616, 856}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8591, 881}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8616, + z = 952, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8616, 952}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8591, 977}, options = {"shift"}}, + }, + }, + { + name = "turretaaflak", + x = 8024, + z = 3160, + facing = 3, + }, + { + name = "staticcon", + x = 8616, + z = 1048, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8616, 1048}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8591, 1073}, options = {"shift"}}, + }, + }, + { + name = "factorycloak", + x = 7808, + z = 6840, + facing = 3, + }, + { + name = "staticheavyradar", + x = 7296, + z = 2816, + facing = 3, + }, + { + name = "staticheavyradar", + x = 7264, + z = 4976, + facing = 3, + }, + { + name = "staticcon", + x = 9336, + z = 3352, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9336, 3352}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9311, 3377}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 9432, + z = 3352, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9432, 3352}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9407, 3377}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 9528, + z = 3352, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9528, 3352}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9503, 3377}, options = {"shift"}}, + }, + }, + { + name = "factorygunship", + x = 9464, + z = 3224, + facing = 3, + }, + { + name = "staticcon", + x = 7768, + z = 6968, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7768, 6968}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7743, 6943}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7864, + z = 6968, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7864, 6968}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7839, 6943}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7960, + z = 6968, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7960, 6968}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7935, 6943}, options = {"shift"}}, + }, + }, + { + name = "striderhub", + x = 9312, + z = 3248, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9312, 3248}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9287, 3273}, options = {"shift"}}, + }, + }, + { + name = "gunshipassault", + x = 9035, + z = 3213, + facing = 1, + }, + { + name = "gunshipheavyskirm", + x = 9082, + z = 3107, + facing = 1, + }, + { + name = "gunshipheavyskirm", + x = 9096, + z = 3342, + facing = 1, + }, + { + name = "gunshipheavytrans", + x = 9241, + z = 3244, + facing = 1, + }, + { + name = "gunshipheavytrans", + x = 9205, + z = 3060, + facing = 2, + }, + { + name = "cloakassault", + x = 7100, + z = 5492, + facing = 2, + }, + { + name = "cloakassault", + x = 7167, + z = 5684, + facing = 2, + }, + { + name = "cloakassault", + x = 7235, + z = 5876, + facing = 2, + }, + { + name = "cloakassault", + x = 7321, + z = 6041, + facing = 2, + }, + { + name = "cloakskirm", + x = 7285, + z = 5443, + facing = 2, + }, + { + name = "cloakskirm", + x = 7387, + z = 5816, + facing = 3, + }, + { + name = "cloakskirm", + x = 7325, + z = 5633, + facing = 3, + }, + { + name = "cloakskirm", + x = 7264, + z = 5347, + facing = 2, + }, + { + name = "cloakskirm", + x = 7301, + z = 5538, + facing = 3, + }, + { + name = "cloakskirm", + x = 7356, + z = 5724, + facing = 3, + }, + { + name = "cloakskirm", + x = 7416, + z = 5922, + facing = 3, + }, + { + name = "cloakskirm", + x = 7455, + z = 6002, + facing = 3, + }, + { + name = "spidercrabe", + x = 8252, + z = 1221, + facing = 0, + }, + { + name = "spiderassault", + x = 8140, + z = 1380, + facing = 0, + }, + { + name = "spiderassault", + x = 8198, + z = 1438, + facing = 0, + }, + { + name = "spiderassault", + x = 8261, + z = 1501, + facing = 0, + }, + { + name = "spiderassault", + x = 8325, + z = 1546, + facing = 0, + }, + { + name = "spideremp", + x = 8150, + z = 1313, + facing = 0, + }, + { + name = "spideremp", + x = 8209, + z = 1347, + facing = 0, + }, + { + name = "spiderriot", + x = 8281, + z = 1452, + facing = 0, + }, + { + name = "spiderriot", + x = 8351, + z = 1396, + facing = 0, + }, + { + name = "cloakassault", + x = 7176, + z = 1525, + facing = 0, + }, + { + name = "cloakassault", + x = 7136, + z = 1719, + facing = 0, + }, + { + name = "cloakassault", + x = 7135, + z = 1904, + facing = 0, + }, + { + name = "cloakriot", + x = 7346, + z = 1573, + facing = 0, + }, + { + name = "cloakriot", + x = 7318, + z = 1733, + facing = 0, + }, + { + name = "cloakriot", + x = 7296, + z = 1913, + facing = 0, + }, + { + name = "spiderskirm", + x = 8540, + z = 6494, + facing = 0, + }, + { + name = "spiderskirm", + x = 8512, + z = 6647, + facing = 0, + }, + { + name = "spiderskirm", + x = 8487, + z = 6839, + facing = 0, + }, + { + name = "spideremp", + x = 8414, + z = 6490, + facing = 0, + }, + { + name = "spideremp", + x = 8406, + z = 6645, + facing = 0, + }, + { + name = "spideremp", + x = 8384, + z = 6809, + facing = 0, + }, + { + name = "tankassault", + x = 6944, + z = 1667, + facing = 0, + }, + { + name = "tankriot", + x = 7000, + z = 5677, + facing = 0, + }, + { + name = "tankriot", + x = 7109, + z = 5952, + facing = 0, + }, + { + name = "tankaa", + x = 7465, + z = 5470, + facing = 0, + }, + { + name = "tankaa", + x = 7524, + z = 5767, + facing = 0, + }, + { + name = "tankaa", + x = 7528, + z = 1817, + facing = 0, + }, + { + name = "spideraa", + x = 8353, + z = 1270, + facing = 0, + }, + { + name = "cloakcon", + x = 7694, + z = 6683, + facing = 2, + }, + { + name = "cloakcon", + x = 7672, + z = 6698, + facing = 2, + }, + { + name = "cloakcon", + x = 7680, + z = 6724, + facing = 2, + }, + { + name = "turretriot", + x = 7224, + z = 3864, + facing = 3, + }, + { + name = "energywind", + x = 9640, + z = 568, + facing = 3, + }, + { + name = "energywind", + x = 9640, + z = 648, + facing = 3, + }, + { + name = "energywind", + x = 9624, + z = 728, + facing = 3, + }, + { + name = "energywind", + x = 9624, + z = 808, + facing = 3, + }, + { + name = "energywind", + x = 9624, + z = 888, + facing = 3, + }, + { + name = "energywind", + x = 9688, + z = 840, + facing = 3, + }, + { + name = "spidercon", + x = 8297, + z = 926, + facing = 3, + }, + { + name = "energywind", + x = 9768, + z = 776, + facing = 3, + }, + { + name = "spidercon", + x = 8400, + z = 1016, + facing = 0, + }, + { + name = "energywind", + x = 9848, + z = 712, + facing = 3, + }, + { + name = "staticmex", + x = 6168, + z = 472, + facing = 3, + }, + { + name = "staticmex", + x = 6600, + z = 1560, + facing = 3, + }, + { + name = "staticcon", + x = 8440, + z = 4664, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8440, 4664}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8415, 4639}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8440, + z = 4760, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8440, 4760}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8415, 4735}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8440, + z = 4856, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8440, 4856}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8415, 4831}, options = {"shift"}}, + }, + }, + { + name = "factorytank", + x = 8304, + z = 4784, + facing = 0, + }, + { + name = "staticmex", + x = 6776, + z = 3880, + facing = 3, + }, + { + name = "staticmex", + x = 6664, + z = 4872, + facing = 3, + }, + { + name = "staticmex", + x = 6760, + z = 5912, + facing = 3, + }, } }, aiConfig = { { - startX = 4000, - startZ = 75, + startX = 200, + startZ = 4400, aiLib = "Circuit_difficulty_autofill", humanName = "Enemy", bitDependant = true, @@ -55,29 +1225,1660 @@ local function GetPlanet(planetUtilities, planetID) }, allyTeam = 1, unlocks = { + "zenith", + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energyheavygeo", + "energysingu", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "staticrearm", + "turretaafar", + "turretheavy", + "staticnuke", + "staticheavyarty", + "staticarty", + "factorycloak", + "cloakcon", "cloakraid", + "cloakriot", + "cloakskirm", + "cloakassault", + "cloakaa", + "cloakarty", + "cloaksnipe", + "cloakheavyraid", + "cloakbomb", + "factoryshield", + "shieldcon", + "shieldraid", + "shieldassault", + "shieldriot", + "shieldskirm", + "shieldbomb", + "shieldaa", + "shieldfelon", + "shieldshield", + "shieldarty", + "factoryplane", + "planecon", + "planescout", + "planefighter", + "planeheavyfighter", + "bomberprec", + "bomberdisarm", + "bomberheavy", + "factoryveh", + "vehcon", + "vehscout", + "vehraid", + "vehriot", + "vehassault", + "vehaa", + "vehsupport", + "veharty", + "vehheavyarty", + "vehcapture", + "factorygunship", + "gunshipcon", + "gunshipbomb", + "gunshipemp", + "gunshipaa", + "gunshipassault", + "gunshipheavyskirm", + "gunshipskirm", + "gunshipraid", + "gunshipkrow", + "factoryjump", + "jumpcon", + "jumpraid", + "jumpskirm", + "jumpassault", + "jumpsumo", + "jumparty", + "jumpblackhole", + "jumpaa", + "factoryspider", + "spidercon", + "spiderscout", + "spiderriot", + "spideremp", + "spiderskirm", + "spiderassault", + "spidercrabe", + "spiderantiheavy", + "spideraa", + "factoryhover", + "hovercon", + "hoverraid", + "hoverriot", + "hoverskirm", + "hoverassault", + "hoverdepthcharge", + "hoverarty", + "hoveraa", + "factorytank", + "tankcon", + "tankassault", + "tankheavyassault", + "tankarty", + "tankheavyarty", + "tankaa", + "tankriot", + "factoryamph", + "amphcon", + "amphraid", + "amphimpulse", + "amphfloater", + "amphriot", + "amphassault", + "amphbomb", + "amphaa", + "striderhub", + "striderdante", + "striderarty", + "striderscorpion", + "striderfunnelweb", + "striderantiheavy", + "striderbantha", }, - commanderLevel = 2, + commanderLevel = 7, commander = { - name = "Most Loyal Opposition", - chassis = "engineer", + name = "Ahes", + chassis = "recon", decorations = { - "skin_support_dark", - icon_overhead = { image = "UW" } }, - modules = { } + modules = { + "commweapon_flamethrower", + "commweapon_napalmgrenade", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_battle_drone", + "module_battle_drone", + "module_battle_drone", + "module_battle_drone", + "module_battle_drone", + "module_autorepair", + "module_autorepair", + "module_autorepair", + } }, startUnits = { + { + name = "zenith", + x = 160, + z = 4144, + facing = 3, + }, + { + name = "energygeo", + x = 776, + z = 4296, + facing = 3, + }, + { + name = "turretaaheavy", + x = 1040, + z = 4256, + facing = 3, + }, + { + name = "turretriot", + x = 472, + z = 3880, + facing = 2, + }, + { + name = "turretriot", + x = 24, + z = 3704, + facing = 2, + }, + { + name = "turretriot", + x = 504, + z = 4520, + facing = 0, + }, + { + name = "turretriot", + x = 24, + z = 4584, + facing = 0, + }, + { + name = "energywind", + x = 600, + z = 4200, + facing = 0, + }, + { + name = "energywind", + x = 520, + z = 4200, + facing = 0, + }, + { + name = "energywind", + x = 440, + z = 4200, + facing = 0, + }, + { + name = "energywind", + x = 440, + z = 4280, + facing = 0, + }, + { + name = "energywind", + x = 520, + z = 4280, + facing = 0, + }, + { + name = "energywind", + x = 600, + z = 4280, + facing = 0, + }, + { + name = "shieldraid", + x = 3294, + z = 4440, + facing = 1, + }, + { + name = "energywind", + x = 600, + z = 4360, + facing = 0, + }, + { + name = "energywind", + x = 520, + z = 4360, + facing = 0, + }, + { + name = "energywind", + x = 440, + z = 4360, + facing = 0, + }, + { + name = "staticmex", + x = 808, + z = 1272, + facing = 0, + }, + { + name = "shieldraid", + x = 3271, + z = 4423, + facing = 1, + }, + { + name = "staticmex", + x = 648, + z = 904, + facing = 0, + }, + { + name = "energypylon", + x = 824, + z = 3672, + facing = 0, + }, + { + name = "staticmex", + x = 1048, + z = 920, + facing = 0, + }, + { + name = "staticmex", + x = 936, + z = 3144, + facing = 0, + }, + { + name = "energywind", + x = 808, + z = 3432, + facing = 0, + }, + { + name = "energywind", + x = 840, + z = 3352, + facing = 0, + }, + { + name = "energywind", + x = 872, + z = 3272, + facing = 0, + }, + { + name = "energywind", + x = 904, + z = 3192, + facing = 0, + }, + { + name = "energywind", + x = 984, + z = 3224, + facing = 0, + }, + { + name = "energywind", + x = 1016, + z = 3304, + facing = 0, + }, + { + name = "staticmex", + x = 2456, + z = 856, + facing = 0, + }, + { + name = "energywind", + x = 1064, + z = 3384, + facing = 0, + }, + { + name = "energywind", + x = 1096, + z = 3464, + facing = 0, + }, + { + name = "staticmex", + x = 2456, + z = 1208, + facing = 0, + }, + { + name = "staticmex", + x = 2872, + z = 1000, + facing = 0, + }, + { + name = "energypylon", + x = 872, + z = 4920, + facing = 0, + }, + { + name = "energywind", + x = 1000, + z = 5416, + facing = 0, + }, + { + name = "energywind", + x = 1016, + z = 5336, + facing = 0, + }, + { + name = "energywind", + x = 1016, + z = 5256, + facing = 0, + }, + { + name = "energywind", + x = 1032, + z = 5176, + facing = 0, + }, + { + name = "staticmex", + x = 2328, + z = 3272, + facing = 0, + }, + { + name = "energywind", + x = 1048, + z = 5096, + facing = 0, + }, + { + name = "energywind", + x = 1048, + z = 5016, + facing = 0, + }, + { + name = "staticmex", + x = 2568, + z = 3544, + facing = 0, + }, + { + name = "energywind", + x = 696, + z = 5208, + facing = 0, + }, + { + name = "energywind", + x = 776, + z = 5288, + facing = 0, + }, + { + name = "staticmex", + x = 2152, + z = 3592, + facing = 0, + }, + { + name = "energywind", + x = 840, + z = 5368, + facing = 0, + }, + { + name = "energywind", + x = 920, + z = 5448, + facing = 0, + }, + { + name = "staticmex", + x = 1176, + z = 3480, + facing = 0, + }, + { + name = "staticmex", + x = 728, + z = 3480, + facing = 0, + }, + { + name = "staticmex", + x = 1112, + z = 4984, + facing = 0, + }, + { + name = "staticmex", + x = 984, + z = 5496, + facing = 0, + }, + { + name = "energywind", + x = 888, + z = 1224, + facing = 0, + }, + { + name = "staticmex", + x = 616, + z = 5192, + facing = 0, + }, + { + name = "energywind", + x = 920, + z = 1144, + facing = 0, + }, + { + name = "energywind", + x = 952, + z = 1064, + facing = 0, + }, + { + name = "energywind", + x = 984, + z = 984, + facing = 0, + }, + { + name = "energywind", + x = 760, + z = 1208, + facing = 0, + }, + { + name = "energywind", + x = 744, + z = 1128, + facing = 0, + }, + { + name = "staticmex", + x = 2056, + z = 5096, + facing = 0, + }, + { + name = "energywind", + x = 728, + z = 1048, + facing = 0, + }, + { + name = "energywind", + x = 712, + z = 968, + facing = 0, + }, + { + name = "staticmex", + x = 2328, + z = 5496, + facing = 0, + }, + { + name = "staticmex", + x = 2552, + z = 5032, + facing = 0, + }, + { + name = "staticmex", + x = 2600, + z = 7272, + facing = 0, + }, + { + name = "staticmex", + x = 2552, + z = 7576, + facing = 0, + }, + { + name = "staticmex", + x = 2200, + z = 7400, + facing = 0, + }, + { + name = "staticmex", + x = 776, + z = 7320, + facing = 0, + }, + { + name = "staticmex", + x = 680, + z = 7816, + facing = 0, + }, + { + name = "energywind", + x = 760, + z = 7400, + facing = 0, + }, + { + name = "energywind", + x = 744, + z = 7480, + facing = 0, + }, + { + name = "staticmex", + x = 280, + z = 7480, + facing = 0, + }, + { + name = "energywind", + x = 712, + z = 7560, + facing = 0, + }, + { + name = "energywind", + x = 696, + z = 7640, + facing = 0, + }, + { + name = "energywind", + x = 664, + z = 7720, + facing = 0, + }, + { + name = "energywind", + x = 600, + z = 7768, + facing = 0, + }, + { + name = "energywind", + x = 536, + z = 7688, + facing = 0, + }, + { + name = "energywind", + x = 472, + z = 7608, + facing = 0, + }, + { + name = "energywind", + x = 408, + z = 7528, + facing = 0, + }, + { + name = "energywind", + x = 344, + z = 7448, + facing = 0, + }, + { + name = "energysingu", + x = 56, + z = 7416, + facing = 0, + }, + { + name = "energypylon", + x = 424, + z = 7368, + facing = 0, + }, + { + name = "shieldraid", + x = 3270, + z = 4449, + facing = 2, + }, + { + name = "energysolar", + x = 2520, + z = 7336, + facing = 0, + }, + { + name = "energysolar", + x = 2472, + z = 7480, + facing = 0, + }, + { + name = "energysolar", + x = 2312, + z = 7432, + facing = 0, + }, + { + name = "energysingu", + x = 56, + z = 1048, + facing = 0, + }, + { + name = "energypylon", + x = 584, + z = 1144, + facing = 0, + }, + { + name = "staticshield", + x = 48, + z = 4048, + facing = 0, + }, + { + name = "staticshield", + x = 272, + z = 4048, + facing = 0, + }, + { + name = "staticshield", + x = 272, + z = 4288, + facing = 0, + }, + { + name = "staticshield", + x = 48, + z = 4288, + facing = 0, + }, + { + name = "staticantinuke", + x = 328, + z = 4176, + facing = 0, + }, + { + name = "energysolar", + x = 2152, + z = 5112, + facing = 0, + }, + { + name = "energysolar", + x = 2248, + z = 5256, + facing = 0, + }, + { + name = "energysolar", + x = 2360, + z = 5400, + facing = 0, + }, + { + name = "energysolar", + x = 2408, + z = 5224, + facing = 0, + }, + { + name = "energysolar", + x = 2472, + z = 5080, + facing = 0, + }, + { + name = "energyheavygeo", + x = 2616, + z = 4264, + facing = 0, + }, + { + name = "energysolar", + x = 2552, + z = 920, + facing = 0, + }, + { + name = "energysolar", + x = 2552, + z = 1064, + facing = 0, + }, + { + name = "energysolar", + x = 2552, + z = 1208, + facing = 0, + }, + { + name = "energysolar", + x = 2680, + z = 1080, + facing = 0, + }, + { + name = "energysolar", + x = 2808, + z = 952, + facing = 0, + }, + { + name = "energysolar", + x = 2328, + z = 3368, + facing = 0, + }, + { + name = "energysolar", + x = 2280, + z = 3512, + facing = 0, + }, + { + name = "energysolar", + x = 2232, + z = 3656, + facing = 0, + }, + { + name = "energysolar", + x = 2456, + z = 3496, + facing = 0, + }, + { + name = "staticantinuke", + x = 1224, + z = 1952, + facing = 0, + }, + { + name = "staticantinuke", + x = 1144, + z = 6656, + facing = 0, + }, + { + name = "staticradar", + x = 3056, + z = 1216, + facing = 3, + }, + { + name = "staticradar", + x = 2976, + z = 3696, + facing = 3, + }, + { + name = "staticradar", + x = 2912, + z = 4896, + facing = 3, + }, + { + name = "staticradar", + x = 2928, + z = 7184, + facing = 3, + }, + { + name = "energypylon", + x = 1144, + z = 7400, + facing = 1, + }, + { + name = "energypylon", + x = 2424, + z = 7320, + facing = 1, + }, + { + name = "energypylon", + x = 2248, + z = 4744, + facing = 1, + }, + { + name = "energypylon", + x = 1752, + z = 7288, + facing = 1, + }, + { + name = "energypylon", + x = 1656, + z = 5144, + facing = 1, + }, + { + name = "turretantiheavy", + x = 2880, + z = 7552, + facing = 1, + }, + { + name = "turretantiheavy", + x = 2752, + z = 7056, + facing = 1, + }, + { + name = "energypylon", + x = 1704, + z = 3544, + facing = 1, + }, + { + name = "turretheavy", + x = 2392, + z = 7736, + facing = 1, + }, + { + name = "energypylon", + x = 2488, + z = 3736, + facing = 1, + }, + { + name = "turretheavy", + x = 2408, + z = 6952, + facing = 1, + }, + { + name = "turretantiheavy", + x = 2976, + z = 3568, + facing = 1, + }, + { + name = "turretaafar", + x = 2240, + z = 7088, + facing = 1, + }, + { + name = "turretaafar", + x = 2224, + z = 7600, + facing = 1, + }, + { + name = "turretheavy", + x = 1160, + z = 3288, + facing = 1, + }, + { + name = "turretaafar", + x = 944, + z = 7440, + facing = 1, + }, + { + name = "energypylon", + x = 1512, + z = 1304, + facing = 1, + }, + { + name = "energypylon", + x = 2168, + z = 1144, + facing = 1, + }, + { + name = "energypylon", + x = 2776, + z = 1080, + facing = 1, + }, + { + name = "turretheavy", + x = 2744, + z = 584, + facing = 1, + }, + { + name = "turretheavy", + x = 2808, + z = 1576, + facing = 1, + }, + { + name = "turretantiheavy", + x = 2944, + z = 1328, + facing = 1, + }, + { + name = "turretantiheavy", + x = 3120, + z = 848, + facing = 1, + }, + { + name = "turretaafar", + x = 2640, + z = 1376, + facing = 1, + }, + { + name = "turretaafar", + x = 2672, + z = 784, + facing = 1, + }, + { + name = "turretaafar", + x = 1008, + z = 1504, + facing = 1, + }, + { + name = "turretaaflak", + x = 1976, + z = 3384, + facing = 1, + }, + { + name = "turretaaflak", + x = 1960, + z = 3592, + facing = 1, + }, + { + name = "turretaaflak", + x = 1864, + z = 5080, + facing = 1, + }, + { + name = "turretaaflak", + x = 1912, + z = 4904, + facing = 1, + }, + { + name = "energypylon", + x = 2520, + z = 5208, + facing = 1, + }, + { + name = "turretantiheavy", + x = 2976, + z = 5072, + facing = 1, + }, + { + name = "turretheavylaser", + x = 1416, + z = 3720, + facing = 1, + }, + { + name = "turretheavylaser", + x = 648, + z = 2984, + facing = 1, + }, + { + name = "turretheavy", + x = 1176, + z = 5320, + facing = 1, + }, + { + name = "turretheavylaser", + x = 792, + z = 5640, + facing = 1, + }, + { + name = "staticshield", + x = 2464, + z = 4256, + facing = 1, + }, + { + name = "turretheavy", + x = 3240, + z = 4248, + facing = 1, + }, + { + name = "energypylon", + x = 2824, + z = 4232, + facing = 1, + }, + { + name = "turretaaflak", + x = 2456, + z = 4024, + facing = 1, + }, + { + name = "striderbantha", + x = 329, + z = 1285, + facing = 0, + }, + { + name = "striderbantha", + x = 1851, + z = 6598, + facing = 0, + }, + { + name = "factoryspider", + x = 760, + z = 7064, + facing = 1, + }, + { + name = "staticcon", + x = 632, + z = 7016, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {632, 7016}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {657, 6991}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 632, + z = 7112, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {632, 7112}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {657, 7087}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 632, + z = 7208, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {632, 7208}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {657, 7183}, options = {"shift"}}, + }, + }, + { + name = "staticshield", + x = 64, + z = 7264, + facing = 1, + }, + { + name = "staticshield", + x = 80, + z = 7552, + facing = 1, + }, + { + name = "turretriot", + x = 200, + z = 7208, + facing = 1, + }, + { + name = "turretriot", + x = 216, + z = 7624, + facing = 1, + }, + { + name = "turretaaflak", + x = 216, + z = 7400, + facing = 1, + }, + { + name = "tankheavyassault", + x = 460, + z = 1341, + facing = 0, + }, + { + name = "tankheavyassault", + x = 286, + z = 1448, + facing = 0, + }, + { + name = "tankassault", + x = 1727, + z = 6620, + facing = 0, + }, + { + name = "tankassault", + x = 1931, + z = 6707, + facing = 0, + }, + { + name = "tankassault", + x = 1900, + z = 6437, + facing = 0, + }, + { + name = "spiderassault", + x = 986, + z = 7007, + facing = 0, + }, + { + name = "spiderassault", + x = 1062, + z = 7047, + facing = 0, + }, + { + name = "spiderassault", + x = 983, + z = 7164, + facing = 0, + }, + { + name = "spiderassault", + x = 1087, + z = 7212, + facing = 0, + }, + { + name = "spiderassault", + x = 1137, + z = 7131, + facing = 0, + }, + { + name = "spiderassault", + x = 1163, + z = 7031, + facing = 0, + }, + { + name = "staticshield", + x = 16, + z = 1216, + facing = 1, + }, + { + name = "spiderassault", + x = 1114, + z = 578, + facing = 0, + }, + { + name = "spiderassault", + x = 1134, + z = 281, + facing = 0, + }, + { + name = "spiderassault", + x = 1263, + z = 500, + facing = 0, + }, + { + name = "staticshield", + x = 16, + z = 912, + facing = 1, + }, + { + name = "spiderassault", + x = 1262, + z = 403, + facing = 0, + }, + { + name = "spiderassault", + x = 1322, + z = 217, + facing = 0, + }, + { + name = "turretriot", + x = 152, + z = 1256, + facing = 1, + }, + { + name = "turretriot", + x = 152, + z = 904, + facing = 1, + }, + { + name = "turretaaflak", + x = 200, + z = 1080, + facing = 1, + }, + { + name = "factoryspider", + x = 872, + z = 712, + facing = 1, + }, + { + name = "staticcon", + x = 744, + z = 584, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {744, 584}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {769, 609}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 744, + z = 680, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {744, 680}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {769, 705}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 744, + z = 776, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {744, 776}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {769, 801}, options = {"shift"}}, + }, + }, + { + name = "factoryveh", + x = 2544, + z = 2944, + facing = 1, + }, + { + name = "staticcon", + x = 2376, + z = 2920, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2376, 2920}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2401, 2945}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 2376, + z = 3016, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2376, 3016}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2401, 3041}, options = {"shift"}}, + }, + }, + { + name = "factorytank", + x = 2112, + z = 5792, + facing = 1, + }, + { + name = "staticcon", + x = 1960, + z = 5752, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1960, 5752}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1985, 5727}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 1960, + z = 5848, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1960, 5848}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1985, 5823}, options = {"shift"}}, + }, + }, + { + name = "factoryamph", + x = 3192, + z = 4024, + facing = 1, + }, + { + name = "staticcon", + x = 3032, + z = 4040, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3032, 4040}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3057, 4065}, options = {"shift"}}, + }, + }, + { + name = "factoryshield", + x = 3112, + z = 4480, + facing = 1, + }, + { + name = "staticcon", + x = 2952, + z = 4440, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2952, 4440}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2977, 4415}, options = {"shift"}}, + }, + }, + { + name = "amphassault", + x = 3587, + z = 4023, + facing = 1, + }, + { + name = "amphfloater", + x = 3421, + z = 4015, + facing = 1, + }, + { + name = "amphfloater", + x = 3436, + z = 4055, + facing = 1, + }, + { + name = "amphriot", + x = 3494, + z = 4084, + facing = 1, + }, + { + name = "vehsupport", + x = 2813, + z = 2927, + facing = 1, + }, + { + name = "amphriot", + x = 3703, + z = 4073, + facing = 1, + }, + { + name = "vehsupport", + x = 2764, + z = 2919, + facing = 1, + }, + { + name = "vehsupport", + x = 2797, + z = 3021, + facing = 1, + }, + { + name = "tankcon", + x = 2383, + z = 5795, + facing = 1, + }, + { + name = "tankarty", + x = 2468, + z = 5767, + facing = 1, + }, + { + name = "vehsupport", + x = 2762, + z = 2972, + facing = 1, + }, + { + name = "tankriot", + x = 2336, + z = 5833, + facing = 0, + }, + { + name = "vehsupport", + x = 2723, + z = 2993, + facing = 1, + }, + { + name = "tankriot", + x = 2319, + z = 5891, + facing = 2, + }, + { + name = "vehsupport", + x = 2696, + z = 2952, + facing = 2, + }, + { + name = "factorygunship", + x = 712, + z = 5016, + facing = 1, + }, + { + name = "staticcon", + x = 632, + z = 4920, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {632, 4920}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {657, 4895}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 728, + z = 4920, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {728, 4920}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {753, 4895}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 1032, + z = 3608, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1032, 3608}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1057, 3633}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 1128, + z = 3608, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1128, 3608}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1153, 3633}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 1128, + z = 3704, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1128, 3704}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1153, 3729}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 1032, + z = 3704, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1032, 3704}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1057, 3729}, options = {"shift"}}, + }, + }, + { + name = "striderhub", + x = 1232, + z = 3648, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1232, 3648}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1257, 3673}, options = {"shift"}}, + }, + }, + { + name = "shieldcon", + x = 3289, + z = 4468, + facing = 1, + }, + { + name = "shieldcon", + x = 3248, + z = 4411, + facing = 1, + }, + { + name = "shieldraid", + x = 3318, + z = 4448, + facing = 2, + }, + { + name = "shieldraid", + x = 3277, + z = 4397, + facing = 1, + }, } }, }, defeatConditionConfig = { - + -- Indexed by allyTeam. + [0] = { }, + [1] = { + ignoreUnitLossDefeat = false, + vitalCommanders = false, + vitalUnitTypes = { + "zenith", + "energysingu", + }, + loseAfterSeconds = false, + allyTeamLossObjectiveID = 1, + }, }, objectiveConfig = { -- This is just related to displaying objectives on the UI. + [1] = { + description = "Destroy the enemy Zenith and Singularity Reactors", + }, + [2] = { + description = "Protect your Commander", + }, }, bonusObjectiveConfig = { + [1] = { + satisfyOnce = true, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 2, + unitTypes = { + "zenith", + "raveparty", + "mahlazer", + }, + image = planetUtilities.ICON_DIR .. "zenith.png", + imageOverlay = planetUtilities.ICON_OVERLAY.REPAIR, + description = "Have two superweapons (Zenith, DRP, Starlight)", + experience = planetUtilities.BONUS_EXP, + }, + [2] = { + onlyCountRemovedUnits = true, + satisfyByTime = 10*60, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 2, + enemyUnitTypes = { + "striderbantha", + }, + image = planetUtilities.ICON_DIR .. "striderbantha.png", + imageOverlay = planetUtilities.ICON_OVERLAY.ATTACK, + description = "Destroy 2 enemy Paladins before 10:00", + experience = planetUtilities.BONUS_EXP, + }, } }, completionReward = { diff --git a/campaign/sample/planets/planet67.lua b/campaign/sample/planets/planet67.lua index 7a195ff8b..a2aa048cf 100644 --- a/campaign/sample/planets/planet67.lua +++ b/campaign/sample/planets/planet67.lua @@ -7,7 +7,7 @@ local function GetPlanet(planetUtilities, planetID) local image = LUA_DIRNAME .. "images/planets/terran03.png" local planetData = { - name = "Huanshi", + name = "Zhurou", startingPlanet = false, mapDisplay = { x = (planetUtilities.planetPositions and planetUtilities.planetPositions[planetID][1]) or 0.80, @@ -24,60 +24,2809 @@ local function GetPlanet(planetUtilities, planetID) primary = "Pallis", primaryType = "G4V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24642", text = [[You are facing a massive fleet of capital ships. Ensure your complete domination of the seas with the Disco Rave Party superweapon.]] }, + tips = { + { + image = "unitpics/raveparty.png", + text = [[The Disco Rave Party cannon fires a colourful variety of projectiles into enemy armies and bases. Like all superweapons it is unsubtle, but the DRP makes up for it with style.]] + }, + { + image = "unitpics/staticantinuke.png", + text = [[Your base currently lacks anti-nuke coverage. It would be prudent to correct this quickly.]] + }, + { + image = "unitpics/cremcom.png", + text = [[This is one of the final missions of the campaign. If you don't have some of the other late-game unit unlocks it might be very hard!]] + }, + }, gameConfig = { mapName = "Porky_Islands", playerConfig = { - startX = 100, - startZ = 100, + startX = 6100, + startZ = 1800, allyTeam = 0, - facplop = false, commanderParameters = { - facplop = false, + facplop = true, defeatIfDestroyedObjectiveID = 2, }, extraUnlocks = { - "raveparty" + "raveparty", + "staticantinuke", + "staticstorage", }, startUnits = { + { + name = "raveparty", + x = 6312, + z = 1912, + facing = 0, + terraformHeight = 247, + difficultyAtLeast = 1, + difficultyAtMost = 1, + buildProgress = 0.65, + }, + { + name = "raveparty", + x = 6312, + z = 1912, + facing = 0, + terraformHeight = 247, + difficultyAtLeast = 2, + difficultyAtMost = 2, + buildProgress = 0.55, + }, + { + name = "raveparty", + x = 6312, + z = 1912, + facing = 0, + terraformHeight = 247, + difficultyAtLeast = 3, + difficultyAtMost = 3, + buildProgress = 0.45, + }, + { + name = "raveparty", + x = 6312, + z = 1912, + facing = 0, + terraformHeight = 247, + difficultyAtLeast = 4, + difficultyAtMost = 4, + buildProgress = 0.35, + }, + -- { + -- name = "staticantinuke", + -- x = 6800, + -- z = 1580, + -- facing = 0, + -- }, + { + name = "staticstorage", + x = 5500, + z = 1650, + facing = 0, + }, + { + name = "staticstorage", + x = 7600, + z = 3500, + facing = 0, + }, + { + name = "staticstorage", + x = 8000, + z = 800, + facing = 0, + }, + { + name = "staticmex", + x = 7176, + z = 1304, + facing = 0, + }, + { + name = "staticmex", + x = 6696, + z = 1400, + facing = 0, + }, + { + name = "staticmex", + x = 6920, + z = 808, + facing = 0, + }, + { + name = "staticmex", + x = 7192, + z = 1816, + facing = 0, + }, + { + name = "staticmex", + x = 7416, + z = 328, + facing = 0, + }, + { + name = "staticmex", + x = 7784, + z = 776, + facing = 0, + }, + { + name = "staticmex", + x = 7864, + z = 1608, + facing = 0, + }, + { + name = "staticmex", + x = 7000, + z = 2824, + facing = 0, + }, + { + name = "staticmex", + x = 5368, + z = 920, + facing = 0, + }, + { + name = "staticmex", + x = 7048, + z = 3320, + facing = 0, + }, + { + name = "staticmex", + x = 4904, + z = 744, + facing = 0, + }, + { + name = "staticmex", + x = 7672, + z = 3352, + facing = 0, + }, + { + name = "staticmex", + x = 5128, + z = 424, + facing = 0, + }, + { + name = "staticmex", + x = 7880, + z = 3352, + facing = 0, + }, + { + name = "staticmex", + x = 4520, + z = 264, + facing = 0, + }, + { + name = "staticmex", + x = 7944, + z = 4008, + facing = 0, + }, + { + name = "staticmex", + x = 4408, + z = 184, + facing = 0, + }, + { + name = "staticmex", + x = 6184, + z = 3928, + facing = 0, + }, + { + name = "staticmex", + x = 5768, + z = 1832, + facing = 0, + }, + { + name = "staticmex", + x = 5480, + z = 2040, + facing = 0, + }, + { + name = "staticmex", + x = 6440, + z = 2824, + facing = 0, + }, + { + name = "staticmex", + x = 5240, + z = 2520, + facing = 0, + }, + { + name = "staticmex", + x = 5864, + z = 2632, + facing = 0, + }, + { + name = "energysingu", + x = 6936, + z = 56, + facing = 3, + }, + { + name = "energyfusion", + x = 8160, + z = 2968, + facing = 3, + }, + { + name = "energyfusion", + x = 8160, + z = 3240, + facing = 3, + }, + { + name = "energyfusion", + x = 8160, + z = 3528, + facing = 3, + }, + { + name = "energypylon", + x = 7128, + z = 536, + facing = 1, + }, + { + name = "energypylon", + x = 7688, + z = 1240, + facing = 1, + }, + { + name = "energypylon", + x = 7720, + z = 3832, + facing = 1, + }, + { + name = "energypylon", + x = 6776, + z = 1384, + facing = 1, + }, + { + name = "energypylon", + x = 6952, + z = 3352, + facing = 1, + }, + { + name = "energypylon", + x = 6232, + z = 696, + facing = 1, + }, + { + name = "energypylon", + x = 6216, + z = 2776, + facing = 1, + }, + { + name = "energypylon", + x = 5608, + z = 2248, + facing = 1, + }, + { + name = "energypylon", + x = 7336, + z = 2072, + facing = 1, + }, + { + name = "energypylon", + x = 5432, + z = 1496, + facing = 1, + }, + { + name = "energypylon", + x = 7784, + z = 2872, + facing = 1, + }, + { + name = "energypylon", + x = 5048, + z = 760, + facing = 1, + }, + { + name = "energypylon", + x = 4680, + z = 296, + facing = 1, + }, + { + name = "energypylon", + x = 5416, + z = 344, + facing = 1, + }, + { + name = "energypylon", + x = 6520, + z = 2200, + facing = 1, + }, + { + name = "energypylon", + x = 5944, + z = 1480, + facing = 1, + }, + { + name = "staticcon", + x = 6264, + z = 1688, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6264, 1688}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6239, 1713}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 6424, + z = 1672, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6424, 1672}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6399, 1697}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 6536, + z = 1752, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6536, 1752}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6511, 1777}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 6600, + z = 1864, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6600, 1864}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6575, 1889}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 6552, + z = 2008, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6552, 2008}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6527, 2033}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5880, + z = 3240, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5880, 3240}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5855, 3265}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 5944, + z = 3240, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5944, 3240}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5919, 3265}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 6008, + z = 3240, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6008, 3240}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {5983, 3265}, options = {"shift"}}, + }, + }, + { + name = "factoryship", + x = 5936, + z = 3408, + facing = 3, + }, + { + name = "factoryship", + x = 4544, + z = 1984, + facing = 0, + }, + { + name = "striderhub", + x = 4704, + z = 1888, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4704, 1888}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4679, 1913}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 4696, + z = 1976, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4696, 1976}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4671, 2001}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 4696, + z = 2056, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4696, 2056}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {4671, 2081}, options = {"shift"}}, + }, + }, + { + name = "energypylon", + x = 4456, + z = 1544, + facing = 0, + }, + { + name = "energypylon", + x = 3624, + z = 2072, + facing = 0, + }, + { + name = "energypylon", + x = 6760, + z = 4312, + facing = 0, + }, + { + name = "energypylon", + x = 6616, + z = 5064, + facing = 0, + }, + { + name = "turretheavy", + x = 3192, + z = 2392, + facing = 3, + terraformHeight = 193, + }, + { + name = "turretaalaser", + x = 3432, + z = 2424, + facing = 0, + }, + { + name = "turretaalaser", + x = 3112, + z = 2184, + facing = 3, + }, + { + name = "turretheavy", + x = 6280, + z = 5384, + facing = 0, + terraformHeight = 158, + }, + { + name = "turretaalaser", + x = 6472, + z = 5448, + facing = 0, + }, + { + name = "turretaalaser", + x = 6232, + z = 5176, + facing = 3, + }, + { + name = "turretheavy", + x = 5416, + z = 2696, + facing = 3, + terraformHeight = 90, + }, + { + name = "staticmex", + x = 8056, + z = 4200, + facing = 3, + }, + { + name = "turretgauss", + x = 7960, + z = 4344, + facing = 0, + }, + { + name = "turretgauss", + x = 8136, + z = 4360, + facing = 0, + }, + { + name = "turretgauss", + x = 5720, + z = 3000, + facing = 0, + }, + { + name = "staticheavyradar", + x = 4912, + z = 1296, + facing = 3, + }, + { + name = "turretgauss", + x = 5432, + z = 3048, + facing = 0, + }, + { + name = "turretgauss", + x = 5064, + z = 2792, + facing = 3, + }, + { + name = "turretgauss", + x = 5032, + z = 2488, + facing = 3, + }, + { + name = "turretgauss", + x = 4312, + z = 280, + facing = 3, + }, + { + name = "turretgauss", + x = 4232, + z = 72, + facing = 3, + }, + { + name = "turretaaflak", + x = 4552, + z = 792, + facing = 3, + }, + { + name = "turretaaflak", + x = 4840, + z = 1208, + facing = 3, + }, + { + name = "staticheavyradar", + x = 6864, + z = 3728, + facing = 3, + }, + { + name = "turretaaflak", + x = 5080, + z = 1640, + facing = 3, + }, + { + name = "turretaaflak", + x = 6136, + z = 3032, + facing = 0, + }, + { + name = "turretaaflak", + x = 6552, + z = 3480, + facing = 0, + }, + { + name = "turretaaflak", + x = 7736, + z = 4216, + facing = 0, + }, + { + name = "turretaaflak", + x = 7304, + z = 3992, + facing = 0, + }, + { + name = "turretheavylaser", + x = 7528, + z = 4168, + facing = 0, + }, + { + name = "turretheavylaser", + x = 7064, + z = 3832, + facing = 0, + }, + { + name = "turretheavylaser", + x = 6696, + z = 3592, + facing = 0, + }, + { + name = "turretheavylaser", + x = 5112, + z = 1912, + facing = 3, + }, + { + name = "turretheavylaser", + x = 6392, + z = 3160, + facing = 0, + }, + { + name = "turretheavylaser", + x = 4968, + z = 1464, + facing = 3, + }, + { + name = "turretheavylaser", + x = 4712, + z = 1048, + facing = 3, + }, + { + name = "turretheavylaser", + x = 4376, + z = 552, + facing = 3, + }, + { + name = "staticcon", + x = 6440, + z = 2168, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6440, 2168}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6415, 2193}, options = {"shift"}}, + }, + }, + { + name = "turretaafar", + x = 5728, + z = 1296, + facing = 3, + }, + { + name = "staticcon", + x = 6104, + z = 1720, + facing = 0, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6104, 1720}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6079, 1745}, options = {"shift"}}, + }, + }, + { + name = "turretaafar", + x = 7120, + z = 2208, + facing = 0, + }, + { + name = "subraider", + x = 4104, + z = 2945, + facing = 0, + }, + { + name = "subraider", + x = 4193, + z = 3018, + facing = 0, + }, + { + name = "subraider", + x = 4007, + z = 2861, + facing = 0, + }, + { + name = "subraider", + x = 3913, + z = 2776, + facing = 3, + }, + { + name = "subraider", + x = 3820, + z = 2690, + facing = 3, + }, + { + name = "subraider", + x = 5359, + z = 4117, + facing = 0, + }, + { + name = "subraider", + x = 4833, + z = 3640, + facing = 0, + }, + { + name = "subraider", + x = 4940, + z = 3775, + facing = 0, + }, + { + name = "subraider", + x = 5031, + z = 3851, + facing = 0, + }, + { + name = "subraider", + x = 5131, + z = 3953, + facing = 0, + }, + { + name = "subraider", + x = 5248, + z = 4038, + facing = 0, + }, + { + name = "shipcarrier", + x = 4795, + z = 2960, + facing = 0, + }, + { + name = "shipheavyarty", + x = 5080, + z = 3213, + facing = 0, + }, + { + name = "shipassault", + x = 4490, + z = 2942, + facing = 0, + }, + { + name = "shipassault", + x = 4648, + z = 2668, + facing = 0, + }, + { + name = "shiparty", + x = 5317, + z = 3308, + facing = 0, + }, + { + name = "shiparty", + x = 5200, + z = 3527, + facing = 0, + }, + { + name = "shipaa", + x = 5460, + z = 3581, + facing = 0, + }, + { + name = "shipaa", + x = 4423, + z = 2713, + facing = 0, + }, + { + name = "shipcon", + x = 5576, + z = 3403, + facing = 0, + }, + { + name = "shipcon", + x = 4386, + z = 2541, + facing = 0, + }, + { + name = "amphcon", + x = 5790, + z = 1970, + facing = 0, + }, + { + name = "amphcon", + x = 5853, + z = 1970, + facing = 0, + }, + { + name = "amphcon", + x = 5923, + z = 1970, + facing = 0, + }, + { + name = "amphriot", + x = 5741, + z = 2046, + facing = 0, + }, + { + name = "amphriot", + x = 5851, + z = 2074, + facing = 0, + }, + { + name = "amphriot", + x = 5981, + z = 2026, + facing = 0, + }, + { + name = "hoverskirm", + x = 6012, + z = 2552, + facing = 0, + }, + { + name = "hoverskirm", + x = 6116, + z = 2617, + facing = 0, + }, + { + name = "hoverskirm", + x = 6237, + z = 2564, + facing = 0, + }, + { + name = "hoverarty", + x = 6120, + z = 2492, + facing = 0, + }, + { + name = "staticmex", + x = 5592, + z = 4632, + facing = 0, + }, + { + name = "staticmex", + x = 5272, + z = 5528, + facing = 0, + }, + { + name = "staticmex", + x = 4184, + z = 2328, + facing = 0, + }, + { + name = "staticmex", + x = 6184, + z = 5880, + facing = 0, + }, + { + name = "staticmex", + x = 4168, + z = 1224, + facing = 0, + }, + { + name = "staticmex", + x = 5736, + z = 6696, + facing = 0, + }, + { + name = "staticmex", + x = 3240, + z = 360, + facing = 0, + }, + { + name = "staticmex", + x = 7192, + z = 7496, + facing = 0, + }, + { + name = "staticmex", + x = 2152, + z = 1672, + facing = 0, + }, + { + name = "staticmex", + x = 7944, + z = 6712, + facing = 0, + }, + { + name = "staticmex", + x = 8072, + z = 6376, + facing = 0, + }, + { + name = "staticmex", + x = 1272, + z = 1752, + facing = 0, + }, + { + name = "staticmex", + x = 7336, + z = 6088, + facing = 0, + }, + { + name = "staticmex", + x = 968, + z = 872, + facing = 0, + }, + { + name = "staticmex", + x = 7752, + z = 5000, + facing = 0, + }, + { + name = "staticmex", + x = 1864, + z = 2680, + facing = 0, + }, + { + name = "staticmex", + x = 3080, + z = 3032, + facing = 0, + }, } }, aiConfig = { { - startX = 4000, - startZ = 75, + startX = 330, + startZ = 7200, aiLib = "Circuit_difficulty_autofill", - humanName = "Enemy", + humanName = "Tasnext", bitDependant = true, commanderParameters = { facplop = false, }, allyTeam = 1, unlocks = { - "cloakraid", + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energyheavygeo", + "energysingu", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "staticrearm", + "turretaafar", + "turretheavy", + "staticnuke", + "staticheavyarty", + "staticarty", + "factoryship", + "shipcon", + "shipaa", + "shiparty", + "shipassault", + "shipriot", + "shipscout", + "shipskirm", + "shiptorpraider", + "subraider", + "factorygunship", + "gunshipcon", + "gunshipbomb", + "gunshipemp", + "gunshipaa", + "gunshipassault", + "gunshipheavyskirm", + "gunshipskirm", + "gunshipraid", + "gunshipkrow", + "factoryplane", + "planecon", + "planescout", + "planefighter", + "planeheavyfighter", + "bomberprec", + "bomberdisarm", + "bomberheavy", + "factoryhover", + "hovercon", + "hoverraid", + "hoverriot", + "hoverskirm", + "hoverassault", + "hoverdepthcharge", + "hoverarty", + "hoveraa", + "factoryamph", + "amphcon", + "amphraid", + "amphimpulse", + "amphfloater", + "amphriot", + "amphassault", + "amphbomb", + "amphaa", + "striderhub", + "shipcarrier", + "shipheavyarty", }, - commanderLevel = 2, + commanderLevel = 7, commander = { - name = "Most Loyal Opposition", - chassis = "engineer", + name = "Temos", + chassis = "recon", decorations = { - "skin_support_dark", - icon_overhead = { image = "UW" } + "skin_recon_leopard", + }, + modules = { + "commweapon_shotgun", + "commweapon_concussion", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_autorepair", + "module_autorepair", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_dmg_booster", + "module_dmg_booster", + "module_dmg_booster", + "module_dmg_booster", + "module_dmg_booster", + } + }, + midgameUnits = { + { + name = "shipcarrier", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 1*30*60, + orbitalDrop = true, + }, + { + name = "shipassault", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 1*30*60, + orbitalDrop = true, + }, + { + name = "shipaa", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 1*30*60, + orbitalDrop = true, + }, + { + name = "shipassault", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 1*30*60, + orbitalDrop = true, + }, + { + name = "shipassault", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 1*30*60, + orbitalDrop = true, + difficultyAtLeast = 2, + }, + { + name = "shipassault", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 1*30*60, + orbitalDrop = true, + difficultyAtLeast = 4, + }, + { + name = "shipcarrier", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 1*30*60, + orbitalDrop = true, + }, + { + name = "shipassault", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 1*30*60, + orbitalDrop = true, + }, + { + name = "shipassault", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 1*30*60, + orbitalDrop = true, + }, + { + name = "shipassault", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 1*30*60, + orbitalDrop = true, + }, + { + name = "shipaa", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 1*30*60, + orbitalDrop = true, + }, + { + name = "shipheavyarty", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = true, + difficultyAtLeast = 2, + }, + { + name = "shipassault", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = true, + }, + { + name = "shipaa", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = true, + }, + { + name = "bomberprec", + x = 5000, + z = 7800, + facing = 2, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = false, + }, + { + name = "bomberprec", + x = 5000, + z = 7800, + facing = 2, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = false, + }, + { + name = "bomberprec", + x = 5000, + z = 7800, + facing = 2, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = false, + }, + { + name = "bomberprec", + x = 5000, + z = 7800, + facing = 2, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = false, + }, + { + name = "bomberprec", + x = 5000, + z = 7800, + facing = 2, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = false, + difficultyAtLeast = 3, + }, + { + name = "bomberprec", + x = 5000, + z = 7800, + facing = 2, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = false, + difficultyAtLeast = 4, + }, + { + name = "shipheavyarty", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = true, + difficultyAtLeast = 4, + }, + { + name = "shipassault", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = true, + }, + { + name = "shipaa", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = true, + }, + { + name = "bomberprec", + x = 300, + z = 3500, + facing = 2, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = false, + }, + { + name = "bomberprec", + x = 300, + z = 3500, + facing = 2, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = false, + }, + { + name = "bomberprec", + x = 300, + z = 3500, + facing = 2, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = false, + }, + { + name = "bomberprec", + x = 300, + z = 3500, + facing = 2, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = false, + }, + { + name = "bomberprec", + x = 300, + z = 3500, + facing = 2, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = false, + difficultyAtLeast = 3, + }, + { + name = "bomberprec", + x = 300, + z = 3500, + facing = 2, + spawnRadius = 150, + delay = 2*30*60, + orbitalDrop = false, + difficultyAtLeast = 4, + }, + { + name = "hoverassault", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 3*30*60, + orbitalDrop = true, + }, + { + name = "hoverassault", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 3*30*60, + orbitalDrop = true, + }, + { + name = "hoverassault", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 3*30*60, + orbitalDrop = true, + }, + { + name = "hoverassault", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 3*30*60, + orbitalDrop = true, + }, + { + name = "hoverassault", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 3*30*60, + orbitalDrop = true, + }, + { + name = "hoverassault", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 3*30*60, + orbitalDrop = true, + }, + { + name = "hoverassault", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 3*30*60, + orbitalDrop = true, + }, + { + name = "hoverassault", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 3*30*60, + orbitalDrop = true, + }, + { + name = "hoverassault", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 3*30*60, + orbitalDrop = true, + }, + { + name = "hoverassault", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 3*30*60, + orbitalDrop = true, + }, + { + name = "hoverassault", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 3*30*60, + orbitalDrop = true, + }, + { + name = "hoverassault", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 3*30*60, + orbitalDrop = true, + }, + { + name = "shipheavyarty", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 4*30*60, + orbitalDrop = true, + }, + { + name = "shipassault", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 4*30*60, + orbitalDrop = true, + }, + { + name = "shipaa", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 4*30*60, + orbitalDrop = true, + }, + { + name = "shipheavyarty", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 4*30*60, + orbitalDrop = true, + difficultyAtLeast = 3, + }, + { + name = "shipassault", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 4*30*60, + orbitalDrop = true, + }, + { + name = "shipaa", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 4*30*60, + orbitalDrop = true, + }, + { + name = "striderdetriment", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 5*30*60, + orbitalDrop = true, + difficultyAtLeast = 4, + difficultyAtMost = 4, + }, + { + name = "striderdetriment", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 6*30*60, + orbitalDrop = true, + difficultyAtLeast = 3, + difficultyAtMost = 3, + }, + { + name = "striderdetriment", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 7*30*60, + orbitalDrop = true, + difficultyAtLeast = 2, + difficultyAtMost = 2, + }, + { + name = "striderdetriment", + x = 300, + z = 3500, + facing = 0, + spawnRadius = 150, + delay = 8*30*60, + orbitalDrop = true, + difficultyAtLeast = 1, + difficultyAtMost = 1, + }, + { + name = "striderdetriment", + x = 5000, + z = 7800, + facing = 0, + spawnRadius = 150, + delay = 15*30*60, + orbitalDrop = true, }, - modules = { } }, startUnits = { + { + name = "staticheavyarty", + x = 1504, + z = 6752, + facing = 2, + }, + { + name = "staticheavyarty", + x = 1700, + z = 6930, + facing = 2, + difficultyAtLeast = 2, + }, + { + name = "staticheavyarty", + x = 1210, + z = 6650, + facing = 2, + difficultyAtLeast = 3, + }, + { + name = "staticheavyarty", + x = 1886, + z = 7039, + facing = 2, + difficultyAtLeast = 4, + }, + { + name = "staticantinuke", + x = 1200, + z = 5600, + facing = 0, + }, + { + name = "staticantinuke", + x = 1400, + z = 7600, + facing = 0, + }, + { + name = "staticantinuke", + x = 3000, + z = 7300, + facing = 0, + }, + { + name = "staticnuke", + x = 100, + z = 8100, + facing = 0, + }, + { + name = "staticrearm", + x = 1300, + z = 5250, + facing = 0, + }, + { + name = "staticrearm", + x = 3570, + z = 8000, + facing = 0, + }, + { + name = "staticmex", + x = 1688, + z = 7352, + facing = 0, + }, + { + name = "staticmex", + x = 600, + z = 6568, + facing = 0, + }, + { + name = "staticmex", + x = 1144, + z = 7736, + facing = 0, + }, + { + name = "staticmex", + x = 712, + z = 7176, + facing = 0, + }, + { + name = "staticmex", + x = 280, + z = 7384, + facing = 0, + }, + { + name = "staticmex", + x = 1944, + z = 6392, + facing = 0, + }, + { + name = "staticmex", + x = 1448, + z = 5752, + facing = 0, + }, + { + name = "staticmex", + x = 1560, + z = 5304, + facing = 0, + }, + { + name = "staticmex", + x = 904, + z = 5400, + facing = 0, + }, + { + name = "staticmex", + x = 2888, + z = 6264, + facing = 0, + }, + { + name = "staticmex", + x = 2984, + z = 6152, + facing = 0, + }, + { + name = "staticmex", + x = 376, + z = 5336, + facing = 0, + }, + { + name = "staticmex", + x = 3352, + z = 5928, + facing = 0, + }, + { + name = "staticmex", + x = 568, + z = 4856, + facing = 0, + }, + { + name = "staticmex", + x = 3112, + z = 6568, + facing = 0, + }, + { + name = "staticmex", + x = 248, + z = 4264, + facing = 0, + }, + { + name = "staticmex", + x = 3032, + z = 7096, + facing = 0, + }, + { + name = "staticmex", + x = 40, + z = 4248, + facing = 0, + }, + { + name = "staticmex", + x = 2632, + z = 6920, + facing = 0, + }, + { + name = "staticmex", + x = 2952, + z = 7656, + facing = 0, + }, + { + name = "staticmex", + x = 3448, + z = 7768, + facing = 0, + }, + { + name = "staticmex", + x = 3752, + z = 8136, + facing = 0, + }, + { + name = "staticmex", + x = 3880, + z = 8056, + facing = 0, + }, + { + name = "energysingu", + x = 2408, + z = 8136, + facing = 3, + terraformHeight = -150, + }, + { + name = "energysingu", + x = 2296, + z = 8136, + facing = 3, + terraformHeight = -150, + }, + { + name = "turretgauss", + x = 72, + z = 4040, + facing = 2, + }, + { + name = "turretgauss", + x = 216, + z = 4088, + facing = 2, + }, + { + name = "energysingu", + x = 56, + z = 5960, + facing = 3, + }, + { + name = "turretgauss", + x = 344, + z = 4120, + facing = 2, + }, + { + name = "energypylon", + x = 408, + z = 5432, + facing = 2, + }, + { + name = "energypylon", + x = 216, + z = 4648, + facing = 2, + }, + { + name = "energypylon", + x = 1160, + z = 5352, + facing = 2, + }, + { + name = "energypylon", + x = 1672, + z = 5384, + facing = 2, + }, + { + name = "energypylon", + x = 1624, + z = 6152, + facing = 2, + }, + { + name = "energypylon", + x = 2344, + z = 7560, + facing = 2, + }, + { + name = "energypylon", + x = 2120, + z = 6792, + facing = 2, + }, + { + name = "energypylon", + x = 2680, + z = 6760, + facing = 2, + }, + { + name = "energysolar", + x = 1752, + z = 7368, + facing = 0, + }, + { + name = "energysolar", + x = 1672, + z = 7416, + facing = 3, + }, + { + name = "energysolar", + x = 1624, + z = 7336, + facing = 2, + }, + { + name = "energypylon", + x = 3224, + z = 7176, + facing = 2, + }, + { + name = "energysolar", + x = 1704, + z = 7288, + facing = 1, + }, + { + name = "energypylon", + x = 744, + z = 6200, + facing = 2, + }, + { + name = "energypylon", + x = 3304, + z = 7784, + facing = 2, + }, + { + name = "turretgauss", + x = 3944, + z = 7960, + facing = 1, + }, + { + name = "energypylon", + x = 296, + z = 6936, + facing = 2, + }, + { + name = "turretgauss", + x = 4040, + z = 8152, + facing = 1, + }, + { + name = "energypylon", + x = 1192, + z = 6984, + facing = 2, + }, + { + name = "energypylon", + x = 776, + z = 7784, + facing = 2, + }, + { + name = "energysolar", + x = 664, + z = 6584, + facing = 0, + }, + { + name = "energysolar", + x = 584, + z = 6632, + facing = 3, + }, + { + name = "energysolar", + x = 536, + z = 6552, + facing = 2, + }, + { + name = "energypylon", + x = 1656, + z = 7752, + facing = 2, + }, + { + name = "energysolar", + x = 616, + z = 6504, + facing = 1, + }, + { + name = "energysolar", + x = 344, + z = 7400, + facing = 0, + }, + { + name = "energysolar", + x = 264, + z = 7448, + facing = 3, + }, + { + name = "energysolar", + x = 216, + z = 7368, + facing = 2, + }, + { + name = "energysolar", + x = 296, + z = 7320, + facing = 1, + }, + { + name = "factoryship", + x = 4096, + z = 7632, + facing = 2, + }, + { + name = "staticcon", + x = 3960, + z = 7544, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3960, 7544}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3985, 7519}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 3960, + z = 7608, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3960, 7608}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3985, 7583}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 3960, + z = 7672, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3960, 7672}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {3985, 7647}, options = {"shift"}}, + }, + }, + { + name = "factoryship", + x = 1296, + z = 4592, + facing = 1, + }, + { + name = "staticcon", + x = 1224, + z = 4744, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1224, 4744}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1249, 4719}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 1288, + z = 4744, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1288, 4744}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1313, 4719}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 1352, + z = 4744, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1352, 4744}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1377, 4719}, options = {"shift"}}, + }, + }, + { + name = "striderhub", + x = 2464, + z = 5584, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2464, 5584}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2489, 5559}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 2344, + z = 5640, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2369, 5615}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2344, 5640}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 2536, + z = 5736, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2536, 5736}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2561, 5711}, options = {"shift"}}, + }, + }, + { + name = "factorygunship", + x = 2360, + z = 5928, + facing = 2, + }, + { + name = "turrettorp", + x = 2248, + z = 5064, + facing = 2, + }, + { + name = "turrettorp", + x = 2520, + z = 5128, + facing = 2, + }, + { + name = "turrettorp", + x = 2744, + z = 5224, + facing = 2, + }, + { + name = "turrettorp", + x = 2968, + z = 5352, + facing = 2, + }, + { + name = "energypylon", + x = 3128, + z = 6120, + facing = 1, + }, + { + name = "turretantiheavy", + x = 3696, + z = 7584, + facing = 2, + }, + { + name = "turretantiheavy", + x = 3472, + z = 6784, + facing = 1, + }, + { + name = "turretaaflak", + x = 3576, + z = 7128, + facing = 1, + }, + { + name = "turretaaflak", + x = 3480, + z = 6520, + facing = 1, + }, + { + name = "turretaaflak", + x = 3656, + z = 7800, + facing = 1, + }, + { + name = "turretheavy", + x = 3096, + z = 5640, + facing = 2, + }, + { + name = "turretheavy", + x = 3544, + z = 5928, + facing = 2, + }, + { + name = "staticarty", + x = 1912, + z = 5032, + facing = 2, + }, + { + name = "staticshield", + x = 1808, + z = 5184, + facing = 2, + }, + { + name = "staticshield", + x = 3248, + z = 5888, + facing = 2, + }, + { + name = "turretantiheavy", + x = 1056, + z = 4896, + facing = 2, + }, + { + name = "turretheavy", + x = 552, + z = 4360, + facing = 2, + }, + { + name = "turretaaflak", + x = 760, + z = 4680, + facing = 2, + }, + { + name = "turretaaflak", + x = 1400, + z = 5032, + facing = 2, + }, + { + name = "turretaafar", + x = 2000, + z = 5296, + facing = 2, + }, + { + name = "factoryhover", + x = 2896, + z = 6624, + facing = 2, + }, + { + name = "staticcon", + x = 2856, + z = 6792, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2856, 6792}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2881, 6767}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 2936, + z = 6792, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2936, 6792}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2961, 6767}, options = {"shift"}}, + }, + }, + { + name = "hoverriot", + x = 2961, + z = 6284, + facing = 2, + }, + { + name = "hoverskirm", + x = 2641, + z = 6407, + facing = 2, + }, + { + name = "hoverskirm", + x = 2680, + z = 6419, + facing = 2, + }, + { + name = "hoverassault", + x = 2704, + z = 6336, + facing = 3, + }, + { + name = "hoverassault", + x = 2676, + z = 6375, + facing = 3, + }, + { + name = "hovercon", + x = 2741, + z = 6354, + facing = 3, + }, + { + name = "hovercon", + x = 2715, + z = 6388, + facing = 2, + }, + { + name = "gunshipraid", + x = 1073, + z = 6100, + facing = 1, + }, + { + name = "gunshipraid", + x = 378, + z = 5550, + facing = 1, + }, + { + name = "gunshipraid", + x = 1619, + z = 6753, + facing = 2, + }, + { + name = "gunshipraid", + x = 2170, + z = 7439, + facing = 2, + }, + { + name = "gunshipraid", + x = 2663, + z = 8129, + facing = 2, + }, + { + name = "gunshipassault", + x = 333, + z = 7870, + facing = 1, + }, + { + name = "factoryamph", + x = 296, + z = 5000, + facing = 2, + }, + { + name = "staticcon", + x = 264, + z = 5128, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {264, 5128}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {289, 5103}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 344, + z = 5128, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {344, 5128}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {369, 5103}, options = {"shift"}}, + }, + }, + { + name = "staticheavyradar", + x = 1184, + z = 4928, + facing = 2, + }, + { + name = "turretaaflak", + x = 1400, + z = 6600, + facing = 2, + }, + { + name = "staticheavyradar", + x = 3584, + z = 7248, + facing = 2, + }, + { + name = "turretriot", + x = 1304, + z = 6776, + facing = 3, + }, + { + name = "turretriot", + x = 1448, + z = 6936, + facing = 0, + }, + { + name = "turretriot", + x = 1640, + z = 6616, + facing = 2, + }, + { + name = "turrettorp", + x = 4024, + z = 6728, + facing = 2, + }, + { + name = "turrettorp", + x = 4296, + z = 6952, + facing = 2, + }, + { + name = "turrettorp", + x = 4488, + z = 7112, + facing = 2, + }, + { + name = "turrettorp", + x = 4712, + z = 7320, + facing = 2, + }, + { + name = "shipheavyarty", + x = 2751, + z = 5397, + facing = 2, + }, + { + name = "turrettorp", + x = 5032, + z = 7592, + facing = 2, + }, + { + name = "turrettorp", + x = 5304, + z = 7784, + facing = 2, + }, + { + name = "shiparty", + x = 2252, + z = 5341, + facing = 0, + }, + { + name = "shiparty", + x = 2451, + z = 5386, + facing = 0, + }, + { + name = "turrettorp", + x = 5528, + z = 7960, + facing = 2, + }, + { + name = "shipaa", + x = 2619, + z = 5459, + facing = 0, + }, + { + name = "shipaa", + x = 2697, + z = 5625, + facing = 0, + }, + { + name = "shiptorpraider", + x = 2271, + z = 5503, + facing = 0, + }, + { + name = "shiptorpraider", + x = 2343, + z = 5373, + facing = 0, + }, + { + name = "turrettorp", + x = 360, + z = 3064, + facing = 2, + }, + { + name = "shiptorpraider", + x = 2424, + z = 5101, + facing = 0, + }, + { + name = "shiptorpraider", + x = 2637, + z = 5241, + facing = 0, + }, + { + name = "shiptorpraider", + x = 2902, + z = 5272, + facing = 0, + }, + { + name = "shiptorpraider", + x = 3145, + z = 5340, + facing = 0, + }, + { + name = "turrettorp", + x = 680, + z = 3272, + facing = 2, + }, + { + name = "shipheavyarty", + x = 4774, + z = 8070, + facing = 0, + }, + { + name = "turrettorp", + x = 904, + z = 3480, + facing = 2, + }, + { + name = "shiparty", + x = 4595, + z = 7878, + facing = 0, + }, + { + name = "shiparty", + x = 4947, + z = 7966, + facing = 0, + }, + { + name = "shipassault", + x = 4487, + z = 7998, + facing = 0, + }, + { + name = "turrettorp", + x = 1176, + z = 3768, + facing = 2, + }, + { + name = "shipassault", + x = 5145, + z = 8053, + facing = 0, + }, + { + name = "shipriot", + x = 4401, + z = 7640, + facing = 0, + }, + { + name = "shipriot", + x = 4869, + z = 7749, + facing = 0, + }, + { + name = "turrettorp", + x = 1496, + z = 4040, + facing = 2, + }, + { + name = "shipriot", + x = 5385, + z = 7991, + facing = 0, + }, + { + name = "turrettorp", + x = 1688, + z = 4312, + facing = 2, + }, + { + name = "shipcon", + x = 4213, + z = 7934, + facing = 0, + }, + { + name = "shipcon", + x = 991, + z = 4405, + facing = 0, + }, + { + name = "turrettorp", + x = 1816, + z = 4568, + facing = 2, + }, + { + name = "shipheavyarty", + x = 936, + z = 4115, + facing = 0, + }, + { + name = "shipriot", + x = 1189, + z = 4206, + facing = 0, + }, + { + name = "shipriot", + x = 1202, + z = 3881, + facing = 0, + }, + { + name = "shipriot", + x = 905, + z = 3705, + facing = 0, + }, + { + name = "shipriot", + x = 601, + z = 3670, + facing = 0, + }, + { + name = "subraider", + x = 571, + z = 3889, + facing = 0, + }, + { + name = "subraider", + x = 812, + z = 3886, + facing = 0, + }, + { + name = "subraider", + x = 1117, + z = 4009, + facing = 0, + }, + { + name = "subraider", + x = 3911, + z = 6966, + facing = 0, + }, + { + name = "subraider", + x = 4054, + z = 7053, + facing = 0, + }, + { + name = "staticcon", + x = 120, + z = 7144, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {120, 7144}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {145, 7119}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 120, + z = 7224, + facing = 2, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {120, 7224}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {145, 7199}, options = {"shift"}}, + }, + }, + { + name = "factoryplane", + x = 256, + z = 7192, + facing = 2, + }, + { + name = "staticrearm", + x = 424, + z = 7208, + facing = 2, + }, + { + name = "planescout", + x = 1424, + z = 7411, + facing = 0, + }, + { + name = "planescout", + x = 436, + z = 6586, + facing = 1, + }, } }, }, defeatConditionConfig = { - + -- Indexed by allyTeam. + [0] = { }, + [1] = { + ignoreUnitLossDefeat = false, + vitalCommanders = false, + vitalUnitTypes = { + "factoryship", + "factorygunship", + "factoryplane", + "factoryhover", + "factoryamph", + "energysingu", + }, + loseAfterSeconds = false, + allyTeamLossObjectiveID = 1, + }, }, objectiveConfig = { -- This is just related to displaying objectives on the UI. + [1] = { + description = "Destroy all enemy Factories and Singularity Reactors", + }, + [2] = { + description = "Protect your Commander", + }, }, bonusObjectiveConfig = { + [1] = { + onlyCountRemovedUnits = true, + satisfyByTime = 5*60, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 3, + enemyUnitTypes = { + "shipheavyarty", + }, + image = planetUtilities.ICON_DIR .. "shipheavyarty.png", + imageOverlay = planetUtilities.ICON_OVERLAY.ATTACK, + description = "Destroy 3 enemy Shoguns before 5:00", + experience = planetUtilities.BONUS_EXP, + }, + [2] = { + victoryByTime = 30*60, + image = planetUtilities.ICON_OVERLAY.CLOCK, + description = "Win by 30:00", + experience = planetUtilities.BONUS_EXP, + }, } }, completionReward = { diff --git a/campaign/sample/planets/planet68.lua b/campaign/sample/planets/planet68.lua index 43cba7062..2bdaff106 100644 --- a/campaign/sample/planets/planet68.lua +++ b/campaign/sample/planets/planet68.lua @@ -7,7 +7,7 @@ local function GetPlanet(planetUtilities, planetID) local image = LUA_DIRNAME .. "images/planets/tundra01.png" local planetData = { - name = "Kufihay", + name = "Cipher", startingPlanet = false, mapDisplay = { x = (planetUtilities.planetPositions and planetUtilities.planetPositions[planetID][1]) or 0.955, @@ -19,18 +19,29 @@ local function GetPlanet(planetUtilities, planetID) image = image, size = planetUtilities.PLANET_SIZE_INFO, backgroundImage = planetUtilities.backgroundImages[math.floor(math.random()*#planetUtilities.backgroundImages) + 1], - terrainType = "Tundra", + terrainType = "Arctic", radius = "7650 km", - primary = "Fili Enso", + primary = "Endofili", primaryType = "G1V", milRating = 1, - text = [[Your opponent is already conducting a victory celebration with their Disco Rave Party. Hold off their assault until your Starlight orbital chisel is complete, then demonstrate that their revels are premature.]] + feedbackLink = "http://zero-k.info/Forum/Thread/24642", + text = [[Your opponent is already conducting a victory dance with their Disco Rave Party. Hold off their assault until your Starlight orbital chisel is complete, then demonstrate that their celebration is premature.]] + }, + tips = { + { + image = "unitpics/mahlazer.png", + text = [[The Zenith is a planetary-scale chisel repurposed as the ultimate superweapon, firing a laser from space which will cut through anything. The mirror satellite rotates slowly, so make sure it doesn't strike your own units and structures.]] + }, + { + image = "unitpics/cremcom.png", + text = [[Game speed can be changed with the + and - keys. Slow down or pause as often as you need to; this map is very large and you will have a lot to manage.]] + }, }, gameConfig = { mapName = "FrozenFortress_v2", playerConfig = { - startX = 100, - startZ = 100, + startX = 1500, + startZ = 3600, allyTeam = 0, facplop = false, commanderParameters = { @@ -41,12 +52,1442 @@ local function GetPlanet(planetUtilities, planetID) "mahlazer" }, startUnits = { + { + name = "mahlazer", + x = 928, + z = 3600, + facing = 3, + buildProgress = 0.625, + difficultyAtLeast = 1, + difficultyAtMost = 1, + }, + { + name = "mahlazer", + x = 928, + z = 3600, + facing = 3, + buildProgress = 0.55, + difficultyAtLeast = 2, + difficultyAtMost = 2, + }, + { + name = "mahlazer", + x = 928, + z = 3600, + facing = 3, + buildProgress = 0.475, + difficultyAtLeast = 3, + difficultyAtMost = 3, + }, + { + name = "mahlazer", + x = 928, + z = 3600, + facing = 3, + buildProgress = 0.4, + difficultyAtLeast = 4, + difficultyAtMost = 4, + }, + { + name = "staticmex", + x = 1464, + z = 1208, + facing = 0, + }, + { + name = "staticmex", + x = 1224, + z = 1016, + facing = 0, + }, + { + name = "staticmex", + x = 1432, + z = 2184, + facing = 0, + }, + { + name = "staticmex", + x = 1288, + z = 6008, + facing = 0, + }, + { + name = "staticmex", + x = 1560, + z = 2424, + facing = 0, + }, + { + name = "staticmex", + x = 1480, + z = 184, + facing = 0, + }, + { + name = "staticmex", + x = 968, + z = 5816, + facing = 0, + }, + { + name = "staticmex", + x = 1128, + z = 2376, + facing = 0, + }, + { + name = "pw_metal", + x = 128, + z = 7008, + facing = 0, + }, + { + name = "staticmex", + x = 1352, + z = 5176, + facing = 0, + }, + { + name = "staticmex", + x = 440, + z = 1784, + facing = 0, + }, + { + name = "staticmex", + x = 1416, + z = 4856, + facing = 0, + }, + { + name = "staticmex", + x = 184, + z = 200, + facing = 0, + }, + { + name = "staticmex", + x = 1096, + z = 4936, + facing = 0, + }, + { + name = "staticmex", + x = 120, + z = 2056, + facing = 0, + }, + { + name = "pw_metal", + x = 944, + z = 464, + facing = 0, + }, + { + name = "staticmex", + x = 520, + z = 4728, + facing = 0, + }, + { + name = "staticmex", + x = 136, + z = 4680, + facing = 0, + }, + { + name = "staticmex", + x = 264, + z = 3400, + facing = 0, + }, + { + name = "staticmex", + x = 136, + z = 3848, + facing = 0, + }, + { + name = "staticmex", + x = 1336, + z = 3912, + facing = 0, + }, + { + name = "staticmex", + x = 2440, + z = 2312, + facing = 0, + }, + { + name = "staticmex", + x = 1160, + z = 3656, + facing = 0, + }, + { + name = "staticmex", + x = 2184, + z = 1528, + facing = 0, + }, + { + name = "staticmex", + x = 1272, + z = 3320, + facing = 0, + }, + { + name = "staticmex", + x = 2824, + z = 4376, + facing = 0, + }, + { + name = "staticmex", + x = 2808, + z = 4936, + facing = 0, + }, + { + name = "staticmex", + x = 3320, + z = 1864, + facing = 0, + }, + { + name = "staticmex", + x = 2424, + z = 3576, + facing = 0, + }, + { + name = "staticmex", + x = 3464, + z = 5464, + facing = 0, + }, + { + name = "staticmex", + x = 2824, + z = 2856, + facing = 0, + }, + { + name = "staticmex", + x = 3320, + z = 184, + facing = 0, + }, + { + name = "staticmex", + x = 2232, + z = 5816, + facing = 0, + }, + { + name = "staticmex", + x = 3464, + z = 4344, + facing = 0, + }, + { + name = "staticmex", + x = 3592, + z = 2696, + facing = 0, + }, + { + name = "staticmex", + x = 3336, + z = 6984, + facing = 0, + }, + { + name = "staticmex", + x = 840, + z = 6712, + facing = 0, + }, + { + name = "energywind", + x = 216, + z = 6856, + facing = 3, + }, + { + name = "energywind", + x = 136, + z = 6856, + facing = 3, + }, + { + name = "energywind", + x = 56, + z = 6856, + facing = 3, + }, + { + name = "energywind", + x = 56, + z = 6776, + facing = 3, + }, + { + name = "energywind", + x = 136, + z = 6776, + facing = 3, + }, + { + name = "energywind", + x = 216, + z = 6776, + facing = 3, + }, + { + name = "energywind", + x = 216, + z = 6696, + facing = 3, + }, + { + name = "energywind", + x = 136, + z = 6696, + facing = 3, + }, + { + name = "energywind", + x = 56, + z = 6696, + facing = 3, + }, + { + name = "energywind", + x = 56, + z = 6616, + facing = 3, + }, + { + name = "energywind", + x = 280, + z = 6936, + facing = 3, + }, + { + name = "energywind", + x = 136, + z = 6616, + facing = 3, + }, + { + name = "energywind", + x = 216, + z = 6616, + facing = 3, + }, + { + name = "energywind", + x = 216, + z = 6536, + facing = 3, + }, + { + name = "energywind", + x = 136, + z = 6536, + facing = 3, + }, + { + name = "energywind", + x = 56, + z = 6536, + facing = 3, + }, + { + name = "energywind", + x = 296, + z = 6696, + facing = 3, + }, + { + name = "energywind", + x = 296, + z = 6776, + facing = 3, + }, + { + name = "energywind", + x = 296, + z = 6856, + facing = 3, + }, + { + name = "energywind", + x = 280, + z = 7016, + facing = 3, + }, + { + name = "energywind", + x = 280, + z = 7096, + facing = 3, + }, + { + name = "starlight_satellite", + x = 928, + z = 3600, + facing = 3, + }, + { + name = "energywind", + x = 376, + z = 6776, + facing = 3, + }, + { + name = "energywind", + x = 376, + z = 6856, + facing = 3, + }, + { + name = "energywind", + x = 376, + z = 6936, + facing = 3, + }, + { + name = "energywind", + x = 376, + z = 7016, + facing = 3, + }, + { + name = "energywind", + x = 376, + z = 7096, + facing = 3, + }, + { + name = "energywind", + x = 456, + z = 6856, + facing = 3, + }, + { + name = "energywind", + x = 456, + z = 6936, + facing = 3, + }, + { + name = "energywind", + x = 456, + z = 7016, + facing = 3, + }, + { + name = "energywind", + x = 456, + z = 7096, + facing = 3, + }, + { + name = "energysingu", + x = 56, + z = 5944, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 24, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 24, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 24, + facing = 3, + }, + { + name = "energypylon", + x = 2648, + z = 920, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 24, + facing = 3, + }, + { + name = "energywind", + x = 344, + z = 24, + facing = 3, + }, + { + name = "energywind", + x = 344, + z = 104, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 104, + facing = 3, + }, + { + name = "energysingu", + x = 56, + z = 1016, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 104, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 104, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 104, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 184, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 184, + facing = 3, + }, + { + name = "energypylon", + x = 664, + z = 488, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 184, + facing = 3, + }, + { + name = "energywind", + x = 344, + z = 184, + facing = 3, + }, + { + name = "energywind", + x = 344, + z = 264, + facing = 3, + }, + { + name = "energypylon", + x = 1384, + z = 488, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 264, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 264, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 264, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 264, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 344, + facing = 3, + }, + { + name = "energypylon", + x = 2104, + z = 488, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 344, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 344, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 344, + facing = 3, + }, + { + name = "energywind", + x = 344, + z = 344, + facing = 3, + }, + { + name = "energypylon", + x = 2104, + z = 1208, + facing = 3, + }, + { + name = "energywind", + x = 344, + z = 424, + facing = 3, + }, + { + name = "energywind", + x = 264, + z = 424, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 424, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 424, + facing = 3, + }, + { + name = "energypylon", + x = 1384, + z = 1208, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 424, + facing = 3, + }, + { + name = "energywind", + x = 424, + z = 24, + facing = 3, + }, + { + name = "energywind", + x = 424, + z = 104, + facing = 3, + }, + { + name = "energypylon", + x = 664, + z = 1208, + facing = 3, + }, + { + name = "energywind", + x = 424, + z = 184, + facing = 3, + }, + { + name = "energywind", + x = 424, + z = 264, + facing = 3, + }, + { + name = "energywind", + x = 24, + z = 504, + facing = 3, + }, + { + name = "energypylon", + x = 664, + z = 1928, + facing = 3, + }, + { + name = "energywind", + x = 104, + z = 504, + facing = 3, + }, + { + name = "energywind", + x = 184, + z = 504, + facing = 3, + }, + { + name = "energypylon", + x = 1384, + z = 1928, + facing = 3, + }, + { + name = "energypylon", + x = 2824, + z = 1928, + facing = 3, + }, + { + name = "energypylon", + x = 1384, + z = 2648, + facing = 3, + }, + { + name = "energypylon", + x = 664, + z = 2648, + facing = 3, + }, + { + name = "energypylon", + x = 1384, + z = 3368, + facing = 3, + }, + { + name = "energypylon", + x = 2104, + z = 3368, + facing = 3, + }, + { + name = "energypylon", + x = 2136, + z = 2120, + facing = 3, + }, + { + name = "energypylon", + x = 2824, + z = 3368, + facing = 3, + }, + { + name = "jumparty", + x = 3136, + z = 6588, + facing = 2, + }, + { + name = "energypylon", + x = 2104, + z = 4088, + facing = 3, + }, + { + name = "energypylon", + x = 1384, + z = 4088, + facing = 3, + }, + { + name = "energypylon", + x = 664, + z = 4808, + facing = 3, + }, + { + name = "energypylon", + x = 2488, + z = 2776, + facing = 3, + }, + { + name = "energypylon", + x = 1384, + z = 4808, + facing = 3, + }, + { + name = "energypylon", + x = 2104, + z = 4808, + facing = 3, + }, + { + name = "energypylon", + x = 2824, + z = 4808, + facing = 3, + }, + { + name = "energypylon", + x = 2824, + z = 5528, + facing = 3, + }, + { + name = "energypylon", + x = 664, + z = 5528, + facing = 3, + }, + { + name = "energypylon", + x = 2104, + z = 6968, + facing = 3, + }, + { + name = "energypylon", + x = 648, + z = 6472, + facing = 3, + }, + { + name = "energypylon", + x = 1448, + z = 5784, + facing = 3, + }, + { + name = "energypylon", + x = 2120, + z = 5752, + facing = 3, + }, + { + name = "energypylon", + x = 1464, + z = 6616, + facing = 3, + }, + { + name = "energypylon", + x = 2728, + z = 6392, + facing = 3, + }, + { + name = "staticcon", + x = 1128, + z = 3448, + facing = 1, + }, + { + name = "staticcon", + x = 1224, + z = 3448, + facing = 1, + }, + { + name = "staticcon", + x = 1224, + z = 3544, + facing = 1, + }, + { + name = "staticcon", + x = 1128, + z = 3544, + facing = 1, + }, + { + name = "staticcon", + x = 1112, + z = 3752, + facing = 1, + }, + { + name = "staticcon", + x = 1208, + z = 3752, + facing = 1, + }, + { + name = "staticcon", + x = 1208, + z = 3848, + facing = 1, + }, + { + name = "staticcon", + x = 1112, + z = 3848, + facing = 1, + }, + { + name = "striderhub", + x = 1312, + z = 3648, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1312, 3648}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {1337, 3623}, options = {"shift"}}, + }, + }, + { + name = "striderbantha", + x = 1424, + z = 3568, + facing = 1, + }, + { + name = "striderbantha", + x = 1424, + z = 3744, + facing = 1, + }, + { + name = "staticcon", + x = 2504, + z = 632, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2529, 657}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2504, 632}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 2600, + z = 632, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2600, 632}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2625, 657}, options = {"shift"}}, + }, + }, + { + name = "factoryspider", + x = 2712, + z = 600, + facing = 1, + }, + { + name = "staticcon", + x = 2760, + z = 6648, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2760, 6648}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2785, 6623}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 2760, + z = 6760, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2760, 6760}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2785, 6735}, options = {"shift"}}, + }, + }, + { + name = "factoryjump", + x = 2888, + z = 6696, + facing = 1, + }, + { + name = "staticcon", + x = 2856, + z = 3752, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2856, 3752}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2881, 3727}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 2856, + z = 3848, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2856, 3848}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2881, 3823}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 2856, + z = 3944, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2881, 3919}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2856, 3944}, options = {"shift"}}, + }, + }, + { + name = "factorytank", + x = 2992, + z = 3840, + facing = 1, + }, + { + name = "staticcon", + x = 2952, + z = 3224, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2977, 3249}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2952, 3224}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 2952, + z = 3320, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2952, 3320}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2977, 3345}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 2952, + z = 3416, + facing = 1, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2952, 3416}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {2977, 3441}, options = {"shift"}}, + }, + }, + { + name = "factoryamph", + x = 3080, + z = 3304, + facing = 1, + }, + { + name = "amphassault", + x = 3400, + z = 3060, + facing = 1, + }, + { + name = "amphassault", + x = 3362, + z = 3451, + facing = 1, + }, + { + name = "amphassault", + x = 3492, + z = 3318, + facing = 1, + }, + { + name = "amphfloater", + x = 3597, + z = 3458, + facing = 1, + }, + { + name = "amphfloater", + x = 3610, + z = 3197, + facing = 1, + }, + { + name = "amphfloater", + x = 3620, + z = 3394, + facing = 1, + }, + { + name = "amphfloater", + x = 3555, + z = 3076, + facing = 2, + }, + { + name = "amphfloater", + x = 3627, + z = 3322, + facing = 1, + }, + { + name = "amphfloater", + x = 3527, + z = 3011, + facing = 2, + }, + { + name = "amphfloater", + x = 3622, + z = 3261, + facing = 1, + }, + { + name = "amphfloater", + x = 3584, + z = 3132, + facing = 1, + }, + { + name = "amphfloater", + x = 3551, + z = 3504, + facing = 1, + }, + { + name = "tankheavyassault", + x = 3524, + z = 3780, + facing = 1, + }, + { + name = "tankheavyassault", + x = 3508, + z = 3918, + facing = 1, + }, + { + name = "tankassault", + x = 3415, + z = 3672, + facing = 0, + }, + { + name = "tankassault", + x = 3417, + z = 4003, + facing = 1, + }, + { + name = "tankassault", + x = 3412, + z = 3829, + facing = 1, + }, + { + name = "tankarty", + x = 3262, + z = 3845, + facing = 2, + }, + { + name = "tankarty", + x = 3253, + z = 3678, + facing = 2, + }, + { + name = "tankarty", + x = 3253, + z = 4002, + facing = 1, + }, + { + name = "turretheavy", + x = 2888, + z = 1032, + facing = 1, + }, + { + name = "turretheavylaser", + x = 2968, + z = 568, + facing = 1, + }, + { + name = "turretriot", + x = 2312, + z = 120, + facing = 1, + }, + { + name = "turretriot", + x = 2344, + z = 328, + facing = 1, + }, + { + name = "turretriot", + x = 2648, + z = 1192, + facing = 1, + }, + { + name = "turretaafar", + x = 2768, + z = 912, + facing = 1, + }, + { + name = "pw_metal", + x = 112, + z = 4944, + facing = 0, + }, + { + name = "pw_metal", + x = 112, + z = 1888, + facing = 0, + }, + { + name = "spidercrabe", + x = 3107, + z = 749, + facing = 1, + }, + { + name = "spidercrabe", + x = 3031, + z = 873, + facing = 1, + }, + { + name = "spideremp", + x = 3035, + z = 756, + facing = 1, + }, + { + name = "spideremp", + x = 3118, + z = 600, + facing = 1, + }, + { + name = "spideremp", + x = 3081, + z = 673, + facing = 1, + }, + { + name = "spideremp", + x = 2961, + z = 823, + facing = 0, + }, + { + name = "spideremp", + x = 2896, + z = 911, + facing = 0, + }, + { + name = "jumpsumo", + x = 3525, + z = 6654, + facing = 1, + }, + { + name = "jumpassault", + x = 3265, + z = 6527, + facing = 2, + }, + { + name = "jumpassault", + x = 3279, + z = 6701, + facing = 1, + }, + { + name = "jumpassault", + x = 3271, + z = 6615, + facing = 1, + }, + { + name = "jumpassault", + x = 3308, + z = 6782, + facing = 1, + }, + { + name = "jumpassault", + x = 3357, + z = 6860, + facing = 1, + }, + { + name = "jumparty", + x = 3152, + z = 6746, + facing = 3, + }, + { + name = "energypylon", + x = 2488, + z = 4360, + facing = 3, + }, + { + name = "turretheavy", + x = 2984, + z = 4248, + facing = 1, + }, + { + name = "turretheavy", + x = 2984, + z = 4472, + facing = 1, + }, + { + name = "turretheavy", + x = 2984, + z = 2712, + facing = 1, + }, + { + name = "turretheavy", + x = 2984, + z = 2936, + facing = 1, + }, + { + name = "turretaafar", + x = 2688, + z = 2816, + facing = 1, + }, + { + name = "turretaafar", + x = 2688, + z = 4368, + facing = 1, + }, + { + name = "turretheavylaser", + x = 3624, + z = 6520, + facing = 1, + }, + { + name = "turretriot", + x = 3432, + z = 7032, + facing = 1, + }, + { + name = "turretheavylaser", + x = 2968, + z = 6312, + facing = 1, + }, + { + name = "turretriot", + x = 3224, + z = 6344, + facing = 2, + }, + { + name = "turretlaser", + x = 3024, + z = 4800, + facing = 1, + }, + { + name = "turretlaser", + x = 3072, + z = 5120, + facing = 1, + }, + { + name = "turretlaser", + x = 3088, + z = 5504, + facing = 1, + }, + { + name = "turretlaser", + x = 3008, + z = 2464, + facing = 1, + }, + { + name = "turretlaser", + x = 3008, + z = 2160, + facing = 1, + }, + { + name = "turretlaser", + x = 3056, + z = 1728, + facing = 1, + }, + { + name = "turretlaser", + x = 3088, + z = 1472, + facing = 1, + }, + { + name = "staticantinuke", + x = 1600, + z = 2056, + facing = 1, + }, + { + name = "staticantinuke", + x = 1552, + z = 5096, + facing = 1, + }, } }, aiConfig = { { - startX = 4000, - startZ = 75, + startX = 10000, + startZ = 3200, aiLib = "Circuit_difficulty_autofill", humanName = "Enemy", bitDependant = true, @@ -55,29 +1496,2391 @@ local function GetPlanet(planetUtilities, planetID) }, allyTeam = 1, unlocks = { + "raveparty", + "zenith", + "staticmex", + "energysolar", + "energywind", + "energyfusion", + "energygeo", + "energyheavygeo", + "energysingu", + "energypylon", + "staticstorage", + "turretlaser", + "turretmissile", + "turretriot", + "turrettorp", + "turretgauss", + "turretheavylaser", + "turretaalaser", + "turretaaclose", + "turretaaflak", + "shieldshield", + "staticradar", + "staticheavyradar", + "staticcon", + "staticantinuke", + "staticrearm", + "turretaafar", + "turretheavy", + "staticnuke", + "staticheavyarty", + "staticarty", + "factorycloak", + "cloakcon", "cloakraid", + "cloakriot", + "cloakskirm", + "cloakassault", + "cloakaa", + "cloakarty", + "cloaksnipe", + "cloakheavyraid", + "cloakbomb", + "factoryshield", + "shieldcon", + "shieldraid", + "shieldassault", + "shieldriot", + "shieldskirm", + "shieldbomb", + "shieldaa", + "shieldfelon", + "shieldshield", + "shieldarty", + "factoryplane", + "planecon", + "planescout", + "planefighter", + "planeheavyfighter", + "bomberprec", + "bomberdisarm", + "bomberheavy", + "factoryveh", + "vehcon", + "vehscout", + "vehraid", + "vehriot", + "vehassault", + "vehaa", + "vehsupport", + "veharty", + "vehheavyarty", + "vehcapture", + "factorygunship", + "gunshipcon", + "gunshipbomb", + "gunshipemp", + "gunshipaa", + "gunshipassault", + "gunshipheavyskirm", + "gunshipskirm", + "gunshipraid", + "gunshipkrow", + "factoryjump", + "jumpcon", + "jumpraid", + "jumpskirm", + "jumpassault", + "jumpsumo", + "jumparty", + "jumpblackhole", + "jumpaa", + "factoryspider", + "spidercon", + --"spiderscout", + "spiderriot", + "spideremp", + "spiderskirm", + "spiderassault", + "spidercrabe", + "spiderantiheavy", + "spideraa", + "factoryhover", + "hovercon", + "hoverraid", + "hoverriot", + "hoverskirm", + "hoverassault", + "hoverdepthcharge", + "hoverarty", + "hoveraa", + "factorytank", + "tankcon", + "tankassault", + "tankheavyassault", + "tankarty", + "tankheavyarty", + "tankaa", + "tankriot", + "factoryamph", + "amphcon", + "amphraid", + "amphimpulse", + "amphfloater", + "amphriot", + "amphassault", + "amphbomb", + "amphaa", + "striderhub", + "striderdante", + "striderarty", + "striderscorpion", + "striderfunnelweb", + "striderantiheavy", + "striderbantha", }, - commanderLevel = 2, + commanderLevel = 7, commander = { - name = "Most Loyal Opposition", - chassis = "engineer", + name = "Vale", + chassis = "support", decorations = { - "skin_support_dark", - icon_overhead = { image = "UW" } + "skin_support_green", }, - modules = { } + modules = { + "commweapon_hparticlebeam", + "commweapon_multistunner", + "module_dmg_booster", + "module_dmg_booster", + "module_dmg_booster", + "module_dmg_booster", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_ablative_armor", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_high_power_servos", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "module_adv_targeting", + "commweapon_personal_shield", + "module_autorepair", + "module_autorepair", + "module_autorepair", + "module_autorepair", + + } }, startUnits = { - } - }, - }, - defeatConditionConfig = { - - }, - objectiveConfig = { - -- This is just related to displaying objectives on the UI. - }, - bonusObjectiveConfig = { + { + name = "staticmex", + x = 8776, + z = 5960, + facing = 0, + }, + { + name = "staticmex", + x = 9032, + z = 6152, + facing = 0, + }, + { + name = "staticmex", + x = 9144, + z = 2248, + facing = 0, + }, + { + name = "staticmex", + x = 8808, + z = 4984, + facing = 0, + }, + { + name = "staticmex", + x = 8840, + z = 2312, + facing = 0, + }, + { + name = "staticmex", + x = 9288, + z = 1352, + facing = 0, + }, + { + name = "staticmex", + x = 8680, + z = 4744, + facing = 0, + }, + { + name = "staticmex", + x = 8904, + z = 1992, + facing = 0, + }, + { + name = "staticmex", + x = 8952, + z = 1160, + facing = 0, + }, + { + name = "staticmex", + x = 8776, + z = 6984, + facing = 0, + }, + { + name = "staticmex", + x = 9128, + z = 4808, + facing = 0, + }, + { + name = "staticmex", + x = 9800, + z = 5384, + facing = 0, + }, + { + name = "staticmex", + x = 7992, + z = 1368, + facing = 0, + }, + { + name = "staticmex", + x = 10056, + z = 6968, + facing = 0, + }, + { + name = "staticmex", + x = 9752, + z = 2456, + facing = 0, + }, + { + name = "staticmex", + x = 10104, + z = 5128, + facing = 0, + }, + { + name = "staticmex", + x = 10120, + z = 2520, + facing = 0, + }, + { + name = "staticmex", + x = 7432, + z = 2248, + facing = 0, + }, + { + name = "staticmex", + x = 7432, + z = 2824, + facing = 0, + }, + { + name = "staticmex", + x = 9992, + z = 3784, + facing = 0, + }, + { + name = "staticmex", + x = 6776, + z = 2824, + facing = 0, + }, + { + name = "staticmex", + x = 9096, + z = 3528, + facing = 0, + }, + { + name = "staticmex", + x = 9416, + z = 456, + facing = 0, + }, + { + name = "staticmex", + x = 7800, + z = 4872, + facing = 0, + }, + { + name = "staticmex", + x = 8904, + z = 3256, + facing = 0, + }, + { + name = "staticmex", + x = 6792, + z = 1736, + facing = 0, + }, + { + name = "staticmex", + x = 8968, + z = 3848, + facing = 0, + }, + { + name = "staticmex", + x = 7432, + z = 4360, + facing = 0, + }, + { + name = "staticmex", + x = 7816, + z = 3592, + facing = 0, + }, + { + name = "staticmex", + x = 6920, + z = 5320, + facing = 0, + }, + { + name = "staticmex", + x = 6920, + z = 200, + facing = 0, + }, + { + name = "staticmex", + x = 8072, + z = 5640, + facing = 0, + }, + { + name = "staticmex", + x = 6920, + z = 6984, + facing = 0, + }, + { + name = "staticmex", + x = 10120, + z = 3336, + facing = 0, + }, + { + name = "staticmex", + x = 6664, + z = 4488, + facing = 0, + }, + { + name = "staticmex", + x = 6616, + z = 3656, + facing = 0, + }, + { + name = "energypylon", + x = 7224, + z = 472, + facing = 3, + }, + { + name = "energypylon", + x = 7944, + z = 472, + facing = 3, + }, + { + name = "energypylon", + x = 8664, + z = 472, + facing = 3, + }, + { + name = "energypylon", + x = 7752, + z = 2792, + facing = 3, + }, + { + name = "turretheavy", + x = 7256, + z = 2712, + facing = 3, + }, + { + name = "turretheavy", + x = 7256, + z = 2936, + facing = 3, + }, + { + name = "staticarty", + x = 7272, + z = 2824, + facing = 3, + }, + { + name = "turretaafar", + x = 7536, + z = 2832, + facing = 3, + }, + { + name = "energypylon", + x = 10104, + z = 472, + facing = 3, + }, + { + name = "raveparty", + x = 9050, + z = 3640, + facing = 3, + }, + { + name = "energypylon", + x = 10104, + z = 1192, + facing = 3, + }, + { + name = "staticshield", + x = 8736, + z = 3712, + facing = 3, + }, + { + name = "staticshield", + x = 8880, + z = 3712, + facing = 3, + }, + { + name = "staticshield", + x = 8880, + z = 3568, + facing = 3, + }, + { + name = "staticshield", + x = 8736, + z = 3568, + facing = 3, + }, + { + name = "energypylon", + x = 9384, + z = 1192, + facing = 3, + }, + { + name = "energygeo", + x = 9704, + z = 3592, + facing = 3, + }, + { + name = "energypylon", + x = 8664, + z = 1192, + facing = 3, + }, + { + name = "energypylon", + x = 7944, + z = 1192, + facing = 3, + }, + { + name = "pw_metal", + x = 10096, + z = 112, + facing = 0, + }, + { + name = "pw_metal", + x = 8432, + z = 6752, + facing = 0, + }, + { + name = "energypylon", + x = 7224, + z = 1912, + facing = 3, + }, + { + name = "energysingu", + x = 10184, + z = 1400, + facing = 3, + }, + { + name = "pw_metal", + x = 9392, + z = 4512, + facing = 0, + }, + { + name = "energypylon", + x = 8664, + z = 1912, + facing = 3, + }, + { + name = "energypylon", + x = 9384, + z = 1912, + facing = 3, + }, + { + name = "energypylon", + x = 10104, + z = 1912, + facing = 3, + }, + { + name = "energysingu", + x = 10184, + z = 4936, + facing = 3, + }, + { + name = "energypylon", + x = 10104, + z = 2632, + facing = 3, + }, + { + name = "energypylon", + x = 9384, + z = 2632, + facing = 3, + }, + { + name = "energypylon", + x = 8664, + z = 2632, + facing = 3, + }, + { + name = "energysingu", + x = 8968, + z = 7112, + facing = 3, + }, + { + name = "energypylon", + x = 7944, + z = 2632, + facing = 3, + }, + { + name = "energypylon", + x = 7224, + z = 3352, + facing = 3, + }, + { + name = "energypylon", + x = 7944, + z = 3352, + facing = 3, + }, + { + name = "energypylon", + x = 8664, + z = 3352, + facing = 3, + }, + { + name = "energypylon", + x = 9384, + z = 3352, + facing = 3, + }, + { + name = "energypylon", + x = 10104, + z = 4072, + facing = 3, + }, + { + name = "energypylon", + x = 8664, + z = 4072, + facing = 3, + }, + { + name = "energysingu", + x = 9112, + z = 72, + facing = 3, + }, + { + name = "energypylon", + x = 7944, + z = 4072, + facing = 3, + }, + { + name = "energypylon", + x = 7224, + z = 4072, + facing = 3, + }, + { + name = "energypylon", + x = 7224, + z = 4792, + facing = 3, + }, + { + name = "energypylon", + x = 7944, + z = 4792, + facing = 3, + }, + { + name = "energypylon", + x = 8664, + z = 4792, + facing = 3, + }, + { + name = "energypylon", + x = 9384, + z = 4792, + facing = 3, + }, + { + name = "energypylon", + x = 10104, + z = 4792, + facing = 3, + }, + { + name = "energypylon", + x = 9384, + z = 5512, + facing = 3, + }, + { + name = "energypylon", + x = 8664, + z = 5512, + facing = 3, + }, + { + name = "energypylon", + x = 7944, + z = 5512, + facing = 3, + }, + { + name = "energypylon", + x = 7224, + z = 5512, + facing = 3, + }, + { + name = "energypylon", + x = 7224, + z = 6232, + facing = 3, + }, + { + name = "energypylon", + x = 7944, + z = 6232, + facing = 3, + }, + { + name = "energypylon", + x = 8664, + z = 6232, + facing = 3, + }, + { + name = "energypylon", + x = 9384, + z = 6232, + facing = 3, + }, + { + name = "energypylon", + x = 10104, + z = 6232, + facing = 3, + }, + { + name = "energypylon", + x = 10104, + z = 6952, + facing = 3, + }, + { + name = "energypylon", + x = 9384, + z = 6952, + facing = 3, + }, + { + name = "energypylon", + x = 8664, + z = 6952, + facing = 3, + }, + { + name = "energypylon", + x = 7944, + z = 6952, + facing = 3, + }, + { + name = "energypylon", + x = 7224, + z = 6952, + facing = 3, + }, + { + name = "energypylon", + x = 7928, + z = 2008, + facing = 3, + }, + { + name = "energypylon", + x = 7736, + z = 4360, + facing = 3, + }, + { + name = "turretheavy", + x = 7256, + z = 4232, + facing = 3, + }, + { + name = "turretheavy", + x = 7256, + z = 4472, + facing = 3, + }, + { + name = "staticarty", + x = 7272, + z = 4344, + facing = 3, + }, + { + name = "turretaafar", + x = 7536, + z = 4352, + facing = 3, + }, + { + name = "energypylon", + x = 8584, + z = 4344, + facing = 3, + }, + { + name = "energypylon", + x = 8584, + z = 2824, + facing = 3, + }, + { + name = "turretantiheavy", + x = 8288, + z = 2720, + facing = 3, + }, + { + name = "turretantiheavy", + x = 8288, + z = 2928, + facing = 3, + }, + { + name = "turretantiheavy", + x = 8288, + z = 4240, + facing = 3, + }, + { + name = "energywind", + x = 9928, + z = 40, + facing = 3, + }, + { + name = "energywind", + x = 9848, + z = 40, + facing = 3, + }, + { + name = "energywind", + x = 9768, + z = 40, + facing = 3, + }, + { + name = "turretantiheavy", + x = 8288, + z = 4464, + facing = 3, + }, + { + name = "energywind", + x = 9768, + z = 120, + facing = 3, + }, + { + name = "energywind", + x = 9848, + z = 120, + facing = 3, + }, + { + name = "energywind", + x = 9928, + z = 120, + facing = 3, + }, + { + name = "energywind", + x = 10200, + z = 7128, + facing = 3, + }, + { + name = "energywind", + x = 9928, + z = 200, + facing = 3, + }, + { + name = "energywind", + x = 10120, + z = 7128, + facing = 3, + }, + { + name = "energywind", + x = 9848, + z = 200, + facing = 3, + }, + { + name = "energywind", + x = 10040, + z = 7128, + facing = 3, + }, + { + name = "energywind", + x = 9768, + z = 200, + facing = 3, + }, + { + name = "energywind", + x = 9960, + z = 7128, + facing = 3, + }, + { + name = "energywind", + x = 9768, + z = 280, + facing = 3, + }, + { + name = "energywind", + x = 9848, + z = 280, + facing = 3, + }, + { + name = "energywind", + x = 9880, + z = 7128, + facing = 3, + }, + { + name = "energywind", + x = 9928, + z = 280, + facing = 3, + }, + { + name = "energywind", + x = 9880, + z = 7048, + facing = 3, + }, + { + name = "energywind", + x = 9960, + z = 7048, + facing = 3, + }, + { + name = "energywind", + x = 10008, + z = 280, + facing = 3, + }, + { + name = "turretaafar", + x = 8400, + z = 2832, + facing = 3, + }, + { + name = "energywind", + x = 10040, + z = 7048, + facing = 3, + }, + { + name = "energywind", + x = 10120, + z = 7048, + facing = 3, + }, + { + name = "energywind", + x = 10088, + z = 280, + facing = 3, + }, + { + name = "energywind", + x = 10200, + z = 7048, + facing = 3, + }, + { + name = "energywind", + x = 10168, + z = 280, + facing = 3, + }, + { + name = "energywind", + x = 10200, + z = 6968, + facing = 3, + }, + { + name = "energywind", + x = 9848, + z = 360, + facing = 3, + }, + { + name = "energywind", + x = 9960, + z = 6968, + facing = 3, + }, + { + name = "energywind", + x = 9928, + z = 360, + facing = 3, + }, + { + name = "energywind", + x = 10008, + z = 360, + facing = 3, + }, + { + name = "energywind", + x = 9880, + z = 6968, + facing = 3, + }, + { + name = "energywind", + x = 10088, + z = 360, + facing = 3, + }, + { + name = "energywind", + x = 9880, + z = 6888, + facing = 3, + }, + { + name = "turretaafar", + x = 8416, + z = 4368, + facing = 3, + }, + { + name = "energywind", + x = 10168, + z = 360, + facing = 3, + }, + { + name = "energywind", + x = 9960, + z = 6888, + facing = 3, + }, + { + name = "energywind", + x = 10040, + z = 6888, + facing = 3, + }, + { + name = "energywind", + x = 10168, + z = 440, + facing = 3, + }, + { + name = "energywind", + x = 10008, + z = 440, + facing = 3, + }, + { + name = "energywind", + x = 10120, + z = 6888, + facing = 3, + }, + { + name = "energywind", + x = 9928, + z = 440, + facing = 3, + }, + { + name = "energywind", + x = 10200, + z = 6888, + facing = 3, + }, + { + name = "energywind", + x = 9848, + z = 440, + facing = 3, + }, + { + name = "energywind", + x = 10200, + z = 6808, + facing = 3, + }, + { + name = "energywind", + x = 10008, + z = 520, + facing = 3, + }, + { + name = "energywind", + x = 10120, + z = 6808, + facing = 3, + }, + { + name = "energywind", + x = 10040, + z = 6808, + facing = 3, + }, + { + name = "energywind", + x = 10088, + z = 520, + facing = 3, + }, + { + name = "energywind", + x = 9960, + z = 6808, + facing = 3, + }, + { + name = "energywind", + x = 10168, + z = 520, + facing = 3, + }, + { + name = "energywind", + x = 9880, + z = 6808, + facing = 3, + }, + { + name = "energywind", + x = 10168, + z = 600, + facing = 3, + }, + { + name = "energywind", + x = 10088, + z = 600, + facing = 3, + }, + { + name = "energywind", + x = 9880, + z = 6728, + facing = 3, + }, + { + name = "energywind", + x = 10008, + z = 600, + facing = 3, + }, + { + name = "energywind", + x = 9960, + z = 6728, + facing = 3, + }, + { + name = "energywind", + x = 10040, + z = 6728, + facing = 3, + }, + { + name = "energywind", + x = 10120, + z = 6728, + facing = 3, + }, + { + name = "energywind", + x = 10200, + z = 6728, + facing = 3, + }, + { + name = "energywind", + x = 10120, + z = 6648, + facing = 3, + }, + { + name = "energywind", + x = 10200, + z = 6648, + facing = 3, + }, + { + name = "energywind", + x = 9800, + z = 6968, + facing = 3, + }, + { + name = "energywind", + x = 9800, + z = 7048, + facing = 3, + }, + { + name = "energywind", + x = 9800, + z = 7128, + facing = 3, + }, + { + name = "energypylon", + x = 10008, + z = 3352, + facing = 3, + }, + { + name = "staticshield", + x = 7424, + z = 4256, + facing = 3, + }, + { + name = "staticshield", + x = 7424, + z = 4464, + facing = 3, + }, + { + name = "energypylon", + x = 6360, + z = 6936, + facing = 3, + }, + { + name = "staticshield", + x = 7424, + z = 2736, + facing = 3, + }, + { + name = "staticshield", + x = 7424, + z = 2928, + facing = 3, + }, + { + name = "energygeo", + x = 6136, + z = 6904, + facing = 3, + }, + { + name = "staticshield", + x = 6144, + z = 6816, + facing = 3, + }, + { + name = "staticshield", + x = 6144, + z = 6992, + facing = 3, + }, + { + name = "turretheavy", + x = 5928, + z = 6728, + facing = 3, + }, + { + name = "turretheavy", + x = 5928, + z = 7112, + facing = 3, + }, + { + name = "turretaafar", + x = 6144, + z = 6720, + facing = 3, + }, + { + name = "turretemp", + x = 5904, + z = 6976, + facing = 3, + }, + { + name = "turretemp", + x = 5904, + z = 6864, + facing = 3, + }, + { + name = "energygeo", + x = 6136, + z = 248, + facing = 3, + }, + { + name = "turretheavy", + x = 5912, + z = 72, + facing = 3, + }, + { + name = "turretheavy", + x = 5912, + z = 456, + facing = 3, + }, + { + name = "energypylon", + x = 6376, + z = 248, + facing = 3, + }, + { + name = "turretaafar", + x = 6144, + z = 448, + facing = 3, + }, + { + name = "staticshield", + x = 6144, + z = 336, + facing = 3, + }, + { + name = "staticshield", + x = 6144, + z = 160, + facing = 3, + }, + { + name = "turretemp", + x = 5904, + z = 192, + facing = 3, + }, + { + name = "turretemp", + x = 5904, + z = 304, + facing = 3, + }, + { + name = "turretantiheavy", + x = 8320, + z = 5184, + facing = 3, + }, + { + name = "turretaaheavy", + x = 8464, + z = 5216, + facing = 3, + }, + { + name = "turretaaheavy", + x = 8400, + z = 1824, + facing = 3, + }, + { + name = "turretantiheavy", + x = 8224, + z = 1856, + facing = 3, + }, + { + name = "turretriot", + x = 8648, + z = 3752, + facing = 3, + }, + { + name = "turretriot", + x = 8648, + z = 3640, + facing = 3, + }, + { + name = "turretriot", + x = 8648, + z = 3528, + facing = 3, + }, + { + name = "turretriot", + x = 8728, + z = 3464, + facing = 2, + }, + { + name = "turretriot", + x = 8840, + z = 3464, + facing = 2, + }, + { + name = "turretriot", + x = 8952, + z = 3464, + facing = 2, + }, + { + name = "turretriot", + x = 8728, + z = 3816, + facing = 0, + }, + { + name = "turretriot", + x = 8840, + z = 3816, + facing = 0, + }, + { + name = "turretaaflak", + x = 8792, + z = 3976, + facing = 0, + }, + { + name = "turretaaflak", + x = 8648, + z = 3976, + facing = 0, + }, + { + name = "turretaaflak", + x = 8472, + z = 3704, + facing = 3, + }, + { + name = "turretaaflak", + x = 8472, + z = 3560, + facing = 3, + }, + { + name = "turretaaflak", + x = 8648, + z = 3272, + facing = 2, + }, + { + name = "turretaaflak", + x = 8792, + z = 3272, + facing = 2, + }, + { + name = "turretantiheavy", + x = 7568, + z = 6000, + facing = 3, + }, + { + name = "turretaaheavy", + x = 7584, + z = 6144, + facing = 3, + }, + { + name = "staticradar", + x = 6016, + z = 480, + facing = 1, + }, + { + name = "staticradar", + x = 7248, + z = 2752, + facing = 1, + }, + { + name = "staticradar", + x = 7248, + z = 4416, + facing = 1, + }, + { + name = "staticradar", + x = 6864, + z = 6416, + facing = 1, + }, + { + name = "turretheavylaser", + x = 7736, + z = 6520, + facing = 3, + }, + { + name = "turretheavylaser", + x = 8344, + z = 6248, + facing = 3, + }, + { + name = "factoryspider", + x = 8568, + z = 6056, + facing = 3, + }, + { + name = "staticcon", + x = 8680, + z = 5992, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8680, 5992}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8655, 5967}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8680, + z = 6088, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8680, 6088}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8655, 6063}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8776, + z = 6088, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8776, 6088}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8751, 6063}, options = {"shift"}}, + }, + }, + { + name = "striderdetriment", + x = 10182, + z = 3585, + facing = 0, + }, + { + name = "staticcon", + x = 8968, + z = 1384, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8968, 1384}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8943, 1409}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8968, + z = 1480, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8968, 1480}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8943, 1505}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8968, + z = 1576, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8968, 1576}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8943, 1601}, options = {"shift"}}, + }, + }, + { + name = "factoryspider", + x = 8840, + z = 1480, + facing = 3, + }, + { + name = "staticcon", + x = 9048, + z = 1432, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9048, 1432}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9023, 1457}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 9048, + z = 1528, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9048, 1528}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9023, 1553}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8856, + z = 5992, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8856, 5992}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8831, 5967}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 8856, + z = 6088, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8856, 6088}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {8831, 6063}, options = {"shift"}}, + }, + }, + { + name = "factorycloak", + x = 7168, + z = 5096, + facing = 3, + }, + { + name = "staticcon", + x = 7352, + z = 5048, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7352, 5048}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7327, 5023}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7352, + z = 5144, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7352, 5144}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7327, 5119}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7352, + z = 5240, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7352, 5240}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7327, 5215}, options = {"shift"}}, + }, + }, + { + name = "factorytank", + x = 6960, + z = 3760, + facing = 3, + }, + { + name = "factoryhover", + x = 6944, + z = 3296, + facing = 3, + }, + { + name = "staticcon", + x = 6952, + z = 3432, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6952, 3432}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6927, 3457}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7048, + z = 3432, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7048, 3432}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7023, 3457}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7048, + z = 3528, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7048, 3528}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7023, 3553}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 6952, + z = 3528, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6952, 3528}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6927, 3553}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 6952, + z = 3624, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6952, 3624}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {6927, 3599}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7048, + z = 3624, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7048, 3624}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7023, 3599}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7096, + z = 2024, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7096, 2024}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7071, 2049}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7096, + z = 2120, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7096, 2120}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7071, 2145}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 7096, + z = 2216, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7096, 2216}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {7071, 2241}, options = {"shift"}}, + }, + }, + { + name = "factoryjump", + x = 6952, + z = 2120, + facing = 3, + }, + { + name = "factoryplane", + x = 9400, + z = 2416, + facing = 3, + }, + { + name = "staticcon", + x = 9400, + z = 2232, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9400, 2232}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9375, 2257}, options = {"shift"}}, + }, + }, + { + name = "staticcon", + x = 9496, + z = 2232, + facing = 3, + commands = { + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9496, 2232}}, + {cmdID = planetUtilities.COMMAND.PATROL, pos = {9471, 2257}, options = {"shift"}}, + }, + }, + { + name = "staticrearm", + x = 9032, + z = 2872, + facing = 3, + }, + { + name = "staticrearm", + x = 9032, + z = 4296, + facing = 3, + }, + { + name = "staticcon", + x = 9016, + z = 4440, + facing = 3, + }, + { + name = "staticcon", + x = 9000, + z = 2728, + facing = 3, + }, + { + name = "factorygunship", + x = 9592, + z = 5128, + facing = 3, + }, + { + name = "staticcon", + x = 9528, + z = 5000, + facing = 3, + }, + { + name = "staticcon", + x = 9624, + z = 5000, + facing = 3, + }, + { + name = "staticcon", + x = 9976, + z = 3464, + facing = 3, + }, + { + name = "staticcon", + x = 10072, + z = 3464, + facing = 3, + }, + { + name = "staticcon", + x = 10072, + z = 3560, + facing = 3, + }, + { + name = "staticcon", + x = 9976, + z = 3560, + facing = 3, + }, + { + name = "striderhub", + x = 10016, + z = 3664, + facing = 3, + }, + { + name = "striderdante", + x = 7642, + z = 3260, + facing = 0, + }, + { + name = "striderdante", + x = 7635, + z = 3978, + facing = 0, + }, + { + name = "striderarty", + x = 8398, + z = 3285, + facing = 0, + }, + { + name = "striderarty", + x = 8383, + z = 3995, + facing = 0, + }, + { + name = "hoverarty", + x = 6365, + z = 3499, + facing = 3, + }, + { + name = "hoverassault", + x = 6443, + z = 3112, + facing = 3, + }, + { + name = "hoverassault", + x = 6450, + z = 3069, + facing = 3, + }, + { + name = "hoverassault", + x = 6381, + z = 3300, + facing = 3, + }, + { + name = "hoverassault", + x = 6370, + z = 3431, + facing = 3, + }, + { + name = "hoverassault", + x = 6493, + z = 3069, + facing = 3, + }, + { + name = "hoverassault", + x = 6369, + z = 3572, + facing = 3, + }, + { + name = "hoverassault", + x = 6406, + z = 3134, + facing = 3, + }, + { + name = "hoverassault", + x = 6367, + z = 3365, + facing = 3, + }, + { + name = "hoverskirm", + x = 6399, + z = 3177, + facing = 3, + }, + { + name = "hoverskirm", + x = 6397, + z = 3540, + facing = 3, + }, + { + name = "hoverskirm", + x = 6398, + z = 3235, + facing = 3, + }, + { + name = "hoverskirm", + x = 6400, + z = 3461, + facing = 3, + }, + { + name = "hoverskirm", + x = 6429, + z = 3206, + facing = 3, + }, + { + name = "hoverskirm", + x = 6404, + z = 3596, + facing = 3, + }, + { + name = "hoverskirm", + x = 6396, + z = 3397, + facing = 3, + }, + { + name = "hoverskirm", + x = 6416, + z = 3275, + facing = 3, + }, + { + name = "hoverskirm", + x = 6400, + z = 3338, + facing = 3, + }, + { + name = "staticantinuke", + x = 9344, + z = 5288, + facing = 1, + }, + { + name = "spidercon", + x = 7743, + z = 1404, + facing = 0, + }, + { + name = "spidercon", + x = 8241, + z = 1998, + facing = 0, + }, + { + name = "spidercon", + x = 8581, + z = 2464, + facing = 0, + }, + { + name = "spidercon", + x = 8594, + z = 1477, + facing = 0, + }, + { + name = "spidercon", + x = 8890, + z = 4690, + facing = 0, + }, + { + name = "spidercon", + x = 8143, + z = 4740, + facing = 0, + }, + { + name = "spidercon", + x = 8454, + z = 5674, + facing = 0, + }, + { + name = "spidercon", + x = 8106, + z = 6554, + facing = 0, + }, + { + name = "spidercon", + x = 7469, + z = 5397, + facing = 0, + }, + { + name = "tankheavyassault", + x = 6659, + z = 3904, + facing = 0, + }, + { + name = "tankassault", + x = 6741, + z = 3917, + facing = 0, + }, + { + name = "staticantinuke", + x = 7920, + z = 5880, + facing = 1, + }, + { + name = "tankassault", + x = 6710, + z = 3575, + facing = 2, + }, + { + name = "tankassault", + x = 6484, + z = 3900, + facing = 3, + }, + { + name = "tankassault", + x = 6479, + z = 3826, + facing = 3, + }, + { + name = "tankassault", + x = 6568, + z = 3908, + facing = 3, + }, + { + name = "spiderriot", + x = 8326, + z = 6048, + facing = 3, + }, + { + name = "tankassault", + x = 6529, + z = 3859, + facing = 3, + }, + { + name = "spiderriot", + x = 8377, + z = 5920, + facing = 3, + }, + { + name = "spiderriot", + x = 8377, + z = 6065, + facing = 3, + }, + { + name = "tankassault", + x = 6606, + z = 3834, + facing = 3, + }, + { + name = "spiderassault", + x = 8379, + z = 6011, + facing = 3, + }, + { + name = "spiderassault", + x = 8418, + z = 6118, + facing = 3, + }, + { + name = "spiderriot", + x = 8360, + z = 1763, + facing = 3, + }, + { + name = "spiderriot", + x = 8301, + z = 1671, + facing = 0, + }, + { + name = "spiderassault", + x = 8421, + z = 6017, + facing = 3, + }, + { + name = "spiderriot", + x = 8370, + z = 1719, + facing = 3, + }, + { + name = "spiderskirm", + x = 8343, + z = 1663, + facing = 0, + }, + { + name = "spiderskirm", + x = 8386, + z = 1667, + facing = 0, + }, + { + name = "spiderassault", + x = 8418, + z = 6076, + facing = 3, + }, + { + name = "spiderskirm", + x = 8456, + z = 1622, + facing = 3, + }, + { + name = "spiderassault", + x = 8454, + z = 6053, + facing = 3, + }, + { + name = "jumpassault", + x = 6716, + z = 2120, + facing = 3, + }, + { + name = "spideremp", + x = 8460, + z = 1702, + facing = 3, + }, + { + name = "jumpraid", + x = 6772, + z = 1997, + facing = 3, + }, + { + name = "spideremp", + x = 8410, + z = 1703, + facing = 3, + }, + { + name = "jumpraid", + x = 6757, + z = 2020, + facing = 3, + }, + { + name = "spiderassault", + x = 8402, + z = 5953, + facing = 2, + }, + { + name = "jumpraid", + x = 6734, + z = 2092, + facing = 3, + }, + { + name = "jumpraid", + x = 6740, + z = 2066, + facing = 3, + }, + { + name = "cloakriot", + x = 6687, + z = 5178, + facing = 3, + }, + { + name = "cloakriot", + x = 6684, + z = 5073, + facing = 3, + }, + { + name = "cloakriot", + x = 6710, + z = 5142, + facing = 2, + }, + { + name = "cloakskirm", + x = 6687, + z = 5115, + facing = 3, + }, + { + name = "cloakskirm", + x = 6726, + z = 5079, + facing = 3, + }, + { + name = "cloakskirm", + x = 6707, + z = 5098, + facing = 0, + }, + { + name = "cloakskirm", + x = 6746, + z = 5139, + facing = 3, + }, + { + name = "cloakskirm", + x = 6728, + z = 5113, + facing = 3, + }, + { + name = "cloakskirm", + x = 6754, + z = 5115, + facing = 3, + }, + { + name = "cloakskirm", + x = 6778, + z = 5106, + facing = 3, + }, + { + name = "cloakskirm", + x = 6797, + z = 5129, + facing = 3, + }, + { + name = "cloakskirm", + x = 6803, + z = 5102, + facing = 3, + }, + { + name = "staticantinuke", + x = 9136, + z = 2520, + facing = 1, + }, + { + name = "staticantinuke", + x = 7520, + z = 1544, + facing = 1, + }, + } + }, + }, + defeatConditionConfig = { + -- Indexed by allyTeam. + [0] = { }, + [1] = { + ignoreUnitLossDefeat = false, + vitalCommanders = false, + vitalUnitTypes = { + "energysingu", + "raveparty", + "zenith", + "factorycloak", + "factoryshield", + "factoryplane", + "factoryveh", + "factorygunship", + "factoryjump", + "factoryspider", + "factoryhover", + "factorytank", + "factoryamph", + "factoryship", + }, + loseAfterSeconds = false, + allyTeamLossObjectiveID = 1, + }, + }, + objectiveConfig = { + -- This is just related to displaying objectives on the UI. + [1] = { + description = "Destroy all enemy Superweapons, Factories and Singularity Reactors", + }, + [2] = { + description = "Protect your Commander", + }, + }, + bonusObjectiveConfig = { + [1] = { + satisfyForever = true, + comparisionType = planetUtilities.COMPARE.AT_LEAST, + targetNumber = 20, + unitTypes = { + "staticmex", + }, + image = planetUtilities.ICON_DIR .. "staticmex.png", + imageOverlay = planetUtilities.ICON_OVERLAY.REPAIR, + description = "Always have at least 20 Metal Extractors", + experience = planetUtilities.BONUS_EXP, + }, } }, completionReward = { diff --git a/campaign/sample/planets/planet69.lua b/campaign/sample/planets/planet69.lua index d5fde6fcb..a9ff57989 100644 --- a/campaign/sample/planets/planet69.lua +++ b/campaign/sample/planets/planet69.lua @@ -28,7 +28,8 @@ local function GetPlanet(planetUtilities, planetID) radius = "6550 km", primary = "Origin", primaryType = "G8V", - milRating = 1, + milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24417", text = [[Familiarize yourself with command by establishing a foothold on a critical piece of infrastructure. The abandoned tools of war the previous owners left behind will serve as good practice for the tougher challenges ahead.]] }, gameConfig = { diff --git a/campaign/sample/planets/planet7.lua b/campaign/sample/planets/planet7.lua index 19f2b507f..920064fa0 100644 --- a/campaign/sample/planets/planet7.lua +++ b/campaign/sample/planets/planet7.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Omis", primaryType = "G7V", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24429", text = [[The Artefact on this planet contains invaluable information, but it is protected by a large automated defence network. Infiltrate the Automaton base with Phantom sniper bots and destroy the Singularity Plants to deactivate the heavier defences.]] }, tips = { diff --git a/campaign/sample/planets/planet70.lua b/campaign/sample/planets/planet70.lua index 0caec0530..bf9c14e2a 100644 --- a/campaign/sample/planets/planet70.lua +++ b/campaign/sample/planets/planet70.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Easnor", primaryType = "A4IV", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24566", text = [[Burn out forests of Wind Generators with Phoenixes to cripple your enemy and allow the land units of your ally to make progress. Protect your bombers against enemy air with Raptors.]] }, tips = { diff --git a/campaign/sample/planets/planet71.lua b/campaign/sample/planets/planet71.lua index ca9e986a8..f4abcb2ca 100644 --- a/campaign/sample/planets/planet71.lua +++ b/campaign/sample/planets/planet71.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Edo", primaryType = "K1", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24489", text = [[This remote moon was used for widely broadcast rally races in a bygone age. A classic challenge now awaits all comers: the Super Extreme Kodachi Rally!]] }, tips = { diff --git a/campaign/sample/planets/planet8.lua b/campaign/sample/planets/planet8.lua index 0c699d750..3cf3eccb9 100644 --- a/campaign/sample/planets/planet8.lua +++ b/campaign/sample/planets/planet8.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Thibella", primaryType = "G3V", milRating = 2, + feedbackLink = "http://zero-k.info/Forum/Thread/24429", text = [[The enemy has a Big Bertha cannon which is dominating the battlefield. Sneak into their base with Scythes and eliminate the threat.]] }, tips = { diff --git a/campaign/sample/planets/planet9.lua b/campaign/sample/planets/planet9.lua index 939219f55..fc2b863cf 100644 --- a/campaign/sample/planets/planet9.lua +++ b/campaign/sample/planets/planet9.lua @@ -25,6 +25,7 @@ local function GetPlanet(planetUtilities, planetID) primary = "Xar", primaryType = "B2Ia", milRating = 1, + feedbackLink = "http://zero-k.info/Forum/Thread/24457", text = [[Besides the occasional strange hills dotting the landscape, this is a smooth and level battlefield. Your opponent has arrived before you and has begun expanding their economy. Use your Scorchers to punish their greed.]] }, tips = { diff --git a/libs/chiliui/luamenu/chili/chili/controls/control.lua b/libs/chiliui/luamenu/chili/chili/controls/control.lua index 664c8f4d3..1b02609e8 100644 --- a/libs/chiliui/luamenu/chili/chili/controls/control.lua +++ b/libs/chiliui/luamenu/chili/chili/controls/control.lua @@ -304,7 +304,7 @@ function Control:GetRelativeBox(savespace) end local p = self.parent - if (not p) then + if not p or not UnlinkSafe(p) then return t end @@ -921,7 +921,7 @@ end function Control:_UpdateOwnDList() - if not self.parent then return end + if not self.parent or not UnlinkSafe(self.parent) then return end if not self:IsInView() then return end if not self.useDLists then return end @@ -931,7 +931,7 @@ end function Control:_UpdateChildrenDList() - if not self.parent then return end + if not self.parent or not UnlinkSafe(self.parent) then return end if not self:IsInView() then return end if self:InheritsFrom("scrollpanel") and not self._cantUseRTT then @@ -948,7 +948,7 @@ end function Control:_UpdateAllDList() - if not self.parent then return end + if not self.parent or not UnlinkSafe(self.parent) then return end if not self:IsInView() then return end local RTT = self:_CheckIfRTTisAppreciated() @@ -1138,7 +1138,7 @@ end function Control:IsRectInView(x,y,w,h) - if (not self.parent) then + if not self.parent or not UnlinkSafe(self.parent) then return false end diff --git a/libs/liblobby/lobby/interface_skirmish.lua b/libs/liblobby/lobby/interface_skirmish.lua index cc164027a..8ab02361c 100644 --- a/libs/liblobby/lobby/interface_skirmish.lua +++ b/libs/liblobby/lobby/interface_skirmish.lua @@ -233,21 +233,21 @@ function InterfaceSkirmish:StartReplay(replayFilename) ]] scriptTxt = scriptTxt:gsub("__FILE__", replayFilename) - self:_CallListeners("OnBattleAboutToStart") + self:_CallListeners("OnBattleAboutToStart", "replay") Spring.Echo("starting game", scriptTxt) Spring.Reload(scriptTxt) return false end -function InterfaceSkirmish:StartGameFromString(scriptString) - self:_CallListeners("OnBattleAboutToStart") +function InterfaceSkirmish:StartGameFromString(scriptString, gameType) + self:_CallListeners("OnBattleAboutToStart", gameType) Spring.Reload(scriptString) return false end -function InterfaceSkirmish:StartGameFromFile(scriptFileName) - self:_CallListeners("OnBattleAboutToStart") +function InterfaceSkirmish:StartGameFromFile(scriptFileName, gameType) + self:_CallListeners("OnBattleAboutToStart", gameType) if self.useSpringRestart then Spring.Restart(scriptFileName, "") else @@ -257,7 +257,7 @@ function InterfaceSkirmish:StartGameFromFile(scriptFileName) end -- TODO: Needs clean implementation in lobby.lua -function InterfaceSkirmish:StartBattle(extraFriends, friendsReplaceAI, hostPort) +function InterfaceSkirmish:StartBattle(gameType, extraFriends, friendsReplaceAI, hostPort) local battle = self:GetBattle(self:GetMyBattleID()) if not battle.gameName then Spring.Log(LOG_SECTION, LOG.ERROR, "Missing battle.gameName. Game cannot start") @@ -268,7 +268,7 @@ function InterfaceSkirmish:StartBattle(extraFriends, friendsReplaceAI, hostPort) return self end - self:_CallListeners("OnBattleAboutToStart") + self:_CallListeners("OnBattleAboutToStart", gameType) self:_OnSaidBattleEx("Battle", "about to start", battle.gameName, battle.mapName, self:GetMyUserName() or "noname") self:_StartScript(battle.gameName, battle.mapName, self:GetMyUserName() or "noname", extraFriends, friendsReplaceAI, hostPort) return self diff --git a/libs/liblobby/lobby/lobby.lua b/libs/liblobby/lobby/lobby.lua index 24b58a27a..12e99342d 100644 --- a/libs/liblobby/lobby/lobby.lua +++ b/libs/liblobby/lobby/lobby.lua @@ -238,7 +238,7 @@ function Lobby:SayBattleEx(message) return self end -function Lobby:ConnectToBattle(useSpringRestart, battleIp, battlePort, scriptPassword, gameName, mapName, engineName) +function Lobby:ConnectToBattle(useSpringRestart, battleIp, battlePort, scriptPassword, gameName, mapName, engineName, battleType) if gameName and not VFS.HasArchive(gameName) then WG.Chobby.InformationPopup("Cannont start game: missing game file '" .. gameName .. "'.") return @@ -263,7 +263,7 @@ function Lobby:ConnectToBattle(useSpringRestart, battleIp, battlePort, scriptPas return end - self:_CallListeners("OnBattleAboutToStart") + self:_CallListeners("OnBattleAboutToStart", battleType) Spring.Echo("Game starts!") if useSpringRestart then @@ -1322,12 +1322,27 @@ function Lobby:TryGetUser(userName) end return userInfo end + +function Lobby:LearnAboutOfflineUser(userName, data) + local userInfo = self:TryGetUser(userName) + + if not userInfo.isOffline then + return + end + + for key, value in pairs(data) do + userInfo[key] = value + end +end + function Lobby:GetUser(userName) return self.users[userName] end + function Lobby:GetUserBattleStatus(userName) return self.userBattleStatus[userName] end + -- returns users table (not necessarily an array) function Lobby:GetUsers() return ShallowCopy(self.users)