diff --git a/mods/ra/maps/sarin-gas-3-controlled-burn/controlledburn-AI.lua b/mods/ra/maps/sarin-gas-3-controlled-burn/controlledburn-AI.lua new file mode 100644 index 0000000000..e959e632ad --- /dev/null +++ b/mods/ra/maps/sarin-gas-3-controlled-burn/controlledburn-AI.lua @@ -0,0 +1,152 @@ +--[[ + Copyright 2007-2020 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. +]] +AttackGroup = { } +AttackGroupSize = 10 +BGAttackGroup = { } +BGAttackGroupSize = 8 +SovietInfantry = { "e1", "e2", "e4" } +SovietVehicles = { "3tnk", "3tnk", "v2rl" } +SovietAircraftType = { "mig", "yak" } +Planes = { } + +ProductionInterval = +{ + easy = DateTime.Seconds(30), + normal = DateTime.Seconds(20), + hard = DateTime.Seconds(10) +} + +SendBGAttackGroup = function() + if #BGAttackGroup < BGAttackGroupSize then + return + end + + Utils.Do(BGAttackGroup, function(unit) + if not unit.IsDead then + IdleHunt(unit) + end + end) + + BGAttackGroup = { } +end + +ProduceBadGuyInfantry = function() + if BadGuyRax.IsDead or BadGuyRax.Owner ~= BadGuy then + return + end + + BadGuy.Build({ Utils.Random(SovietInfantry) }, function(units) + table.insert(BGAttackGroup, units[1]) + SendBGAttackGroup() + Trigger.AfterDelay(ProductionInterval[Map.LobbyOption("difficulty")], ProduceBadGuyInfantry) + end) +end + +SendAttackGroup = function() + if #AttackGroup < AttackGroupSize then + return + end + + Utils.Do(AttackGroup, function(unit) + if not unit.IsDead then + IdleHunt(unit) + end + end) + + AttackGroup = { } +end + +ProduceUSSRInfantry = function() + if (USSRRax1.IsDead or USSRRax1.Owner ~= USSR) and (USSRRax2.IsDead or USSRRax2.Owner ~= USSR) then + return + end + + USSR.Build({ Utils.Random(SovietInfantry) }, function(units) + table.insert(AttackGroup, units[1]) + SendAttackGroup() + Trigger.AfterDelay(ProductionInterval[Map.LobbyOption("difficulty")], ProduceUSSRInfantry) + end) +end + +ProduceVehicles = function() + if USSRWarFactory.IsDead or USSRWarFactory.Owner ~= USSR then + return + end + + USSR.Build({ Utils.Random(SovietVehicles) }, function(units) + table.insert(AttackGroup, units[1]) + SendAttackGroup() + Trigger.AfterDelay(ProductionInterval[Map.LobbyOption("difficulty")], ProduceVehicles) + end) +end + +GroundAttackUnits = { {"4tnk", "3tnk", "e2", "e2", "e2", "e2" }, { "3tnk", "3tnk", "v2rl", "e4", "e4", "e4" }, {"ttnk", "ttnk", "ttnk", "shok", "shok", "shok" } } + +GroundAttackPaths = +{ + { SovietGroundEntry1.Location }, + { SovietGroundEntry2.Location }, + { SovietGroundEntry3.Location } +} +GroundWavesDelays = +{ + easy = 4, + normal = 3, + hard = 2 +} + +GroundWaves = function() + if not ForwardCommand.IsDead then + local path = Utils.Random(GroundAttackPaths) + local units = Reinforcements.Reinforce(BadGuy, Utils.Random(GroundAttackUnits), path) + Utils.Do(units, IdleHunt) + + Trigger.AfterDelay(DateTime.Minutes(GroundWavesDelays), GroundWaves) + end +end + +ProduceAircraft = function() + if Airfield.IsDead or Airfield.Owner ~= USSR then + return + end + + USSR.Build({ Utils.Random(SovietAircraftType) }, function(units) + local plane = units[1] + Planes[#Planes + 1] = plane + + Trigger.OnKilled(plane, ProduceAircraft) + + local alive = Utils.Where(Planes, function(y) return not y.IsDead end) + if #alive < 2 then + Trigger.AfterDelay(DateTime.Seconds(ProductionInterval[Map.LobbyOption("difficulty")] / 2), ProduceAircraft) + end + + InitializeAttackAircraft(plane, Greece) + end) +end + +ActivateAI = function() + local difficulty = Map.LobbyOption("difficulty") + GroundWavesDelays = GroundWavesDelays[difficulty] + + local buildings = Utils.Where(Map.ActorsInWorld, function(self) return self.Owner == USSR and self.HasProperty("StartBuildingRepairs") end) + Utils.Do(buildings, function(actor) + Trigger.OnDamaged(actor, function(building) + if building.Owner == USSR and building.Health < building.MaxHealth * 3/4 then + building.StartBuildingRepairs() + end + end) + end) + + ProduceBadGuyInfantry() + ProduceUSSRInfantry() + ProduceVehicles() + Trigger.AfterDelay(DateTime.Minutes(GroundWavesDelays), GroundWaves) + Trigger.AfterDelay(DateTime.Minutes(5), ProduceAircraft) +end diff --git a/mods/ra/maps/sarin-gas-3-controlled-burn/controlledburn.lua b/mods/ra/maps/sarin-gas-3-controlled-burn/controlledburn.lua new file mode 100644 index 0000000000..7e2d20129f --- /dev/null +++ b/mods/ra/maps/sarin-gas-3-controlled-burn/controlledburn.lua @@ -0,0 +1,149 @@ +--[[ + Copyright 2007-2020 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. +]] +StartUnits = { APC, StartSpy, Rifle1, Rifle2, Rifle3, Rifle4, Rocket1, Rocket2, Rocket3, Rocket4, Rocket5 } +SarinPlants = { SarinLab1, SarinLab2, SarinLab3, SarinLab4, SarinLab5 } +MammothStart = { CPos.New(37, 46), CPos.New(37, 47), CPos.New(37, 48), CPos.New(37, 49), CPos.New(37,50) } +NorthPatrol = { NorthPatrol1.Location, NorthPatrol2.Location, NorthPatrol3.Location, NorthPatrol4.Location, NorthPatrol5.Location } +BarrerlInvestigators = { Alert1, Alert2, Alert3, Alert4, Alert5 } +RaxTeam = { "e1", "e2", "e2", "e4", "e4", "shok" } +SouthPatrol = { SouthPatrol1.Location, SouthPatrol2.Location, SouthPatrol3.Location } +MCVReinforcements = +{ + easy = { "1tnk", "1tnk", "2tnk", "2tnk", "2tnk", "2tnk", "arty", "mcv" }, + normal = { "1tnk", "1tnk", "2tnk", "2tnk", "mcv" }, + hard = { "1tnk", "1tnk", "mcv" } +} + +IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end + +SetupTriggers = function() + Trigger.OnEnteredFootprint(MammothStart, function(actor, mammothcam) + if actor.Owner == Greece then + Trigger.RemoveFootprintTrigger(mammothcam) + NorthMammoth.Patrol(NorthPatrol, true, 20) + local mammothCamera = Actor.Create("camera", true, { Owner = Greece, Location = NorthPatrol1.Location }) + Trigger.AfterDelay(DateTime.Seconds(10), function() + mammothCamera.Destroy() + end) + end + end) + + Trigger.OnEnteredProximityTrigger(NorthPatrol3.CenterPosition, WDist.FromCells(8), function(actor, trigger1) + if actor.Owner == Greece then + Trigger.RemoveProximityTrigger(trigger1) + local baseCamera = Actor.Create("camera", true, { Owner = Greece, Location = BaseCam.Location }) + if Map.LobbyOption("difficulty") == "hard" then + Reinforcements.Reinforce(BadGuy, RaxTeam, { BadGuyRaxSpawn.Location, BaseCam.Location }, 0) + end + Trigger.AfterDelay(DateTime.Seconds(10), function() + baseCamera.Destroy() + end) + end + end) + + Trigger.OnAllRemovedFromWorld(StartUnits, function() + if not MCVArrived then + USSR.MarkCompletedObjective(SovietObj) + end + end) + + Trigger.OnKilled(VeryImportantBarrel, function() + Utils.Do(BarrerlInvestigators, function(actor) + if not actor.IsDead then + actor.AttackMove(AlertGo.Location) + end + end) + end) + + Trigger.OnAnyKilled(SarinPlants, function() + Greece.MarkFailedObjective(CaptureSarin) + end) + + Trigger.OnAllKilledOrCaptured(SarinPlants, function() + Greece.MarkCompletedObjective(CaptureSarin) + end) +end + +MCVArrived = false +MCVArrivedTick = false +PowerDownTeslas = function() + if not MCVArrived then + CaptureSarin = Greece.AddObjective("Capture all Sarin processing plants intact.") + KillBase = Greece.AddObjective("Destroy the enemy compound.") + Greece.MarkCompletedObjective(TakeOutPower) + Media.PlaySpeechNotification(Greece, "ReinforcementsArrived") + Reinforcements.Reinforce(Greece, MCVReinforcements[Map.LobbyOption("difficulty")], { AlliesSpawn.Location, AlliesMove.Location }) + local baseFlare = Actor.Create("flare", true, { Owner = Greece, Location = AlliedBase.Location }) + Actor.Create("proc", true, { Owner = USSR, Location = Proc1.Location }) + Actor.Create("proc", true, { Owner = USSR, Location = Proc2.Location }) + SouthMammoth.Patrol(SouthPatrol, true, 20) + MCVArrived = true + + Trigger.AfterDelay(DateTime.Seconds(1), function() + MCVArrivedTick = true + end) + + Trigger.AfterDelay(DateTime.Seconds(60), function() + local attackers = Reinforcements.Reinforce(USSR, { "e1", "e1", "e1", "e2", "e4" }, { SovietGroundEntry3.Location }, 5) + Utils.Do(attackers, IdleHunt) + end) + + Trigger.AfterDelay(DateTime.Seconds(100), function() + baseFlare.Destroy() + ActivateAI() + end) + end +end + +Tick = function() + USSR.Cash = 10000 + BadGuy.Cash = 10000 + + if BadGuy.PowerState ~= "Normal" then + PowerDownTeslas() + end + + if Greece.HasNoRequiredUnits() and MCVArrivedTick then + USSR.MarkCompletedObjective(SovietObj) + end + + if USSR.HasNoRequiredUnits() then + Greece.MarkCompletedObjective(KillBase) + end +end + +WorldLoaded = function() + Greece = Player.GetPlayer("Greece") + USSR = Player.GetPlayer("USSR") + BadGuy = Player.GetPlayer("BadGuy") + + SovietObj = USSR.AddObjective("Defeat the Allies.") + TakeOutPower = Greece.AddObjective("Bring down the power of the base to the east.") + + Trigger.OnObjectiveAdded(Greece, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective") + 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", BadGuy) + Camera.Position = DefaultCameraPosition.CenterPosition + SetupTriggers() +end diff --git a/mods/ra/maps/sarin-gas-3-controlled-burn/map.bin b/mods/ra/maps/sarin-gas-3-controlled-burn/map.bin new file mode 100644 index 0000000000..7abbfaa63c Binary files /dev/null and b/mods/ra/maps/sarin-gas-3-controlled-burn/map.bin differ diff --git a/mods/ra/maps/sarin-gas-3-controlled-burn/map.png b/mods/ra/maps/sarin-gas-3-controlled-burn/map.png new file mode 100644 index 0000000000..29bfd56141 Binary files /dev/null and b/mods/ra/maps/sarin-gas-3-controlled-burn/map.png differ diff --git a/mods/ra/maps/sarin-gas-3-controlled-burn/map.yaml b/mods/ra/maps/sarin-gas-3-controlled-burn/map.yaml new file mode 100644 index 0000000000..c88625655a --- /dev/null +++ b/mods/ra/maps/sarin-gas-3-controlled-burn/map.yaml @@ -0,0 +1,1244 @@ +MapFormat: 11 + +RequiresMod: ra + +Title: Sarin Gas 3: Controlled Burn + +Author: Westwood Studios + +Tileset: TEMPERAT + +MapSize: 128,128 + +Bounds: 30,27,70,66 + +Visibility: MissionSelector + +Categories: Mission + +LockPreview: True + +Players: + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Faction: allies + PlayerReference@Creeps: + Name: Creeps + NonCombatant: True + Faction: england + PlayerReference@BadGuy: + Name: BadGuy + Faction: soviet + Color: FF1400 + Allies: USSR + Enemies: Greece + PlayerReference@USSR: + Name: USSR + Faction: soviet + Color: FF1400 + Allies: BadGuy + Enemies: Greece + 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 + +Actors: + Actor0: brik + Location: 48,52 + Owner: USSR + Actor1: brik + Location: 49,52 + Owner: USSR + Actor2: brik + Location: 55,52 + Owner: USSR + Actor3: brik + Location: 56,52 + Owner: USSR + Actor4: brik + Location: 57,52 + Owner: USSR + Actor5: brik + Location: 58,52 + Owner: USSR + Actor6: brik + Location: 59,52 + Owner: USSR + Actor7: brik + Location: 48,53 + Owner: USSR + Actor8: brik + Location: 49,53 + Owner: USSR + Actor9: brik + Location: 55,53 + Owner: USSR + Actor10: brik + Location: 56,53 + Owner: USSR + Actor11: brik + Location: 58,53 + Owner: USSR + Actor12: brik + Location: 59,53 + Owner: USSR + Actor13: brik + Location: 59,54 + Owner: USSR + Actor14: brik + Location: 59,55 + Owner: USSR + Actor15: brik + Location: 60,55 + Owner: USSR + Actor16: brik + Location: 59,56 + Owner: USSR + Actor17: brik + Location: 60,56 + Owner: USSR + Actor18: brik + Location: 60,57 + Owner: USSR + Actor19: brik + Location: 60,58 + Owner: USSR + Actor20: brik + Location: 60,59 + Owner: USSR + Actor21: brik + Location: 51,60 + Owner: USSR + Actor22: brik + Location: 52,60 + Owner: USSR + Actor23: brik + Location: 53,60 + Owner: USSR + Actor24: brik + Location: 59,60 + Owner: USSR + Actor25: brik + Location: 60,60 + Owner: USSR + Actor26: brik + Location: 51,61 + Owner: USSR + Actor27: brik + Location: 53,61 + Owner: USSR + Actor28: brik + Location: 59,61 + Owner: USSR + Actor29: brik + Location: 60,61 + Owner: USSR + Actor30: brik + Location: 51,62 + Owner: USSR + Actor31: brik + Location: 52,62 + Owner: USSR + Actor32: brik + Location: 53,62 + Owner: USSR + Actor33: brik + Location: 59,67 + Owner: USSR + Actor34: brik + Location: 60,67 + Owner: USSR + Actor35: brik + Location: 51,68 + Owner: USSR + Actor36: brik + Location: 52,68 + Owner: USSR + Actor37: brik + Location: 53,68 + Owner: USSR + Actor38: brik + Location: 59,68 + Owner: USSR + Actor39: brik + Location: 60,68 + Owner: USSR + Actor40: brik + Location: 51,69 + Owner: USSR + Actor41: brik + Location: 53,69 + Owner: USSR + Actor42: brik + Location: 60,69 + Owner: USSR + Actor43: brik + Location: 51,70 + Owner: USSR + Actor44: brik + Location: 52,70 + Owner: USSR + Actor45: brik + Location: 53,70 + Owner: USSR + Actor46: brik + Location: 60,70 + Owner: USSR + Actor47: brik + Location: 60,71 + Owner: USSR + Actor48: brik + Location: 42,72 + Owner: USSR + Actor49: brik + Location: 43,72 + Owner: USSR + Actor50: brik + Location: 60,72 + Owner: USSR + Actor51: brik + Location: 42,73 + Owner: USSR + Actor52: brik + Location: 43,73 + Owner: USSR + Actor53: brik + Location: 44,73 + Owner: USSR + Actor54: brik + Location: 45,73 + Owner: USSR + Actor55: brik + Location: 46,73 + Owner: USSR + Actor56: brik + Location: 47,73 + Owner: USSR + Actor57: brik + Location: 48,73 + Owner: USSR + Actor58: brik + Location: 60,73 + Owner: USSR + Actor59: brik + Location: 47,74 + Owner: USSR + Actor60: brik + Location: 48,74 + Owner: USSR + Actor61: brik + Location: 54,74 + Owner: USSR + Actor62: brik + Location: 55,74 + Owner: USSR + Actor63: brik + Location: 59,74 + Owner: USSR + Actor64: brik + Location: 60,74 + Owner: USSR + Actor65: brik + Location: 54,75 + Owner: USSR + Actor66: brik + Location: 55,75 + Owner: USSR + Actor67: brik + Location: 56,75 + Owner: USSR + Actor68: brik + Location: 57,75 + Owner: USSR + Actor69: brik + Location: 58,75 + Owner: USSR + Actor70: brik + Location: 59,75 + Owner: USSR + Actor71: brik + Location: 60,75 + Owner: USSR + Actor72: tc04 + Location: 35,40 + Owner: Neutral + Actor73: tc03 + Location: 30,42 + Owner: Neutral + Actor74: tc02 + Location: 30,53 + Owner: Neutral + Actor75: t07 + Location: 30,57 + Owner: Neutral + Actor76: t11 + Location: 35,51 + Owner: Neutral + Actor77: t12 + Location: 32,51 + Owner: Neutral + Actor78: t12 + Location: 39,42 + Owner: Neutral + Actor79: t16 + Location: 30,30 + Owner: Neutral + Actor80: tc01 + Location: 89,39 + Owner: Neutral + Actor81: t16 + Location: 96,38 + Owner: Neutral + Actor82: tc05 + Location: 85,27 + Owner: Neutral + Actor83: tc04 + Location: 85,38 + Owner: Neutral + Actor84: tc01 + Location: 80,28 + Owner: Neutral + Actor85: tc05 + Location: 74,27 + Owner: Neutral + Actor86: t16 + Location: 73,27 + Owner: Neutral + Actor87: t01 + Location: 80,41 + Owner: Neutral + Actor88: t11 + Location: 85,41 + Owner: Neutral + Actor89: tc02 + Location: 78,42 + Owner: Neutral + Actor90: tc04 + Location: 52,42 + Owner: Neutral + Actor91: tc03 + Location: 56,42 + Owner: Neutral + Actor92: tc02 + Location: 60,41 + Owner: Neutral + Actor93: mine + Location: 38,32 + Owner: Neutral + Actor94: mine + Location: 53,35 + Owner: Neutral + Actor95: t01 + Location: 56,28 + Owner: Neutral + Actor96: t11 + Location: 40,37 + Owner: Neutral + Actor97: t13 + Location: 43,29 + Owner: Neutral + Actor98: t14 + Location: 33,30 + Owner: Neutral + Actor99: tc01 + Location: 69,28 + Owner: Neutral + Actor100: t16 + Location: 64,38 + Owner: Neutral + Actor101: tc05 + Location: 72,47 + Owner: Neutral + Actor102: tc04 + Location: 66,49 + Owner: Neutral + Actor103: tc03 + Location: 63,52 + Owner: Neutral + Actor104: tc01 + Location: 72,46 + Owner: Neutral + Actor105: t16 + Location: 78,45 + Owner: Neutral + Actor106: tc04 + Location: 61,56 + Owner: Neutral + Actor107: t02 + Location: 60,53 + Owner: Neutral + Actor108: tc04 + Location: 30,74 + Owner: Neutral + Actor109: tc02 + Location: 35,77 + Owner: Neutral + Actor110: tc03 + Location: 33,79 + Owner: Neutral + Actor111: tc05 + Location: 90,51 + Owner: Neutral + Actor112: tc04 + Location: 83,50 + Owner: Neutral + Actor113: tc02 + Location: 96,50 + Owner: Neutral + Actor114: tc01 + Location: 98,49 + Owner: Neutral + Actor115: tc02 + Location: 57,38 + Owner: Neutral + Actor116: tc01 + Location: 37,44 + Owner: Neutral + Actor117: mine + Location: 89,57 + Owner: Neutral + Actor118: tc04 + Location: 78,75 + Owner: Neutral + Actor119: tc05 + Location: 95,69 + Owner: Neutral + Actor120: tc03 + Location: 98,69 + Owner: Neutral + Actor121: tc05 + Location: 59,75 + Owner: Neutral + Actor122: tc02 + Location: 37,80 + Owner: Neutral + Actor123: tc05 + Location: 67,69 + Owner: Neutral + Actor124: tc04 + Location: 65,70 + Owner: Neutral + Actor125: tc01 + Location: 67,71 + Owner: Neutral + Actor126: tc03 + Location: 73,66 + Owner: Neutral + Actor127: t01 + Location: 43,85 + Owner: Neutral + Actor128: mine + Location: 58,82 + Owner: Neutral + Actor129: tc04 + Location: 29,85 + Owner: Neutral + Actor130: tc01 + Location: 58,72 + Owner: Neutral + Actor131: t16 + Location: 58,73 + Owner: Neutral + Actor132: t16 + Location: 69,78 + Owner: Neutral + Actor133: t13 + Location: 66,62 + Owner: Neutral + Actor134: tc02 + Location: 84,72 + Owner: Neutral + Actor135: mine + Location: 78,86 + Owner: Neutral + Actor136: t15 + Location: 30,63 + Owner: Neutral + Actor137: t08 + Location: 34,72 + Owner: Neutral + Actor138: t01 + Location: 71,62 + Owner: Neutral + Actor139: t02 + Location: 32,40 + Owner: Neutral + Actor140: t01 + Location: 72,54 + Owner: Neutral + Actor141: tc04 + Location: 42,73 + Owner: Neutral + Actor142: mine + Location: 80,90 + Owner: Neutral + Actor143: mine + Location: 87,60 + Owner: Neutral + Actor144: mine + Location: 93,58 + Owner: Neutral + Actor145: mine + Location: 86,55 + Owner: Neutral + Actor146: tsla + Location: 93,42 + Owner: BadGuy + Actor147: tsla + Location: 91,42 + Owner: BadGuy + Actor148: tsla + Location: 97,42 + Owner: BadGuy + Actor149: tsla + Location: 95,42 + Owner: BadGuy + Actor150: fact + Location: 82,29 + Owner: BadGuy + PowerPlant1: apwr + Location: 88,35 + Owner: BadGuy + PowerPlant2: apwr + Location: 85,36 + Owner: BadGuy + PowerPlant3: apwr + Location: 89,32 + Owner: BadGuy + PowerPlant4: apwr + Location: 91,35 + Owner: BadGuy + PowerPlant5: apwr + Location: 82,37 + Owner: BadGuy + Actor156: ftur + Location: 83,34 + Owner: BadGuy + Actor157: ftur + Location: 76,37 + Owner: BadGuy + Actor158: ftur + Location: 76,34 + Owner: BadGuy + BadGuyRax: barr + Location: 79,30 + Owner: BadGuy + Actor160: v19 + Location: 94,32 + Owner: Neutral + Actor161: brl3 + Location: 93,32 + Owner: BadGuy + Actor162: barl + Location: 94,33 + Owner: BadGuy + Actor163: brl3 + Location: 93,33 + Owner: BadGuy + Actor164: brl3 + Location: 94,35 + Owner: BadGuy + Actor165: barl + Location: 94,34 + Owner: BadGuy + Actor166: brl3 + Location: 92,31 + Owner: BadGuy + Actor167: barl + Location: 92,33 + Owner: BadGuy + Actor168: barl + Location: 92,30 + Owner: BadGuy + SarinLab1: bio + Location: 36,55 + Owner: USSR + SarinLab2: bio + Location: 38,57 + Owner: USSR + SarinLab3: bio + Location: 34,57 + Owner: USSR + SarinLab4: bio + Location: 31,66 + Owner: USSR + SarinLab5: bio + Location: 30,69 + Owner: USSR + Actor172: brl3 + Location: 34,55 + Owner: USSR + Actor173: barl + Location: 35,55 + Owner: USSR + Actor174: brl3 + Location: 34,56 + Owner: USSR + Actor175: barl + Location: 33,57 + Owner: USSR + Actor176: brl3 + Location: 39,55 + Owner: USSR + Actor177: barl + Location: 38,55 + Owner: USSR + Actor178: brl3 + Location: 39,56 + Owner: USSR + Actor179: brl3 + Location: 33,59 + Owner: USSR + Actor180: tsla + Location: 52,61 + Owner: USSR + Actor181: ftur + Location: 54,53 + Owner: USSR + Actor182: ftur + Location: 50,53 + Owner: USSR + Actor185: apwr + Location: 35,70 + Owner: USSR + Actor186: apwr + Location: 38,69 + Owner: USSR + Actor187: apwr + Location: 35,67 + Owner: USSR + Actor188: tsla + Location: 52,69 + Owner: USSR + Actor189: ftur + Location: 49,74 + Owner: USSR + Actor190: ftur + Location: 53,74 + Owner: USSR + Actor191: ftur + Location: 59,66 + Owner: USSR + Actor192: ftur + Location: 59,62 + Owner: USSR + Actor193: tsla + Location: 43,68 + Owner: USSR + USSRWarFactory: weap + Location: 55,59 + Owner: USSR + Actor195: fact + Location: 46,64 + Owner: USSR + Actor196: silo + Location: 31,63 + Owner: USSR + Actor197: silo + Location: 32,62 + Owner: USSR + Actor198: silo + Location: 33,63 + Owner: USSR + Actor199: silo + Location: 34,62 + Owner: USSR + Actor200: apwr + Location: 35,63 + Owner: USSR + Actor201: apwr + Location: 38,65 + Owner: USSR + Actor202: apwr + Location: 38,62 + Owner: USSR + ForwardCommand: fcom + Location: 46,61 + Owner: USSR + Actor204: apwr + Location: 42,61 + Owner: USSR + Actor205: apwr + Location: 42,64 + Owner: USSR + Actor206: ftur + Location: 51,65 + Owner: USSR + Actor207: ftur + Location: 48,59 + Owner: USSR + USSRRax1: barr + Location: 55,67 + Owner: USSR + USSRRax2: barr + Owner: USSR + Location: 56,71 + Actor209: kenn + Location: 49,69 + Owner: USSR + Actor210: fix + Location: 56,55 + Owner: USSR + Actor211: brl3 + Location: 30,66 + Owner: USSR + Actor212: barl + Location: 30,67 + Owner: USSR + Actor213: barl + Location: 30,68 + Owner: USSR + Actor214: brl3 + Location: 32,71 + Owner: USSR + Actor215: v19 + Location: 63,28 + Owner: Neutral + Actor216: brl3 + Location: 62,27 + Owner: BadGuy + VeryImportantBarrel: barl + Location: 62,29 + Owner: BadGuy + Actor218: barl + Location: 63,27 + Owner: BadGuy + Actor219: brl3 + Location: 64,27 + Owner: BadGuy + Actor220: v19 + Location: 64,28 + Owner: Neutral + Actor221: brl3 + Location: 62,28 + Owner: BadGuy + Airfield: afld + Location: 37,91 + Owner: USSR + Actor223: ftur + Location: 38,89 + Owner: BadGuy + PowerPlant6: powr + Location: 86,32 + Owner: BadGuy + APC: apc + Location: 35,48 + Owner: Greece + Facing: 764 + Actor226: v2rl + Location: 46,72 + Owner: USSR + Facing: 636 + Actor227: v2rl + Location: 59,70 + Owner: USSR + Facing: 636 + Actor228: 4tnk + Location: 53,65 + Owner: USSR + Facing: 636 + Actor229: 3tnk + Location: 62,64 + Owner: USSR + Facing: 892 + Actor230: 3tnk + Location: 55,61 + Owner: USSR + Facing: 380 + NorthMammoth: 4tnk + Location: 51,48 + Owner: BadGuy + Facing: 252 + SouthMammoth: 4tnk + Location: 33,77 + Owner: USSR + Facing: 380 + Actor233: 3tnk + Location: 45,68 + Owner: USSR + Facing: 636 + Alert1: e1 + Location: 75,34 + Owner: BadGuy + Facing: 252 + SubCell: 0 + Alert2: e1 + Location: 75,37 + Owner: BadGuy + Facing: 380 + SubCell: 0 + Alert3: e1 + Location: 75,35 + Owner: BadGuy + Facing: 380 + SubCell: 1 + Alert4: e1 + Location: 75,36 + Owner: BadGuy + Facing: 252 + SubCell: 3 + StartSpy: spy + Location: 35,47 + Owner: Greece + Facing: 764 + SubCell: 0 + Rifle1: e1 + Location: 34,46 + Owner: Greece + Facing: 764 + SubCell: 3 + Rifle2: e1 + Location: 33,47 + Owner: Greece + Facing: 764 + SubCell: 2 + Rifle3: e1 + Location: 33,48 + Owner: Greece + Facing: 764 + SubCell: 4 + Rifle4: e1 + Location: 34,49 + Owner: Greece + Facing: 764 + SubCell: 1 + Rocket1: e3 + Location: 32,46 + Owner: Greece + Facing: 764 + SubCell: 3 + Rocket2: e3 + Location: 32,47 + Owner: Greece + Facing: 764 + SubCell: 2 + Rocket3: e3 + Location: 32,48 + Owner: Greece + Facing: 764 + SubCell: 4 + Rocket4: e3 + Location: 31,48 + Owner: Greece + Facing: 764 + SubCell: 2 + Rocket5: e3 + Location: 32,49 + Owner: Greece + Facing: 764 + SubCell: 1 + Actor248: e2 + Location: 81,32 + Owner: BadGuy + Facing: 636 + SubCell: 3 + Actor249: e1 + Location: 80,33 + Owner: BadGuy + Facing: 508 + SubCell: 1 + Actor250: e1 + Location: 87,30 + Owner: BadGuy + Facing: 380 + SubCell: 4 + Actor251: e4 + Location: 80,35 + Owner: BadGuy + Facing: 380 + SubCell: 3 + Actor252: e1 + Location: 44,67 + Owner: USSR + Facing: 636 + SubCell: 4 + Actor253: e1 + Location: 50,52 + Owner: USSR + SubCell: 0 + Actor254: e4 + Location: 51,52 + Owner: USSR + SubCell: 1 + Actor255: e4 + Location: 53,52 + Owner: USSR + SubCell: 2 + Actor256: e1 + Location: 54,52 + Owner: USSR + SubCell: 0 + Actor257: e1 + Location: 56,69 + Owner: USSR + Facing: 636 + SubCell: 4 + Actor258: e2 + Location: 55,69 + Owner: USSR + Facing: 252 + SubCell: 4 + Actor259: e2 + Location: 56,70 + Owner: USSR + Facing: 636 + SubCell: 1 + Actor260: e1 + Location: 47,76 + Owner: USSR + Facing: 636 + SubCell: 2 + Actor261: e1 + Location: 46,76 + Owner: USSR + Facing: 380 + SubCell: 0 + Actor262: e1 + Location: 77,51 + Owner: USSR + Facing: 124 + SubCell: 4 + Actor263: e1 + Location: 79,52 + Owner: USSR + Facing: 892 + SubCell: 2 + Actor264: e1 + Location: 78,51 + Owner: USSR + Facing: 892 + SubCell: 4 + Actor265: e1 + Location: 61,68 + Owner: USSR + Facing: 764 + SubCell: 1 + Actor266: e4 + Location: 61,67 + Owner: USSR + Facing: 636 + SubCell: 1 + Actor267: e2 + Location: 61,63 + Owner: USSR + Facing: 764 + SubCell: 0 + Actor268: e2 + Location: 61,62 + Owner: USSR + Facing: 636 + SubCell: 1 + Actor269: dog + Location: 50,70 + Owner: USSR + Facing: 636 + SubCell: 4 + Actor270: dog + Location: 60,63 + Owner: USSR + Facing: 636 + SubCell: 0 + Actor271: e1 + Location: 69,80 + Owner: USSR + Facing: 636 + SubCell: 2 + Alert5: dog + Location: 74,36 + Owner: BadGuy + Facing: 380 + SubCell: 2 + Actor273: dog + Location: 52,54 + Owner: USSR + Facing: 636 + SubCell: 4 + Actor274: dog + Location: 57,69 + Owner: USSR + Facing: 636 + SubCell: 2 + Actor275: dog + Location: 58,77 + Owner: USSR + Facing: 636 + SubCell: 4 + Actor276: dog + Location: 48,69 + Owner: USSR + Facing: 380 + SubCell: 3 + Actor277: e2 + Location: 53,75 + Owner: USSR + Facing: 636 + SubCell: 3 + Actor278: e2 + Location: 50,75 + Owner: USSR + Facing: 380 + SubCell: 4 + Actor279: e2 + Location: 57,68 + Owner: USSR + Facing: 892 + SubCell: 2 + Actor280: e2 + Location: 56,54 + Owner: USSR + SubCell: 2 + Actor281: e2 + Location: 56,73 + Owner: USSR + Facing: 636 + SubCell: 3 + Actor282: e2 + Location: 38,88 + Owner: USSR + Facing: 636 + SubCell: 0 + Actor283: e2 + Location: 39,90 + Owner: USSR + SubCell: 2 + Actor284: e1 + Location: 41,88 + Owner: USSR + Facing: 892 + SubCell: 3 + Actor319: fenc + Owner: USSR + Location: 38,59 + Actor320: fenc + Owner: USSR + Location: 39,59 + Actor321: fenc + Owner: USSR + Location: 40,59 + Actor322: fenc + Owner: USSR + Location: 40,58 + Actor323: fenc + Owner: USSR + Location: 40,57 + Actor324: fenc + Owner: USSR + Location: 40,56 + Actor325: fenc + Owner: USSR + Location: 40,55 + Actor326: fenc + Owner: USSR + Location: 32,60 + Actor327: fenc + Owner: USSR + Location: 33,60 + Actor328: fenc + Owner: USSR + Location: 34,60 + Actor329: fenc + Owner: USSR + Location: 35,60 + Actor330: fenc + Owner: USSR + Location: 30,65 + Actor331: fenc + Owner: USSR + Location: 31,65 + Actor332: fenc + Owner: USSR + Location: 32,65 + Actor333: fenc + Owner: USSR + Location: 33,65 + Actor334: fenc + Owner: USSR + Location: 33,66 + Actor335: fenc + Owner: USSR + Location: 33,67 + Actor336: fenc + Owner: USSR + Location: 33,68 + Actor337: fenc + Owner: USSR + Location: 33,71 + Actor338: fenc + Owner: USSR + Location: 33,72 + Actor339: fenc + Owner: USSR + Location: 32,72 + Actor340: fenc + Owner: USSR + Location: 30,72 + Actor341: fenc + Owner: USSR + Location: 31,72 + Actor345: stek + Owner: USSR + Location: 41,69 + Actor348: e1 + Owner: BadGuy + Location: 50,33 + SubCell: 3 + Facing: 368 + Actor349: e1 + Owner: BadGuy + Location: 55,34 + SubCell: 3 + Facing: 368 + Actor352: e1 + Owner: BadGuy + Location: 63,29 + SubCell: 3 + Facing: 368 + Actor353: e1 + Owner: BadGuy + Location: 63,29 + SubCell: 1 + Facing: 368 + Actor358: 3tnk + Owner: BadGuy + Location: 73,89 + Facing: 648 + Actor360: sam + Owner: USSR + Location: 58,71 + TurretFacing: 368 + Actor361: sam + Owner: USSR + Location: 44,72 + TurretFacing: 368 + Actor362: sam + Owner: USSR + Location: 36,61 + TurretFacing: 368 + Actor363: sam + Owner: USSR + Location: 58,58 + TurretFacing: 368 + Actor365: fenc + Owner: USSR + Location: 36,90 + Actor366: fenc + Owner: USSR + Location: 37,90 + Actor367: fenc + Owner: USSR + Location: 38,90 + Actor368: fenc + Owner: USSR + Location: 40,90 + Actor369: fenc + Owner: USSR + Location: 40,91 + Actor370: fenc + Owner: USSR + Location: 40,92 + Actor371: fenc + Owner: USSR + Location: 41,92 + Actor372: dome + Owner: USSR + Location: 34,87 + Actor373: fenc + Owner: USSR + Location: 32,86 + Actor374: fenc + Owner: USSR + Location: 33,86 + Actor375: fenc + Owner: USSR + Location: 34,86 + Actor376: fenc + Owner: USSR + Location: 35,86 + Actor377: fenc + Owner: USSR + Location: 36,86 + Actor378: fenc + Owner: USSR + Location: 36,87 + Actor379: fenc + Owner: USSR + Location: 37,87 + Actor380: fenc + Owner: USSR + Location: 37,89 + waypoint1: waypoint + Location: 97,46 + Owner: Neutral + DefaultCameraPosition: waypoint + Location: 33,47 + Owner: Neutral + NorthPatrol1: waypoint + Location: 45,48 + Owner: Neutral + NorthPatrol2: waypoint + Location: 48,33 + Owner: Neutral + NorthPatrol3: waypoint + Location: 73,36 + Owner: Neutral + NorthPatrol4: waypoint + Location: 60,48 + Owner: Neutral + NorthPatrol5: waypoint + Location: 52,48 + Owner: Neutral + AlertGo: waypoint + Location: 64,29 + Owner: Neutral + BadGuyRaxSpawn: waypoint + Location: 79,31 + Owner: Neutral + BaseCam: waypoint + Location: 81,35 + Owner: Neutral + AlliesSpawn: waypoint + Owner: Neutral + Location: 99,46 + AlliesMove: waypoint + Location: 81,47 + Owner: Neutral + AlliedBase: waypoint + Location: 92,76 + Owner: Neutral + Proc1: waypoint + Owner: Neutral + Location: 45,54 + Proc2: waypoint + Owner: Neutral + Location: 41,55 + SouthPatrol1: waypoint + Location: 51,80 + Owner: Neutral + SouthPatrol2: waypoint + Location: 60,84 + Owner: Neutral + SouthPatrol3: waypoint + Location: 38,86 + Owner: Neutral + SovietGroundEntry1: waypoint + Location: 30,48 + Owner: Neutral + SovietGroundEntry2: waypoint + Location: 30,84 + Owner: Neutral + SovietGroundEntry3: waypoint + Location: 70,92 + 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-3-controlled-burn/rules.yaml b/mods/ra/maps/sarin-gas-3-controlled-burn/rules.yaml new file mode 100644 index 0000000000..972c67b88a --- /dev/null +++ b/mods/ra/maps/sarin-gas-3-controlled-burn/rules.yaml @@ -0,0 +1,79 @@ +World: + LuaScript: + Scripts: campaign-global.lua, controlledburn.lua, controlledburn-AI.lua + MissionData: + WinVideo: apcescpe.vqa + LossVideo: tesla.vqa + Briefing: We have infiltrated the Soviet's Sarin facility. However, the main entrance is guarded by a wall of Tesla coils. We can't move a large force in until they are taken down.\n\nInfiltrate the power grid to the east or destroy its power plants. Once done, reinforcements will arrive.\n\nDestroy the Soviet compound, but capture all of the Sarin processor buildings intact -- we can't have a chemical spill. + ScriptLobbyDropdown@difficulty: + ID: difficulty + Label: Difficulty + Values: + easy: Easy + normal: Normal + hard: Hard + Default: normal + +Player: + PlayerResources: + DefaultCash: 7500 + +APC: + Buildable: + Prerequisites: ~vehicles.allies + +TRUK: + Buildable: + Prerequisites: ~disabled + +MGG: + Buildable: + Prerequisites: ~disabled + +FTRK: + Buildable: + Prerequisites: ~disabled + +DTRK: + Buildable: + Prerequisites: ~disabled + +CTNK: + Buildable: + Prerequisites: ~disabled + +STNK: + Buildable: + Prerequisites: ~disabled + +MSLO: + Buildable: + Prerequisites: ~disabled + +ATEK: + Buildable: + Prerequisites: ~disabled + +BIO: + Tooltip: + Name: Sarin Processing Plant + +E7: + Buildable: + Prerequisites: ~disabled + +E3: + Buildable: + Prerequisites: ~tent + +MH60: + Buildable: + Prerequisites: ~disabled + +TRAN: + Buildable: + Prerequisites: ~disabled + +HELI: + Buildable: + Prerequisites: ~hpad diff --git a/mods/ra/missions.yaml b/mods/ra/missions.yaml index 8b5832b414..19bea9753e 100644 --- a/mods/ra/missions.yaml +++ b/mods/ra/missions.yaml @@ -27,6 +27,7 @@ Soviet Campaign: Counterstrike: sarin-gas-1-crackdown sarin-gas-2-down-under + sarin-gas-3-controlled-burn fall-of-greece-1-personal-war siberian-conflict-1-fresh-tracks soviet-soldier-volkov-n-chitzkoi