From 628e75d4848a879fb1b6024afc05179ca8c902eb Mon Sep 17 00:00:00 2001 From: Biofreak1987 Date: Sat, 3 Oct 2015 13:29:16 +0200 Subject: [PATCH] Add Soviet03 --- OpenRA.sln | 1 + mods/ra/maps/soviet-03/map.bin | Bin 0 -> 81937 bytes mods/ra/maps/soviet-03/map.png | Bin 0 -> 28849 bytes mods/ra/maps/soviet-03/map.yaml | 1304 +++++++++++++++++++++++++++ mods/ra/maps/soviet-03/soviet03.lua | 387 ++++++++ mods/ra/missions.yaml | 1 + 6 files changed, 1693 insertions(+) create mode 100644 mods/ra/maps/soviet-03/map.bin create mode 100644 mods/ra/maps/soviet-03/map.png create mode 100644 mods/ra/maps/soviet-03/map.yaml create mode 100644 mods/ra/maps/soviet-03/soviet03.lua diff --git a/OpenRA.sln b/OpenRA.sln index 5ebc8ed7ec..45a00f100d 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\AI.lua = mods\ra\maps\allies-05a\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-03\soviet03.lua = mods\ra\maps\soviet-03\soviet03.lua mods\ra\maps\soviet-07\soviet07.lua = mods\ra\maps\soviet-07\soviet07.lua mods\ra\maps\survival01\survival01.lua = mods\ra\maps\survival01\survival01.lua mods\ra\maps\survival02\survival02.lua = mods\ra\maps\survival02\survival02.lua diff --git a/mods/ra/maps/soviet-03/map.bin b/mods/ra/maps/soviet-03/map.bin new file mode 100644 index 0000000000000000000000000000000000000000..df791e30befaa06eb0a5521a901c0a05fc565f01 GIT binary patch literal 81937 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 PAQQ+0GJ#AW6VU$wH=4=; literal 0 HcmV?d00001 diff --git a/mods/ra/maps/soviet-03/map.png b/mods/ra/maps/soviet-03/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-03/map.yaml b/mods/ra/maps/soviet-03/map.yaml new file mode 100644 index 0000000000..e1b117a684 --- /dev/null +++ b/mods/ra/maps/soviet-03/map.yaml @@ -0,0 +1,1304 @@ +MapFormat: 7 + +RequiresMod: ra + +Title: Soviet 03: Covert cleanup + +Description: A spy who has compromised the security of one of the northern sarin gas sites has been traced back to Lund, Sweden, by Nadia's intelligence groups.\n\nHe has been marked for death and a squad of Soviet troops was dispatched to the location to hunt him down. + +Author: Westwood Studios + +Tileset: SNOW + +MapSize: 128,128 + +Bounds: 24,22,70,49 + +Visibility: MissionSelector + +Type: Campaign + +Videos: + Briefing: soviet3.vqa + GameStart: search.vqa + GameWon: execute.vqa + GameLost: take_off.vqa + +Options: + Crates: False + Fog: True + Shroud: True + AllyBuildRadius: False + FragileAlliances: False + StartingCash: 0 + ConfigurableStartingUnits: False + Difficulties: Easy, Normal, Hard + ShortGame: False + +Players: + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Faction: allies + PlayerReference@Creeps: + Name: Creeps + NonCombatant: True + PlayerReference@England: + Name: England + Faction: allies + ColorRamp: 161,134,236 + Allies: Germany, Soviet + Enemies: USSR + PlayerReference@Soviet: + Name: Soviet + Faction: soviet + ColorRamp: 3,255,127 + Allies: England, Germany, USSR + PlayerReference@Germany: + Name: Germany + Faction: allies + ColorRamp: 161,134,236 + Allies: England, Soviet + 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, England, Creeps + +Actors: + Actor0: wood + Location: 86,36 + Owner: Neutral + Actor1: wood + Location: 88,36 + Owner: Neutral + Actor2: wood + Location: 89,36 + Owner: Neutral + Actor3: wood + Location: 90,36 + Owner: Neutral + Actor4: v16 + Location: 85,37 + Owner: Neutral + Actor5: v17 + Location: 86,37 + Owner: Neutral + Actor6: v14 + Location: 87,37 + Owner: Neutral + Actor7: wood + Location: 90,37 + Owner: Neutral + Actor8: wood + Location: 91,37 + Owner: Neutral + Actor9: wood + Location: 92,37 + Owner: Neutral + Actor10: wood + Location: 93,37 + Owner: Neutral + Actor11: wood + Location: 93,38 + Owner: Neutral + Actor12: wood + Location: 93,39 + Owner: Neutral + Actor13: wood + Location: 90,40 + Owner: Neutral + Actor14: wood + Location: 91,40 + Owner: Neutral + Actor15: wood + Location: 92,40 + Owner: Neutral + Actor16: wood + Location: 93,40 + Owner: Neutral + Actor17: sbag + Location: 60,50 + Owner: Neutral + Actor18: sbag + Location: 61,50 + Owner: Neutral + Actor19: sbag + Location: 62,50 + Owner: Neutral + Actor20: sbag + Location: 63,50 + Owner: Neutral + Actor21: sbag + Location: 67,50 + Owner: Neutral + Actor22: sbag + Location: 68,50 + Owner: Neutral + Actor23: wood + Location: 34,61 + Owner: Neutral + Actor24: wood + Location: 36,61 + Owner: Neutral + Actor25: wood + Location: 37,61 + Owner: Neutral + Actor26: wood + Location: 38,61 + Owner: Neutral + Actor27: wood + Location: 39,61 + Owner: Neutral + Actor28: wood + Location: 39,62 + Owner: Neutral + Actor29: wood + Location: 39,63 + Owner: Neutral + Actor30: wood + Location: 39,64 + Owner: Neutral + Actor31: t14 + Location: 60,55 + Owner: Neutral + Actor32: tc02 + Location: 18,51 + Owner: Neutral + Actor33: tc01 + Location: 7,67 + Owner: Neutral + Actor34: tc03 + Location: 7,61 + Owner: Neutral + Actor35: t15 + Location: 19,47 + Owner: Neutral + Actor36: tc04 + Location: 60,31 + Owner: Neutral + Actor37: t15 + Location: 64,32 + Owner: Neutral + Actor38: t03 + Location: 69,68 + Owner: Neutral + Actor39: tc03 + Location: 63,29 + Owner: Neutral + Actor40: t10 + Location: 14,46 + Owner: Neutral + Actor41: tc03 + Location: 11,48 + Owner: Neutral + Actor42: t01 + Location: 11,45 + Owner: Neutral + Actor43: tc04 + Location: 45,42 + Owner: Neutral + Actor44: t11 + Location: 46,39 + Owner: Neutral + Actor45: t07 + Location: 63,39 + Owner: Neutral + Actor46: t07 + Location: 14,61 + Owner: Neutral + Actor47: t12 + Location: 18,56 + Owner: Neutral + Actor48: tc02 + Location: 70,35 + Owner: Neutral + Actor49: tc01 + Location: 84,43 + Owner: Neutral + Actor50: t10 + Location: 83,37 + Owner: Neutral + Actor51: t02 + Location: 81,37 + Owner: Neutral + Actor52: t08 + Location: 90,35 + Owner: Neutral + Actor53: t12 + Location: 50,41 + Owner: Neutral + Actor54: t01 + Location: 50,64 + Owner: Neutral + Actor55: t13 + Location: 45,45 + Owner: Neutral + Actor56: tc03 + Location: 42,34 + Owner: Neutral + Actor57: tc02 + Location: 44,34 + Owner: Neutral + Actor58: tc05 + Location: 21,55 + Owner: Neutral + Actor59: tc04 + Location: 20,43 + Owner: Neutral + Actor60: tc05 + Location: 17,43 + Owner: Neutral + Actor61: t12 + Location: 18,45 + Owner: Neutral + Actor62: t14 + Location: 21,44 + Owner: Neutral + Actor63: tc05 + Location: 5,38 + Owner: Neutral + Actor64: tc02 + Location: 7,36 + Owner: Neutral + Actor65: tc01 + Location: 5,37 + Owner: Neutral + Actor66: t16 + Location: 5,39 + Owner: Neutral + Actor67: tc03 + Location: 64,37 + Owner: Neutral + Actor68: t02 + Location: 68,53 + Owner: Neutral + Actor69: t03 + Location: 17,69 + Owner: Neutral + Actor70: tc04 + Location: 50,48 + Owner: Neutral + Actor71: tc03 + Location: 48,43 + Owner: Neutral + Actor72: tc04 + Location: 28,38 + Owner: Neutral + Actor73: tc02 + Location: 25,38 + Owner: Neutral + Actor74: tc02 + Location: 80,58 + Owner: Neutral + Actor75: tc01 + Location: 79,66 + Owner: Neutral + Actor76: t17 + Location: 73,65 + Owner: Neutral + Actor77: t15 + Location: 77,65 + Owner: Neutral + Actor78: t10 + Location: 85,62 + Owner: Neutral + Actor79: t14 + Location: 83,58 + Owner: Neutral + Actor80: tc02 + Location: 12,52 + Owner: Neutral + Actor81: t16 + Location: 17,59 + Owner: Neutral + Actor82: tc03 + Location: 5,65 + Owner: Neutral + Actor83: tc02 + Location: 7,52 + Owner: Neutral + Actor84: tc02 + Location: 27,31 + Owner: Neutral + Actor85: tc01 + Location: 21,35 + Owner: Neutral + Actor86: tc03 + Location: 21,34 + Owner: Neutral + Actor87: t14 + Location: 21,39 + Owner: Neutral + Actor88: tc05 + Location: 67,22 + Owner: Neutral + Actor89: t17 + Location: 85,32 + Owner: Neutral + Actor90: tc01 + Location: 18,29 + Owner: Neutral + Actor91: t02 + Location: 39,30 + Owner: Neutral + Actor92: t08 + Location: 38,32 + Owner: Neutral + Actor93: tc03 + Location: 81,61 + Owner: Neutral + Actor94: t12 + Location: 80,62 + Owner: Neutral + Actor95: tc04 + Location: 85,23 + Owner: Neutral + Actor96: tc01 + Location: 81,28 + Owner: Neutral + Actor97: t16 + Location: 89,30 + Owner: Neutral + Actor98: t08 + Location: 71,27 + Owner: Neutral + Actor99: tc01 + Location: 42,62 + Owner: Neutral + Actor100: tc03 + Location: 72,56 + Owner: Neutral + Actor101: t15 + Location: 71,49 + Owner: Neutral + Actor102: t13 + Location: 79,51 + Owner: Neutral + Actor103: tc01 + Location: 33,68 + Owner: Neutral + Actor104: tc05 + Location: 43,68 + Owner: Neutral + Actor105: tc02 + Location: 54,68 + Owner: Neutral + Actor106: t08 + Location: 52,63 + Owner: Neutral + Actor107: t08 + Location: 51,65 + Owner: Neutral + Actor108: t08 + Location: 55,62 + Owner: Neutral + Actor109: t06 + Location: 58,64 + Owner: Neutral + Actor110: t15 + Location: 35,61 + Owner: Neutral + Actor111: t08 + Location: 43,30 + Owner: Neutral + Actor112: tc02 + Location: 50,63 + Owner: Neutral + Actor113: tc03 + Location: 80,47 + Owner: Neutral + Actor117: v03 + Location: 42,66 + Owner: Germany + Actor118: v04 + Location: 45,62 + Owner: Germany + Health: 47 + Actor120: v07 + Location: 42,37 + Owner: Germany + Health: 99 + Actor122: brl3 + Location: 43,38 + Owner: Creeps + Actor123: barl + Location: 44,37 + Owner: Creeps + Actor126: barl + Location: 44,38 + Owner: Creeps + Actor131: barl + Location: 80,31 + Owner: Creeps + Actor132: brl3 + Location: 83,30 + Owner: Creeps + Actor133: brl3 + Location: 74,31 + Owner: Creeps + Actor134: barl + Location: 73,31 + Owner: Creeps + Actor136: v06 + Location: 90,39 + Owner: Germany + Actor138: barl + Location: 81,49 + Owner: Creeps + Actor139: brl3 + Location: 78,49 + Owner: Creeps + Actor140: barl + Location: 79,49 + Owner: Creeps + Actor141: barl + Location: 76,49 + Owner: Creeps + Actor143: v04 + Location: 81,53 + Owner: Germany + Health: 39 + Actor145: v02 + Location: 62,38 + Owner: Germany + Actor146: v04 + Location: 56,39 + Owner: Germany + Health: 41 + Actor148: v08 + Location: 62,41 + Owner: Germany + Actor150: brl3 + Location: 58,43 + Owner: Creeps + Actor151: barl + Location: 59,42 + Owner: Creeps + Actor153: barl + Location: 61,42 + Owner: Creeps + Actor154: brl3 + Location: 62,42 + Owner: Creeps + Actor155: barl + Location: 57,42 + Owner: Creeps + Actor156: barl + Location: 57,43 + Owner: Creeps + Actor157: barl + Location: 55,44 + Owner: Creeps + Actor158: brl3 + Location: 55,45 + Owner: Creeps + Actor159: brl3 + Location: 42,39 + Owner: Creeps + Actor160: brl3 + Location: 45,38 + Owner: Creeps + Actor161: barl + Location: 46,38 + Owner: Creeps + Actor162: brl3 + Location: 55,46 + Owner: Creeps + Actor163: barl + Location: 63,41 + Owner: Creeps + Actor164: brl3 + Location: 76,48 + Owner: Creeps + Actor165: barl + Location: 77,48 + Owner: Creeps + Actor166: barl + Location: 73,30 + Owner: Creeps + Actor167: barl + Location: 83,31 + Owner: Creeps + Actor168: brl3 + Location: 80,49 + Owner: Creeps + Actor169: v13 + Location: 63,36 + Owner: Germany + Actor171: brl3 + Location: 81,31 + Owner: Creeps + Actor172: e1 + Location: 16,31 + Owner: Germany + Facing: 128 + SubCell: 4 + Actor173: e1 + Location: 16,31 + Owner: Germany + Facing: 192 + SubCell: 0 + Actor174: e1 + Location: 17,33 + Owner: Germany + Facing: 160 + SubCell: 1 + Actor175: e1 + Location: 17,33 + Owner: Germany + Facing: 128 + SubCell: 4 + Actor176: e3 + Location: 17,33 + Owner: Germany + Facing: 128 + SubCell: 2 + Actor177: e3 + Location: 17,31 + Owner: Germany + SubCell: 1 + Actor183: e1 + Location: 77,61 + Owner: Germany + SubCell: 2 + Actor184: e1 + Location: 64,41 + Owner: Germany + Facing: 64 + SubCell: 3 + Actor185: e1 + Location: 64,42 + Owner: Germany + Facing: 96 + SubCell: 0 + Actor186: e1 + Location: 63,42 + Owner: Germany + Facing: 128 + SubCell: 0 + Actor187: e1 + Location: 59,45 + Owner: Germany + Facing: 32 + SubCell: 2 + Actor188: e1 + Location: 56,44 + Owner: Germany + Facing: 32 + SubCell: 4 + Actor191: e1 + Location: 56,45 + Owner: Germany + Facing: 64 + SubCell: 4 + Actor192: e1 + Location: 57,44 + Owner: Germany + Facing: 64 + SubCell: 2 + Actor193: e1 + Location: 60,44 + Owner: Germany + Facing: 32 + SubCell: 1 + Actor194: e1 + Location: 56,46 + Owner: Germany + Facing: 64 + SubCell: 4 + Actor195: e1 + Location: 53,37 + Owner: Germany + Facing: 96 + SubCell: 2 + Actor196: e1 + Location: 52,38 + Owner: Germany + Facing: 96 + SubCell: 3 + Actor197: e1 + Location: 52,37 + Owner: Germany + Facing: 96 + SubCell: 4 + Actor264: fenc + Owner: Soviet + Location: 89,32 + Actor265: fenc + Owner: Soviet + Location: 88,32 + Actor266: fenc + Owner: Soviet + Location: 87,32 + Actor267: fenc + Owner: Soviet + Location: 86,32 + Actor268: fenc + Owner: Soviet + Location: 85,32 + Actor269: fenc + Owner: Soviet + Location: 84,32 + Actor270: fenc + Owner: Soviet + Location: 83,32 + Actor271: fenc + Owner: Soviet + Location: 82,32 + Actor272: fenc + Owner: Soviet + Location: 81,32 + Actor273: fenc + Owner: Soviet + Location: 80,32 + Actor274: fenc + Owner: Soviet + Location: 70,22 + Actor275: fenc + Owner: Soviet + Location: 70,23 + Actor276: fenc + Owner: Soviet + Location: 70,24 + Actor277: fenc + Owner: Soviet + Location: 70,25 + Actor278: fenc + Owner: Soviet + Location: 70,26 + Actor279: fenc + Owner: Soviet + Location: 70,27 + Actor280: fenc + Owner: Soviet + Location: 70,28 + Actor281: fenc + Owner: Soviet + Location: 70,29 + Actor282: fenc + Owner: Soviet + Location: 70,30 + Actor283: fenc + Owner: Soviet + Location: 70,31 + Actor284: fenc + Owner: Soviet + Location: 70,32 + Actor285: fenc + Owner: Soviet + Location: 71,32 + Actor286: fenc + Owner: Soviet + Location: 72,32 + Actor287: fenc + Owner: Soviet + Location: 73,32 + Actor288: fenc + Owner: Soviet + Location: 74,32 + Actor289: fenc + Owner: Neutral + Location: 72,43 + Actor290: fenc + Owner: Neutral + Location: 73,43 + Actor291: fenc + Owner: Neutral + Location: 74,43 + Actor292: fenc + Owner: Neutral + Location: 75,43 + Actor293: fenc + Owner: Neutral + Location: 75,42 + Actor294: fenc + Owner: Neutral + Location: 75,44 + Actor295: fenc + Owner: Neutral + Location: 77,44 + Actor296: fenc + Owner: Neutral + Location: 77,43 + Actor297: fenc + Owner: Neutral + Location: 77,42 + Actor298: fenc + Owner: Neutral + Location: 78,43 + Actor299: fenc + Owner: Neutral + Location: 79,43 + Actor300: fenc + Owner: Neutral + Location: 80,43 + Actor301: fenc + Owner: Neutral + Location: 76,46 + Actor302: fenc + Owner: Neutral + Location: 75,46 + Actor303: fenc + Owner: Neutral + Location: 74,46 + Actor304: fenc + Owner: Neutral + Location: 77,46 + Actor305: fenc + Owner: Neutral + Location: 78,46 + Actor306: fenc + Owner: Neutral + Location: 76,58 + Actor307: fenc + Owner: Neutral + Location: 76,59 + Actor308: fenc + Owner: Neutral + Location: 76,60 + Actor309: fenc + Owner: Neutral + Location: 75,60 + Actor310: fenc + Owner: Neutral + Location: 78,60 + Actor311: fenc + Owner: Neutral + Location: 79,60 + Actor312: fenc + Owner: Neutral + Location: 78,59 + Actor313: fenc + Owner: Neutral + Location: 78,58 + Actor314: fenc + Owner: Neutral + Location: 65,41 + Actor315: fenc + Owner: Neutral + Location: 65,42 + Actor316: fenc + Owner: Neutral + Location: 65,43 + Actor317: fenc + Owner: Neutral + Location: 64,43 + Actor318: fenc + Owner: Neutral + Location: 63,43 + Actor319: fenc + Owner: Neutral + Location: 62,43 + Actor320: fenc + Owner: Neutral + Location: 61,43 + Actor321: fenc + Owner: Neutral + Location: 60,43 + Actor322: fenc + Owner: Neutral + Location: 59,43 + Actor323: fenc + Owner: Neutral + Location: 59,44 + Actor324: fenc + Owner: Neutral + Location: 58,44 + Actor325: fenc + Owner: Neutral + Location: 58,45 + Actor326: fenc + Owner: Neutral + Location: 63,45 + Actor327: fenc + Owner: Neutral + Location: 62,45 + Actor328: fenc + Owner: Neutral + Location: 61,45 + Actor329: fenc + Owner: Neutral + Location: 61,46 + Actor330: fenc + Owner: Neutral + Location: 60,46 + Actor331: fenc + Owner: Neutral + Location: 59,46 + Actor332: fenc + Owner: Neutral + Location: 59,47 + Actor333: fenc + Owner: Neutral + Location: 58,47 + Actor334: fenc + Owner: Neutral + Location: 57,47 + Actor335: fenc + Owner: Neutral + Location: 56,47 + Actor336: fenc + Owner: Neutral + Location: 56,46 + Actor337: fenc + Owner: Neutral + Location: 56,45 + Actor338: fenc + Owner: Neutral + Location: 56,44 + Actor339: fenc + Owner: Neutral + Location: 56,43 + Actor340: fenc + Owner: Neutral + Location: 55,43 + Actor341: fenc + Owner: Neutral + Location: 58,40 + Actor342: fenc + Owner: Neutral + Location: 58,41 + Actor343: fenc + Owner: Neutral + Location: 57,41 + Actor344: fenc + Owner: Neutral + Location: 56,41 + Actor345: fenc + Owner: Neutral + Location: 55,41 + Actor346: fenc + Owner: Neutral + Location: 58,42 + Actor347: fenc + Owner: Neutral + Location: 61,41 + Actor348: fenc + Owner: Neutral + Location: 60,41 + Actor349: fenc + Owner: Neutral + Location: 60,40 + waypoint8: waypoint + Location: 79,28 + Owner: Neutral + waypoint12: waypoint + Location: 58,49 + Owner: Neutral + waypoint26: waypoint + Location: 59,62 + Owner: Neutral + waypoint37: waypoint + Location: 72,31 + Owner: Neutral + waypoint38: waypoint + Location: 82,31 + Owner: Neutral + waypoint41: waypoint + Location: 35,37 + Owner: Neutral + waypoint43: waypoint + Location: 73,43 + Owner: Neutral + waypoint56: waypoint + Location: 40,70 + Owner: Neutral + waypoint57: waypoint + Location: 39,73 + Owner: Neutral + waypoint60: waypoint + Location: 58,22 + Owner: Neutral + waypoint61: waypoint + Location: 58,20 + Owner: Neutral + waypoint79: waypoint + Location: 93,65 + Owner: Neutral + waypoint83: waypoint + Location: 37,67 + Owner: Neutral + waypoint85: waypoint + Location: 34,65 + Owner: Neutral + waypoint90: waypoint + Location: 76,29 + Owner: Neutral + waypoint95: waypoint + Location: 77,60 + Owner: Neutral + waypoint99: waypoint + Location: 58,59 + Owner: Neutral + BarrierSoldier1: e1 + Location: 63,49 + Owner: Germany + Facing: 160 + SubCell: 4 + BarrierSoldier2: e1 + Location: 64,50 + Owner: Germany + Facing: 128 + SubCell: 0 + BarrierSoldier3: e1 + Location: 64,49 + Owner: Germany + Facing: 96 + SubCell: 4 + BarrierSoldier4: e1 + Location: 66,50 + Owner: Germany + Facing: 96 + SubCell: 4 + BarrierSoldier5: e1 + Location: 65,49 + Owner: Germany + Facing: 160 + SubCell: 3 + BarrierSoldier6: e1 + Location: 66,49 + Owner: Germany + Facing: 128 + SubCell: 3 + BaseBarrel1: barl + Location: 72,31 + Owner: Creeps + BaseBarrel2: brl3 + Location: 82,31 + Owner: Creeps + BaseBuilding1: ftur + Location: 75,32 + Owner: Soviet + BaseBuilding2: ftur + Location: 79,32 + Owner: Soviet + BaseBuilding3: apwr + Location: 71,22 + Owner: Soviet + BaseBuilding4: apwr + Location: 86,26 + Owner: Soviet + BaseBuilding5: barl + Location: 74,24 + Owner: Creeps + BaseBuilding6: miss + Location: 78,27 + Owner: Soviet + Health: 56 + CameraBarrier: waypoint + Location: 64,51 + Owner: Neutral + CameraFinalArea: waypoint + Location: 38,36 + Owner: Neutral + CameraSpyHideout31: waypoint + Location: 63,40 + Owner: Neutral + CameraSpyHideout32: waypoint + Location: 58,45 + Owner: Neutral + CameraSpyHideout33: waypoint + Location: 58,37 + Owner: Neutral + CameraSpyVillage: waypoint + Location: 58,63 + Owner: Neutral + CameraVillage: waypoint + Location: 40,63 + Owner: Neutral + CameraWater1: camera + Owner: Neutral + Location: 38,48 + CameraWater2: camera + Owner: Neutral + Location: 29,48 + CameraWater3: camera + Owner: Neutral + Location: 29,55 + CameraWater4: camera + Owner: Neutral + Location: 29,63 + CameraWater5: camera + Owner: Neutral + Location: 38,55 + CameraWater6: camera + Owner: Neutral + Location: 50,55 + EnemyReinforcements1: waypoint + Location: 45,63 + Owner: Neutral + EnemyReinforcements2: waypoint + Location: 42,66 + Owner: Neutral + EnemyReinforcements1Goal: waypoint + Location: 44,63 + Owner: Neutral + EnemyReinforcements2Goal: waypoint + Location: 41,65 + Owner: Neutral + FarmArea: waypoint + Location: 89,39 + Owner: Neutral + Farmer1: c7 + Location: 88,39 + Owner: Germany + SubCell: 4 + Farmer2: c6 + Location: 90,38 + Owner: Germany + SubCell: 3 + Farmer3: e3 + Location: 89,37 + Owner: Germany + Facing: 160 + SubCell: 2 + FarmSpawn: waypoint + Location: 90,39 + Owner: Neutral + HelicopterEscape: waypoint + Location: 20,33 + Owner: Neutral + HelicopterGoal: waypoint + Location: 31,33 + Owner: Neutral + HelicopterSpawn: waypoint + Location: 24,33 + Owner: Neutral + Hideout1Barrel: brl3 + Location: 77,49 + Owner: Creeps + Hideout1PBox: pbox + Location: 76,47 + Owner: Germany + Hideout3Barrel: brl3 + Location: 60,42 + Owner: Creeps + IntroCamera: waypoint + Location: 76,40 + Owner: Neutral + Playerbase: waypoint + Location: 77,25 + Owner: Neutral + RedBuilding1: v05 + Location: 37,67 + Owner: Germany + Health: 39 + RedBuilding2: v05 + Location: 56,37 + Owner: Germany + Health: 39 + RedBuilding3: v05 + Location: 72,53 + Owner: Germany + Health: 43 + ReinforcementDropOff: waypoint + Location: 63,61 + Owner: Neutral + ReinforcementGoal: waypoint + Location: 76,25 + Owner: Neutral + ReinforcementSpawn: waypoint + Location: 77,22 + Owner: Neutral + RSoldier1: e3 + Location: 73,35 + Owner: Germany + SubCell: 1 + RSoldier2: e3 + Location: 80,35 + Owner: Germany + SubCell: 2 + RSoldier3: e3 + Location: 36,37 + Owner: Germany + Facing: 64 + SubCell: 1 + RSoldier4: e3 + Location: 36,37 + Owner: Germany + Facing: 64 + SubCell: 4 + RSoldierTrap: barl + Location: 42,38 + Owner: Creeps + RStandoff: waypoint + Location: 77,57 + Owner: Neutral + SpyGoal: waypoint + Location: 31,34 + Owner: Neutral + SpyHideout1: v01 + Location: 77,52 + Owner: Germany + Health: 99 + SpyHideout2: v01 + Location: 37,63 + Owner: Germany + Health: 99 + SpyHideout3: v01 + Location: 61,36 + Owner: Germany + SpyHideout4: v01 + Location: 36,32 + Owner: Germany + Health: 99 + SpyWaypoint1: waypoint + Location: 76,42 + Owner: Neutral + SpyWaypoint2: waypoint + Location: 75,53 + Owner: Neutral + SpyWaypoint3: waypoint + Location: 74,63 + Owner: Neutral + SpyWaypoint4: waypoint + Location: 47,65 + Owner: Neutral + TheSpy: spy + Location: 77,28 + Owner: England + SubCell: 1 + Transport: lst + Location: 28,65 + Owner: Germany + TransportPath1: waypoint + Location: 31,65 + Owner: Neutral + TransportPath1Water: waypoint + Location: 30,65 + Owner: Neutral + TransportPath2Water: waypoint + Location: 47,51 + Owner: Neutral + TransportPath2: waypoint + Location: 47,50 + Owner: Neutral + +Smudges: + +Rules: + Player: + -ConquestVictoryConditions: + MissionObjectives: + EarlyGameOver: true + -EnemyWatcher: + World: + -CrateSpawner: + -SpawnMPUnits: + -MPStartLocations: + LuaScript: + Scripts: soviet03.lua + ObjectivesPanel: + PanelName: MISSION_OBJECTIVES + ^Building: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^TechBuilding: + AutoTargetIgnore: + Tooltip: + ShowOwnerRow: false + ^Infantry: + -GivesBounty: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Ship: + -GivesBounty: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Helicopter: + -GivesBounty: + Health: + HP: 9000 + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Plane: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Wall: + Tooltip: + ShowOwnerRow: false + BARL: + Health: + HP: 1 + Explodes: + Weapon: MissionBarrelExplode + BRL3: + Health: + HP: 1 + Explodes: + Weapon: MissionBarrelExplode + FENC: + Health: + HP: 9000 + HEALCRATE: + Tooltip: + GenericStancePrefix: false + GenericVisibility: Enemy + ShowOwnerRow: false + V01: + Cargo: + Types: Infantry + MaxWeight: 1 + PipCount: 1 + V05: + SpawnActorOnDeath: + Actor: healcrate + DOG: + -GainsExperience: + SPY: + Mobile: + Speed: 80 + powerproxy.paratroopers: + ParatroopersPower: + DropItems: E1,E1,E1,E2,E2 + +Sequences: + +VoxelSequences: + +Weapons: + MissionBarrelExplode: + Warhead@1Dam: SpreadDamage + Spread: 600 + Damage: 200 + 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: + Sounds: + Notifications: + sking: sking1 + +Translations: diff --git a/mods/ra/maps/soviet-03/soviet03.lua b/mods/ra/maps/soviet-03/soviet03.lua new file mode 100644 index 0000000000..8f7d5c243d --- /dev/null +++ b/mods/ra/maps/soviet-03/soviet03.lua @@ -0,0 +1,387 @@ +if Map.Difficulty == "Easy" then + remainingTime = DateTime.Minutes(7) +elseif Map.Difficulty == "Normal" then + remainingTime = DateTime.Minutes(6) +elseif Map.Difficulty == "Hard" then + remainingTime = DateTime.Minutes(5) +end + +USSRReinforcements1 = { "dog", "dog", "dog", "dog", "dog" } +USSRReinforcements2 = { "e1", "e2", "e2" } +USSRReinforcementsFarm = { "e1", "e1", "e1", "e2", "e2" } +EnemyReinforcements1SpyHideout2 = { "e1", "e3" } +EnemyReinforcements2SpyHideout2 = { "e3", "e3" } +ExtractionHeliType = "tran" +ExtractionPath = { HelicopterSpawn.Location, HelicopterGoal.Location } +Farmers = { Farmer1, Farmer2, Farmer3 } +BarrierSoldiers = { BarrierSoldier1, BarrierSoldier2, BarrierSoldier3, BarrierSoldier4, BarrierSoldier5, BarrierSoldier6 } +RedBuildings = { RedBuildung1, RedBuilding2, RedBuilding3 } +BaseBuildings1 = { BaseBarrel1, BaseBarrel2, BaseBuilding1, BaseBuilding2 } +BaseBuildings2 = { BaseBuilding3, BaseBuilding4, BaseBuilding5, BaseBuilding6 } + +SpyHideout1Trigger = { CPos.New(84, 45), CPos.New(85, 45), CPos.New(86, 45), CPos.New(87, 45), CPos.New(88, 45), CPos.New(89, 45), CPos.New(90, 45) } +SpyHideout2PathTrigger = { CPos.New(70, 61), CPos.New(70, 62), CPos.New(70, 63), CPos.New(70, 64), CPos.New(70, 65) } +SpyHideout2Trigger = { CPos.New(50, 63), CPos.New(50, 64), CPos.New(50, 65), CPos.New(50, 66), CPos.New(50, 67), CPos.New(50, 68), CPos.New(50, 69) } +SpyTransport1CheckpointTrigger = { CPos.New(31, 65) } +SpyTransport2CheckpointTrigger = { CPos.New(47, 51) } +Barrier1Trigger = { CPos.New(59,57), CPos.New(60,57), CPos.New(61,57), CPos.New(62,57), CPos.New(63,57), CPos.New(64,57), CPos.New(65,57), CPos.New(66,57), CPos.New(67,57), CPos.New(68,57) } +Barrier2Trigger = { CPos.New(63, 47), CPos.New(64, 47), CPos.New(65, 47), CPos.New(66, 47), CPos.New(67, 47), CPos.New(68, 47) } +SpyHideout3Trigger = { CPos.New(58, 45), CPos.New(58, 46), CPos.New(58, 47) } +RTrapTrigger = { CPos.New(46, 34), CPos.New(47, 35), CPos.New(48, 36), CPos.New(48, 37), CPos.New(48, 38), CPos.New(48, 39) } +SpyHideout4Trigger = { CPos.New(41, 34), CPos.New(41, 35), CPos.New(41, 36), CPos.New(41, 37), CPos.New(41, 38) } + +IntroSequence = function() + TheSpy.DisguiseAsType("e1", player) + Actor.Create("camera", true, { Owner = player, Location = Playerbase.Location }) + Actor.Create("camera", true, { Owner = player, Location = IntroCamera.Location }) + Actor.Create("camera", true, { Owner = player, Location = FarmArea.Location }) + if not TheSpy.IsDead then + TheSpy.Move(SpyWaypoint1.Location) + TheSpy.Move(SpyWaypoint2.Location) + end + Trigger.AfterDelay(DateTime.Seconds(1), function() + Media.PlaySoundNotification(player, "sking") + end) + Trigger.AfterDelay(DateTime.Seconds(2), function() + Media.PlaySpeechNotification(player, "ExplosiveChargePlaced") + end) + Trigger.AfterDelay(DateTime.Seconds(4), function() + if not RSoldier1.IsDead and not BaseBarrel1.IsDead then + RSoldier1.Attack(BaseBarrel1) + end + if not RSoldier2.IsDead and not BaseBarrel2.IsDead then + RSoldier2.Attack(BaseBarrel2) + end + end) + Trigger.AfterDelay(DateTime.Seconds(5), function() + Utils.Do(BaseBuildings1, function(actor) + if not actor.IsDead then + actor.Kill() + end + end) + end) + Trigger.AfterDelay(DateTime.Seconds(6), function() + Utils.Do(BaseBuildings2, function(actor) + if not actor.IsDead then + actor.Kill() + end + end) + if not RSoldier1.IsDead then + RSoldier1.Move(SpyWaypoint2.Location) + end + if not RSoldier2.IsDead then + RSoldier2.Move(SpyWaypoint2.Location) + end + end) + Trigger.AfterDelay(DateTime.Seconds(8), function() + Dogs = Reinforcements.Reinforce(player, USSRReinforcements1, { ReinforcementSpawn.Location, ReinforcementGoal.Location }, 0) + Media.PlaySpeechNotification(player, "ReinforcementsArrived") + timerstarted = true + end) + Trigger.AfterDelay(DateTime.Seconds(9), function() + Media.PlaySoundNotification(player, "AlertBleep") + end) + Trigger.AfterDelay(DateTime.Seconds(10), function() + Media.PlaySpeechNotification(player, "TimerStarted") + end) +end + +SendUSSRParadrops = function() + paraproxy = Actor.Create("powerproxy.paratroopers", false, { Owner = player }) + paraproxy.SendParatroopers(ReinforcementDropOff.CenterPosition, false, 0) + paraproxy.Destroy() +end + +SpyFinalSequency = function() + if not SpyHideout4.IsDead then + SpyHideout4.UnloadPassengers() + Trigger.AfterDelay(DateTime.Seconds(1), function() + if not TheSpy.IsDead then + TheSpy.Move(SpyGoal.Location) + end + end) + end +end + +SpyHelicopterEscape = function() + if not spyHelicopterEscape then + spyHelicopterEscape = true + SpyFinalSequency() + Actor.Create("camera", true, { Owner = player, Location = CameraFinalArea.Location }) + ExtractionHeli = Reinforcements.ReinforceWithTransport(germany, ExtractionHeliType, nil, ExtractionPath)[1] + local exitPos = CPos.New(ExtractionPath[1].X, ExtractionPath[2].Y) + Trigger.AfterDelay(DateTime.Seconds(5), function() + if not TheSpy.IsDead and not ExtractionHeli.IsDead then + TheSpy.EnterTransport(ExtractionHeli) + end + end) + Trigger.AfterDelay(DateTime.Seconds(7), function() + if not ExtractionHeli.IsDead then + ExtractionHeli.Move(HelicopterEscape.Location) + end + end) + Trigger.AfterDelay(DateTime.Seconds(12), function() + enemy.MarkCompletedObjective(alliedObjective) + end) + end +end + +Trigger.OnAllKilled(Farmers, function() + Reinforcements.Reinforce(player, USSRReinforcementsFarm, { FarmSpawn.Location, FarmArea.Location }, 0) + player.MarkCompletedObjective(sovietObjective2) +end) + +Trigger.OnAllKilled(RedBuildings, function() + player.MarkCompletedObjective(sovietObjective3) +end) + +Trigger.OnAnyKilled(BarrierSoldiers, function() + if barrier1Trigger then + Utils.Do(BarrierSoldiers, function(actor) + if not actor.IsDead then + Trigger.OnIdle(actor, actor.Hunt) + end + end) + end +end) + +Trigger.OnEnteredFootprint(SpyHideout1Trigger, function(a, id) + if not spyHideout1Trigger and a.Owner == player then + spyHideout1Trigger = true + Trigger.RemoveFootprintTrigger(id) + Actor.Create("camera", true, { Owner = player, Location = SpyHideout1.Location }) + if not TheSpy.IsDead and SpyHideout1.IsDead then + TheSpy.EnterTransport(SpyHideout1) + end + end +end) + +Trigger.OnEnteredFootprint(SpyHideout2PathTrigger, function(a, id) + if not spyHideout2PathTrigger and a.Owner == player then + spyHideout2PathTrigger = true + Trigger.RemoveFootprintTrigger(id) + Actor.Create("camera", true, { Owner = player, Location = CameraSpyVillage.Location }) + Actor.Create("camera", true, { Owner = player, Location = CameraVillage.Location }) + if not TheSpy.IsDead and not SpyHideout2.IsDead then + TheSpy.EnterTransport(SpyHideout2) + end + end +end) + +Trigger.OnEnteredFootprint(SpyHideout2Trigger, function(a, id) + if not spyHideout2Trigger and a.Owner == player then + spyHideout2Trigger = true + SpyGuards1 = Reinforcements.Reinforce(germany, EnemyReinforcements1SpyHideout2, { EnemyReinforcements1.Location, EnemyReinforcements1Goal.Location }, 0) + SpyGuards2 = Reinforcements.Reinforce(germany, EnemyReinforcements2SpyHideout2, { EnemyReinforcements2.Location, EnemyReinforcements2Goal.Location }, 0) + Utils.Do(SpyGuards1, function(actor) + if not actor.IsDead then + Trigger.OnIdle(actor, actor.Hunt) + end + end) + Utils.Do(SpyGuards2, function(actor) + if not actor.IsDead then + Trigger.OnIdle(actor, actor.Hunt) + end + end) + if not SpyHideout2.IsDead and not Transport.IsDead then + SpyHideout2.UnloadPassengers() + Transport.Move(TransportPath1Water.Location) + end + Trigger.AfterDelay(DateTime.Seconds(1), function() + if not TheSpy.IsDead then + TheSpy.Move(TransportPath1.Location) + TheSpy.EnterTransport(Transport) + end + end) + Trigger.AfterDelay(DateTime.Seconds(7), function() + SendUSSRParadrops() + Media.PlaySpeechNotification(player, "ReinforcementsArrived") + end) + end +end) + +Trigger.OnEnteredFootprint(SpyTransport1CheckpointTrigger, function(a, id) + if not spyTransport1CheckpointTrigger and a.Owner == enemy then + spyTransport1CheckpointTrigger = true + Trigger.AfterDelay(DateTime.Seconds(2), function() + Actor.Create("camera", true, { Owner = player, Location = CameraWater1.Location }) + Actor.Create("camera", true, { Owner = player, Location = CameraWater2.Location }) + Actor.Create("camera", true, { Owner = player, Location = CameraWater3.Location }) + Actor.Create("camera", true, { Owner = player, Location = CameraWater4.Location }) + Actor.Create("camera", true, { Owner = player, Location = CameraWater5.Location }) + Actor.Create("camera", true, { Owner = player, Location = CameraWater6.Location }) + Actor.Create("camera", true, { Owner = player, Location = TransportPath2.Location }) + if not Transport.IsDead then + Transport.Wait(25) + Transport.Move(TransportPath2Water.Location) + end + end) + end +end) + +Trigger.OnEnteredFootprint(SpyTransport2CheckpointTrigger, function(a, id) + if not spyTransport2CheckpointTrigger and a.Owner == germany then + spyTransport2CheckpointTrigger = true + Transport.UnloadPassengers() + Trigger.AfterDelay(DateTime.Seconds(1), function() + if not TheSpy.IsDead then + if not Hideout3Barrel.IsDead then + TheSpy.EnterTransport(SpyHideout3) + elseif not SpyHideout4.IsDead then + TheSpy.EnterTransport(SpyHideout4) + else + TheSpy.Move(SpyGoal.Location) + end + end + end) + end +end) + +Trigger.OnEnteredFootprint(Barrier1Trigger, function(a, id) + if not barrier1Trigger and a.Owner == player then + barrier1Trigger = true + Actor.Create("camera", true, { Owner = player, Location = CameraBarrier.Location }) + end +end) + +Trigger.OnEnteredFootprint(Barrier2Trigger, function(a, id) + if not barrier2Trigger and a.Owner == player then + barrier2Trigger = true + Actor.Create("camera", true, { Owner = player, Location = CameraSpyHideout31.Location }) + Actor.Create("camera", true, { Owner = player, Location = CameraSpyHideout32.Location }) + Actor.Create("camera", true, { Owner = player, Location = CameraSpyHideout33.Location }) + end +end) + +Trigger.OnEnteredFootprint(SpyHideout3Trigger, function(a, id) + if not spyHideout3Trigger and a.Owner == player then + spyHideout3Trigger = true + if Map.Difficulty ~= "Hard" then + Reinforcements.Reinforce(player, USSRReinforcements2, { ReinforcementSpawn.Location, CameraSpyHideout33.Location }, 0) + Media.PlaySpeechNotification(player, "ReinforcementsArrived") + end + end +end) + +Trigger.OnEnteredFootprint(RTrapTrigger, function(a, id) + if not rTrapTrigger and a.Owner == player then + rTrapTrigger = true + Actor.Create("camera", true, { Owner = player, Location = CameraFinalArea.Location }) + if not RSoldier3.IsDead and not RSoldierTrap.IsDead then + RSoldier3.Attack(RSoldierTrap) + end + if not RSoldier4.IsDead and not RSoldierTrap.IsDead then + RSoldier4.Attack(RSoldierTrap) + end + end +end) + +Trigger.OnEnteredFootprint(SpyHideout4Trigger, function(a, id) + if not spyHideout4Trigger and a.Owner == player then + spyHideout4Trigger = true + SpyFinalSequency() + Actor.Create("camera", true, { Owner = player, Location = HelicopterGoal.Location }) + end +end) + +Trigger.OnKilled(Hideout1Barrel, function() + if not Hideout1PBox.IsDead then + Hideout1PBox.Kill() + end + Trigger.AfterDelay(DateTime.Seconds(1), function() + if not SpyHideout1.IsDead then + SpyHideout1.UnloadPassengers() + end + end) + Trigger.AfterDelay(DateTime.Seconds(2), function() + if not TheSpy.IsDead then + TheSpy.Move(SpyWaypoint3.Location) + TheSpy.Move(SpyWaypoint4.Location) + end + end) + if not RSoldier1.IsDead then + RSoldier1.Move(RStandoff.Location) + end + if not RSoldier2.IsDead then + RSoldier2.Move(RStandoff.Location) + end +end) + +Trigger.OnKilled(Hideout3Barrel, function() + if not SpyHideout3.IsDead then + SpyHideout3.UnloadPassengers() + end + Trigger.AfterDelay(DateTime.Seconds(1), function() + if not TheSpy.IsDead then + TheSpy.Move(SpyGoal.Location) + end + end) + Trigger.AfterDelay(DateTime.Seconds(7), function() + if not TheSpy.IsDead and not SpyHideout4.IsDead then + TheSpy.EnterTransport(SpyHideout4) + end + end) +end) + +WorldLoaded = function() + player = Player.GetPlayer("USSR") + enemy = Player.GetPlayer("England") + germany = Player.GetPlayer("Germany") + Camera.Position = Playerbase.CenterPosition + IntroSequence() + 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("Kill the enemy spy.") + sovietObjective2 = player.AddSecondaryObjective("Clear the nearby farm for reinforcements.") + sovietObjective3 = player.AddSecondaryObjective("Scavenge the civilian buildings for supplies.") +end + +Trigger.OnKilled(TheSpy, function() + player.MarkCompletedObjective(sovietObjective1) +end) + +Tick = function() + Trigger.AfterDelay(DateTime.Seconds(12), function() + if player.HasNoRequiredUnits() then + enemy.MarkCompletedObjective(alliedObjective) + end + end) + if not SpyHideout4.IsDead and SpyHideout4.HasPassengers then + spyReachedHideout4 = true + end + if remainingTime == DateTime.Minutes(5) and Map.Difficulty ~= "Hard" then + Media.PlaySpeechNotification(player, "WarningFiveMinutesRemaining") + elseif remainingTime == DateTime.Minutes(4) then + Media.PlaySpeechNotification(player, "WarningFourMinutesRemaining") + elseif remainingTime == DateTime.Minutes(3) then + Media.PlaySpeechNotification(player, "WarningThreeMinutesRemaining") + elseif remainingTime == DateTime.Minutes(2) then + Media.PlaySpeechNotification(player, "WarningTwoMinutesRemaining") + elseif remainingTime == DateTime.Minutes(1) then + Media.PlaySpeechNotification(player, "WarningOneMinuteRemaining") + end + if remainingTime > 0 and timerstarted then + UserInterface.SetMissionText("Time Remaining: " .. Utils.FormatTime(remainingTime), player.Color) + remainingTime = remainingTime - 1 + elseif remainingTime == 0 and not spyReachedHideout4 then + UserInterface.SetMissionText("") + enemy.MarkCompletedObjective(alliedObjective) + elseif remainingTime == 0 and spyReachedHideout4 then + UserInterface.SetMissionText("") + SpyHelicopterEscape() + end +end diff --git a/mods/ra/missions.yaml b/mods/ra/missions.yaml index 2a50e68f3c..7d69163f97 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-03 ./mods/ra/maps/soviet-04a ./mods/ra/maps/soviet-04b ./mods/ra/maps/soviet-05