From 32968e4f4b9c44edfcf6227a18fe3feb0fb63264 Mon Sep 17 00:00:00 2001 From: Smittytron Date: Sun, 1 Jul 2018 09:21:11 -0500 Subject: [PATCH] Add Soviet08a --- mods/ra/maps/soviet-08a/map.bin | Bin 0 -> 81937 bytes mods/ra/maps/soviet-08a/map.png | Bin 0 -> 27168 bytes mods/ra/maps/soviet-08a/map.yaml | 1065 ++++++++++++++++++++++ mods/ra/maps/soviet-08a/rules.yaml | 134 +++ mods/ra/maps/soviet-08a/soviet08a-AI.lua | 176 ++++ mods/ra/maps/soviet-08a/soviet08a.lua | 166 ++++ mods/ra/missions.yaml | 1 + 7 files changed, 1542 insertions(+) create mode 100644 mods/ra/maps/soviet-08a/map.bin create mode 100644 mods/ra/maps/soviet-08a/map.png create mode 100644 mods/ra/maps/soviet-08a/map.yaml create mode 100644 mods/ra/maps/soviet-08a/rules.yaml create mode 100644 mods/ra/maps/soviet-08a/soviet08a-AI.lua create mode 100644 mods/ra/maps/soviet-08a/soviet08a.lua diff --git a/mods/ra/maps/soviet-08a/map.bin b/mods/ra/maps/soviet-08a/map.bin new file mode 100644 index 0000000000000000000000000000000000000000..902442674a1d428255474b1478b19a4c10362d82 GIT binary patch literal 81937 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 literal 0 HcmV?d00001 diff --git a/mods/ra/maps/soviet-08a/map.png b/mods/ra/maps/soviet-08a/map.png new file mode 100644 index 0000000000000000000000000000000000000000..dc774179f296c621a99a786eb1c1fecf3b7d0e1f GIT binary patch literal 27168 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 AG5`Po literal 0 HcmV?d00001 diff --git a/mods/ra/maps/soviet-08a/map.yaml b/mods/ra/maps/soviet-08a/map.yaml new file mode 100644 index 0000000000..ec2dc15a10 --- /dev/null +++ b/mods/ra/maps/soviet-08a/map.yaml @@ -0,0 +1,1065 @@ +MapFormat: 11 + +RequiresMod: ra + +Title: 08a: Investigate Elba Island + +Author: Westwood Studios + +Tileset: TEMPERAT + +MapSize: 128,128 + +Bounds: 17,17,94,94 + +Visibility: MissionSelector + +Categories: Campaign + +LockPreview: True + +Players: + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Faction: england + PlayerReference@USSR: + Name: USSR + AllowBots: False + Playable: True + Required: True + LockFaction: True + Faction: soviet + LockColor: True + Color: FE1100 + LockSpawn: True + LockTeam: True + Enemies: Germany, Greece + PlayerReference@Germany: + Name: Germany + Faction: allies + Color: 505050 + Allies: Greece + Enemies: USSR + PlayerReference@Greece: + Name: Greece + Faction: allies + Color: E2E6F6 + Allies: Germany + Enemies: USSR + +Actors: + Actor0: brik + Location: 50,37 + Owner: Neutral + Actor1: brik + Location: 51,37 + Owner: Neutral + Actor2: brik + Location: 50,38 + Owner: Neutral + Actor3: brik + Location: 51,38 + Owner: Neutral + Actor4: brik + Location: 51,39 + Owner: Neutral + Actor5: brik + Location: 52,39 + Owner: Neutral + Actor6: brik + Location: 51,40 + Owner: Neutral + Actor7: brik + Location: 52,40 + Owner: Neutral + Actor8: brik + Location: 51,45 + Owner: Neutral + Actor9: brik + Location: 52,45 + Owner: Neutral + Actor10: brik + Location: 49,46 + Owner: Neutral + Actor11: brik + Location: 50,46 + Owner: Neutral + Actor12: brik + Location: 51,46 + Owner: Neutral + Actor13: brik + Location: 52,46 + Owner: Neutral + Actor14: brik + Location: 49,47 + Owner: Neutral + Actor15: brik + Location: 46,48 + Owner: Neutral + Actor16: brik + Location: 47,48 + Owner: Neutral + Actor17: brik + Location: 48,48 + Owner: Neutral + Actor18: brik + Location: 49,48 + Owner: Neutral + Actor19: brik + Location: 38,49 + Owner: Neutral + Actor20: brik + Location: 39,49 + Owner: Neutral + Actor21: brik + Location: 44,49 + Owner: Neutral + Actor22: brik + Location: 45,49 + Owner: Neutral + Actor23: brik + Location: 46,49 + Owner: Neutral + Actor24: brik + Location: 38,50 + Owner: Neutral + Actor25: brik + Location: 39,50 + Owner: Neutral + Actor26: brik + Location: 44,50 + Owner: Neutral + Actor27: brik + Location: 45,50 + Owner: Neutral + Actor28: sbag + Location: 77,61 + Owner: Greece + Actor29: sbag + Location: 78,61 + Owner: Greece + Actor30: v15 + Location: 91,61 + Owner: Neutral + Actor31: v16 + Location: 92,61 + Owner: Neutral + Actor32: sbag + Location: 78,62 + Owner: Greece + Actor33: sbag + Location: 78,63 + Owner: Greece + Actor34: sbag + Location: 78,64 + Owner: Greece + Actor35: sbag + Location: 69,65 + Owner: Greece + Actor36: sbag + Location: 78,65 + Owner: Greece + Actor37: v17 + Location: 81,65 + Owner: Neutral + Actor38: v16 + Location: 82,65 + Owner: Neutral + Actor39: sbag + Location: 69,66 + Owner: Greece + Actor40: sbag + Location: 78,66 + Owner: Greece + Actor41: sbag + Location: 69,67 + Owner: Greece + Actor42: sbag + Location: 69,68 + Owner: Greece + Actor43: sbag + Location: 70,68 + Owner: Greece + Actor44: sbag + Location: 83,72 + Owner: Greece + Actor45: sbag + Location: 90,72 + Owner: Greece + Actor46: sbag + Location: 83,73 + Owner: Greece + Actor47: sbag + Location: 84,73 + Owner: Greece + Actor48: sbag + Location: 85,73 + Owner: Greece + Actor49: sbag + Location: 88,73 + Owner: Greece + Actor50: sbag + Location: 89,73 + Owner: Greece + Actor51: sbag + Location: 90,73 + Owner: Greece + Actor52: sbag + Location: 71,74 + Owner: Greece + Actor53: sbag + Location: 77,74 + Owner: Greece + Actor54: sbag + Location: 71,75 + Owner: Greece + Actor55: sbag + Location: 72,75 + Owner: Greece + Actor56: sbag + Location: 76,75 + Owner: Greece + Actor57: sbag + Location: 77,75 + Owner: Greece + Actor58: sbag + Location: 60,82 + Owner: Greece + Actor59: sbag + Location: 60,83 + Owner: Greece + Actor60: sbag + Location: 61,83 + Owner: Greece + Actor61: sbag + Location: 60,86 + Owner: Greece + Actor62: sbag + Location: 61,86 + Owner: Greece + Actor63: sbag + Location: 60,87 + Owner: Greece + Actor64: t01 + Location: 39,96 + Owner: Neutral + Actor65: t02 + Location: 40,98 + Owner: Neutral + Actor66: t05 + Location: 50,84 + Owner: Neutral + Actor67: t13 + Location: 101,24 + Owner: Neutral + Actor68: t15 + Location: 95,51 + Owner: Neutral + Actor69: t16 + Location: 97,51 + Owner: Neutral + Actor70: tc04 + Location: 96,49 + Owner: Neutral + Actor71: tc05 + Location: 97,50 + Owner: Neutral + Actor72: tc02 + Location: 71,49 + Owner: Neutral + Actor73: tc03 + Location: 79,47 + Owner: Neutral + Actor74: tc03 + Location: 29,41 + Owner: Neutral + Actor75: tc01 + Location: 35,25 + Owner: Neutral + Actor76: tc01 + Location: 56,34 + Owner: Neutral + Actor77: tc02 + Location: 60,37 + Owner: Neutral + Actor78: t02 + Location: 62,50 + Owner: Neutral + Actor79: t01 + Location: 70,53 + Owner: Neutral + Actor80: t01 + Location: 46,39 + Owner: Neutral + Actor81: t01 + Location: 37,46 + Owner: Neutral + Actor82: t01 + Location: 46,49 + Owner: Neutral + Actor83: t15 + Location: 66,67 + Owner: Neutral + Actor85: t12 + Location: 33,84 + Owner: Neutral + Actor86: t14 + Location: 39,81 + Owner: Neutral + Actor87: tc01 + Location: 47,51 + Owner: Neutral + Actor88: tc04 + Location: 49,50 + Owner: Neutral + Actor89: tc05 + Location: 90,63 + Owner: Neutral + Actor90: t16 + Location: 55,25 + Owner: Neutral + Actor91: t17 + Location: 55,27 + Owner: Neutral + Actor92: tc01 + Location: 55,26 + Owner: Neutral + Actor93: t01 + Location: 52,27 + Owner: Neutral + Actor94: t05 + Location: 86,54 + Owner: Neutral + Actor95: t07 + Location: 100,53 + Owner: Neutral + Actor96: t06 + Location: 100,52 + Owner: Neutral + Actor97: t01 + Location: 100,85 + Owner: Neutral + Actor98: tc02 + Location: 86,27 + Owner: Neutral + Actor99: t01 + Location: 100,21 + Owner: Neutral + Actor100: t08 + Location: 72,61 + Owner: Neutral + Actor101: t10 + Location: 67,62 + Owner: Neutral + Actor102: tc02 + Location: 55,68 + Owner: Neutral + Actor103: t01 + Location: 85,59 + Owner: Neutral + Actor104: t01 + Location: 73,56 + Owner: Neutral + Actor105: t02 + Location: 70,57 + Owner: Neutral + Actor106: t07 + Location: 54,58 + Owner: Neutral + Actor107: t07 + Location: 45,83 + Owner: Neutral + Actor108: tc03 + Location: 46,76 + Owner: Neutral + Actor109: tc02 + Location: 44,85 + Owner: Neutral + Actor110: tc03 + Location: 50,35 + Owner: Neutral + Actor111: tc05 + Location: 51,47 + Owner: Neutral + Actor112: tc04 + Location: 50,46 + Owner: Neutral + Actor113: tc03 + Location: 54,43 + Owner: Neutral + Actor114: t16 + Location: 66,94 + Owner: Neutral + Actor115: t17 + Location: 40,69 + Owner: Neutral + Actor116: tc04 + Location: 99,60 + Owner: Neutral + Actor117: t01 + Location: 89,34 + Owner: Neutral + Actor118: t10 + Location: 98,33 + Owner: Neutral + Actor119: t14 + Location: 86,40 + Owner: Neutral + Actor120: t08 + Location: 97,42 + Owner: Neutral + Actor121: t10 + Location: 79,57 + Owner: Neutral + Actor122: t01 + Location: 77,41 + Owner: Neutral + Actor123: tc01 + Location: 43,93 + Owner: Neutral + Actor124: t14 + Location: 68,22 + Owner: Neutral + Actor125: tc01 + Location: 70,22 + Owner: Neutral + Actor126: tc01 + Location: 78,16 + Owner: Neutral + Actor127: t01 + Location: 60,70 + Owner: Neutral + Actor128: tc03 + Location: 54,109 + Owner: Neutral + Actor129: tc02 + Location: 58,109 + Owner: Neutral + Actor130: t01 + Location: 69,89 + Owner: Neutral + Actor131: t02 + Location: 67,87 + Owner: Neutral + Actor132: tc01 + Location: 96,109 + Owner: Neutral + Actor333: tc01 + Owner: Neutral + Location: 53,91 + Actor133: t01 + Location: 70,63 + Owner: Neutral + Actor134: tc03 + Location: 90,84 + Owner: Neutral + Actor135: tc01 + Location: 88,81 + Owner: Neutral + Actor136: t02 + Location: 52,55 + Owner: Neutral + Actor137: t10 + Location: 64,59 + Owner: Neutral + Actor138: t11 + Location: 78,81 + Owner: Neutral + Actor139: tc03 + Location: 86,46 + Owner: Neutral + Actor140: t10 + Location: 63,65 + Owner: Neutral + Actor141: t03 + Location: 60,65 + Owner: Neutral + Actor142: t08 + Location: 57,62 + Owner: Neutral + Actor143: t01 + Location: 91,72 + Owner: Neutral + SovietBase: fact + Location: 89,93 + Owner: USSR + Actor145: powr + Location: 93,91 + Owner: USSR + Church: v01 + Location: 88,65 + Owner: Germany + Actor147: v02 + Location: 88,69 + Owner: Germany + Actor148: v03 + Location: 94,65 + Owner: Germany + Actor149: v04 + Location: 88,62 + Owner: Germany + Actor150: v05 + Location: 94,61 + Owner: Germany + Actor151: v06 + Location: 83,62 + Owner: Germany + Actor152: v07 + Location: 83,69 + Owner: Germany + Actor153: v08 + Location: 84,65 + Owner: Germany + GreeceConyard: fact + Location: 39,40 + Owner: Greece + Actor155: spen + Location: 98,94 + Owner: USSR + Actor156: powr + Location: 72,62 + Owner: Germany + Actor157: tent + Location: 76,65 + Owner: Germany + Actor158: hbox + Location: 75,66 + Owner: Germany + Actor159: gun + Location: 70,69 + Owner: Germany + Facing: 159 + Actor160: weaf + Location: 71,65 + Owner: Germany + Actor161: facf + Location: 75,62 + Owner: Germany + Power: powr + Location: 42,36 + Owner: Greece + Actor163: silo + Location: 44,35 + Owner: Greece + Actor164: silo + Location: 45,35 + Owner: Greece + Actor165: silo + Location: 44,34 + Owner: Greece + GreeceTent2: tent + Location: 47,42 + Owner: Greece + Apwr4: apwr + Location: 39,37 + Owner: Greece + GreeceWarFactory: weap + Location: 43,43 + Owner: Greece + Actor169: hbox + Location: 49,42 + Owner: Greece + Actor170: hbox + Location: 41,46 + Owner: Greece + Service: fix + Location: 47,38 + Owner: Greece + GreeceNavalYard: syrd + Location: 41,29 + Owner: Greece + Apwr1: apwr + Location: 36,36 + Owner: Greece + Actor174: gun + Location: 51,41 + Owner: Greece + Radar: dome + Location: 34,37 + Owner: Greece + Actor176: agun + Location: 42,35 + Owner: Greece + Actor177: agun + Location: 38,43 + Owner: Greece + Actor178: agun + Location: 46,41 + Owner: Greece + Apwr2: apwr + Location: 36,40 + Owner: Greece + Actor180: hbox + Location: 35,36 + Owner: Greece + Actor181: hbox + Location: 40,33 + Owner: Greece + Actor182: gun + Location: 34,41 + Owner: Greece + Actor183: gun + Location: 36,35 + Owner: Greece + Actor184: gun + Location: 43,49 + Owner: Greece + Actor185: gun + Location: 51,44 + Owner: Greece + Actor186: gun + Location: 40,49 + Owner: Greece + GreeceTent1: tent + Location: 39,44 + Owner: Greece + Apwr3: apwr + Location: 39,34 + Owner: Greece + Actor189: jeep + Location: 85,92 + Owner: Germany + Facing: 191 + Actor190: 2tnk + Location: 55,49 + Owner: Greece + Facing: 159 + Actor191: 2tnk + Location: 58,47 + Owner: Greece + Facing: 159 + Actor192: 2tnk + Location: 42,69 + Owner: Greece + Facing: 127 + Actor193: 2tnk + Location: 44,69 + Owner: Greece + Facing: 127 + Actor194: 2tnk + Location: 43,52 + Owner: Greece + Facing: 127 + Actor195: 2tnk + Location: 39,52 + Owner: Greece + Facing: 127 + Actor196: 2tnk + Location: 67,43 + Owner: Greece + Facing: 191 + Actor197: 2tnk + Location: 67,45 + Owner: Greece + Facing: 191 + Actor198: jeep + Location: 57,42 + Owner: Greece + Facing: 159 + Actor199: jeep + Location: 54,46 + Owner: Greece + Facing: 159 + Actor200: jeep + Location: 41,51 + Owner: Greece + Facing: 127 + Actor201: jeep + Location: 61,44 + Owner: Greece + Facing: 191 + Actor202: arty + Location: 42,67 + Owner: Greece + Facing: 127 + Actor203: arty + Location: 45,67 + Owner: Greece + Facing: 95 + Actor204: arty + Location: 63,44 + Owner: Greece + Facing: 191 + Actor205: arty + Location: 56,46 + Owner: Greece + Facing: 159 + Actor206: arty + Location: 40,50 + Owner: Greece + Facing: 159 + Actor207: jeep + Location: 72,72 + Owner: Germany + Facing: 159 + Actor208: jeep + Location: 84,70 + Owner: Germany + Facing: 159 + Actor209: 1tnk + Location: 57,96 + Owner: Germany + Facing: 191 + Actor210: 1tnk + Location: 73,68 + Owner: Germany + Facing: 127 + Actor211: 2tnk + Location: 43,68 + Owner: Greece + Facing: 127 + Actor212: 2tnk + Location: 60,65 + Owner: Greece + Facing: 159 + Actor213: 2tnk + Location: 61,64 + Owner: Greece + Facing: 127 + Actor214: 2tnk + Location: 63,65 + Owner: Greece + Facing: 95 + Actor215: 2tnk + Location: 62,64 + Owner: Greece + Facing: 127 + Actor216: e1 + Location: 86,91 + Owner: Germany + Facing: 159 + SubCell: 4 + Actor217: e1 + Location: 86,92 + Owner: Germany + Facing: 159 + SubCell: 3 + Actor218: e1 + Location: 87,91 + Owner: Germany + Facing: 191 + SubCell: 4 + Actor219: e1 + Location: 86,93 + Owner: Germany + Facing: 159 + SubCell: 4 + Actor220: e1 + Location: 88,91 + Owner: USSR + Facing: 95 + SubCell: 4 + Actor221: e1 + Location: 88,93 + Owner: USSR + SubCell: 3 + Actor222: e1 + Location: 87,92 + Owner: USSR + Facing: 63 + SubCell: 4 + Actor223: e1 + Location: 78,68 + Owner: Germany + Facing: 159 + SubCell: 1 + Actor224: e1 + Location: 74,69 + Owner: Germany + Facing: 159 + SubCell: 2 + Actor225: e3 + Location: 70,66 + Owner: Germany + Facing: 159 + SubCell: 2 + Actor226: e3 + Location: 85,72 + Owner: Germany + Facing: 159 + SubCell: 2 + Actor227: e3 + Location: 88,72 + Owner: Germany + Facing: 95 + SubCell: 4 + Actor228: e3 + Location: 87,72 + Owner: Germany + Facing: 223 + SubCell: 3 + Actor229: e3 + Location: 66,97 + Owner: Germany + Facing: 191 + SubCell: 2 + Actor230: e3 + Location: 66,99 + Owner: Germany + Facing: 223 + SubCell: 2 + Actor231: e1 + Location: 60,85 + Owner: Germany + Facing: 191 + SubCell: 3 + Actor232: e1 + Location: 60,84 + Owner: Germany + Facing: 191 + SubCell: 4 + Actor233: e3 + Location: 72,74 + Owner: Germany + Facing: 159 + SubCell: 3 + Actor234: e3 + Location: 76,74 + Owner: Germany + Facing: 95 + SubCell: 4 + Actor235: e3 + Location: 57,97 + Owner: Germany + Facing: 191 + SubCell: 1 + Actor236: e1 + Location: 86,63 + Owner: Germany + Facing: 159 + SubCell: 4 + Actor237: e1 + Location: 92,68 + Owner: Germany + Facing: 95 + SubCell: 2 + Actor238: c3 + Location: 83,64 + Owner: Germany + SubCell: 2 + Actor239: c4 + Location: 95,62 + Owner: Germany + Facing: 159 + SubCell: 3 + Actor240: c5 + Location: 90,67 + Owner: Germany + Facing: 95 + SubCell: 4 + Actor241: c6 + Location: 84,67 + Owner: Germany + SubCell: 2 + Actor242: c1 + Location: 93,64 + Owner: Germany + SubCell: 0 + Actor243: c1 + Location: 90,60 + Owner: Germany + Facing: 95 + SubCell: 3 + Actor244: e3 + Location: 60,64 + Owner: Greece + Facing: 159 + SubCell: 1 + Actor245: e3 + Location: 63,64 + Owner: Greece + Facing: 95 + SubCell: 0 + Actor246: c2 + Location: 88,61 + Owner: Germany + SubCell: 1 + Actor247: c2 + Location: 83,67 + Owner: Germany + SubCell: 1 + Actor248: c2 + Location: 94,63 + Owner: Germany + SubCell: 3 + Actor249: c4 + Location: 88,64 + Owner: Germany + SubCell: 4 + Actor250: c8 + Location: 82,61 + Owner: Germany + SubCell: 0 + Actor251: c8 + Location: 90,70 + Owner: Germany + SubCell: 0 + Actor252: ss + Location: 100,93 + Owner: USSR + Actor253: ss + Location: 101,94 + Owner: USSR + Facing: 191 + Actor254: ss + Location: 101,93 + Owner: USSR + Facing: 223 + Actor255: ss + Location: 101,96 + Owner: USSR + Facing: 191 + Actor256: ss + Location: 101,97 + Owner: USSR + Facing: 159 + Actor257: ss + Location: 100,97 + Owner: USSR + Facing: 127 + Actor258: pt + Location: 19,26 + Owner: Greece + Facing: 191 + Actor259: pt + Location: 19,58 + Owner: Greece + Facing: 159 + Actor260: pt + Location: 49,109 + Owner: Greece + Facing: 223 + Actor261: pt + Location: 109,75 + Owner: Greece + Facing: 31 + Actor262: pt + Location: 109,31 + Owner: Greece + Facing: 63 + Actor263: pt + Location: 69,18 + Owner: Greece + Facing: 63 + Actor264: dd + Location: 48,23 + Owner: Greece + Facing: 159 + Oreref: proc + Owner: Greece + Location: 43,38 + GemMine: gmine + Owner: Neutral + Location: 32,32 + WaterUnloadEntry1: waypoint + Location: 110,74 + Owner: Neutral + WaterUnloadEntry6: waypoint + Location: 110,30 + Owner: Neutral + WaterUnloadEntry4: waypoint + Location: 17,25 + Owner: Neutral + WaterUnloadEntry3: waypoint + Location: 17,57 + Owner: Neutral + WaterUnloadEntry2: waypoint + Location: 50,110 + Owner: Neutral + WaterUnloadEntry5: waypoint + Owner: Neutral + Location: 55,17 + WaterUnload1: waypoint + Location: 99,68 + Owner: Neutral + WaterUnload6: waypoint + Location: 99,41 + Owner: Neutral + WaterUnload5: waypoint + Location: 72,37 + Owner: Neutral + WaterUnload4: waypoint + Location: 28,30 + Owner: Neutral + WaterUnload3: waypoint + Location: 37,61 + Owner: Neutral + WaterUnload2: waypoint + Location: 50,98 + Owner: Neutral + SouthEntry: waypoint + Location: 88,110 + Owner: Neutral + EastEntry: waypoint + Location: 110,93 + Owner: Neutral + EastUnload: waypoint + Location: 96,96 + Owner: Neutral + SouthUnload: waypoint + Location: 92,102 + Owner: Neutral + SovietStart: waypoint + Location: 91,92 + Owner: Neutral + ScoutRetreat: waypoint + Location: 74,82 + Owner: Neutral + ChurchAmbush: waypoint + Location: 88,66 + Owner: Neutral + AmbushMove: waypoint + Location: 86,68 + Owner: Neutral + ScriptedParadrop: waypoint + Location: 83,89 + Owner: Neutral + DDEntry: waypoint + Location: 30,17 + Owner: Neutral + DDEntryStop: waypoint + Location: 37,21 + Owner: Neutral + DDPatrol1Point1: waypoint + Location: 22,25 + Owner: Neutral + DDPatrol1Point2: waypoint + Location: 23,57 + Owner: Neutral + DDPatrol1Point3: waypoint + Location: 37,74 + Owner: Neutral + DDPatrol1Point4: waypoint + Location: 19,81 + Owner: Neutral + DDPatrol1Point5: waypoint + Location: 37,104 + Owner: Neutral + DDPatrol1Point6: waypoint + Location: 67,105 + Owner: Neutral + DDPatrol2Point1: waypoint + Location: 59,22 + Owner: Neutral + DDPatrol2Point2: waypoint + Location: 68,34 + Owner: Neutral + DDPatrol2Point3: waypoint + Location: 93,19 + Owner: Neutral + DDPatrol2Point4: waypoint + Location: 107,19 + Owner: Neutral + DDPatrol2Point5: waypoint + Location: 102,45 + Owner: Neutral + DDPatrol2Point6: waypoint + Location: 109,60 + Owner: Neutral + DDPatrol2Point7: waypoint + Location: 97,78 + 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/soviet-08a/rules.yaml b/mods/ra/maps/soviet-08a/rules.yaml new file mode 100644 index 0000000000..f5e5347c5d --- /dev/null +++ b/mods/ra/maps/soviet-08a/rules.yaml @@ -0,0 +1,134 @@ +World: + LuaScript: + Scripts: soviet08a.lua, soviet08a-AI.lua + MissionData: + Briefing: We have detected Allied activity on Elba island. The Allies plan to use this island to stage an attack on the Soviet Empire.\n\nYou must ensure that the island ceases to be under Allied control. Destroy all Allied units on and around the island.\n\nThe local population has been aiding the Allies as well. There is only one punishment for helping the enemy - Death. + BriefingVideo: soviet8.vqa + StartVideo: slntsrvc.vqa + WinVideo: bombrun.vqa + LossVideo: allymorf.vqa + ScriptLobbyDropdown@difficulty: + ID: difficulty + Label: Difficulty + Values: + easy: Easy + normal: Normal + hard: Hard + Default: easy + +Player: + PlayerResources: + DefaultCash: 5000 + +CAMERA: + RevealsShroud: + Range: 6c0 + +LST.Reinforcement: + Inherits: LST + RejectsOrders: + -Buildable: + -Selectable: + RenderSprites: + Image: lst + Interactable: + +SCRIPTEDDROP: + ParatroopersPower: + DisplayBeacon: False + DropItems: E1,E1,E4,E4,E4 + AlwaysVisible: + +AFLD: + AirstrikePower@parabombs: + Prerequisites: aircraft.soviet + ParatroopersPower@paratroopers: + DropItems: E1,E1,E1,E2,E2 + +MONEYCRATE: + GiveCashCrateAction: + Amount: 2000 + +STEK: + Buildable: + Prerequisites: ~disabled + +ATEK: + Buildable: + Prerequisites: ~disabled + +HPAD: + Buildable: + Prerequisites: ~disabled + +SAM: + Buildable: + Prerequisites: ~disabled + +IRON: + Buildable: + Prerequisites: ~disabled + +MSLO: + Buildable: + Prerequisites: ~disabled + +TRUK: + Buildable: + Prerequisites: ~disabled + +FTRK: + Buildable: + Prerequisites: ~disabled + +4TNK: + Buildable: + Prerequisites: ~disabled + +QTNK: + Buildable: + Prerequisites: ~disabled + +MRJ: + Buildable: + Prerequisites: ~disabled + +MIG: + Buildable: + Prerequisites: ~disabled + +HELI: + Buildable: + Prerequisites: ~disabled + +MSUB: + Buildable: + Prerequisites: ~disabled + +CA: + Buildable: + Prerequisites: ~disabled + +HIJACKER: + Buildable: + Prerequisites: ~disabled + +GAP: + Buildable: + Prerequisites: ~disabled + +PDOX: + Buildable: + Prerequisites: ~disabled + +E7: + Buildable: + Prerequisites: ~disabled + +MECH: + Buildable: + Prerequisites: ~disabled + +E3: + Buildable: + Prerequisites: ~tent diff --git a/mods/ra/maps/soviet-08a/soviet08a-AI.lua b/mods/ra/maps/soviet-08a/soviet08a-AI.lua new file mode 100644 index 0000000000..b9bd3552c7 --- /dev/null +++ b/mods/ra/maps/soviet-08a/soviet08a-AI.lua @@ -0,0 +1,176 @@ +--[[ + Copyright 2007-2018 The OpenRA Developers (see AUTHORS) + This file is part of OpenRA, which is free software. It is made + available to you under the terms of the GNU General Public License + as published by the Free Software Foundation, either version 3 of + the License, or (at your option) any later version. For more + information, see COPYING. +]] +IdlingUnits = { } + +DDPatrol1 = { "dd", "dd" } +DDPatrol2 = { "dd", "dd" } +DDPatrol1Path = { DDPatrol1Point1.Location, DDPatrol1Point2.Location, DDPatrol1Point3.Location, DDPatrol1Point4.Location, DDPatrol1Point5.Location, DDPatrol1Point6.Location } +DDPatrol2Path = { DDPatrol2Point1.Location, DDPatrol2Point2.Location, DDPatrol2Point3.Location, DDPatrol2Point4.Location, DDPatrol2Point5.Location, DDPatrol2Point6.Location, DDPatrol2Point7.Location } +ShipArrivePath = { DDEntry.Location, DDEntryStop.Location } + +WTransWays = +{ + { WaterUnloadEntry1.Location, WaterUnload1.Location }, + { WaterUnloadEntry2.Location, WaterUnload2.Location }, + { WaterUnloadEntry3.Location, WaterUnload3.Location }, + { WaterUnloadEntry4.Location, WaterUnload4.Location }, + { WaterUnloadEntry5.Location, WaterUnload5.Location }, + { WaterUnloadEntry6.Location, WaterUnload6.Location } +} + +WTransUnits = +{ + hard = { { "2tnk", "1tnk", "e1", "e3", "e3" }, { "2tnk", "2tnk", "2tnk" } }, + normal = { { "1tnk", "1tnk", "e3", "e3", "jeep" }, { "2tnk", "e3", "e3", "jeep" } }, + easy = { { "1tnk", "e1", "e1", "e3", "e3" }, { "e3", "e3", "jeep", "jeep" } } +} + +WTransDelays = +{ + easy = 5, + normal = 3, + hard = 2 +} + +AttackGroup = { } +AttackGroupSize = 8 + +ProductionInterval = +{ + easy = DateTime.Seconds(30), + normal = DateTime.Seconds(20), + hard = DateTime.Seconds(10) +} + +AlliedInfantry = { "e1", "e3" } +AlliedVehiclesUpgradeDelay = DateTime.Minutes(15) +AlliedVehicleType = "Normal" +AlliedVehicles = +{ + Normal = { "jeep", "1tnk", "1tnk" }, + Upgraded = { "2tnk", "arty" } +} + +IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end + +WTransWaves = function() + local way = Utils.Random(WTransWays) + local units = Utils.Random(WTransUnits) + local attackUnits = Reinforcements.ReinforceWithTransport(greece, "lst", units , way, { way[2], way[1] })[2] + Utils.Do(attackUnits, function(a) + Trigger.OnAddedToWorld(a, function() + a.AttackMove(SovietStart.Location) + IdleHunt(a) + end) + end) + + Trigger.AfterDelay(DateTime.Minutes(WTransDelays), WTransWaves) +end + +SendAttackGroup = function() + if #AttackGroup < AttackGroupSize then + return + end + + Utils.Do(AttackGroup, function(unit) + if not unit.IsDead then + Trigger.OnIdle(unit, unit.Hunt) + end + end) + + AttackGroup = { } +end + +ProduceInfantry = function() + if (GreeceTent1.IsDead or GreeceTent1.Owner ~= greece) and (GreeceTent2.IsDead or GreeceTent2.Owner ~= greece) then + return + end + + greece.Build({ Utils.Random(AlliedInfantry) }, function(units) + table.insert(AttackGroup, units[1]) + SendAttackGroup() + Trigger.AfterDelay(ProductionInterval[Map.LobbyOption("difficulty")], ProduceInfantry) + end) +end + +ProduceVehicles = function() + if GreeceWarFactory.IsDead or GreeceWarFactory.Owner ~= greece then + return + end + + greece.Build({ Utils.Random(AlliedVehicles[AlliedVehicleType]) }, function(units) + table.insert(AttackGroup, units[1]) + SendAttackGroup() + Trigger.AfterDelay(ProductionInterval[Map.LobbyOption("difficulty")], ProduceVehicles) + end) +end + +BringDDPatrol1 = function() + local units = Reinforcements.Reinforce(greece, DDPatrol1, ShipArrivePath, 0) + Utils.Do(units, function(unit) + Trigger.OnIdle(unit, function(patrols) + patrols.Patrol(DDPatrol1Path, true, 200) + end) + end) + if GreeceNavalYard.IsDead then + return + else + Trigger.OnAllKilled(units, function() + if Map.LobbyOption("difficulty") == "easy" then + Trigger.AfterDelay(DateTime.Minutes(7), BringDDPatrol1) + else + Trigger.AfterDelay(DateTime.Minutes(4), BringDDPatrol1) + end + end) + end +end + +BringDDPatrol2 = function() + local units = Reinforcements.Reinforce(greece, DDPatrol2, ShipArrivePath, 0) + Utils.Do(units, function(unit) + Trigger.OnIdle(unit, function(patrols) + patrols.Patrol(DDPatrol2Path, true, 200) + end) + end) + if GreeceNavalYard.IsDead then + return + else + Trigger.OnAllKilled(units, function() + if Map.LobbyOption("difficulty") == "easy" then + Trigger.AfterDelay(DateTime.Minutes(7), BringDDPatrol2) + else + Trigger.AfterDelay(DateTime.Minutes(4), BringDDPatrol2) + end + end) + end +end + +ActivateAI = function() + local difficulty = Map.LobbyOption("difficulty") + WTransUnits = WTransUnits[difficulty] + WTransDelays = WTransDelays[difficulty] + + local buildings = Utils.Where(Map.ActorsInWorld, function(self) return self.Owner == greece and self.HasProperty("StartBuildingRepairs") end) + Utils.Do(buildings, function(actor) + Trigger.OnDamaged(actor, function(building) + if building.Owner == greece and building.Health < building.MaxHealth * 3/4 then + building.StartBuildingRepairs() + end + end) + end) + + Trigger.AfterDelay(DateTime.Minutes(3), WTransWaves) + + Trigger.AfterDelay(AlliedVehiclesUpgradeDelay, function() AlliedVehicleType = "Upgraded" end) + + ProduceInfantry() + ProduceVehicles() + BringDDPatrol1() + Trigger.AfterDelay(DateTime.Minutes(1), BringDDPatrol2) +end diff --git a/mods/ra/maps/soviet-08a/soviet08a.lua b/mods/ra/maps/soviet-08a/soviet08a.lua new file mode 100644 index 0000000000..879c30f276 --- /dev/null +++ b/mods/ra/maps/soviet-08a/soviet08a.lua @@ -0,0 +1,166 @@ +--[[ + Copyright 2007-2018 The OpenRA Developers (see AUTHORS) + This file is part of OpenRA, which is free software. It is made + available to you under the terms of the GNU General Public License + as published by the Free Software Foundation, either version 3 of + the License, or (at your option) any later version. For more + information, see COPYING. +]] +alliedScouts = { Actor189, Actor216, Actor217, Actor218, Actor219 } + +ussrReinforcements = +{ + east = + { + actors = { "e1", "e1", "e1", "e1", "e1" }, + entryPath = { EastEntry.Location, EastUnload.Location + CVec.New(1, 0) }, + exitPath = { EastEntry.Location }, + }, + south = + { + actors = { "e4", "e4", "e1", "e1", "e1" }, + entryPath = { SouthEntry.Location, SouthUnload.Location + CVec.New(0, 1) }, + exitPath = { SouthEntry.Location } + }, + mammoth = + { + actors = { "4tnk" }, + entryPath = { SouthEntry.Location, SouthUnload.Location + CVec.New(0, 1) }, + exitPath = { SouthEntry.Location } + } +} + +Obj2ActorTriggerActivator = { Church, Actor147, Actor148, Actor149, Actor150, Actor151, Actor152, Actor153 } + +ActivateAIDelay = DateTime.Seconds(45) + +AddEastReinforcementTrigger = function() + Trigger.AfterDelay(DateTime.Seconds(30), function() + Media.PlaySpeechNotification(ussr, "ReinforcementsArrived") + local reinforcement = ussrReinforcements.east + Reinforcements.ReinforceWithTransport(ussr, "lst.reinforcement", reinforcement.actors, reinforcement.entryPath, reinforcement.exitPath) + end) +end + +AddSouthReinforcementTrigger = function() + Trigger.AfterDelay(DateTime.Seconds(60), function() + Media.PlaySpeechNotification(ussr, "ReinforcementsArrived") + local reinforcement = ussrReinforcements.south + Reinforcements.ReinforceWithTransport(ussr, "lst.reinforcement", reinforcement.actors, reinforcement.entryPath, reinforcement.exitPath) + end) +end + +AddParadropReinforcementTrigger = function() + Trigger.AfterDelay(DateTime.Seconds(90), function() + Media.PlaySpeechNotification(ussr, "ReinforcementsArrived") + scripteddrop.SendParatroopers(ScriptedParadrop.CenterPosition, false, 10) + end) +end + +ChurchAmbushTrigger = function() + if not AmbushSwitch then + local hiding = Reinforcements.Reinforce(germany, { 'e1', 'e1', 'e1', 'e1', 'e1', 'e1', 'e1', 'e3', 'e3', 'e3' }, { ChurchAmbush.Location, AmbushMove.Location }) + Utils.Do(hiding, function(actor) + IdleHunt(actor) + end) + end + AmbushSwitch = true +end + +Trigger.OnKilled(Church, function() + Actor.Create("moneycrate", true, { Owner = ussr, Location = ChurchAmbush.Location }) +end) + +Obj2TriggerFunction = function() + ussr.MarkCompletedObjective(DestroyVillageObjective) + Media.PlaySpeechNotification(ussr, "ReinforcementsArrived") + local reinforcement = ussrReinforcements.mammoth + Reinforcements.ReinforceWithTransport(ussr, "lst.reinforcement", reinforcement.actors, reinforcement.entryPath, reinforcement.exitPath) +end + +AddReinforcmentTriggers = function() + AddEastReinforcementTrigger() + AddSouthReinforcementTrigger() + AddParadropReinforcementTrigger() +end + +AddRetreatTrigger = function() + Trigger.OnEnteredProximityTrigger(Actor222.CenterPosition, WDist.FromCells(12), function(actor, id) + if actor.Owner == ussr and actor.Type == "barr" then + alliedScouts = Utils.Where(alliedScouts, function(scout) return not scout.IsDead end) + local removed + Utils.Do(alliedScouts, function(scout) + if scout.Type == "e1" and not removed then + removed = true + else + scout.Stop() + scout.Move(ScoutRetreat.Location, 1) + end + end) + Trigger.RemoveProximityTrigger(id) + end + end) +end + +Tick = function() + greece.Cash = 1000 + + if greece.HasNoRequiredUnits() and germany.HasNoRequiredUnits() then + ussr.MarkCompletedObjective(KillAll) + end + + if ussr.HasNoRequiredUnits() then + greece.MarkCompletedObjective(BeatUSSR) + end +end + +WorldLoaded = function() + ussr = Player.GetPlayer("USSR") + germany = Player.GetPlayer("Germany") + greece = Player.GetPlayer("Greece") + + Trigger.OnObjectiveAdded(ussr, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective") + end) + + KillAll = ussr.AddPrimaryObjective("Destroy all Allied units and structures.") + DestroyVillageObjective = ussr.AddSecondaryObjective("Destroy the village of Allied sympathizers.") + BeatUSSR = greece.AddPrimaryObjective("Defeat the Soviet forces.") + + Trigger.OnObjectiveCompleted(ussr, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed") + end) + Trigger.OnObjectiveFailed(ussr, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed") + end) + + Trigger.OnPlayerLost(ussr, function() + Trigger.AfterDelay(DateTime.Seconds(1), function() + Media.PlaySpeechNotification(ussr, "MissionFailed") + end) + end) + Trigger.OnPlayerWon(ussr, function() + Trigger.AfterDelay(DateTime.Seconds(1), function() + Media.PlaySpeechNotification(ussr, "MissionAccomplished") + end) + end) + + AddReinforcmentTriggers() + AddRetreatTrigger() + + scripteddrop = Actor.Create("scripteddrop", false, { Owner = ussr }) + + OnAnyDamaged(Obj2ActorTriggerActivator, ChurchAmbushTrigger) + + Trigger.OnAllRemovedFromWorld(Obj2ActorTriggerActivator, Obj2TriggerFunction) + + Camera.Position = SovietBase.CenterPosition + + Trigger.AfterDelay(ActivateAIDelay, ActivateAI) +end + +OnAnyDamaged = function(actors, func) + Utils.Do(actors, function(actor) + Trigger.OnDamaged(actor, func) + end) +end diff --git a/mods/ra/missions.yaml b/mods/ra/missions.yaml index 443fde51bc..4d73c58bd6 100644 --- a/mods/ra/missions.yaml +++ b/mods/ra/missions.yaml @@ -20,6 +20,7 @@ Soviet Campaign: ./mods/ra/maps/soviet-06a ./mods/ra/maps/soviet-06b ./mods/ra/maps/soviet-07 + ./mods/ra/maps/soviet-08a Counterstrike: ./mods/ra/maps/soviet-soldier-volkov-n-chitzkoi Aftermath: