diff --git a/mods/ra/maps/sarin-gas-2-down-under/downunder.lua b/mods/ra/maps/sarin-gas-2-down-under/downunder.lua new file mode 100644 index 000000000000..b7488f85da40 --- /dev/null +++ b/mods/ra/maps/sarin-gas-2-down-under/downunder.lua @@ -0,0 +1,457 @@ +--[[ + Copyright 2007-2018 The OpenRA Developers (see AUTHORS) + This file is part of OpenRA, which is free software. It is made + available to you under the terms of the GNU General Public License + as published by the Free Software Foundation, either version 3 of + the License, or (at your option) any later version. For more + information, see COPYING. +]] +SarinDispensed = false +TanyaFreed = false +TruckStolen = false +SovietImportantGuys = { Officer3, Officer2, Officer1, Scientist1, Scientist2 } +Camera1Towers = { FlameTower2, FlameTower3 } +TruckExit = { TruckDrive1, TruckDrive2 } +TruckEntry = { TruckDrive3.Location, TruckDrive4.Location, TruckDrive5.Location } +TruckType = { "truk" } +DogCrew = { DogCrew1, DogCrew2, DogCrew3 } +SarinVictims = { SarinVictim1, SarinVictim2, SarinVictim3, SarinVictim4, SarinVictim5, SarinVictim6, SarinVictim7, SarinVictim8, SarinVictim9, SarinVictim10, SarinVictim11, SarinVictim12, SarinVictim13 } +Camera2Team = { Camera2Rifle1, Camera2Rifle2, Camera2Rifle3, Camera2Gren1, Camera2Gren2 } +PrisonAlarm = { CPos.New(55,75), CPos.New(55,76), CPos.New(55,77), CPos.New(55,81), CPos.New(55,82), CPos.New(55,83), CPos.New(60,77), CPos.New(60,81), CPos.New(60,82), CPos.New(60,83) } +GuardDogs = { PrisonDog1, PrisonDog2, PrisonDog3, PrisonDog4 } +TanyaTowers = { FlameTowerTanya1, FlameTowerTanya2 } +ExecutionArea = { CPos.New(91, 70), CPos.New(92, 70), CPos.New(93, 70), CPos.New(94, 70) } +FiringSquad = { FiringSquad1, FiringSquad2, FiringSquad3, FiringSquad4, FiringSquad5, Officer2 } +DemoTeam = { DemoDog, DemoRifle1, DemoRifle2, DemoRifle3, DemoRifle4, DemoFlame } +DemoTruckPath = { DemoDrive1, DemoDrive2, DemoDrive3, DemoDrive4 } +WinTriggerArea = { CPos.New(111, 59), CPos.New(111, 60), CPos.New(111, 61), CPos.New(111, 62), CPos.New(111, 63), CPos.New(111, 64), CPos.New(111, 65) } + +ObjectiveTriggers = function() + Trigger.OnEnteredFootprint(WinTriggerArea, function(a, id) + if not EscapeGoalTrigger and a.Owner == greece then + EscapeGoalTrigger = true + greece.MarkCompletedObjective(ExitBase) + if Map.LobbyOption("difficulty") == "hard" then + greece.MarkCompletedObjective(NoCasualties) + end + if TanyaFreed == false then + greece.MarkFailedObjective(FreeTanya) + else + greece.MarkCompletedObjective(FreeTanya) + end + end + end) + + Trigger.OnKilled(Tanya, function() + greece.MarkFailedObjective(FreeTanya) + end) + + Trigger.OnAllKilled(TanyaTowers, function() + TanyaFreed = true + end) + + Trigger.OnAllKilled(SovietImportantGuys, function() + greece.MarkCompletedObjective(KillVIPs) + end) + + Trigger.OnInfiltrated(WarFactory2, function() + if not StealMammoth.IsDead or StealMammoth.Owner ~= ussr then + greece.MarkCompletedObjective(StealTank) + StealMammoth.Owner = greece + end + end) +end + +ConsoleTriggers = function() + Trigger.OnEnteredProximityTrigger(Terminal1.CenterPosition, WDist.FromCells(1), function(actor, trigger1) + if actor.Owner == greece then + Trigger.RemoveProximityTrigger(trigger1) + Media.DisplayMessage("Flame Turret deactivated", "Console") + if not FlameTower1.IsDead then + FlameTower1.Kill() + end + end + end) + + Trigger.OnEnteredProximityTrigger(Terminal2.CenterPosition, WDist.FromCells(1), function(actor, trigger2) + if actor.Owner == greece then + Trigger.RemoveProximityTrigger(trigger2) + Media.DisplayMessage("Flame Turret deactivated", "Console") + if not FlameTower2.IsDead then + FlameTower2.Kill() + end + end + end) + + Trigger.OnEnteredProximityTrigger(Terminal3.CenterPosition, WDist.FromCells(1), function(actor, trigger3) + if actor.Owner == greece then + Trigger.RemoveProximityTrigger(trigger3) + Media.DisplayMessage("Flame Turret deactivated", "Console") + if not FlameTower3.IsDead then + FlameTower3.Kill() + end + end + end) + + Trigger.OnEnteredProximityTrigger(Terminal4.CenterPosition, WDist.FromCells(1), function(actor, trigger4) + if actor.Owner == greece then + SarinDispensed = true + Trigger.RemoveProximityTrigger(trigger4) + Media.DisplayMessage("Sarin Nerve Gas dispensers activated", "Console") + local KillCamera = Actor.Create("camera", true, { Owner = greece, Location = Sarin2.Location }) + flare1 = Actor.Create("flare", true, { Owner = england, Location = Sarin1.Location }) + flare2 = Actor.Create("flare", true, { Owner = england, Location = Sarin2.Location }) + flare3 = Actor.Create("flare", true, { Owner = england, Location = Sarin3.Location }) + flare4 = Actor.Create("flare", true, { Owner = england, Location = Sarin4.Location }) + Trigger.AfterDelay(DateTime.Seconds(4), function() + Utils.Do(SarinVictims, function(actor) + if actor.IsDead then + return + else + actor.Kill() + end + end) + end) + + Trigger.AfterDelay(DateTime.Seconds(20), function() + flare1.Destroy() + flare2.Destroy() + flare3.Destroy() + flare4.Destroy() + KillCamera.Destroy() + end) + end + end) + + Trigger.OnEnteredProximityTrigger(Terminal5.CenterPosition, WDist.FromCells(1), function(actor, trigger5) + if actor.Owner == greece then + Trigger.RemoveProximityTrigger(trigger5) + Media.DisplayMessage("Tesla Coil deactivated", "Console") + if not BadCoil.IsDead then + BadCoil.Kill() + end + end + end) + + Trigger.OnEnteredProximityTrigger(Terminal6.CenterPosition, WDist.FromCells(1), function(actor, trigger6) + if actor.Owner == greece then + Trigger.RemoveProximityTrigger(trigger6) + Media.DisplayMessage("Initialising Tesla Coil defence", "Console") + local Tesla1 = Actor.Create("tsla", true, { Owner = turkey, Location = TurkeyCoil1.Location }) + local Tesla2 = Actor.Create("tsla", true, { Owner = turkey, Location = TurkeyCoil2.Location }) + Trigger.AfterDelay(DateTime.Seconds(10), function() + if not Tesla1.IsDead then + Tesla1.Kill() + end + if not Tesla2.IsDead then + Tesla2.Kill() + end + end) + end + end) + + Trigger.OnEnteredProximityTrigger(Terminal7.CenterPosition, WDist.FromCells(1), function(actor, trigger7) + if actor.Owner == greece then + Trigger.RemoveProximityTrigger(trigger7) + Media.DisplayMessage("Flame Turrets deactivated", "Console") + if not FlameTowerTanya1.IsDead then + FlameTowerTanya1.Kill() + end + if not FlameTowerTanya2.IsDead then + FlameTowerTanya2.Kill() + end + end + end) + + Trigger.OnEnteredProximityTrigger(Terminal8.CenterPosition, WDist.FromCells(1), function(actor, trigger8) + if actor.Owner == greece then + Trigger.RemoveProximityTrigger(trigger8) + Media.DisplayMessage("Flame Turrets deactivated", "Console") + if not FlameTowerExit1.IsDead then + FlameTowerExit1.Kill() + end + if not FlameTowerExit3.IsDead then + FlameTowerExit3.Kill() + end + end + end) +end + +CameraTriggers = function() + Trigger.AfterDelay(DateTime.Seconds(1), function() + local StartCamera = Actor.Create("camera", true, { Owner = greece, Location = start.Location }) + Trigger.AfterDelay(DateTime.Seconds(10), function() + StartCamera.Destroy() + end) + end) + + Trigger.OnEnteredProximityTrigger(CameraTrigger1.CenterPosition, WDist.FromCells(8), function(actor, triggercam1) + if actor.Owner == greece then + Trigger.RemoveProximityTrigger(triggercam1) + local Camera1 = Actor.Create("camera", true, { Owner = greece, Location = CameraTrigger1.Location }) + Trigger.OnAllKilled(Camera1Towers, function() + Camera1.Destroy() + end) + end + end) + + Trigger.OnEnteredProximityTrigger(CameraTrigger2.CenterPosition, WDist.FromCells(8), function(actor, triggercam2) + if actor.Owner == greece then + Trigger.RemoveProximityTrigger(triggercam2) + local Camera2 = Actor.Create("camera", true, { Owner = greece, Location = CameraTrigger2.Location }) + Utils.Do(Camera2Team, function(actor) + actor.AttackMove(CameraTrigger1.Location) + end) + Trigger.AfterDelay(DateTime.Seconds(10), function() + Camera2.Destroy() + end) + end + end) + + Trigger.OnEnteredProximityTrigger(CameraTrigger3.CenterPosition, WDist.FromCells(8), function(actor, triggercam3) + if actor.Owner == greece then + Trigger.RemoveProximityTrigger(triggercam3) + local Camera3 = Actor.Create("camera", true, { Owner = greece, Location = CameraTrigger3.Location }) + Actor.Create("apwr", true, { Owner = france, Location = PowerPlantSpawn1.Location }) + Actor.Create("apwr", true, { Owner = germany, Location = PowerPlantSpawn2.Location }) + if not Mammoth1.IsDead then + Mammoth1.AttackMove(MammothGo.Location) + end + Trigger.OnKilled(Mammoth1, function() + GoodCoil.Kill() + Camera3.Destroy() + end) + end + end) + + Trigger.OnEnteredProximityTrigger(CameraTrigger4.CenterPosition, WDist.FromCells(9), function(actor, triggercam4) + if actor.Owner == greece then + Trigger.RemoveProximityTrigger(triggercam4) + local Camera4 = Actor.Create("camera", true, { Owner = greece, Location = CameraTrigger4.Location }) + Trigger.OnKilled(Mammoth2, function() + Camera4.Destroy() + end) + end + end) + + Trigger.OnEnteredProximityTrigger(CameraTrigger5.CenterPosition, WDist.FromCells(8), function(actor, triggercam5) + if actor.Owner == greece then + Trigger.RemoveProximityTrigger(triggercam5) + local Camera5 = Actor.Create("camera", true, { Owner = greece, Location = CameraTrigger5.Location }) + Trigger.AfterDelay(DateTime.Seconds(10), function() + Camera5.Destroy() + end) + end + end) + + Trigger.OnEnteredProximityTrigger(CameraTrigger6.CenterPosition, WDist.FromCells(11), function(actor, triggercam6) + if actor.Owner == greece then + Trigger.RemoveProximityTrigger(triggercam6) + Actor.Create("camera", true, { Owner = greece, Location = CameraTrigger6.Location }) + end + end) + + Trigger.OnEnteredFootprint(ExecutionArea, function(actor, triggercam7) + if actor.Owner == greece then + Trigger.RemoveFootprintTrigger(triggercam7) + local Camera7 = Actor.Create("camera", true, { Owner = greece, Location = CameraTrigger7.Location }) + Trigger.AfterDelay(DateTime.Seconds(25), function() + Camera7.Destroy() + end) + ScientistExecution() + end + end) +end + +TruckSteal = function() + Trigger.OnInfiltrated(WarFactory1, function() + if TruckStolen == false and not StealTruck.IsDead then + TruckStolen = true + local TruckSteal1 = Actor.Create("camera", true, { Owner = greece, Location = TruckDrive1.Location }) + Trigger.AfterDelay(DateTime.Seconds(10), function() + TruckSteal1.Destroy() + end) + Utils.Do(TruckExit, function(waypoint) + StealTruck.Move(waypoint.Location) + end) + end + end) + + Trigger.OnEnteredFootprint({ TruckDrive2.Location }, function(actor, triggertruck1) + if actor.Type == "truk" then + Trigger.RemoveFootprintTrigger(triggertruck1) + actor.Destroy() + Trigger.AfterDelay(DateTime.Seconds(3), function() + SpyTruckDrive() + end) + end + end) +end + +SpyTruckDrive = function() + StealTruck = Reinforcements.Reinforce(ussr, TruckType, TruckEntry) + local TruckSteal2 = Actor.Create("camera", true, { Owner = greece, Location = TruckCamera.Location }) + Trigger.AfterDelay(DateTime.Seconds(10), function() + TruckSteal2.Destroy() + end) + + Trigger.OnEnteredFootprint({ TruckDrive5.Location }, function(actor, triggertruck2) + if actor.Type == "truk" then + local DogCrewCamera = Actor.Create("camera", true, { Owner = greece, Location = DoggyCam.Location }) + Trigger.RemoveFootprintTrigger(triggertruck2) + Spy = Actor.Create("spy", true, { Owner = greece, Location = TruckDrive5.Location }) + Spy.DisguiseAsType("e1", ussr) + Spy.Move(SpyMove.Location) + Trigger.AfterDelay(DateTime.Seconds(10), function() + DogCrewCamera.Destroy() + end) + Utils.Do(DogCrew, function(actor) + if actor.IsDead then + return + else + actor.AttackMove(DoggyMove.Location) + end + end) + end + end) +end + +PrisonEscape = function() + Trigger.OnEnteredFootprint(PrisonAlarm, function(unit, id) + Trigger.RemoveFootprintTrigger(id) + Media.DisplayMessage("Warning, prisoners are attempting to escape!", "Intercom") + Media.PlaySoundNotification(greece, "AlertBuzzer") + Utils.Do(GuardDogs, function(actor) + if actor.IsDead then + return + else + actor.Hunt() + end + end) + end) +end + +ScientistExecution = function() + Media.PlaySoundNotification(greece, "AlertBleep") + Media.DisplayMessage("The base is compromised. We have to hurry the execution!", "Soviet Officer") + Utils.Do(DemoTeam, function(actor) + actor.AttackMove(DemoDrive2.Location) + end) + + Trigger.OnAllKilled(FiringSquad, function() + if not ScientistMan.IsDead then + ScientistRescued() + end + end) + + Trigger.AfterDelay(DateTime.Seconds(7), function() + if not Officer2.IsDead then + Media.DisplayMessage("Prepare to Fire!", "Soviet Officer") + end + end) + + Trigger.AfterDelay(DateTime.Seconds(15), function() + if not Officer2.IsDead then + Media.DisplayMessage("Fire!", "Soviet Officer") + end + + Utils.Do(FiringSquad, function(actor) + if actor.IsDead then + return + else + actor.Attack(ScientistMan, true, true) + end + end) + end) +end + +ScientistRescued = function() + Media.DisplayMessage("Thanks for the rescue!", "Scientist") + Trigger.AfterDelay(DateTime.Seconds(5), function() + if not ScientistMan.IsDead and not DemoTruck.IsDead then + Media.DisplayMessage("The Soviets have an unstable nuclear device stored here. \n I need to move it out of the facility!", "Scientist") + DemoTruck.GrantCondition("mission") + ScientistMan.EnterTransport(DemoTruck) + end + end) + + Trigger.OnRemovedFromWorld(ScientistMan, DemoTruckExit) +end + +DemoTruckExit = function() + if ScientistMan.IsDead then + return + end + + Media.DisplayMessage("I hope the exit is clear!", "Scientist") + Utils.Do(DemoTruckPath, function(waypoint) + DemoTruck.Move(waypoint.Location) + end) + + Trigger.OnEnteredFootprint({ DemoDrive4.Location }, function(actor, demotruckescape) + if actor.Type == "dtrk" then + Trigger.RemoveFootprintTrigger(demotruckescape) + actor.Destroy() + end + end) +end + +AcceptableLosses = 0 +Tick = function() + if greece.HasNoRequiredUnits() then + greece.MarkFailedObjective(ExitBase) + end + + if Map.LobbyOption("difficulty") == "hard" and greece.UnitsLost > AcceptableLosses then + greece.MarkFailedObjective(NoCasualties) + end +end + +WorldLoaded = function() + greece = Player.GetPlayer("Greece") + england = Player.GetPlayer("England") + turkey = Player.GetPlayer("Turkey") + ussr = Player.GetPlayer("USSR") + badguy = Player.GetPlayer("BadGuy") + france = Player.GetPlayer("France") + germany = Player.GetPlayer("Germany") + + Trigger.OnObjectiveAdded(greece, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective") + end) + + ussrObj = ussr.AddPrimaryObjective("Defeat the Allies.") + ExitBase = greece.AddPrimaryObjective("Reach the eastern exit of the facility.") + FreeTanya = greece.AddPrimaryObjective("Free Tanya and keep her alive.") + KillVIPs = greece.AddSecondaryObjective("Kill all Soviet officers and scientists.") + StealTank = greece.AddSecondaryObjective("Steal a Soviet mammoth tank.") + if Map.LobbyOption("difficulty") == "hard" then + NoCasualties = greece.AddPrimaryObjective("Do not lose a single soldier or civilian \nunder your command. (Hard)") + end + + Trigger.OnObjectiveCompleted(greece, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed") + end) + Trigger.OnObjectiveFailed(greece, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed") + end) + + Trigger.OnPlayerLost(greece, function() + Media.PlaySpeechNotification(greece, "Lose") + end) + Trigger.OnPlayerWon(greece, function() + Media.PlaySpeechNotification(greece, "Win") + end) + + StartSpy.DisguiseAsType("e1", ussr) + StartAttacker1.AttackMove(start.Location) + StartAttacker2.AttackMove(start.Location) + + Camera.Position = start.CenterPosition + + ObjectiveTriggers() + ConsoleTriggers() + CameraTriggers() + TruckSteal() + PrisonEscape() +end diff --git a/mods/ra/maps/sarin-gas-2-down-under/map.bin b/mods/ra/maps/sarin-gas-2-down-under/map.bin new file mode 100644 index 000000000000..1b8fb3371550 Binary files /dev/null and b/mods/ra/maps/sarin-gas-2-down-under/map.bin differ diff --git a/mods/ra/maps/sarin-gas-2-down-under/map.png b/mods/ra/maps/sarin-gas-2-down-under/map.png new file mode 100644 index 000000000000..29bfd56141d4 Binary files /dev/null and b/mods/ra/maps/sarin-gas-2-down-under/map.png differ diff --git a/mods/ra/maps/sarin-gas-2-down-under/map.yaml b/mods/ra/maps/sarin-gas-2-down-under/map.yaml new file mode 100644 index 000000000000..5c022daaecb7 --- /dev/null +++ b/mods/ra/maps/sarin-gas-2-down-under/map.yaml @@ -0,0 +1,1380 @@ +MapFormat: 11 + +RequiresMod: ra + +Title: Sarin Gas 2: Down Under + +Author: Westwood Studios + +Tileset: INTERIOR + +MapSize: 128,128 + +Bounds: 3,37,110,50 + +Visibility: MissionSelector + +Categories: Mission + +Players: + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Faction: england + PlayerReference@Creeps: + Name: Creeps + NonCombatant: True + Faction: england + PlayerReference@USSR: + Name: USSR + Faction: soviet + Color: FF1400 + Allies: France, BadGuy + Enemies: Germany, Turkey, Greece + Bot: campaign + PlayerReference@BadGuy: + Name: BadGuy + Faction: soviet + Color: FF1400 + Allies: USSR, France + Enemies: Germany, Turkey, Greece, England + Bot: campaign + PlayerReference@Germany: + Name: Germany + Faction: allies + Color: 505050 + Enemies: USSR, France, BadGuy + Bot: campaign + PlayerReference@France: + Name: France + Faction: allies + Color: FC8800 + Allies: USSR, BadGuy + Enemies: Germany, Greece + Bot: campaign + PlayerReference@Turkey: + Name: Turkey + Faction: allies + Color: D2997D + Allies: USSR + Enemies: BadGuy + Bot: campaign + PlayerReference@England: + Name: England + Faction: allies + Color: A0F08C + Bot: campaign + PlayerReference@Greece: + Name: Greece + AllowBots: False + Playable: True + Required: True + LockFaction: True + Faction: allies + LockColor: True + Color: ABB7E4 + LockSpawn: True + LockTeam: True + Enemies: USSR, BadGuy, France + +Actors: + Actor0: brik + Location: 107,59 + Owner: Neutral + Actor1: brik + Location: 108,59 + Owner: Neutral + Actor2: brik + Location: 107,60 + Owner: Neutral + Actor3: brik + Location: 108,60 + Owner: Neutral + Actor4: brik + Location: 107,64 + Owner: Neutral + Actor5: brik + Location: 108,64 + Owner: Neutral + Actor6: brik + Location: 107,65 + Owner: Neutral + Actor7: brik + Location: 108,65 + Owner: Neutral + Actor8: brik + Location: 22,79 + Owner: Neutral + Actor9: brik + Location: 23,79 + Owner: Neutral + Actor10: brik + Location: 27,79 + Owner: Neutral + Actor11: brik + Location: 28,79 + Owner: Neutral + Actor12: brik + Location: 93,83 + Owner: Neutral + Actor13: brik + Location: 94,83 + Owner: Neutral + Actor14: brik + Location: 95,83 + Owner: Neutral + Actor356: brik + Owner: Neutral + Location: 51,66 + Actor357: brik + Owner: Neutral + Location: 50,66 + Actor358: brik + Owner: Neutral + Location: 49,66 + Actor359: brik + Owner: Neutral + Location: 48,66 + Actor360: brik + Owner: Neutral + Location: 47,66 + Actor361: brik + Owner: Neutral + Location: 46,66 + Actor362: brik + Owner: Neutral + Location: 45,66 + Actor363: brik + Owner: Neutral + Location: 44,66 + Actor364: brik + Owner: Neutral + Location: 43,66 + Actor365: brik + Owner: Neutral + Location: 43,65 + Actor366: brik + Owner: Neutral + Location: 43,64 + Actor367: brik + Owner: Neutral + Location: 43,63 + Actor368: brik + Owner: Neutral + Location: 43,62 + Actor369: brik + Owner: Neutral + Location: 43,61 + Actor371: brik + Owner: Neutral + Location: 43,60 + Actor372: brik + Owner: Neutral + Location: 43,59 + Actor370: brik + Owner: Neutral + Location: 43,58 + Actor373: brik + Owner: Neutral + Location: 44,58 + Actor374: brik + Owner: Neutral + Location: 45,58 + Actor375: brik + Owner: Neutral + Location: 46,58 + Actor376: brik + Owner: Neutral + Location: 47,58 + Actor377: brik + Owner: Neutral + Location: 48,58 + Actor378: brik + Owner: Neutral + Location: 49,58 + Actor379: brik + Owner: Neutral + Location: 50,58 + Actor380: brik + Owner: Neutral + Location: 51,58 + Actor15: boxes03 + Location: 27,74 + Owner: Neutral + Actor16: boxes05 + Location: 28,76 + Owner: Neutral + Actor17: boxes07 + Location: 29,74 + Owner: Neutral + Actor18: boxes04 + Location: 28,75 + Owner: Neutral + Actor19: boxes08 + Location: 27,76 + Owner: Neutral + Actor20: boxes09 + Location: 29,75 + Owner: Neutral + Actor21: boxes02 + Location: 45,79 + Owner: Neutral + Actor22: boxes03 + Location: 43,78 + Owner: Neutral + Actor23: boxes04 + Location: 42,80 + Owner: Neutral + Actor24: boxes05 + Location: 42,79 + Owner: Neutral + Actor25: boxes06 + Location: 44,81 + Owner: Neutral + Actor26: boxes07 + Location: 40,78 + Owner: Neutral + Actor27: boxes07 + Location: 39,80 + Owner: Neutral + Actor28: boxes08 + Location: 41,81 + Owner: Neutral + Actor29: boxes08 + Location: 46,81 + Owner: Neutral + Actor30: boxes09 + Location: 23,78 + Owner: Neutral + Actor31: boxes08 + Location: 24,77 + Owner: Neutral + Actor32: boxes06 + Location: 23,76 + Owner: Neutral + Actor33: boxes06 + Location: 46,78 + Owner: Neutral + Actor34: boxes06 + Location: 47,83 + Owner: Neutral + Actor35: boxes07 + Location: 46,84 + Owner: Neutral + Actor36: boxes08 + Location: 40,84 + Owner: Neutral + Actor37: boxes08 + Location: 35,75 + Owner: Neutral + Actor38: boxes08 + Location: 49,61 + Owner: Neutral + Actor39: boxes09 + Location: 48,63 + Owner: Neutral + Actor40: boxes01 + Location: 50,43 + Owner: Neutral + Actor41: boxes02 + Location: 49,43 + Owner: Neutral + Actor42: boxes03 + Location: 49,44 + Owner: Neutral + Actor43: boxes04 + Location: 43,46 + Owner: Neutral + Actor44: boxes05 + Location: 53,43 + Owner: Neutral + Actor45: boxes07 + Location: 52,44 + Owner: Neutral + Actor46: boxes07 + Location: 42,49 + Owner: Neutral + Actor47: boxes08 + Location: 52,49 + Owner: Neutral + Actor48: boxes06 + Location: 64,69 + Owner: Neutral + Actor49: boxes04 + Location: 63,71 + Owner: Neutral + Actor50: boxes09 + Location: 57,85 + Owner: Neutral + Actor51: boxes01 + Location: 79,49 + Owner: Neutral + Actor52: boxes02 + Location: 80,50 + Owner: Neutral + Actor53: boxes03 + Location: 82,49 + Owner: Neutral + Actor54: boxes04 + Location: 84,49 + Owner: Neutral + Actor55: boxes04 + Location: 82,52 + Owner: Neutral + Actor56: boxes05 + Location: 79,51 + Owner: Neutral + Actor57: boxes08 + Location: 81,49 + Owner: Neutral + Actor58: boxes03 + Location: 80,84 + Owner: Neutral + Actor59: boxes05 + Location: 79,83 + Owner: Neutral + Actor60: boxes07 + Location: 78,85 + Owner: Neutral + Actor61: boxes01 + Location: 97,82 + Owner: Neutral + Actor62: boxes02 + Location: 97,81 + Owner: Neutral + Actor63: boxes02 + Location: 96,83 + Owner: Neutral + Actor64: boxes03 + Location: 92,81 + Owner: Neutral + Actor65: boxes05 + Location: 92,83 + Owner: Neutral + Actor66: boxes01 + Location: 86,45 + Owner: Neutral + Actor67: boxes02 + Location: 87,44 + Owner: Neutral + Actor68: boxes03 + Location: 87,46 + Owner: Neutral + Actor69: boxes03 + Location: 86,51 + Owner: Neutral + Actor70: boxes04 + Location: 87,49 + Owner: Neutral + Actor71: boxes05 + Location: 89,44 + Owner: Neutral + Actor72: boxes06 + Location: 89,48 + Owner: Neutral + Actor73: boxes07 + Location: 88,46 + Owner: Neutral + FlameTower2: ftur + Location: 27,60 + Owner: USSR + FlameTower3: ftur + Location: 27,64 + Owner: USSR + Actor76: brl3 + Location: 32,60 + Owner: USSR + Actor77: barl + Location: 33,60 + Owner: USSR + Actor78: brl3 + Location: 34,61 + Owner: USSR + Actor79: barl + Location: 35,60 + Owner: USSR + Actor80: brl3 + Location: 36,60 + Owner: USSR + Actor81: brl3 + Location: 36,64 + Owner: USSR + Actor82: brl3 + Location: 35,64 + Owner: USSR + Actor83: barl + Location: 34,64 + Owner: USSR + Actor84: brl3 + Location: 33,63 + Owner: USSR + Actor85: barl + Location: 32,64 + Owner: USSR + Actor87: ftur + Location: 34,85 + Owner: USSR + Actor88: brl3 + Location: 36,61 + Owner: BadGuy + Actor89: barl + Location: 35,63 + Owner: BadGuy + Actor91: brl3 + Location: 53,45 + Owner: USSR + Actor92: barl + Location: 43,48 + Owner: USSR + Actor93: brl3 + Location: 48,41 + Owner: USSR + Actor94: barl + Location: 49,42 + Owner: USSR + Actor95: brl3 + Location: 46,44 + Owner: USSR + Actor96: barl + Location: 48,44 + Owner: USSR + GoodCoil: tsla + Location: 48,49 + Owner: Germany + BadCoil: tsla + Location: 46,46 + Owner: France + Actor101: brl3 + Location: 62,68 + Owner: USSR + Actor102: barl + Location: 63,69 + Owner: USSR + Actor103: brl3 + Location: 62,70 + Owner: USSR + Actor104: barl + Location: 64,70 + Owner: USSR + Actor105: brl3 + Location: 105,59 + Owner: BadGuy + Actor106: barl + Location: 104,60 + Owner: BadGuy + Actor107: brl3 + Location: 104,65 + Owner: BadGuy + Actor108: barl + Location: 103,64 + Owner: BadGuy + Actor109: brl3 + Location: 102,65 + Owner: BadGuy + Actor110: brl3 + Location: 109,65 + Owner: BadGuy + Actor111: barl + Location: 109,64 + Owner: BadGuy + Actor112: brl3 + Location: 109,60 + Owner: BadGuy + Actor113: barl + Location: 109,59 + Owner: BadGuy + Actor114: brl3 + Location: 110,59 + Owner: BadGuy + Actor115: barl + Location: 110,65 + Owner: BadGuy + Actor116: barl + Location: 102,59 + Owner: BadGuy + Actor117: barl + Location: 103,59 + Owner: BadGuy + Actor118: barl + Location: 100,65 + Owner: BadGuy + Actor119: brl3 + Location: 101,65 + Owner: BadGuy + Actor120: brl3 + Location: 101,60 + Owner: BadGuy + Actor121: barl + Location: 105,65 + Owner: BadGuy + Actor122: barl + Location: 100,59 + Owner: BadGuy + Actor123: barl + Location: 99,59 + Owner: BadGuy + Actor124: brl3 + Location: 106,59 + Owner: BadGuy + Actor125: barl + Location: 106,60 + Owner: BadGuy + Actor126: brl3 + Location: 106,64 + Owner: BadGuy + Actor127: barl + Location: 106,65 + Owner: BadGuy + WarFactory1: weap + Owner: USSR + Location: 19,81 + WarFactory2: weap + Location: 95,39 + Owner: USSR + Actor129: brl3 + Location: 97,52 + Owner: USSR + Actor130: barl + Location: 100,51 + Owner: USSR + Actor131: brl3 + Location: 100,50 + Owner: USSR + Actor132: barl + Location: 98,51 + Owner: USSR + Actor133: barl + Location: 99,50 + Owner: USSR + Actor134: brl3 + Location: 101,51 + Owner: USSR + Actor135: barl + Location: 97,50 + Owner: USSR + Actor136: barl + Location: 103,61 + Owner: BadGuy + Actor137: brl3 + Location: 105,63 + Owner: BadGuy + FlameTowerTanya1: ftur + Location: 77,81 + Owner: USSR + FlameTowerTanya2: ftur + Location: 77,83 + Owner: USSR + Actor140: apwr + Location: 110,37 + Owner: USSR + Actor141: apwr + Location: 110,40 + Owner: USSR + Actor142: apwr + Location: 110,43 + Owner: USSR + Actor143: apwr + Location: 75,37 + Owner: Turkey + Actor145: fact + Location: 110,46 + Owner: Turkey + Actor146: apwr + Location: 110,50 + Owner: USSR + FlameTowerExit1: ftur + Location: 107,61 + Owner: BadGuy + FlameTowerExit2: ftur + Location: 107,62 + Owner: BadGuy + FlameTowerExit3: ftur + Location: 107,63 + Owner: BadGuy + Actor149: brl3 + Location: 51,49 + Owner: USSR + Actor150: barl + Location: 41,46 + Owner: USSR + Actor151: ftur + Location: 24,79 + Owner: USSR + Actor152: ftur + Location: 26,79 + Owner: USSR + FlameTower1: ftur + Location: 13,62 + Owner: USSR + Actor154: ftur + Location: 96,43 + Owner: USSR + Actor155: ftur + Location: 98,43 + Owner: USSR + Mammoth1: 4tnk + Location: 67,44 + Owner: USSR + Facing: 127 + Mammoth2: 4tnk + Location: 73,58 + Owner: BadGuy + StealMammoth: 4tnk + Location: 99,40 + Owner: USSR + Facing: 127 + StartSpy: spy + Location: 4,62 + Owner: Greece + Facing: 191 + SubCell: 0 + Actor162: e1 + Location: 6,61 + Owner: Greece + Facing: 191 + SubCell: 4 + Actor163: e1 + Location: 6,62 + Owner: Greece + Facing: 191 + SubCell: 2 + Actor164: e1 + Location: 6,62 + Owner: Greece + Facing: 191 + SubCell: 4 + Actor165: e1 + Location: 6,64 + Owner: Greece + Facing: 191 + SubCell: 1 + Actor166: e1 + Location: 6,63 + Owner: Greece + Facing: 191 + SubCell: 2 + Actor167: e1 + Location: 6,60 + Owner: Greece + Facing: 191 + SubCell: 3 + Actor168: e1 + Location: 5,61 + Owner: Greece + Facing: 191 + SubCell: 1 + Actor169: e1 + Location: 5,63 + Owner: Greece + Facing: 191 + SubCell: 3 + Actor170: e1 + Location: 5,63 + Owner: Greece + Facing: 191 + SubCell: 2 + Actor171: e1 + Location: 5,61 + Owner: Greece + Facing: 191 + SubCell: 4 + Actor172: medi + Location: 3,62 + Owner: Greece + Facing: 191 + SubCell: 0 + Actor173: dog + Location: 37,62 + Owner: USSR + Facing: 95 + SubCell: 2 + Actor174: dog + Location: 33,64 + Owner: USSR + Facing: 95 + SubCell: 2 + Actor175: e1 + Location: 23,61 + Owner: USSR + SubCell: 1 + Actor176: e1 + Location: 23,63 + Owner: USSR + SubCell: 1 + Actor177: e1 + Location: 21,62 + Owner: USSR + SubCell: 4 + Actor178: e1 + Location: 25,74 + Owner: USSR + Facing: 95 + SubCell: 2 + Actor179: e1 + Location: 25,75 + Owner: USSR + Facing: 127 + SubCell: 4 + Actor180: e1 + Location: 25,74 + Owner: USSR + Facing: 63 + SubCell: 3 + DogCrew3: e1 + Location: 45,68 + Owner: USSR + Facing: 159 + SubCell: 2 + DogCrew2: e1 + Location: 47,68 + Owner: USSR + Facing: 95 + SubCell: 3 + DogCrew1: dog + Location: 46,69 + Owner: USSR + Facing: 159 + SubCell: 1 + SarinVictim12: e2 + Location: 48,59 + Owner: USSR + Facing: 95 + SubCell: 0 + SarinVictim3: e2 + Location: 45,65 + Owner: USSR + Facing: 159 + SubCell: 1 + SarinVictim6: e2 + Location: 44,62 + Owner: USSR + Facing: 63 + SubCell: 0 + SarinVictim9: e2 + Location: 45,59 + Owner: USSR + Facing: 223 + SubCell: 2 + SarinVictim11: e2 + Location: 50,59 + Owner: USSR + Facing: 159 + SubCell: 1 + SarinVictim2: e2 + Location: 48,65 + Owner: USSR + Facing: 95 + SubCell: 0 + SarinVictim5: e2 + Location: 44,63 + Owner: USSR + Facing: 95 + SubCell: 2 + SarinVictim8: e2 + Location: 44,59 + Owner: USSR + Facing: 31 + SubCell: 4 + SarinVictim1: e2 + Location: 50,65 + Owner: USSR + Facing: 159 + SubCell: 0 + Camera2Rifle1: e1 + Location: 38,61 + Owner: USSR + Facing: 95 + SubCell: 4 + Camera2Rifle2: e1 + Location: 38,63 + Owner: USSR + Facing: 127 + SubCell: 2 + Camera2Rifle3: e1 + Location: 39,61 + Owner: USSR + Facing: 159 + SubCell: 0 + Camera2Gren1: e2 + Location: 40,62 + Owner: USSR + Facing: 159 + SubCell: 0 + Camera2Gren2: e2 + Location: 39,63 + Owner: USSR + Facing: 159 + SubCell: 2 + Actor198: e1 + Location: 22,51 + Owner: USSR + Facing: 95 + SubCell: 2 + Actor199: e1 + Location: 23,50 + Owner: USSR + Facing: 159 + SubCell: 2 + Actor200: e1 + Location: 28,47 + Owner: USSR + Facing: 95 + SubCell: 0 + Scientist2: chan + Location: 24,47 + Owner: USSR + SubCell: 0 + SarinVictim7: e2 + Location: 44,60 + Owner: USSR + SubCell: 0 + SarinVictim4: e2 + Location: 44,64 + Owner: USSR + SubCell: 0 + SarinVictim13: e2 + Location: 49,65 + Owner: USSR + Facing: 127 + SubCell: 0 + SarinVictim10: e2 + Location: 49,59 + Owner: USSR + SubCell: 1 + Actor206: medi + Location: 53,81 + Owner: Greece + Facing: 159 + SubCell: 2 + Actor207: spy + Location: 62,81 + Owner: Greece + Facing: 95 + SubCell: 2 + Civ1: c6 + Location: 53,74 + Owner: Greece + Facing: 223 + SubCell: 4 + Civ2: c5 + Location: 54,78 + Owner: Greece + Facing: 191 + SubCell: 1 + Civ3: c6 + Location: 54,84 + Owner: Greece + Facing: 159 + SubCell: 1 + Civ4: c5 + Location: 62,84 + Owner: Greece + Facing: 191 + SubCell: 1 + Civ5: c6 + Location: 62,78 + Owner: Greece + Facing: 159 + SubCell: 3 + Officer3: gnrl + Location: 61,72 + Owner: USSR + Facing: 223 + SubCell: 3 + Actor218: e1 + Location: 67,72 + Owner: USSR + Facing: 31 + SubCell: 3 + Actor219: e2 + Location: 68,73 + Owner: USSR + Facing: 159 + SubCell: 3 + Actor220: e1 + Location: 66,73 + Owner: USSR + Facing: 127 + SubCell: 0 + Actor221: e1 + Location: 96,60 + Owner: BadGuy + Facing: 63 + SubCell: 3 + Actor222: e1 + Location: 96,63 + Owner: BadGuy + Facing: 63 + SubCell: 3 + Actor223: e1 + Location: 95,62 + Owner: BadGuy + Facing: 95 + SubCell: 2 + Actor224: e1 + Location: 97,60 + Owner: BadGuy + Facing: 159 + SubCell: 1 + Actor225: e1 + Location: 97,64 + Owner: BadGuy + Facing: 95 + SubCell: 2 + Actor226: e1 + Location: 98,61 + Owner: BadGuy + Facing: 95 + SubCell: 3 + Actor227: e1 + Location: 96,64 + Owner: BadGuy + Facing: 159 + SubCell: 4 + Actor228: e1 + Location: 96,62 + Owner: BadGuy + Facing: 191 + SubCell: 2 + Actor229: e1 + Location: 66,47 + Owner: USSR + Facing: 63 + SubCell: 3 + Actor230: e1 + Location: 68,47 + Owner: USSR + Facing: 159 + SubCell: 3 + Actor231: e1 + Location: 96,50 + Owner: USSR + Facing: 63 + SubCell: 2 + Actor232: e1 + Location: 94,49 + Owner: USSR + Facing: 95 + SubCell: 4 + Actor233: e1 + Location: 95,50 + Owner: USSR + Facing: 63 + SubCell: 2 + Actor234: e1 + Location: 67,53 + Owner: USSR + SubCell: 4 + Facing: 147 + TurretFacing: -12 + Actor235: e1 + Location: 95,51 + Owner: USSR + Facing: 95 + SubCell: 1 + Actor237: e1 + Location: 82,76 + Owner: USSR + Facing: 95 + SubCell: 4 + Actor238: e1 + Location: 80,75 + Owner: USSR + Facing: 191 + SubCell: 3 + Actor239: e1 + Location: 78,75 + Owner: USSR + Facing: 95 + SubCell: 3 + Actor240: e1 + Location: 79,76 + Owner: USSR + SubCell: 1 + Actor241: e2 + Location: 80,68 + Owner: USSR + SubCell: 1 + Actor242: dog + Location: 79,68 + Owner: USSR + SubCell: 3 + Actor243: e1 + Location: 78,67 + Owner: USSR + SubCell: 4 + Actor245: e1 + Location: 82,51 + Owner: USSR + Facing: 159 + SubCell: 1 + Scientist1: chan + Location: 88,50 + Owner: USSR + Facing: 95 + SubCell: 4 + Actor247: e1 + Location: 98,63 + Owner: BadGuy + SubCell: 0 + Actor248: e1 + Location: 98,60 + Owner: BadGuy + SubCell: 0 + DemoDog: dog + Owner: USSR + Location: 99,75 + SubCell: 3 + Facing: 92 + DemoRifle1: e1 + Location: 99,76 + Owner: USSR + Facing: 63 + SubCell: 2 + DemoRifle2: e1 + Location: 100,75 + Owner: USSR + Facing: 95 + SubCell: 1 + DemoRifle3: e1 + Location: 101,76 + Owner: USSR + Facing: 191 + SubCell: 1 + DemoRifle4: e1 + Location: 100,77 + Owner: USSR + Facing: 159 + SubCell: 2 + DemoFlame: e4 + Owner: USSR + Location: 100,75 + SubCell: 2 + Facing: 92 + TurretFacing: 92 + ScientistMan: chan + Location: 94,82 + Owner: England + SubCell: 5 + Actor254: e1 + Location: 92,68 + Owner: BadGuy + Facing: 159 + SubCell: 1 + Actor255: e1 + Location: 92,69 + Owner: BadGuy + Facing: 95 + SubCell: 0 + Actor256: e1 + Location: 93,68 + Owner: BadGuy + Facing: 191 + SubCell: 3 + FiringSquad1: e1 + Location: 93,79 + Owner: USSR + Facing: 127 + SubCell: 5 + FiringSquad2: e1 + Location: 94,79 + Owner: USSR + Facing: 127 + SubCell: 4 + FiringSquad3: e1 + Location: 94,79 + Owner: USSR + Facing: 127 + SubCell: 5 + FiringSquad4: e1 + Location: 95,79 + Owner: USSR + Facing: 127 + SubCell: 4 + FiringSquad5: e1 + Location: 95,79 + Owner: USSR + Facing: 127 + SubCell: 5 + Officer2: gnrl + Location: 92,80 + Owner: USSR + Facing: 127 + SubCell: 2 + Actor263: e2 + Location: 92,49 + Owner: USSR + Facing: 95 + SubCell: 3 + Actor264: dog + Location: 96,48 + Owner: USSR + Facing: 95 + SubCell: 4 + Actor265: dog + Location: 97,61 + Owner: BadGuy + Facing: 95 + SubCell: 4 + Actor266: dog + Location: 67,51 + Owner: USSR + Facing: 95 + SubCell: 2 + Actor267: dog + Location: 42,59 + Owner: USSR + Facing: 159 + SubCell: 3 + Actor268: dog + Location: 63,46 + Owner: USSR + Facing: 95 + SubCell: 1 + Actor269: e1 + Location: 21,61 + Owner: USSR + SubCell: 2 + Actor270: e1 + Location: 21,64 + Owner: USSR + SubCell: 2 + Actor315: apwr + Owner: Turkey + Location: 78,37 + Actor316: healcrate + Owner: Neutral + Location: 58,85 + PrisonDog1: dog + Owner: USSR + Location: 62,73 + SubCell: 3 + Facing: 115 + PrisonDog2: dog + Owner: USSR + Location: 60,71 + SubCell: 3 + Facing: 58 + PrisonDog3: dog + Owner: USSR + Location: 63,72 + SubCell: 3 + Facing: 44 + PrisonDog4: dog + Owner: USSR + Location: 61,70 + SubCell: 3 + Facing: 92 + Actor328: e1 + Owner: USSR + Location: 59,72 + SubCell: 3 + Facing: 12 + TurretFacing: 12 + Actor329: e4 + Owner: USSR + Location: 94,48 + SubCell: 3 + Facing: 92 + TurretFacing: 92 + Actor332: e4 + Owner: USSR + Location: 82,76 + SubCell: 1 + Facing: 92 + TurretFacing: 92 + Actor333: dog + Owner: USSR + Location: 82,76 + SubCell: 2 + Facing: 92 + TurretFacing: 92 + DemoTruck: dtrk + Owner: England + Location: 106,76 + Facing: 63 + Tanya: e7 + Owner: Greece + Location: 71,82 + SubCell: 3 + Facing: 182 + TurretFacing: 182 + Officer1: gnrl + Owner: USSR + Location: 23,47 + SubCell: 3 + Facing: 92 + StealTruck: truk + Owner: USSR + Location: 23,82 + Facing: 194 + StartAttacker1: e1 + Owner: USSR + Location: 11,64 + SubCell: 3 + Facing: 92 + TurretFacing: 92 + StartAttacker2: e1 + Owner: USSR + Location: 13,60 + SubCell: 3 + Facing: 92 + TurretFacing: 92 + Actor337: e1 + Owner: USSR + Location: 81,51 + SubCell: 3 + Facing: 92 + TurretFacing: 92 + Actor338: dog + Owner: USSR + Location: 81,51 + SubCell: 1 + Facing: 92 + Actor350: e1 + Owner: USSR + Location: 60,62 + SubCell: 3 + Facing: -20 + TurretFacing: -20 + Actor351: e1 + Owner: USSR + Location: 61,64 + SubCell: 3 + Facing: 181 + TurretFacing: 181 + Actor352: e1 + Owner: USSR + Location: 61,60 + SubCell: 3 + Facing: 177 + TurretFacing: 177 + Actor353: e1 + Owner: USSR + Location: 61,60 + SubCell: 1 + Facing: 92 + TurretFacing: 92 + Actor354: spy + Owner: Greece + Location: 62,84 + SubCell: 2 + Facing: 92 + TurretFacing: 92 + DoggyCam: waypoint + Location: 46,72 + Owner: Neutral + DoggyMove: waypoint + Location: 43,82 + Owner: Neutral + SpyMove: waypoint + Location: 38,77 + Owner: Neutral + Sarin1: waypoint + Location: 49,64 + Owner: Neutral + Sarin2: waypoint + Location: 44,63 + Owner: Neutral + Sarin3: waypoint + Location: 46,59 + Owner: Neutral + Sarin4: waypoint + Location: 49,60 + Owner: Neutral + MammothGo: waypoint + Location: 49,47 + Owner: Neutral + Terminal1: waypoint + Owner: Neutral + Location: 7,59 + Terminal2: waypoint + Owner: Neutral + Location: 29,47 + Terminal3: waypoint + Owner: Neutral + Location: 38,74 + Terminal4: waypoint + Owner: Neutral + Location: 53,67 + Terminal5: waypoint + Owner: Neutral + Location: 38,48 + Terminal6: waypoint + Owner: Neutral + Location: 82,58 + Terminal7: waypoint + Owner: Neutral + Location: 83,76 + Terminal8: waypoint + Owner: Neutral + Location: 106,58 + TurkeyCoil1: waypoint + Owner: Neutral + Location: 70,58 + TurkeyCoil2: waypoint + Owner: Neutral + Location: 76,58 + start: waypoint + Owner: Neutral + Location: 9,62 + CameraTrigger1: waypoint + Location: 23,62 + Owner: Neutral + CameraTrigger2: waypoint + Owner: Neutral + Location: 34,62 + CameraTrigger3: waypoint + Owner: Neutral + Location: 47,47 + CameraTrigger4: waypoint + Owner: Neutral + Location: 73,58 + CameraTrigger5: waypoint + Location: 93,50 + Owner: Neutral + CameraTrigger6: waypoint + Location: 107,62 + Owner: Neutral + CameraTrigger7: waypoint + Owner: Neutral + Location: 95,77 + TruckCamera: waypoint + Owner: Neutral + Location: 38,83 + PowerPlantSpawn1: waypoint + Owner: Neutral + Location: 33,38 + PowerPlantSpawn2: waypoint + Owner: Neutral + Location: 36,38 + TruckDrive1: waypoint + Location: 26,82 + Owner: Neutral + TruckDrive2: waypoint + Owner: Neutral + Location: 26,86 + TruckDrive3: waypoint + Owner: Neutral + Location: 33,86 + TruckDrive4: waypoint + Owner: Neutral + Location: 33,83 + TruckDrive5: waypoint + Location: 44,83 + Owner: Neutral + DemoDrive1: waypoint + Location: 93,76 + Owner: Neutral + DemoDrive2: waypoint + Location: 93,62 + Owner: Neutral + DemoDrive3: waypoint + Location: 106,62 + Owner: Neutral + DemoDrive4: waypoint + Location: 112,62 + Owner: Neutral + +Rules: ra|rules/campaign-rules.yaml, ra|rules/campaign-tooltips.yaml, ra|rules/campaign-palettes.yaml, rules.yaml diff --git a/mods/ra/maps/sarin-gas-2-down-under/rules.yaml b/mods/ra/maps/sarin-gas-2-down-under/rules.yaml new file mode 100644 index 000000000000..2f4a64805552 --- /dev/null +++ b/mods/ra/maps/sarin-gas-2-down-under/rules.yaml @@ -0,0 +1,54 @@ +World: + LuaScript: + Scripts: downunder.lua + MissionData: + Briefing: We've traced the convoy's route to this underground facility. We suspect that this is a hidden access to the Soviet's main Sarin plant. \n\nLead your troops through the tunnels and remove any opposition you may find. Be careful -- the Soviets are conducting all kinds of research in this facility, and we don't know what they may throw at you.\n\nUse spies to scout and infiltrate factories where they can steal vehicles.\n\nThe mission is complete when your forces reach the far exit of the facility. + WinVideo: spy.vqa + LossVideo: execute.vqa + ScriptLobbyDropdown@difficulty: + ID: difficulty + Label: Difficulty + Values: + normal: Normal + hard: Hard + Default: Normal + +Player: + PlayerResources: + DefaultCash: 0 + +SPY: + RevealsShroud: + Range: 7c0 + +4TNK: + AutoTarget: + InitialStanceAI: Defend + +TSLA: + Health: + HP: 300000 + +GNRL: + Tooltip: + Name: Officer + +C5: + -Wanders: + +C6: + -Wanders: + +CHAN: + -Wanders: + +DTRK: + Cargo: + Types: Infantry + MaxWeight: 1 + RevealsShroud: + Range: 4c0 + ValidStances: Neutral + RequiresCondition: mission + ExternalCondition@mission: + Condition: mission diff --git a/mods/ra/missions.yaml b/mods/ra/missions.yaml index f5e19be633da..c81f8d69478f 100644 --- a/mods/ra/missions.yaml +++ b/mods/ra/missions.yaml @@ -24,6 +24,7 @@ Soviet Campaign: soviet-08a Counterstrike: sarin-gas-1-crackdown + sarin-gas-2-down-under soviet-soldier-volkov-n-chitzkoi Aftermath: monster-tank-madness