From dc90a35aa08860303168e0bc461874bbd4647404 Mon Sep 17 00:00:00 2001 From: Biofreak1987 Date: Sun, 11 Oct 2015 20:33:41 +0200 Subject: [PATCH] Add soviet-02b --- OpenRA.sln | 1 + mods/ra/maps/soviet-02b/map.bin | Bin 0 -> 81937 bytes mods/ra/maps/soviet-02b/map.png | Bin 0 -> 28849 bytes mods/ra/maps/soviet-02b/map.yaml | 681 ++++++++++++++++++++++++++ mods/ra/maps/soviet-02b/soviet02b.lua | 174 +++++++ mods/ra/missions.yaml | 1 + 6 files changed, 857 insertions(+) create mode 100644 mods/ra/maps/soviet-02b/map.bin create mode 100644 mods/ra/maps/soviet-02b/map.png create mode 100644 mods/ra/maps/soviet-02b/map.yaml create mode 100644 mods/ra/maps/soviet-02b/soviet02b.lua diff --git a/OpenRA.sln b/OpenRA.sln index 01993e2e21..d37dfd595f 100644 --- a/OpenRA.sln +++ b/OpenRA.sln @@ -57,6 +57,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Red Alert Lua scripts", "Re mods\ra\maps\allies-05a\allies05a-AI.lua = mods\ra\maps\allies-05a\allies05a-AI.lua mods\ra\maps\soviet-01\soviet01.lua = mods\ra\maps\soviet-01\soviet01.lua mods\ra\maps\soviet-02a\soviet02a.lua = mods\ra\maps\soviet-02a\soviet02a.lua + mods\ra\maps\soviet-02b\soviet02b.lua = mods\ra\maps\soviet-02b\soviet02b.lua mods\ra\maps\soviet-03\soviet03.lua = mods\ra\maps\soviet-03\soviet03.lua mods\ra\maps\soviet-04a\soviet04a.lua = mods\ra\maps\soviet-04a\soviet04a.lua mods\ra\maps\soviet-04a\soviet04a-AI.lua = mods\ra\maps\soviet-04a\soviet04a-AI.lua diff --git a/mods/ra/maps/soviet-02b/map.bin b/mods/ra/maps/soviet-02b/map.bin new file mode 100644 index 0000000000000000000000000000000000000000..15a6dae16783107cac397d100ba496f6490bccb8 GIT binary patch literal 81937 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 literal 0 HcmV?d00001 diff --git a/mods/ra/maps/soviet-02b/map.png b/mods/ra/maps/soviet-02b/map.png new file mode 100644 index 0000000000000000000000000000000000000000..e92632f70fe14976003cf98c18d77856601545e5 GIT binary patch literal 28849 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 R74!fA002ovPDHLkV1gA%tiS*O literal 0 HcmV?d00001 diff --git a/mods/ra/maps/soviet-02b/map.yaml b/mods/ra/maps/soviet-02b/map.yaml new file mode 100644 index 0000000000..d0c3193c55 --- /dev/null +++ b/mods/ra/maps/soviet-02b/map.yaml @@ -0,0 +1,681 @@ +MapFormat: 7 + +RequiresMod: ra + +Title: Soviet 02b: The thin red line + +Description: Tomorrow, the attack on Germany begins, but today, we must protect our facility from Allied attacks.\n\nKeep the Command Center intact at all costs, and destroy any Allied fortification you might find. + +Author: Westwood Studios + +Tileset: TEMPERAT + +MapSize: 128,128 + +Bounds: 36,52,54,35 + +Visibility: MissionSelector + +Type: Campaign + +Videos: + Briefing: soviet2.vqa + GameStart: spotter.vqa + GameWon: sovtstar.vqa + GameLost: sovcemet.vqa + +Options: + Crates: False + Fog: True + Shroud: True + AllyBuildRadius: False + FragileAlliances: False + StartingCash: 5000 + ConfigurableStartingUnits: False + ShortGame: False + +Players: + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Faction: allies + PlayerReference@Creeps: + Name: Creeps + NonCombatant: True + PlayerReference@Germany: + Name: Germany + Faction: allies + ColorRamp: 161,134,236 + Enemies: USSR + PlayerReference@USSR: + Name: USSR + AllowBots: False + Playable: True + Required: True + LockFaction: True + Faction: soviet + LockColor: True + ColorRamp: 3,255,127 + LockSpawn: True + LockTeam: True + Enemies: Germany, Creeps + +Actors: + Actor0: sbag + Location: 53,52 + Owner: Germany + Actor1: sbag + Location: 54,52 + Owner: Germany + Actor2: sbag + Location: 53,53 + Owner: Neutral + Actor3: sbag + Location: 54,53 + Owner: Germany + Actor4: sbag + Location: 53,56 + Owner: Germany + Actor5: sbag + Location: 54,56 + Owner: Germany + Actor6: sbag + Location: 53,57 + Owner: Germany + Actor7: sbag + Location: 54,57 + Owner: Germany + Actor8: sbag + Location: 81,68 + Owner: Germany + Actor9: sbag + Location: 83,68 + Owner: Germany + Actor10: sbag + Location: 87,68 + Owner: Germany + Actor11: sbag + Location: 89,68 + Owner: Germany + Actor12: sbag + Location: 81,69 + Owner: Germany + Actor13: sbag + Location: 82,69 + Owner: Germany + Actor14: sbag + Location: 83,69 + Owner: Germany + Actor15: sbag + Location: 87,69 + Owner: Germany + Actor16: sbag + Location: 88,69 + Owner: Germany + Actor17: sbag + Location: 89,69 + Owner: Germany + Actor18: v14 + Location: 87,84 + Owner: Neutral + Actor19: v15 + Location: 88,84 + Owner: Neutral + Actor20: v16 + Location: 86,85 + Owner: Neutral + Actor21: v17 + Location: 87,85 + Owner: Neutral + Actor22: v18 + Location: 88,85 + Owner: Neutral + Actor23: tc05 + Location: 75,63 + Owner: Neutral + Actor24: tc02 + Location: 82,58 + Owner: Neutral + Actor25: tc01 + Location: 85,57 + Owner: Neutral + Actor26: t07 + Location: 83,60 + Owner: Neutral + Actor27: tc04 + Location: 36,55 + Owner: Neutral + Actor28: tc05 + Location: 41,52 + Owner: Neutral + Actor29: t01 + Location: 73,62 + Owner: Neutral + Actor30: tc01 + Location: 64,63 + Owner: Neutral + Actor31: t06 + Location: 69,62 + Owner: Neutral + Actor32: t07 + Location: 67,63 + Owner: Neutral + Actor33: tc02 + Location: 73,57 + Owner: Neutral + Actor34: t07 + Location: 74,55 + Owner: Neutral + Actor35: tc05 + Location: 61,60 + Owner: Neutral + Actor36: tc01 + Location: 69,72 + Owner: Neutral + Actor37: tc05 + Location: 36,81 + Owner: Neutral + Actor38: tc02 + Location: 43,85 + Owner: Neutral + Actor39: tc01 + Location: 47,85 + Owner: Neutral + Actor40: tc01 + Location: 39,84 + Owner: Neutral + Actor41: tc04 + Location: 51,65 + Owner: Neutral + Actor42: tc05 + Location: 47,66 + Owner: Neutral + Actor43: tc02 + Location: 88,65 + Owner: Neutral + Actor44: tc04 + Location: 79,84 + Owner: Neutral + Actor45: tc04 + Location: 66,72 + Owner: Neutral + Actor46: weap + Location: 84,59 + Owner: Germany + Actor47: dome + Location: 72,55 + Owner: Germany + Actor50: fact + Location: 75,55 + Owner: Germany + Actor51: proc + Location: 80,59 + Owner: Germany + FreeActor: False + Actor52: powr + Location: 83,55 + Owner: Germany + Actor53: powr + Location: 85,55 + Owner: Germany + Actor54: brl3 + Location: 69,64 + Owner: Creeps + Actor55: brl3 + Location: 68,65 + Owner: Creeps + Actor57: barl + Location: 73,64 + Owner: Creeps + Actor58: barl + Location: 72,63 + Owner: Creeps + Actor59: barl + Location: 70,63 + Owner: Creeps + Actor61: brl3 + Location: 70,56 + Owner: Creeps + Actor62: brl3 + Location: 71,56 + Owner: Creeps + Actor63: brl3 + Location: 70,55 + Owner: Creeps + Actor64: barl + Location: 69,54 + Owner: Creeps + Actor65: brl3 + Location: 68,54 + Owner: Creeps + Actor66: barl + Location: 67,53 + Owner: Creeps + Actor68: v03 + Location: 81,85 + Owner: Creeps + Actor69: v06 + Location: 87,83 + Owner: Creeps + Actor70: fact + Location: 41,76 + Owner: USSR + Actor71: powr + Location: 46,80 + Owner: USSR + Actor72: powr + Location: 49,80 + Owner: USSR + Actor73: powr + Location: 43,80 + Owner: USSR + Actor75: afld + Location: 45,77 + Owner: USSR + Actor76: afld + Location: 49,77 + Owner: USSR + Actor78: brl3 + Location: 82,70 + Owner: Germany + Actor79: brl3 + Location: 83,70 + Owner: Germany + Actor80: brl3 + Location: 88,70 + Owner: Germany + Actor81: barl + Location: 87,70 + Owner: Germany + Actor82: barl + Location: 84,69 + Owner: Germany + Actor83: tent + Location: 70,57 + Owner: Germany + Actor84: barl + Location: 74,55 + Owner: Creeps + Actor85: powr + Location: 52,80 + Owner: USSR + Actor86: jeep + Location: 85,66 + Owner: Germany + Health: 55 + Facing: 128 + Actor89: jeep + Location: 55,56 + Owner: Germany + Health: 59 + Facing: 224 + Actor90: jeep + Location: 79,54 + Owner: Germany + Facing: 128 + Actor92: e1 + Location: 47,75 + Owner: USSR + Facing: 64 + SubCell: 4 + Actor93: e1 + Location: 48,75 + Owner: USSR + Facing: 64 + SubCell: 3 + Actor94: e1 + Location: 47,76 + Owner: USSR + Facing: 64 + SubCell: 2 + Actor95: e1 + Location: 48,76 + Owner: USSR + Facing: 64 + SubCell: 1 + Actor96: dog + Location: 49,73 + Owner: USSR + Facing: 64 + SubCell: 3 + Actor97: dog + Location: 49,76 + Owner: USSR + Facing: 64 + SubCell: 1 + Actor98: dog + Location: 49,75 + Owner: USSR + Facing: 64 + SubCell: 3 + Actor99: dog + Location: 49,74 + Owner: USSR + Facing: 64 + SubCell: 1 + Actor100: e3 + Location: 88,68 + Owner: Germany + Facing: 160 + SubCell: 3 + Actor103: e1 + Location: 79,64 + Owner: Germany + Facing: 96 + SubCell: 3 + Actor104: e1 + Location: 79,64 + Owner: Germany + Facing: 96 + SubCell: 4 + Actor105: e3 + Location: 78,57 + Owner: Germany + Facing: 160 + SubCell: 4 + Actor106: e2 + Location: 47,73 + Owner: USSR + Facing: 64 + SubCell: 4 + Actor107: e2 + Location: 47,74 + Owner: USSR + Facing: 64 + SubCell: 2 + Actor108: e2 + Location: 48,74 + Owner: USSR + Facing: 64 + SubCell: 1 + Actor109: e2 + Location: 48,73 + Owner: USSR + Facing: 64 + SubCell: 3 + Actor110: e1 + Location: 72,61 + Owner: Germany + Facing: 160 + SubCell: 0 + Actor111: e1 + Location: 40,54 + Owner: Germany + Facing: 96 + SubCell: 0 + Actor112: e1 + Location: 83,85 + Owner: Germany + Facing: 224 + SubCell: 3 + Actor113: e1 + Location: 82,68 + Owner: Germany + Facing: 96 + SubCell: 4 + Actor114: e1 + Location: 69,55 + Owner: Germany + Facing: 160 + SubCell: 0 + BarrelBase: brl3 + Location: 71,55 + Owner: Creeps + BarrelBridge: brl3 + Location: 72,65 + Owner: Creeps + BridgeCheck1: waypoint + Owner: Neutral + Location: 60,60 + BridgeCheck2: waypoint + Owner: Neutral + Location: 80,75 + CameraStart: Camera + Location: 60,77 + Owner: Neutral + CameraBridge: Camera + Location: 69,67 + Owner: Neutral + CameraBase1: Camera + Location: 70,56 + Owner: Neutral + CameraBase2: Camera + Location: 82,58 + Owner: Neutral + CameraBaseEntrance: Camera + Location: 85,67 + Owner: Neutral + Church1: v01 + Location: 67,73 + Owner: Creeps + Church2: v01 + Location: 86,81 + Owner: Creeps + ForwardCommand: fcom + Location: 45,73 + Owner: USSR + BridgeGun1: gun + Location: 68,64 + Owner: Germany + Health: 56 + Facing: 160 + BridgeGun2: gun + Location: 74,64 + Owner: Germany + Health: 53 + Facing: 160 + IntroSoldier1: e1 + Location: 71,65 + Owner: Germany + Facing: 160 + SubCell: 3 + IntroSoldier2: e1 + Location: 71,60 + Owner: Germany + Facing: 128 + SubCell: 3 + IntroSoldier3: e1 + Location: 70,60 + Owner: Germany + Facing: 128 + SubCell: 4 + ParachuteBase1: waypoint + Location: 66,54 + Owner: Neutral + ParachuteBase2: waypoint + Location: 66,56 + Owner: Neutral + ParachuteBaseEntrance: waypoint + Location: 85,68 + Owner: Neutral + TransportTruck: truk + Location: 75,58 + Owner: Germany + Facing: 192 + TransportWaypoint1: waypoint + Location: 75,58 + Owner: Neutral + TransportWaypoint2: waypoint + Location: 86,83 + Owner: Neutral + TransportWaypoint3: waypoint + Location: 67,75 + Owner: Neutral + +Smudges: + +Rules: + Player: + -ConquestVictoryConditions: + MissionObjectives: + EarlyGameOver: true + -EnemyWatcher: + World: + -CrateSpawner: + -SpawnMPUnits: + -MPStartLocations: + LuaScript: + Scripts: soviet02b.lua + ObjectivesPanel: + PanelName: MISSION_OBJECTIVES + ^Building: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Infantry: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Vehicle: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Plane: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Wall: + Tooltip: + ShowOwnerRow: false + ^Crate: + Tooltip: + ShowOwnerRow: false + ^Husk: + Tooltip: + GenericVisibility: Enemy, Ally, Neutral + GenericStancePrefix: false + ShowOwnerRow: false + SPEN: + Buildable: + Prerequisites: ~disabled + DOME: + Buildable: + Prerequisites: ~disabled + WEAP: + Buildable: + Prerequisites: ~disabled + FIX: + Buildable: + Prerequisites: ~disabled + APWR: + Buildable: + Prerequisites: ~disabled + STEK: + Buildable: + Prerequisites: ~disabled + BRIK: + Buildable: + Prerequisites: ~disabled + TSLA: + Buildable: + Prerequisites: ~disabled + SAM: + Buildable: + Prerequisites: ~disabled + IRON: + Buildable: + Prerequisites: ~disabled + MSLO: + Buildable: + Prerequisites: ~disabled + E3: + Buildable: + Prerequisites: ~disabled + E4: + Buildable: + Prerequisites: ~disabled + E6: + Buildable: + Prerequisites: ~disabled + SHOK: + Buildable: + Prerequisites: ~disabled + SNIPER: + Buildable: + Prerequisites: ~disabled + HIJACKER: + Buildable: + Prerequisites: ~disabled + MIG: + Buildable: + Prerequisites: ~disabled + GUN: + -RepairableBuilding: + FCOM: + RepairableBuilding: + Tooltip: + ShowOwnerRow: false + AFLD: + Buildable: + Prerequisites: ~disabled + AirstrikePower@spyplane: + Prerequisites: ~disabled + ParatroopersPower@paratroopers: + Prerequisites: ~disabled + DOG: + Health: + HP: 25 + AutoTarget: + ScanRadius: 5 + HARV: + Harvester: + SearchFromProcRadius: 50 + SearchFromOrderRadius: 50 + BARL: + Health: + HP: 1 + Explodes: + Weapon: MissionBarrelExplode + BRL3: + Health: + HP: 1 + Explodes: + Weapon: MissionBarrelExplode + MONEYCRATE: + GiveCashCrateAction: + Amount: 2000 + powerproxy.paratroopers: + ParatroopersPower: + DropItems: E1,E1,E2,E2,E2 + powerproxy.paratroopers2: + Inherits: powerproxy.paratroopers + ParatroopersPower: + DropItems: E2,E2,E2,E2,E2 + powerproxy.paratroopers3: + Inherits: powerproxy.paratroopers + ParatroopersPower: + DropItems: E1,E1,E1,E1,E1 + +Sequences: + +VoxelSequences: + +Weapons: + MissionBarrelExplode: + Warhead@1Dam: SpreadDamage + Spread: 600 + Damage: 100 + Falloff: 1000, 368, 135, 50, 18, 7, 0 + Delay: 5 + Versus: + None: 120 + Wood: 200 + Light: 50 + Heavy: 25 + Concrete: 10 + DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath + Warhead@2Smu: LeaveSmudge + SmudgeType: Scorch + Size: 2,1 + Delay: 5 + Warhead@3Eff: CreateEffect + Explosion: napalm + ImpactSound: firebl3.aud + Delay: 5 + +Voices: + +Notifications: + +Translations: diff --git a/mods/ra/maps/soviet-02b/soviet02b.lua b/mods/ra/maps/soviet-02b/soviet02b.lua new file mode 100644 index 0000000000..ef93fa84ba --- /dev/null +++ b/mods/ra/maps/soviet-02b/soviet02b.lua @@ -0,0 +1,174 @@ +IntroAttackers = { IntroSoldier1, IntroSoldier2, IntroSoldier3 } + +BridgeShroudTrigger = { CPos.New(63, 71), CPos.New(64, 71), CPos.New(65, 71), CPos.New(69, 65), CPos.New(70, 65), CPos.New(71, 65) } +BridgeExplosionTrigger = { CPos.New(66, 69), CPos.New(67, 69), CPos.New(68, 69) } +TransportTrigger = { CPos.New(75, 58) } +EnemyBaseShroudTrigger = { CPos.New(64, 52), CPos.New(64, 53), CPos.New(64, 54), CPos.New(64, 55), CPos.New(64, 56), CPos.New(64, 57), CPos.New(64, 58), CPos.New(64, 59), CPos.New(64, 60), CPos.New(64, 61), CPos.New(64, 62), CPos.New(64, 63), CPos.New(64, 64) } +ParachuteTrigger = { CPos.New(80, 66), CPos.New(81, 66), CPos.New(82, 66), CPos.New(83, 66), CPos.New(84, 66), CPos.New(85, 66),CPos.New(86, 66), CPos.New(87, 66), CPos.New(88, 66), CPos.New(89, 66) } +EnemyBaseEntranceShroudTrigger = { CPos.New(80, 73), CPos.New(81, 73), CPos.New(82, 73), CPos.New(83, 73), CPos.New(84, 73), CPos.New(85, 73),CPos.New(86, 73), CPos.New(87, 73), CPos.New(88, 73), CPos.New(89, 73) } + +SendUSSRParadrops = function() + paraproxy1 = Actor.Create("powerproxy.paratroopers", false, { Owner = player }) + paraproxy1.SendParatroopers(ParachuteBaseEntrance.CenterPosition, false, Facing.North) + paraproxy1.Destroy() +end + +SendUSSRParadropsBase = function() + paraproxy2 = Actor.Create("powerproxy.paratroopers2", false, { Owner = player }) + paraproxy2.SendParatroopers(ParachuteBase1.CenterPosition, false, Facing.East) + paraproxy2.Destroy() + paraproxy3 = Actor.Create("powerproxy.paratroopers3", false, { Owner = player }) + paraproxy3.SendParatroopers(ParachuteBase2.CenterPosition, false, Facing.East) + paraproxy3.Destroy() +end + +Trigger.OnEnteredFootprint(BridgeShroudTrigger, function(a, id) + if not bridgeShroudTrigger and a.Owner == player then + bridgeShroudTrigger = true + local cameraBridge = Actor.Create("camera", true, { Owner = player, Location = CameraBridge.Location }) + Trigger.AfterDelay(DateTime.Seconds(15), function() + cameraBridge.Kill() + end) + end +end) + +Trigger.OnEnteredFootprint(BridgeExplosionTrigger, function(a, id) + if not bridgeExplosionTrigger and a.Owner == player then + bridgeExplosionTrigger = true + if not BarrelBridge.IsDead then + BarrelBridge.Kill() + end + end +end) + +Trigger.OnEnteredFootprint(EnemyBaseEntranceShroudTrigger, function(a, id) + if not enemyBaseEntranceShroudTrigger and a.Owner == player then + enemyBaseEntranceShroudTrigger = true + local cameraBaseEntrance = Actor.Create("camera", true, { Owner = player, Location = CameraBaseEntrance.Location }) + Trigger.AfterDelay(DateTime.Seconds(15), function() + cameraBaseEntrance.Kill() + end) + end +end) + +Trigger.OnEnteredFootprint(EnemyBaseShroudTrigger, function(a, id) + if not enemyBaseShroudTrigger and a.Owner == player then + enemyBaseShroudTrigger = true + local cameraBase1 = Actor.Create("camera", true, { Owner = player, Location = CameraBase1.Location }) + local cameraBase2 = Actor.Create("camera", true, { Owner = player, Location = CameraBase2.Location }) + Trigger.AfterDelay(DateTime.Seconds(15), function() + cameraBase1.Kill() + cameraBase2.Kill() + end) + end +end) + +Trigger.OnEnteredFootprint(ParachuteTrigger, function(a, id) + if not parachuteTrigger and a.Owner == player then + parachuteTrigger = true + SendUSSRParadrops() + Media.PlaySpeechNotification(player, "ReinforcementsArrived") + end +end) + +Trigger.OnEnteredFootprint(TransportTrigger, function(a, id) + if not transportTrigger and a.Type == "truk" then + transportTrigger = true + if not TransportTruck.IsDead then + TransportTruck.Wait(DateTime.Seconds(5)) + TransportTruck.Move(TransportWaypoint2.Location) + TransportTruck.Wait(DateTime.Seconds(5)) + TransportTruck.Move(TransportWaypoint3.Location) + TransportTruck.Wait(DateTime.Seconds(5)) + TransportTruck.Move(TransportWaypoint1.Location) + end + Trigger.AfterDelay(DateTime.Seconds(10), function() + transportTrigger = false + end) + end +end) + +Trigger.OnKilled(BarrelBase, function() + SendUSSRParadropsBase() + Media.PlaySpeechNotification(player, "ReinforcementsArrived") +end) + +Trigger.OnKilled(BarrelBridge, function() + local bridgepart = Map.ActorsInBox(BridgeCheck1.CenterPosition, BridgeCheck2.CenterPosition, function(self) return self.Type == "br1" end)[1] + if not bridgepart.IsDead then + bridgepart.Kill() + end +end) + +Trigger.OnKilled(Church1, function() + Actor.Create("moneycrate", true, { Owner = player, Location = TransportWaypoint3.Location }) +end) + +Trigger.OnKilled(Church2, function() + Actor.Create("healcrate", true, { Owner = player, Location = Church2.Location }) +end) + +Trigger.OnKilled(ForwardCommand, function() + enemy.MarkCompletedObjective(alliedObjective) +end) + +Trigger.OnKilled(IntroSoldier1, function() + local cameraIntro = Actor.Create("camera", true, { Owner = player, Location = CameraStart.Location }) + Trigger.AfterDelay(DateTime.Seconds(15), function() + cameraIntro.Kill() + end) +end) + +WorldLoaded = function() + player = Player.GetPlayer("USSR") + enemy = Player.GetPlayer("Germany") + Utils.Do(IntroAttackers, function(actor) + if not actor.IsDead then + Trigger.OnIdle(actor, actor.Hunt) + end + end) + Trigger.AfterDelay(0, function() + local buildings = Map.ActorsInBox(Map.TopLeft, Map.BottomRight, function(self) return self.Owner == enemy and self.HasProperty("StartBuildingRepairs") end) + Utils.Do(buildings, function(actor) + Trigger.OnDamaged(actor, function(building, attacker) + if building.Owner == enemy and building.Health < building.MaxHealth * 0.8 then + building.StartBuildingRepairs() + end + end) + end) + end) + Trigger.OnObjectiveAdded(player, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " 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, "Win") + end) + Trigger.OnPlayerLost(player, function() + Media.PlaySpeechNotification(player, "Lose") + end) + alliedObjective = enemy.AddPrimaryObjective("Destroy all Soviet troops.") + sovietObjective1 = player.AddPrimaryObjective("Protect the Command Center.") + sovietObjective2 = player.AddPrimaryObjective("Destroy all Allied units and structures.") +end + +Tick = function() + if player.HasNoRequiredUnits() then + enemy.MarkCompletedObjective(alliedObjective) + end + + if enemy.HasNoRequiredUnits() then + player.MarkCompletedObjective(sovietObjective1) + player.MarkCompletedObjective(sovietObjective2) + end + + if enemy.Resources >= enemy.ResourceCapacity * 0.75 then + enemy.Cash = enemy.Cash + enemy.Resources - enemy.ResourceCapacity * 0.25 + enemy.Resources = enemy.ResourceCapacity * 0.25 + end +end diff --git a/mods/ra/missions.yaml b/mods/ra/missions.yaml index 7d69163f97..63aeea6c27 100644 --- a/mods/ra/missions.yaml +++ b/mods/ra/missions.yaml @@ -7,6 +7,7 @@ Allied Campaign: Soviet Campaign: ./mods/ra/maps/soviet-01 ./mods/ra/maps/soviet-02a + ./mods/ra/maps/soviet-02b ./mods/ra/maps/soviet-03 ./mods/ra/maps/soviet-04a ./mods/ra/maps/soviet-04b