diff --git a/OpenRA.sln b/OpenRA.sln index dddabd21dd..c28c02e405 100644 --- a/OpenRA.sln +++ b/OpenRA.sln @@ -73,6 +73,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Red Alert Lua scripts", "Re mods\ra\maps\fort-lonestar\fort-lonestar-AI.lua = mods\ra\maps\fort-lonestar\fort-lonestar-AI.lua mods\ra\maps\fort-lonestar\fort-lonestar.lua = mods\ra\maps\fort-lonestar\fort-lonestar.lua mods\ra\maps\intervention\intervention.lua = mods\ra\maps\intervention\intervention.lua + mods\ra\maps\infiltration\infiltration.lua = mods\ra\maps\infiltration\infiltration.lua mods\ra\maps\monster-tank-madness\monster-tank-madness.lua = mods\ra\maps\monster-tank-madness\monster-tank-madness.lua mods\ra\maps\evacuation\evacuation.lua = mods\ra\maps\evacuation\evacuation.lua mods\ra\maps\exodus\exodus.lua = mods\ra\maps\exodus\exodus.lua diff --git a/mods/ra/maps/infiltration/infiltration.lua b/mods/ra/maps/infiltration/infiltration.lua new file mode 100644 index 0000000000..c82b1c986e --- /dev/null +++ b/mods/ra/maps/infiltration/infiltration.lua @@ -0,0 +1,383 @@ +Difficulty = Map.LobbyOption("difficulty") + +if Difficulty == "hard" then + TimerTicks = DateTime.Minutes(25) +elseif Difficulty == "normal" then + TimerTicks = DateTime.Minutes(28) +else + TimerTicks = DateTime.Minutes(31) +end + +Announcements = +{ + { speech = "TwentyMinutesRemaining", delay = DateTime.Minutes(20) }, + { speech = "TenMinutesRemaining", delay = DateTime.Minutes(10) }, + { speech = "WarningFiveMinutesRemaining", delay = DateTime.Minutes(5) }, + { speech = "WarningFourMinutesRemaining", delay = DateTime.Minutes(4) }, + { speech = "WarningThreeMinutesRemaining", delay = DateTime.Minutes(3) }, + { speech = "WarningTwoMinutesRemaining", delay = DateTime.Minutes(2) }, + { speech = "WarningOneMinuteRemaining", delay = DateTime.Minutes(1) } +} + +TownAttackers = { TownAttacker1, TownAttacker2, TownAttacker3, TownAttacker4, TownAttacker5, TownAttacker6, TownAttacker7 } + +PatrolPoints1 = { PatrolPoint11.Location, PatrolPoint12.Location, PatrolPoint13.Location, PatrolPoint14.Location, PatrolPoint15.Location } +PatrolPoints2 = { PatrolPoint21.Location, PatrolPoint22.Location, PatrolPoint23.Location, PatrolPoint24.Location, PatrolPoint25.Location } +PatrolPoints3 = { PatrolPoint31.Location, PatrolPoint32.Location, PatrolPoint33.Location, PatrolPoint34.Location } +PatrolPoints4 = { PatrolPoint41.Location, PatrolPoint42.Location, PatrolPoint43.Location, PatrolPoint44.Location, PatrolPoint45.Location } + +Patrol1 = { "e1", "e1", "e1", "e1", "e1" } +Patrol2 = { "e1", "dog.patrol", "dog.patrol" } +Patrol3 = { "e1", "e1", "dog.patrol" } + +TransportType = "lst.unselectable.unloadonly" + +SecureLabFailed = function() + Utils.Do(humans, function(player) + if player then + player.MarkFailedObjective(secureLab) + end + end) +end + +timerStarted = false +StartTimer = function() + Utils.Do(humans, function(player) + if player.IsLocalPlayer then + TimerColor = player.Color + end + end) + CountDownTimerAnnouncements() + ticked = TimerTicks + timerStarted = true + Trigger.AfterDelay(DateTime.Seconds(3), function() + Utils.Do(humans, function(player) + Media.PlaySpeechNotification(player, "TimerStarted") + end) + end) +end + +CountDownTimerAnnouncements = function() + for i = #Announcements, 1, -1 do + local delay = TimerTicks - Announcements[i].delay + Trigger.AfterDelay(delay, function() + if not labSecured then + Utils.Do(humans, function(player) + Media.PlaySpeechNotification(player, Announcements[i].speech) + end) + end + end) + end +end + +reinforcementsHaveArrived = false +LabInfiltrated = function() + Utils.Do(humans, function(player) + if player then + secureLab = player.AddPrimaryObjective("Eliminate all units guarding the lab.") + destroyBase = player.AddPrimaryObjective("Destroy the soviet installation.") + player.MarkCompletedObjective(infiltrateLab) + Trigger.ClearAll(Lab) + Trigger.AfterDelay(0, function() + Trigger.OnKilled(Lab, SecureLabFailed) + end) + end + end) + + Camera.Position = ReinforcementsUnloadPoint.CenterPosition + local entryPath = { ReinforcementsEntryPoint.Location, ReinforcementsUnloadPoint.Location } + local exit = { ReinforcementsEntryPoint.Location } + + mcvActors = { "mcv" } + if player2 then + mcvActors = { "mcv", "mcv" } + end + + local reinforcements = Reinforcements.ReinforceWithTransport(allies, TransportType, mcvActors, entryPath, exit) + local mcvs = reinforcements[2] + + Trigger.OnAddedToWorld(mcvs[1], function(mcvUnloaded) + + -- Don't call this twice (because of the owner change) + if mcvUnloaded.Owner == player1 then + return + end + + mcvUnloaded.Owner = player1 + if not player2 then + player1.Cash = 5000 + end + Media.PlaySpeechNotification(player, "AlliedReinforcementsSouth") + StartTimer() + HijackTruck.Destroy() + reinforcementsHaveArrived = true + end) + + if player2 then + Trigger.OnAddedToWorld(mcvs[2], function(mcvUnloaded) + + -- Don't call this twice (because of the owner change) + if mcvUnloaded.Owner == player2 then + return + end + + mcvUnloaded.Owner = player2 + player1.Cash = 2500 + player2.Cash = 2500 + end) + end + + Utils.Do(humans, function(player) + for i = 0, 2 do + Trigger.AfterDelay(DateTime.Seconds(i), function() + Media.PlaySoundNotification(player, "AlertBuzzer") + end) + end + end) + + local attackPoint = BridgeAttackPoint.CenterPosition + local radius = WDist.FromCells(5) + local bridge = Map.ActorsInCircle(attackPoint, radius, function(actor) + return actor.Type == "br3" + end)[1] + BridgeTank.Attack(bridge, true, true) +end + +InfiltrateLabFailed = function() + Utils.Do(humans, function(player) + if player then + player.MarkFailedObjective(infiltrateLab) + end + end) +end + +ChangeOwnerOnAddedToWorld = function(actor, newOwner) + Trigger.OnAddedToWorld(actor, function(unloadedActor) + unloadedActor.Owner = newOwner + Trigger.Clear(unloadedActor, "OnAddedToWorld") + end) +end + +InsertSpies = function() + Utils.Do(humans, function(player) + if player then + infiltrateLab = player.AddPrimaryObjective("Get our spy into the laboratory undetected.") + end + end) + + Trigger.OnKilled(Lab, function() + if not player1.IsObjectiveCompleted(infiltrateLab) then + InfiltrateLabFailed() + end + end) + + -- The delay isn't purely cosmetic, but also prevents a System.InvalidOperationException + -- "Collection was modified after the enumerator was instantiated." in tick_activities + local infiltrationCount = 0 + Trigger.OnInfiltrated(Lab, function() + infiltrationCount = infiltrationCount + 1 + + if (player2 and infiltrationCount == 2) or not player2 then + Trigger.AfterDelay(DateTime.Seconds(3), LabInfiltrated) + end + end) + + spyActors = { "spy.strong" } + if player2 then + spyActors = { "spy.strong", "spy.strong" } + end + + local entryPath = { SpyReinforcementsEntryPoint.Location, SpyReinforcementsUnloadPoint.Location } + local exit = { SpyReinforcementsExitPoint.Location } + local reinforcements = Reinforcements.ReinforceWithTransport(allies, TransportType, spyActors, entryPath, exit) + + local transport = reinforcements[1] + Camera.Position = transport.CenterPosition + + spies = reinforcements[2] + Trigger.OnAnyKilled(spies, InfiltrateLabFailed) + + ChangeOwnerOnAddedToWorld(spies[1], player1) + + if player2 then + ChangeOwnerOnAddedToWorld(spies[2], player2) + end +end + +IdleHunt = function(unit) + Trigger.OnIdle(unit, unit.Hunt) +end + +StopHunt = function(unit) + if not unit.IsDead then + Trigger.Clear(unit, "OnIdle") + end +end + +AttackTown = function() + Utils.Do(TownAttackers, IdleHunt) + + Trigger.OnRemovedFromWorld(Hospital, function() + Utils.Do(TownAttackers, StopHunt) + end) +end + +CapOre = function(player) + if player.Resources > player.ResourceCapacity * 0.9 then + player.Resources = player.ResourceCapacity * 0.8 + end +end + +NewPatrol = function(actorType, start, waypoints) + local guard = Actor.Create(actorType, true, { Owner = soviets, Location = start }) + guard.Patrol(waypoints, true, Utils.RandomInteger(50, 75)) +end + +SetupPatrols = function() + Utils.Do(Patrol1, function(patrol1) NewPatrol(patrol1, PatrolPoints1[1], PatrolPoints1) end) + Utils.Do(Patrol2, function(patrol2) NewPatrol(patrol2, PatrolPoints1[3], PatrolPoints1) end) + Utils.Do(Patrol2, function(patrol3) NewPatrol(patrol3, PatrolPoints3[1], PatrolPoints3) end) + Utils.Do(Patrol2, function(patrol4) NewPatrol(patrol4, PatrolPoints4[1], PatrolPoints4) end) + + if Difficulty == "hard" then + Utils.Do(Patrol3, function(patrol5) NewPatrol(patrol5, PatrolPoints2[1], PatrolPoints2) end) + end + + local checkpoint = { BaseGuardTruckPos.Location } + Trigger.OnEnteredFootprint(checkpoint, function(a, id) + Trigger.RemoveFootprintTrigger(id) + if not BaseGuard.IsDead then + BaseGuard.ScriptedMove(BaseGuardMovePos.Location) + end + end) +end + +ticked = 0 +SecureLabTimer = function() + if not timerStarted or labSecured then + return + end + + if ticked > 0 then + UserInterface.SetMissionText("Secure lab in: " .. Utils.FormatTime(ticked), TimerColor) + ticked = ticked - 1 + elseif ticked <= 0 then + TimerColor = soviets.Color + UserInterface.SetMissionText("The Soviet research laboratory was not secured in time.", TimerColor) + SecureLabFailed() + end +end + +SovietBaseMaintenanceSetup = function() + local sovietbuildings = Utils.Where(Map.NamedActors, function(a) + return a.Owner == soviets + and a.HasProperty("StartBuildingRepairs") and a.HasProperty("Sell") + end) + + -- This includes killed, captured (actor is temporarily removed) and sold. + Trigger.OnAllRemovedFromWorld(sovietbuildings, function() + Utils.Do(humans, function(player) + player.MarkCompletedObjective(destroyBase) + end) + end) + + Utils.Do(sovietbuildings, function(sovietbuilding) + Trigger.OnDamaged(sovietbuilding, function(building) + if building.Owner ~= soviets then + return + end + if building.Health < building.MaxHealth * 3/4 then + building.StartBuildingRepairs() + end + if building.Health < building.MaxHealth * 1/4 then + building.Sell() + end + end) + end) +end + +CheckPlayerDefeat = function() + if not reinforcementsHaveArrived then + return + end + + Utils.Do(humans, function(player) + if player.HasNoRequiredUnits() then + player.MarkFailedObjective(destroyBase) + end + end) +end + +labSecured = false +CheckLabSecured = function() + if not reinforcementsHaveArrived or labSecured then + return + end + + if player1.HasNoRequiredUnits() or (player2 and player2.HasNoRequiredUnits()) then + Utils.Do(humans, function(player) + player.MarkFailedObjective(secureLab) + end) + end + + local radius = WDist.FromCells(10) + local labGuards = Utils.Where(Map.ActorsInCircle(LabWaypoint.CenterPosition, radius), function(a) + return a.Owner == soviets and a.HasProperty("Move") + end) + + if #labGuards < 1 then + labSecured = true + Utils.Do(humans, function(player) + player.MarkCompletedObjective(secureLab) + end) + UserInterface.SetMissionText("") + end +end + +Tick = function() + CapOre(soviets) + SecureLabTimer() + CheckLabSecured() + CheckPlayerDefeat() +end + +WorldLoaded = function() + allies = Player.GetPlayer("Allies") + neutral = Player.GetPlayer("Neutral") + creeps = Player.GetPlayer("Creeps") + soviets = Player.GetPlayer("Soviets") + + player1 = Player.GetPlayer("Allies1") + player2 = Player.GetPlayer("Allies2") + humans = { player1, player2 } + + Utils.Do(humans, function(player) + if player and player.IsLocalPlayer then + Trigger.OnObjectiveAdded(player, function(p, id) + local objectiveType = string.lower(p.GetObjectiveType(id)) + Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. objectiveType .. " objective") + end) + + Trigger.OnObjectiveCompleted(player, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed") + end) + + Trigger.OnObjectiveFailed(player, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed") + end) + + Trigger.OnPlayerWon(player, function() + Media.PlaySpeechNotification(player, "MissionAccomplished") + end) + + Trigger.OnPlayerLost(player, function() + Media.PlaySpeechNotification(player, "MissionFailed") + end) + end + end) + + InsertSpies() + AttackTown() + SetupPatrols() + SovietBaseMaintenanceSetup() +end diff --git a/mods/ra/maps/infiltration/map.bin b/mods/ra/maps/infiltration/map.bin new file mode 100644 index 0000000000..3fc82e3225 Binary files /dev/null and b/mods/ra/maps/infiltration/map.bin differ diff --git a/mods/ra/maps/infiltration/map.png b/mods/ra/maps/infiltration/map.png new file mode 100644 index 0000000000..29bfd56141 Binary files /dev/null and b/mods/ra/maps/infiltration/map.png differ diff --git a/mods/ra/maps/infiltration/map.yaml b/mods/ra/maps/infiltration/map.yaml new file mode 100644 index 0000000000..76956c26e7 --- /dev/null +++ b/mods/ra/maps/infiltration/map.yaml @@ -0,0 +1,1788 @@ +MapFormat: 11 + +RequiresMod: ra + +Title: Infiltration + +Author: Scott_NZ + +Tileset: TEMPERAT + +MapSize: 128,128 + +Bounds: 16,16,96,96 + +Visibility: MissionSelector, Lobby + +Categories: Mission, Cooperative Mission + +Players: + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Faction: allies + PlayerReference@Creeps: + Name: Creeps + NonCombatant: True + Faction: allies + Enemies: Soviets + PlayerReference@Allies1: + Name: Allies1 + AllowBots: False + Playable: True + Required: True + LockFaction: True + Faction: allies + LockColor: True + Color: ABB7E4 + LockSpawn: True + LockTeam: True + Allies: Allies2, Allies + Enemies: Soviets + PlayerReference@Allies2: + Name: Allies2 + AllowBots: False + Playable: True + LockFaction: True + Faction: allies + LockColor: True + Color: A1EF8C + LockSpawn: True + LockTeam: True + Allies: Allies1, Allies + Enemies: Soviets + PlayerReference@Allies: + Name: Allies + Faction: allies + Color: 5CC1A3 + Allies: Allies1, Allies2 + Enemies: Soviets + PlayerReference@Soviets: + Name: Soviets + Faction: soviet + Color: FE1100 + Enemies: Allies1, Allies2, Allies, Creeps + +Actors: + Actor2: v07 + Location: 58,83 + Owner: Creeps + Actor1: v05 + Location: 54,89 + Owner: Creeps + Actor56: t01 + Location: 68,97 + Owner: Neutral + Actor5: v03 + Location: 66,84 + Owner: Creeps + Actor25: t16 + Location: 69,64 + Owner: Neutral + Actor68: t08 + Location: 65,93 + Owner: Neutral + Actor26: tc04 + Location: 69,61 + Owner: Neutral + Actor27: t02 + Location: 68,63 + Owner: Neutral + Actor28: t07 + Location: 67,78 + Owner: Neutral + Actor30: t08 + Location: 81,88 + Owner: Neutral + Actor31: t14 + Location: 84,88 + Owner: Neutral + Actor33: t10 + Location: 73,83 + Owner: Neutral + Actor8: v07 + Location: 66,95 + Owner: Creeps + Actor0: v04 + Location: 58,90 + Owner: Creeps + Actor41: t12 + Location: 73,69 + Owner: Neutral + Actor44: t13 + Location: 83,78 + Owner: Neutral + Actor47: v01 + Location: 70,84 + Owner: Creeps + Actor10: v02 + Location: 73,90 + Owner: Creeps + Actor236: sbag + Location: 66,36 + Owner: Soviets + Actor233: sbag + Location: 66,35 + Owner: Soviets + Actor235: sbag + Location: 68,35 + Owner: Soviets + Actor234: sbag + Location: 67,35 + Owner: Soviets + Actor222: hpad + Location: 56,36 + Owner: Soviets + Actor57: t07 + Location: 74,64 + Owner: Neutral + Actor49: tc02 + Location: 63,79 + Owner: Neutral + Actor48: t14 + Location: 63,90 + Owner: Neutral + Actor66: tc03 + Location: 87,89 + Owner: Neutral + Actor77: mine + Location: 96,85 + Owner: Neutral + Actor78: tc04 + Location: 103,78 + Owner: Neutral + Actor80: t07 + Location: 81,81 + Owner: Neutral + Actor81: t06 + Location: 111,82 + Owner: Neutral + Actor82: t03 + Location: 110,76 + Owner: Neutral + Actor84: tc02 + Location: 94,75 + Owner: Neutral + Actor9: v01 + Location: 64,94 + Owner: Creeps + Actor53: powr + Location: 86,65 + Owner: Soviets + Actor113: tc05 + Location: 86,59 + Owner: Neutral + Actor51: barr + Location: 93,70 + Owner: Soviets + Lab: miss + Location: 34,30 + Owner: Soviets + LabWaypoint: waypoint + Location: 34,30 + Owner: Neutral + Actor45: brik + Location: 39,34 + Owner: Soviets + Actor43: brik + Location: 39,33 + Owner: Soviets + Actor42: brik + Location: 39,32 + Owner: Soviets + Actor39: brik + Location: 39,31 + Owner: Soviets + Actor38: brik + Location: 39,30 + Owner: Soviets + Actor34: brik + Location: 38,28 + Owner: Soviets + Actor36: brik + Location: 39,29 + Owner: Soviets + Actor494: e4 + Location: 98,38 + Owner: Soviets + Actor495: e4 + Location: 48,34 + Owner: Soviets + Actor58: brik + Location: 32,28 + Owner: Soviets + Actor35: brik + Location: 39,28 + Owner: Soviets + Actor110: e1 + Location: 33,28 + Owner: Soviets + Actor60: apwr + Location: 44,46 + Owner: Soviets + Actor22: brik + Location: 32,34 + Owner: Soviets + Actor95: brik + Location: 32,29 + Owner: Soviets + Actor97: brik + Location: 32,30 + Owner: Soviets + Actor98: brik + Location: 32,31 + Owner: Soviets + Actor100: brik + Location: 32,33 + Owner: Soviets + Actor263: 3tnk + Location: 37,35 + Owner: Soviets + Actor138: e2 + Location: 39,37 + Owner: Soviets + Actor99: brik + Location: 32,32 + Owner: Soviets + Actor106: hpad + Location: 34,42 + Owner: Soviets + Actor21: brik + Location: 33,34 + Owner: Soviets + Actor14: brik + Location: 32,35 + Owner: Soviets + Actor55: brik + Location: 32,26 + Owner: Soviets + Actor40: apwr + Location: 44,43 + Owner: Soviets + Actor69: barr + Location: 60,33 + Owner: Soviets + Actor96: barr + Location: 107,36 + Owner: Soviets + Actor94: barr + Location: 39,41 + Owner: Soviets + Actor102: ftur + Location: 46,39 + Owner: Soviets + Actor4: brik + Location: 38,34 + Owner: Soviets + Actor121: e1 + Location: 100,21 + Owner: Soviets + Actor59: sam + Location: 47,60 + Owner: Soviets + TurretFacing: 160 + Actor61: apwr + Location: 45,49 + Owner: Soviets + Actor62: apwr + Location: 46,52 + Owner: Soviets + Actor29: brik + Location: 35,26 + Owner: Soviets + Actor76: ftur + Location: 78,22 + Owner: Soviets + Actor83: ftur + Location: 67,34 + Owner: Soviets + Actor73: spen + Location: 31,82 + Owner: Soviets + Actor37: dome + Location: 44,57 + Owner: Soviets + Actor65: sam + Location: 50,37 + Owner: Soviets + TurretFacing: 192 + Actor70: spen + Location: 39,71 + Owner: Soviets + Actor71: spen + Location: 25,68 + Owner: Soviets + Actor64: sam + Location: 28,43 + Owner: Soviets + TurretFacing: 48 + Actor72: spen + Location: 23,76 + Owner: Soviets + Actor67: fact + Location: 42,52 + Owner: Soviets + Actor85: kenn + Location: 58,32 + Owner: Soviets + Actor103: afld + Location: 34,51 + Owner: Soviets + Actor20: fcom + Location: 39,50 + Owner: Soviets + Actor18: afld + Location: 34,45 + Owner: Soviets + Actor79: afld + Location: 34,47 + Owner: Soviets + Actor74: ftur + Location: 31,36 + Owner: Soviets + Actor32: brik + Location: 34,26 + Owner: Soviets + Actor493: e4 + Location: 102,24 + Owner: Soviets + Actor274: e3 + Location: 34,41 + Owner: Soviets + Actor452: e4 + Location: 34,32 + Owner: Soviets + Actor112: fenc + Location: 96,39 + Owner: Soviets + Actor15: brik + Location: 33,35 + Owner: Soviets + Actor126: e1 + Location: 109,22 + Owner: Soviets + Actor107: hpad + Location: 36,42 + Owner: Soviets + Actor129: kenn + Location: 110,37 + Owner: Soviets + Actor108: stek + Location: 38,55 + Owner: Soviets + Actor7: brik + Location: 38,35 + Owner: Soviets + Actor46: brik + Location: 33,26 + Owner: Soviets + Actor6: brik + Location: 39,35 + Owner: Soviets + Actor117: fenc + Location: 98,39 + Owner: Soviets + Actor116: fenc + Location: 97,39 + Owner: Soviets + Actor111: fenc + Location: 95,37 + Owner: Soviets + Actor16: fenc + Location: 95,38 + Owner: Soviets + Actor13: fenc + Location: 95,39 + Owner: Soviets + Actor120: e1 + Location: 107,41 + Owner: Soviets + Actor119: e1 + Location: 99,41 + Owner: Soviets + Actor279: dog + Location: 101,38 + Owner: Soviets + Actor151: fenc + Location: 111,39 + Owner: Soviets + Actor125: fenc + Location: 110,39 + Owner: Soviets + Actor124: fenc + Location: 109,39 + Owner: Soviets + Actor127: fenc + Location: 99,39 + Owner: Soviets + Actor148: e1 + Location: 92,20 + Owner: Soviets + Actor128: ftur + Location: 42,61 + Owner: Soviets + Actor93: afld + Location: 34,49 + Owner: Soviets + Actor101: kenn + Location: 41,47 + Owner: Soviets + Actor133: apwr + Location: 97,16 + Owner: Soviets + Actor131: apwr + Location: 107,16 + Owner: Soviets + Actor132: apwr + Location: 107,19 + Owner: Soviets + Actor130: apwr + Location: 101,16 + Owner: Soviets + Actor134: proc + Location: 106,30 + Owner: Soviets + Actor135: fix + Location: 102,25 + Owner: Soviets + Actor136: dome + Location: 107,25 + Owner: Soviets + HijackFactory: weap + Location: 98,32 + Owner: Soviets + Actor12: sam + Location: 34,27 + Owner: Soviets + Actor297: v08 + Location: 68,95 + Owner: Creeps + Actor142: fenc + Location: 91,16 + Owner: Soviets + Actor141: fenc + Location: 91,17 + Owner: Soviets + Actor140: fenc + Location: 91,18 + Owner: Soviets + Actor139: fenc + Location: 91,19 + Owner: Soviets + Actor145: ftur + Location: 90,23 + Owner: Soviets + Actor146: ftur + Location: 90,19 + Owner: Soviets + Actor147: e1 + Location: 92,23 + Owner: Soviets + Actor118: ftur + Location: 99,40 + Owner: Soviets + Actor149: fact + Location: 95,25 + Owner: Soviets + Actor304: 3tnk + Location: 106,38 + Owner: Soviets + Facing: 96 + Actor488: t02 + Location: 110,28 + Owner: Neutral + Actor123: fenc + Location: 108,39 + Owner: Soviets + Actor153: apwr + Location: 101,19 + Owner: Soviets + Actor154: apwr + Location: 93,16 + Owner: Soviets + Actor155: powr + Location: 45,41 + Owner: Soviets + Actor156: apwr + Location: 47,55 + Owner: Soviets + Actor157: tc02 + Location: 27,46 + Owner: Neutral + Actor158: t12 + Location: 26,46 + Owner: Neutral + Actor159: tc05 + Location: 23,45 + Owner: Neutral + Actor160: tc04 + Location: 23,43 + Owner: Neutral + Actor161: e1 + Location: 22,42 + Owner: Soviets + Actor162: t12 + Location: 22,39 + Owner: Neutral + Actor163: t03 + Location: 24,36 + Owner: Neutral + Actor164: t01 + Location: 23,38 + Owner: Neutral + Actor165: t15 + Location: 23,36 + Owner: Neutral + Actor166: tc05 + Location: 22,33 + Owner: Neutral + Actor167: t02 + Location: 25,31 + Owner: Neutral + Actor168: t03 + Location: 26,26 + Owner: Neutral + Actor169: tc04 + Location: 28,19 + Owner: Neutral + Actor170: t11 + Location: 25,28 + Owner: Neutral + Actor171: tc02 + Location: 23,30 + Owner: Neutral + Actor172: tc05 + Location: 26,24 + Owner: Neutral + Actor173: t01 + Location: 28,21 + Owner: Neutral + Actor174: t03 + Location: 31,20 + Owner: Neutral + Actor63: apwr + Location: 32,53 + Owner: Soviets + Actor176: tc02 + Location: 50,62 + Owner: Neutral + Actor177: tc01 + Location: 52,51 + Owner: Neutral + Actor178: t17 + Location: 51,44 + Owner: Neutral + Actor179: t07 + Location: 30,39 + Owner: Neutral + Actor175: sam + Location: 30,58 + Owner: Soviets + TurretFacing: 96 + Actor181: t12 + Location: 27,54 + Owner: Neutral + Actor182: t08 + Location: 28,56 + Owner: Neutral + Actor183: t06 + Location: 47,25 + Owner: Neutral + Actor184: t05 + Location: 41,26 + Owner: Neutral + Actor185: tc02 + Location: 43,22 + Owner: Neutral + Actor186: tc05 + Location: 49,20 + Owner: Neutral + Actor187: t15 + Location: 44,19 + Owner: Neutral + Actor188: tc05 + Location: 46,21 + Owner: Neutral + Actor189: tc04 + Location: 41,20 + Owner: Neutral + Actor190: t03 + Location: 37,20 + Owner: Neutral + Actor191: tc04 + Location: 54,38 + Owner: Neutral + Actor192: tc05 + Location: 59,38 + Owner: Neutral + Actor193: tc02 + Location: 49,45 + Owner: Neutral + Actor194: t03 + Location: 54,40 + Owner: Neutral + Actor195: t03 + Location: 35,72 + Owner: Neutral + Actor196: tc01 + Location: 30,71 + Owner: Neutral + Actor197: t08 + Location: 27,79 + Owner: Neutral + Actor198: t15 + Location: 52,57 + Owner: Neutral + Actor199: tc01 + Location: 49,34 + Owner: Neutral + Actor200: t11 + Location: 28,28 + Owner: Neutral + Actor201: t07 + Location: 38,64 + Owner: Neutral + Actor202: t06 + Location: 50,54 + Owner: Neutral + Actor203: t12 + Location: 60,31 + Owner: Neutral + Actor204: tc02 + Location: 74,16 + Owner: Neutral + Actor205: t07 + Location: 69,19 + Owner: Neutral + Actor206: tc04 + Location: 87,16 + Owner: Neutral + Actor207: tc05 + Location: 84,16 + Owner: Neutral + Actor208: tc03 + Location: 82,18 + Owner: Neutral + Actor209: t16 + Location: 84,18 + Owner: Neutral + Actor210: tc02 + Location: 82,15 + Owner: Neutral + Actor211: t02 + Location: 74,18 + Owner: Neutral + Actor212: t01 + Location: 92,29 + Owner: Neutral + Actor213: t16 + Location: 102,22 + Owner: Neutral + Actor214: silo + Location: 109,29 + Owner: Soviets + Actor215: t01 + Location: 96,36 + Owner: Neutral + Actor216: mine + Location: 103,57 + Owner: Neutral + Actor218: fenc + Location: 81,65 + Owner: Soviets + Actor219: fenc + Location: 81,66 + Owner: Soviets + Actor220: fenc + Location: 81,67 + Owner: Soviets + Actor221: 4tnk + Location: 39,46 + Owner: Soviets + Facing: 0 + Actor228: brik + Location: 102,34 + Owner: Soviets + Actor514: brik + Location: 103,34 + Owner: Soviets + Actor227: e1 + Location: 98,28 + Owner: Soviets + Actor226: fenc + Location: 95,35 + Owner: Soviets + Actor225: fenc + Location: 95,36 + Owner: Soviets + Actor224: 4tnk + Location: 103,30 + Owner: Soviets + Actor144: 4tnk + Location: 42,58 + Owner: Soviets + Actor52: hpad + Location: 83,65 + Owner: Soviets + Actor387: powr + Location: 89,64 + Owner: Soviets + Actor231: e1 + Location: 104,40 + Owner: Soviets + Actor238: sbag + Location: 65,37 + Owner: Soviets + Actor237: sbag + Location: 66,37 + Owner: Soviets + Actor229: v2rl + Location: 96,19 + Owner: Soviets + Facing: 64 + Actor137: e1 + Location: 66,34 + Owner: Soviets + Actor50: fenc + Location: 81,68 + Owner: Soviets + Actor242: ftur + Location: 90,74 + Owner: Soviets + Actor241: fenc + Location: 93,74 + Owner: Soviets + Actor240: fenc + Location: 94,74 + Owner: Soviets + Actor239: fenc + Location: 95,74 + Owner: Soviets + Actor232: fenc + Location: 96,74 + Owner: Soviets + Actor244: sbag + Location: 64,37 + Owner: Soviets + Actor245: e3 + Location: 67,36 + Owner: Soviets + Actor246: e3 + Location: 63,38 + Owner: Soviets + Actor247: e1 + Location: 69,34 + Owner: Soviets + Actor248: e1 + Location: 57,35 + Owner: Soviets + Actor249: e1 + Location: 59,33 + Owner: Soviets + Actor250: e1 + Location: 47,31 + Owner: Soviets + Actor251: e1 + Location: 42,38 + Owner: Soviets + Actor252: e1 + Location: 46,38 + Owner: Soviets + Actor253: e1 + Location: 49,27 + Owner: Soviets + Actor254: e1 + Location: 37,64 + Owner: Soviets + Actor255: e1 + Location: 32,63 + Owner: Soviets + Actor256: e1 + Location: 40,58 + Owner: Soviets + Actor257: e1 + Location: 44,61 + Owner: Soviets + Actor322: v2rl + Location: 36,57 + Owner: Soviets + Actor259: e1 + Location: 43,48 + Owner: Soviets + Actor260: e1 + Location: 37,45 + Owner: Soviets + Actor261: e1 + Location: 31,40 + Owner: Soviets + Actor262: e1 + Location: 37,31 + Owner: Soviets + Actor17: brik + Location: 37,28 + Owner: Soviets + Actor264: v2rl + Location: 50,36 + Owner: Soviets + Facing: 192 + Actor266: 3tnk + Location: 88,70 + Owner: Soviets + Actor268: dog + Location: 64,34 + Owner: Soviets + Actor269: dog + Location: 44,38 + Owner: Soviets + Actor180: apwr + Location: 31,59 + Owner: Soviets + Actor270: dog + Location: 43,60 + Owner: Soviets + Actor265: 3tnk + Location: 90,46 + Owner: Soviets + Actor271: dog + Location: 37,40 + Owner: Soviets + Actor122: fenc + Location: 107,39 + Owner: Soviets + Actor152: ftur + Location: 107,40 + Owner: Soviets + Actor275: tc02 + Location: 74,48 + Owner: Neutral + Actor276: t03 + Location: 91,43 + Owner: Neutral + Actor272: 3tnk + Location: 102,37 + Owner: Soviets + Facing: 160 + Actor280: t16 + Location: 87,41 + Owner: Neutral + Actor281: tc02 + Location: 85,42 + Owner: Neutral + Actor282: t02 + Location: 85,48 + Owner: Neutral + Actor283: t13 + Location: 72,54 + Owner: Neutral + Actor284: t03 + Location: 84,56 + Owner: Neutral + Actor285: tc02 + Location: 109,52 + Owner: Neutral + Actor286: t03 + Location: 110,61 + Owner: Neutral + Actor287: t07 + Location: 100,62 + Owner: Neutral + Actor288: t06 + Location: 91,53 + Owner: Neutral + Actor289: t13 + Location: 81,47 + Owner: Neutral + Actor290: t12 + Location: 110,42 + Owner: Neutral + Actor291: t02 + Location: 102,49 + Owner: Neutral + Actor292: tc04 + Location: 87,38 + Owner: Neutral + Actor293: t02 + Location: 86,40 + Owner: Neutral + Actor294: t11 + Location: 89,42 + Owner: Neutral + Actor295: t07 + Location: 84,40 + Owner: Neutral + PatrolPoint22: waypoint + Location: 92,49 + Owner: Neutral + Actor515: wood + Location: 66,100 + Owner: Neutral + Actor298: t01 + Location: 90,61 + Owner: Neutral + Actor299: t13 + Location: 108,66 + Owner: Neutral + Actor300: dog + Location: 41,49 + Owner: Soviets + Actor338: ss + Location: 57,64 + Owner: Soviets + Actor301: mine + Location: 101,55 + Owner: Neutral + Actor337: ss + Location: 19,80 + Owner: Soviets + Actor316: ss + Location: 32,92 + Owner: Soviets + Actor336: ss + Location: 46,80 + Owner: Soviets + Actor308: tc02 + Location: 78,104 + Owner: Neutral + Actor309: t15 + Location: 72,101 + Owner: Neutral + Actor310: oilb + Location: 77,17 + Owner: Soviets + Actor307: tc02 + Location: 82,97 + Owner: Neutral + Actor311: oilb + Location: 32,76 + Owner: Soviets + Actor114: c1 + Location: 69,84 + Owner: Creeps + Actor217: c3 + Location: 63,96 + Owner: Creeps + Actor54: c1 + Location: 67,99 + Owner: Creeps + Actor317: e2 + Location: 106,26 + Owner: Soviets + Actor318: e2 + Location: 94,20 + Owner: Soviets + Actor319: e3 + Location: 97,29 + Owner: Soviets + Actor320: e3 + Location: 109,27 + Owner: Soviets + Actor321: e3 + Location: 48,36 + Owner: Soviets + Actor267: dog + Location: 35,61 + Owner: Soviets + Actor323: e3 + Location: 30,43 + Owner: Soviets + Actor324: e3 + Location: 38,30 + Owner: Soviets + Actor325: e2 + Location: 32,36 + Owner: Soviets + Actor326: e2 + Location: 62,35 + Owner: Soviets + Actor327: e2 + Location: 37,48 + Owner: Soviets + Actor329: e2 + Location: 46,28 + Owner: Soviets + Actor330: e2 + Location: 35,67 + Owner: Soviets + Actor331: e1 + Location: 27,78 + Owner: Soviets + Actor332: e2 + Location: 29,79 + Owner: Soviets + Actor333: e1 + Location: 75,22 + Owner: Soviets + Actor334: e2 + Location: 101,29 + Owner: Soviets + Actor335: e2 + Location: 77,20 + Owner: Soviets + SpyReinforcementsExitPoint: waypoint + Location: 48,111 + Owner: Neutral + Actor305: ss + Location: 19,101 + Owner: Soviets + Actor258: apwr + Location: 32,56 + Owner: Soviets + Actor340: v09 + Location: 72,86 + Owner: Creeps + Actor339: e1 + Location: 21,35 + Owner: Soviets + Actor342: v05 + Location: 68,88 + Owner: Creeps + Actor341: e1 + Location: 24,27 + Owner: Soviets + Actor344: v08 + Location: 65,99 + Owner: Creeps + Actor345: v16 + Location: 59,97 + Owner: Neutral + Actor346: v18 + Location: 60,97 + Owner: Neutral + Actor347: v17 + Location: 61,97 + Owner: Neutral + Actor348: v06 + Location: 60,96 + Owner: Creeps + Actor349: v14 + Location: 66,83 + Owner: Neutral + Actor351: t11 + Location: 62,100 + Owner: Neutral + Actor352: tc04 + Location: 55,94 + Owner: Neutral + Actor353: tc03 + Location: 56,96 + Owner: Neutral + Actor354: t12 + Location: 68,99 + Owner: Neutral + Actor355: tc01 + Location: 66,93 + Owner: Neutral + Actor356: tc02 + Location: 66,89 + Owner: Neutral + Actor357: t10 + Location: 60,88 + Owner: Neutral + Actor358: t14 + Location: 59,87 + Owner: Neutral + Actor359: tc04 + Location: 58,88 + Owner: Neutral + Actor360: tc02 + Location: 58,80 + Owner: Neutral + Actor361: tc01 + Location: 79,92 + Owner: Neutral + Actor362: t07 + Location: 77,89 + Owner: Neutral + Actor363: t02 + Location: 77,84 + Owner: Neutral + Actor364: t01 + Location: 73,91 + Owner: Neutral + Actor273: v10 + Location: 58,86 + Owner: Creeps + Actor343: e1 + Location: 28,49 + Owner: Soviets + Actor367: e1 + Location: 27,60 + Owner: Soviets + Actor368: t02 + Location: 75,92 + Owner: Neutral + Actor369: tc03 + Location: 75,84 + Owner: Neutral + Actor370: t16 + Location: 99,98 + Owner: Neutral + Actor371: t02 + Location: 110,92 + Owner: Neutral + Actor372: t08 + Location: 89,96 + Owner: Neutral + Actor373: tc03 + Location: 94,100 + Owner: Neutral + Actor374: wood + Location: 67,100 + Owner: Neutral + Actor375: e1 + Location: 89,47 + Owner: Soviets + Actor376: e1 + Location: 91,46 + Owner: Soviets + Actor377: dog + Location: 91,48 + Owner: Soviets + Actor378: t10 + Location: 81,74 + Owner: Neutral + Actor379: tc02 + Location: 100,75 + Owner: Neutral + Actor380: tc05 + Location: 99,72 + Owner: Neutral + Actor381: tc04 + Location: 103,74 + Owner: Neutral + Actor382: tc03 + Location: 104,72 + Owner: Neutral + Actor383: tc02 + Location: 109,65 + Owner: Neutral + Actor384: t07 + Location: 103,65 + Owner: Neutral + Actor385: t06 + Location: 91,64 + Owner: Neutral + Actor386: t05 + Location: 100,68 + Owner: Neutral + Actor243: ftur + Location: 81,69 + Owner: Soviets + Actor223: e3 + Location: 39,53 + Owner: Soviets + Actor278: ftur + Location: 37,58 + Owner: Soviets + Actor391: ftur + Location: 94,66 + Owner: Soviets + Actor392: e1 + Location: 83,69 + Owner: Soviets + Actor393: e1 + Location: 90,76 + Owner: Soviets + Actor394: e1 + Location: 92,67 + Owner: Soviets + Actor395: e2 + Location: 88,67 + Owner: Soviets + Actor396: e2 + Location: 85,75 + Owner: Soviets + Actor397: e1 + Location: 96,72 + Owner: Soviets + Actor398: e1 + Location: 89,71 + Owner: Soviets + Actor399: tsla + Location: 94,22 + Owner: Soviets + Actor400: e1 + Location: 49,66 + Owner: Soviets + Actor402: ftur + Location: 26,40 + Owner: Soviets + Actor328: v2rl + Location: 27,37 + Owner: Soviets + Facing: 64 + Actor366: powr + Location: 35,54 + Owner: Soviets + Actor403: powr + Location: 56,31 + Owner: Soviets + SpyReinforcementsEntryPoint: waypoint + Location: 16,107 + Owner: Neutral + Actor404: ss + Location: 80,33 + Owner: Soviets + Actor405: ss + Location: 65,47 + Owner: Soviets + Actor406: ss + Location: 20,56 + Owner: Soviets + Actor312: t17 + Location: 88,100 + Owner: Neutral + PatrolPoint13: waypoint + Location: 81,86 + Owner: Neutral + PatrolPoint12: waypoint + Location: 74,78 + Owner: Neutral + PatrolPoint11: waypoint + Location: 77,70 + Owner: Neutral + PatrolPoint15: waypoint + Location: 88,73 + Owner: Neutral + PatrolPoint14: waypoint + Location: 91,83 + Owner: Neutral + PatrolPoint21: waypoint + Location: 105,45 + Owner: Neutral + PatrolPoint23: waypoint + Location: 78,53 + Owner: Neutral + PatrolPoint24: waypoint + Location: 92,56 + Owner: Neutral + PatrolPoint25: waypoint + Location: 106,53 + Owner: Neutral + Actor409: e1 + Location: 76,59 + Owner: Soviets + Actor410: v2rl + Location: 74,59 + Owner: Soviets + Actor3: dog + Location: 74,52 + Owner: Soviets + Actor416: dog + Location: 82,73 + Owner: Soviets + Actor413: sbag + Location: 75,60 + Owner: Soviets + Actor414: sbag + Location: 74,60 + Owner: Soviets + Actor412: proc + Location: 84,68 + Owner: Soviets + Actor472: brl3 + Location: 77,101 + Owner: Soviets + Actor417: sbag + Location: 73,60 + Owner: Soviets + Actor296: kenn + Location: 90,68 + Owner: Soviets + Actor303: e2 + Location: 100,38 + Owner: Soviets + Actor408: dog + Location: 108,42 + Owner: Soviets + Actor418: dog + Location: 109,74 + Owner: Soviets + Actor419: e1 + Location: 108,75 + Owner: Soviets + Actor420: e1 + Location: 110,75 + Owner: Soviets + Actor421: sbag + Location: 108,73 + Owner: Soviets + Actor422: sbag + Location: 109,73 + Owner: Soviets + Actor423: sbag + Location: 110,73 + Owner: Soviets + Actor424: sbag + Location: 111,73 + Owner: Soviets + PatrolPoint43: waypoint + Location: 109,51 + Owner: Neutral + PatrolPoint42: waypoint + Location: 109,44 + Owner: Neutral + PatrolPoint41: waypoint + Location: 102,41 + Owner: Neutral + PatrolPoint45: waypoint + Location: 93,42 + Owner: Neutral + PatrolPoint44: waypoint + Location: 96,53 + Owner: Neutral + Actor425: dog + Location: 79,22 + Owner: Soviets + Actor426: dog + Location: 93,19 + Owner: Soviets + Actor427: dog + Location: 104,24 + Owner: Soviets + HijackTruck: truk.hijackable + Location: 99,34 + Owner: Soviets + Facing: 160 + BaseGuard: e1 + Location: 63,36 + Owner: Soviets + Actor429: cycl + Location: 63,33 + Owner: Soviets + Actor428: cycl + Location: 63,34 + Owner: Soviets + Actor230: cycl + Location: 63,35 + Owner: Soviets + Actor430: sbag + Location: 68,34 + Owner: Soviets + Actor431: sbag + Location: 68,33 + Owner: Soviets + Actor432: cycl + Location: 63,32 + Owner: Soviets + Actor433: sbag + Location: 63,37 + Owner: Soviets + BaseGuardMovePos: waypoint + Location: 62,37 + Owner: Neutral + BaseGuardTruckPos: waypoint + Location: 64,36 + Owner: Neutral + Actor411: e2 + Location: 73,53 + Owner: Soviets + Actor434: e1 + Location: 94,54 + Owner: Soviets + Actor435: dog + Location: 95,54 + Owner: Soviets + Actor436: e1 + Location: 82,44 + Owner: Soviets + Actor437: e1 + Location: 80,43 + Owner: Soviets + Actor438: dog + Location: 81,43 + Owner: Soviets + Actor439: e1 + Location: 109,48 + Owner: Soviets + Actor440: dog + Location: 108,48 + Owner: Soviets + Actor441: 3tnk + Location: 108,47 + Owner: Soviets + Actor442: brl3 + Location: 82,65 + Owner: Soviets + Actor443: brl3 + Location: 82,66 + Owner: Soviets + Actor444: barl + Location: 83,67 + Owner: Soviets + Actor445: brl3 + Location: 88,65 + Owner: Soviets + Actor446: barl + Location: 89,66 + Owner: Soviets + Actor447: barl + Location: 87,67 + Owner: Soviets + Actor448: brl3 + Location: 89,67 + Owner: Soviets + Actor450: barl + Location: 109,28 + Owner: Soviets + Actor449: brl3 + Location: 107,27 + Owner: Soviets + Actor454: e2 + Location: 38,32 + Owner: Soviets + Actor451: barl + Location: 108,29 + Owner: Soviets + Actor453: brl3 + Location: 38,31 + Owner: Soviets + LabTruck: truk + Location: 36,32 + Owner: Soviets + Actor455: silo + Location: 82,67 + Owner: Soviets + Actor456: e1 + Location: 85,66 + Owner: Soviets + Actor457: t06 + Location: 101,92 + Owner: Neutral + Actor115: c2 + Location: 56,89 + Owner: Creeps + Actor459: e1 + Location: 79,102 + Owner: Soviets + Actor460: sbag + Location: 80,103 + Owner: Soviets + Actor462: hpad + Location: 75,100 + Owner: Soviets + Actor463: sbag + Location: 79,103 + Owner: Soviets + Actor464: sbag + Location: 78,103 + Owner: Soviets + Actor465: sbag + Location: 77,103 + Owner: Soviets + Actor466: sbag + Location: 76,103 + Owner: Soviets + Actor467: sbag + Location: 76,102 + Owner: Soviets + Actor468: sbag + Location: 75,102 + Owner: Soviets + Actor469: sbag + Location: 74,102 + Owner: Soviets + Actor470: sbag + Location: 74,101 + Owner: Soviets + Actor471: powr + Location: 79,98 + Owner: Soviets + Actor415: sam + Location: 77,102 + Owner: Soviets + TurretFacing: 128 + Actor475: brl3 + Location: 79,97 + Owner: Soviets + Actor407: ftur + Location: 76,98 + Owner: Soviets + Actor473: barl + Location: 78,98 + Owner: Soviets + Actor461: e2 + Location: 78,97 + Owner: Soviets + Actor481: fenc + Location: 82,99 + Owner: Soviets + Actor482: fenc + Location: 82,100 + Owner: Soviets + Actor483: fenc + Location: 81,99 + Owner: Soviets + Actor484: fenc + Location: 81,98 + Owner: Soviets + ReinforcementsEntryPoint: waypoint + Location: 92,111 + Owner: Neutral + ReinforcementsUnloadPoint: waypoint + Location: 92,103 + Owner: Neutral + Actor474: mine + Location: 95,86 + Owner: Neutral + Actor480: fenc + Location: 87,74 + Owner: Soviets + Actor485: fenc + Location: 86,74 + Owner: Soviets + Actor486: fenc + Location: 85,74 + Owner: Soviets + Actor487: fenc + Location: 84,74 + Owner: Soviets + Actor313: c3 + Location: 65,86 + Owner: Creeps + Actor314: c4 + Location: 72,91 + Owner: Creeps + Actor315: c4 + Location: 58,92 + Owner: Creeps + Actor458: c8 + Location: 68,94 + Owner: Creeps + Actor476: c9 + Location: 59,98 + Owner: Creeps + Actor477: c10 + Location: 57,82 + Owner: Creeps + Actor478: c7 + Location: 69,89 + Owner: Creeps + Actor479: c6 + Location: 73,89 + Owner: Creeps + Actor150: silo + Location: 109,31 + Owner: Soviets + Actor489: silo + Location: 110,30 + Owner: Soviets + Actor490: silo + Location: 108,30 + Owner: Soviets + Actor306: e2 + Location: 43,56 + Owner: Soviets + Actor365: e3 + Location: 40,54 + Owner: Soviets + Actor388: e1 + Location: 38,50 + Owner: Soviets + Actor389: e1 + Location: 48,58 + Owner: Soviets + Actor390: e2 + Location: 42,43 + Owner: Soviets + Actor491: e1 + Location: 42,41 + Owner: Soviets + Actor492: e1 + Location: 35,35 + Owner: Soviets + BridgeTank: 3tnk + Location: 76,20 + Owner: Soviets + BridgeAttackPoint: waypoint + Location: 74,25 + Owner: Neutral + Actor19: brik + Location: 37,27 + Owner: Soviets + Actor23: brik + Location: 37,26 + Owner: Soviets + Actor24: brik + Location: 36,26 + Owner: Soviets + Actor109: brik + Location: 32,27 + Owner: Soviets + Actor496: e4 + Location: 57,38 + Owner: Soviets + Actor497: e4 + Location: 38,60 + Owner: Soviets + Actor498: apc + Location: 78,99 + Owner: Soviets + Actor499: 3tnk + Location: 106,23 + Owner: Soviets + Actor500: sbag + Location: 44,30 + Owner: Soviets + Actor501: sbag + Location: 44,31 + Owner: Soviets + Actor502: sbag + Location: 44,32 + Owner: Soviets + Actor503: sbag + Location: 44,33 + Owner: Soviets + Actor504: sbag + Location: 43,30 + Owner: Soviets + Actor505: e1 + Location: 43,32 + Owner: Soviets + Actor506: e3 + Location: 43,31 + Owner: Soviets + Actor507: brik + Location: 104,36 + Owner: Soviets + Actor508: brik + Location: 104,35 + Owner: Soviets + Actor509: brik + Location: 104,34 + Owner: Soviets + Actor510: brik + Location: 102,35 + Owner: Soviets + Actor511: brik + Location: 102,36 + Owner: Soviets + Actor512: brik + Location: 103,36 + Owner: Soviets + Actor513: e1 + Location: 110,34 + Owner: Soviets + PatrolPoint31: waypoint + Location: 79,71 + Owner: Neutral + PatrolPoint32: waypoint + Location: 78,46 + Owner: Neutral + PatrolPoint33: waypoint + Location: 100,48 + Owner: Neutral + PatrolPoint34: waypoint + Location: 92,70 + Owner: Neutral + Actor516: wood + Location: 65,100 + Owner: Neutral + Actor143: v11 + Location: 72,95 + Owner: Creeps + Actor517: wood + Location: 64,100 + Owner: Neutral + Actor518: wood + Location: 63,100 + Owner: Neutral + Actor519: wood + Location: 63,99 + Owner: Neutral + Actor520: wood + Location: 63,98 + Owner: Neutral + Actor521: v18 + Location: 59,96 + Owner: Neutral + TownAttacker6: e4 + Location: 70,97 + Owner: Soviets + TownAttacker4: e4 + Location: 70,91 + Owner: Soviets + TownAttacker1: e4 + Location: 70,82 + Owner: Soviets + TownAttacker2: e1 + Location: 70,87 + Owner: Soviets + TownAttacker5: e1 + Location: 70,93 + Owner: Soviets + TownAttacker3: 3tnk + Location: 74,87 + Owner: Soviets + TownAttacker7: 3tnk + Location: 73,97 + Owner: Soviets + SpyReinforcementsUnloadPoint: waypoint + Location: 52,94 + Owner: Neutral + Actor522: ss + Location: 43,100 + Owner: Soviets + Hospital: hosp + Location: 57,78 + Owner: Creeps + Actor523: v02 + Location: 56,87 + Owner: Creeps + Actor524: v03 + Location: 60,90 + Owner: Creeps + Actor525: c1 + Location: 55,90 + Owner: Creeps + Actor526: c9 + Location: 60,94 + Owner: Creeps + Actor527: v11 + Location: 59,94 + Owner: Creeps + Actor528: brl3 + Location: 60,95 + Owner: Neutral + Actor529: barl + Location: 59,95 + Owner: Neutral + Actor530: brl3 + Location: 58,94 + Owner: Neutral + Actor533: brl3 + Location: 54,88 + Owner: Neutral + Actor570: tsla + Owner: Soviets + Location: 103,35 + Actor571: tsla + Owner: Soviets + Location: 71,34 + Actor569: tsla + Owner: Soviets + Location: 37,66 + Actor572: tsla + Owner: Soviets + Location: 31,62 + Actor573: tsla + Owner: Soviets + Location: 28,81 + Actor574: tsla + Owner: Soviets + Location: 49,26 + Actor575: tsla + Owner: Soviets + Location: 49,33 + Actor576: tsla + Owner: Soviets + Location: 40,38 + Actor577: tsla + Owner: Soviets + Location: 31,43 + Actor578: tsla + Owner: Soviets + Location: 43,50 + +Rules: ra|rules/campaign-rules.yaml, ra|rules/campaign-tooltips.yaml, rules.yaml diff --git a/mods/ra/maps/infiltration/rules.yaml b/mods/ra/maps/infiltration/rules.yaml new file mode 100644 index 0000000000..47b0263077 --- /dev/null +++ b/mods/ra/maps/infiltration/rules.yaml @@ -0,0 +1,228 @@ +World: + GlobalLightingPaletteEffect@HAZE: + Red: 1 + Green: 0.55 + Blue: 0 + MissionData: + Briefing: The Soviets are currently developing a new weapon system at a secret research laboratory. This is a reconnaissance mission. Do not engage until we know what we are up against and wait for reinforcements. Our civilian contacts reported a heavily guarded installation under ruthless command. + LuaScript: + Scripts: infiltration.lua + ScriptLobbyDropdown@difficulty: + ID: difficulty + Label: Difficulty + Values: + easy: Easy + normal: Normal + hard: Hard + Default: normal + +^Palettes: + FixedColorPalette@SovietTruk: + Base: player + Name: truk-soviets + RemapIndex: 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 + Color: FE1100 + +MISS: + AutoTargetIgnore: + Targetable: + TargetTypes: Ground, C4, DetonateAttack, Structure, MissionObjective + +LST.Unselectable.UnloadOnly: + Inherits: LST + -Selectable: + RenderSprites: + Image: LST + Buildable: + Prerequisites: ~disabled + Cargo: + MaxWeight: 0 + PipCount: 0 + AutoTargetIgnore: + +SPY.Strong: + Inherits: SPY + Buildable: + Prerequisites: ~disabled + RenderSprites: + Image: SPY + Health: + HP: 100 + RevealsShroud: + Range: 6c0 + Infiltrates: + Types: MissionObjective + ExternalCaptures: + CaptureTypes: MissionObjective + EditorOnlyTooltip: + Description: RenderDebugState.OnOwnerChange will crash + -RenderDebugState: + Passenger: + GrantUpgrades: mobile + +DOG.Patrol: + Inherits: DOG + Buildable: + Prerequisites: ~disabled + Mobile: + Speed: 56 + RenderSprites: + Image: DOG + +TRUK.Hijackable: + Inherits: TRUK + Buildable: + Prerequisites: ~disabled + Mobile: + UpgradeTypes: mobile + UpgradeMinEnabledLevel: 1 + Cargo: + Types: Infantry + MaxWeight: 5 + PipCount: 5 + AutoTargetIgnore: + -Huntable: + ExternalCapturable: + Type: MissionObjective + CaptureCompleteTime: 1 + -SupplyTruck: + RenderSprites: + Image: TRUK + Palette: truk-soviets + RevealsShroud: + Range: 6c0 + Voiced: + VoiceSet: SpyVoice + +E7: + Buildable: + Prerequisites: ~disabled + +TRAN: + Buildable: + Prerequisites: ~disabled + +BARR: + Buildable: + Prerequisites: ~disabled + +MIG: + Buildable: + Prerequisites: ~disabled + +HELI: + Buildable: + Prerequisites: ~disabled + +SS: + Buildable: + Prerequisites: ~disabled + AutoTarget: + InitialStanceAI: Defend + +ARTY: + Buildable: + Prerequisites: ~disabled + +AGUN: + Buildable: + Prerequisites: ~disabled + +MSUB: + Buildable: + Prerequisites: ~disabled + +CA: + Buildable: + Prerequisites: ~disabled + +MSLO: + Buildable: + Prerequisites: ~disabled + +SPEN: + Buildable: + Prerequisites: ~disabled + +IRON: + Buildable: + Prerequisites: ~disabled + +PDOX: + Buildable: + Prerequisites: ~disabled + +TSLA: + Buildable: + Prerequisites: ~disabled + +FTUR: + Buildable: + Prerequisites: ~disabled + +SAM: + Buildable: + Prerequisites: ~disabled + +HPAD: + Buildable: + Prerequisites: ~disabled + +AFLD: + Buildable: + Prerequisites: ~disabled + +ATEK: + Buildable: + Prerequisites: ~disabled + +STEK: + Buildable: + Prerequisites: ~disabled + +4TNK: + Buildable: + Prerequisites: ~disabled + +MCV: + Buildable: + Prerequisites: ~disabled + EditorOnlyTooltip: + Description: RenderDebugState.OnOwnerChange will crash + -RenderDebugState: + +APC: + Buildable: + Prerequisites: ~disabled + +MNLY.AP: + Buildable: + Prerequisites: ~disabled + +MNLY.AT: + Buildable: + Prerequisites: ~disabled + +TTNK: + Buildable: + Prerequisites: ~disabled + +FTRK: + Buildable: + Prerequisites: ~disabled + +CTNK: + Buildable: + Prerequisites: ~disabled + +MGG: + Buildable: + Prerequisites: ~disabled + +MRJ: + Buildable: + Prerequisites: ~disabled + +GAP: + Buildable: + Prerequisites: ~disabled