From fdecc18ddce2ef00088014c168a0176ce44f9de5 Mon Sep 17 00:00:00 2001 From: abcdefg30 Date: Sat, 11 Oct 2014 20:49:12 +0200 Subject: [PATCH] Ported monster-tank-madness to lua --- mods/ra/maps/monster-tank-madness/map.bin | Bin 0 -> 81925 bytes mods/ra/maps/monster-tank-madness/map.png | Bin 0 -> 29220 bytes mods/ra/maps/monster-tank-madness/map.yaml | 2402 +++++++++++++++++ .../monster-tank-madness.lua | 361 +++ 4 files changed, 2763 insertions(+) create mode 100644 mods/ra/maps/monster-tank-madness/map.bin create mode 100644 mods/ra/maps/monster-tank-madness/map.png create mode 100644 mods/ra/maps/monster-tank-madness/map.yaml create mode 100644 mods/ra/maps/monster-tank-madness/monster-tank-madness.lua diff --git a/mods/ra/maps/monster-tank-madness/map.bin b/mods/ra/maps/monster-tank-madness/map.bin new file mode 100644 index 0000000000000000000000000000000000000000..00599aec5ee9c97da50b4b30b768e2afc5f8d603 GIT binary patch literal 81925 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 HWghlFSUJlV literal 0 HcmV?d00001 diff --git a/mods/ra/maps/monster-tank-madness/map.yaml b/mods/ra/maps/monster-tank-madness/map.yaml new file mode 100644 index 0000000000..d3c5a15a15 --- /dev/null +++ b/mods/ra/maps/monster-tank-madness/map.yaml @@ -0,0 +1,2402 @@ +Selectable: False + +MapFormat: 6 + +RequiresMod: ra + +Title: Monster Tank Madness + +Description: Dr. Demitri, creator of a Soviet Super Tank, wants to defect.\n\nWe planned to extract him while the Soviets were testing their new weapon, but something has gone wrong.\n\nThe Super Tanks are out of control, and Demitri is missing -- likely hiding in the village to the far south.\n\nFind our outpost and start repairs on it, then find and evacuate Demitri.\n\nAs for the tanks, we can reprogram them. Send a spy into the Soviet radar dome in the NE, turning the tanks on their creators. + +Author: Westwood Studios + +Tileset: SNOW + +MapSize: 128,128 + +Bounds: 19,16,87,88 + +UseAsShellmap: False + +Type: Mission + +Options: + Crates: False + Fog: True + Shroud: True + AllyBuildRadius: False + FragileAlliances: False + StartingCash: 5000 + ConfigurableStartingUnits: False + +Players: + PlayerReference@Greece: + Name: Greece + Playable: True + AllowBots: False + Required: True + LockRace: True + Race: allies + LockColor: True + ColorRamp: 161,134,200 + LockSpawn: True + LockTeam: True + Enemies: BadGuy, USSR, Ukraine, Turkey + PlayerReference@BadGuy: + Name: BadGuy + Race: soviet + ColorRamp: 3,255,127 + Allies: USSR + Enemies: Greece, Turkey, Ukraine + PlayerReference@USSR: + Name: USSR + Race: soviet + ColorRamp: 3,255,127 + Allies: BadGuy, Ukraine + Enemies: Greece, Turkey + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Race: allies + Enemies: Turkey + PlayerReference@Ukraine: + Name: Ukraine + Race: soviet + ColorRamp: 32,255,202 + Allies: BadGuy, USSR + Enemies: Greece, Turkey + PlayerReference@Turkey: + Name: Turkey + Race: soviet + ColorRamp: 14,123,167 + Enemies: Greece, BadGuy, USSR, Ukraine, Neutral, Outpost + PlayerReference@Outpost: + Name: Outpost + NonCombatant: True + Race: allies + Enemies: BadGuy, USSR, Ukraine, Turkey + +Actors: + Actor0: sbag + Location: 21,26 + Owner: Neutral + Actor1: sbag + Location: 22,26 + Owner: Neutral + Actor2: sbag + Location: 43,26 + Owner: Neutral + Actor3: sbag + Location: 44,26 + Owner: Neutral + Actor4: sbag + Location: 45,26 + Owner: Neutral + Actor5: sbag + Location: 45,27 + Owner: Neutral + Actor6: sbag + Location: 39,28 + Owner: Neutral + Actor7: sbag + Location: 40,28 + Owner: Neutral + Actor8: sbag + Location: 45,28 + Owner: Neutral + Actor9: sbag + Location: 39,29 + Owner: Neutral + Actor10: sbag + Location: 39,30 + Owner: Neutral + Actor11: sbag + Location: 26,31 + Owner: Neutral + Actor12: sbag + Location: 27,31 + Owner: Neutral + Actor13: sbag + Location: 28,31 + Owner: Neutral + Actor14: brik + Location: 87,31 + Owner: Neutral + Actor15: brik + Location: 88,31 + Owner: Neutral + Actor16: brik + Location: 89,31 + Owner: Neutral + Actor17: brik + Location: 90,31 + Owner: Neutral + Actor18: brik + Location: 91,31 + Owner: Neutral + Actor19: brik + Location: 92,31 + Owner: Neutral + Actor20: brik + Location: 93,31 + Owner: Neutral + Actor21: brik + Location: 94,31 + Owner: Neutral + Actor22: brik + Location: 95,31 + Owner: Neutral + Actor23: brik + Location: 96,31 + Owner: Neutral + Actor24: brik + Location: 97,31 + Owner: Neutral + Actor25: brik + Location: 98,31 + Owner: Neutral + Actor26: brik + Location: 99,31 + Owner: Neutral + Actor27: brik + Location: 100,31 + Owner: Neutral + Actor28: brik + Location: 101,31 + Owner: Neutral + Actor29: brik + Location: 102,31 + Owner: Neutral + Actor30: sbag + Location: 28,32 + Owner: Neutral + Actor31: brik + Location: 87,32 + Owner: Neutral + Actor32: brik + Location: 88,32 + Owner: Neutral + Actor33: brik + Location: 101,32 + Owner: Neutral + Actor34: brik + Location: 102,32 + Owner: Neutral + Actor35: brik + Location: 102,33 + Owner: Neutral + Actor36: brik + Location: 102,34 + Owner: Neutral + Actor37: brik + Location: 73,35 + Owner: Neutral + Actor38: brik + Location: 74,35 + Owner: Neutral + Actor39: brik + Location: 75,35 + Owner: Neutral + Actor40: brik + Location: 76,35 + Owner: Neutral + Actor41: brik + Location: 77,35 + Owner: Neutral + Actor42: brik + Location: 78,35 + Owner: Neutral + Actor43: brik + Location: 102,35 + Owner: Neutral + Actor44: brik + Location: 73,36 + Owner: Neutral + Actor45: brik + Location: 74,36 + Owner: Neutral + Actor46: brik + Location: 77,36 + Owner: Neutral + Actor47: brik + Location: 78,36 + Owner: Neutral + Actor48: brik + Location: 102,36 + Owner: Neutral + Actor49: brik + Location: 73,37 + Owner: Neutral + Actor50: brik + Location: 102,37 + Owner: Neutral + Actor51: brik + Location: 73,38 + Owner: Neutral + Actor52: brik + Location: 102,38 + Owner: Neutral + Actor53: brik + Location: 73,39 + Owner: Neutral + Actor54: brik + Location: 102,39 + Owner: Neutral + Actor55: brik + Location: 73,40 + Owner: Neutral + Actor56: brik + Location: 102,40 + Owner: Neutral + Actor57: brik + Location: 73,41 + Owner: Neutral + Actor58: brik + Location: 101,41 + Owner: Neutral + Actor59: brik + Location: 102,41 + Owner: Neutral + Actor60: brik + Location: 73,42 + Owner: Neutral + Actor61: brik + Location: 101,42 + Owner: Neutral + Actor62: brik + Location: 102,42 + Owner: Neutral + Actor63: brik + Location: 73,43 + Owner: Neutral + Actor64: brik + Location: 73,44 + Owner: Neutral + Actor65: brik + Location: 73,45 + Owner: Neutral + Actor66: brik + Location: 74,45 + Owner: Neutral + Actor67: brik + Location: 81,45 + Owner: Neutral + Actor68: brik + Location: 82,45 + Owner: Neutral + Actor69: brik + Location: 91,45 + Owner: Neutral + Actor70: brik + Location: 92,45 + Owner: Neutral + Actor71: brik + Location: 97,45 + Owner: Neutral + Actor72: brik + Location: 98,45 + Owner: Neutral + Actor73: v18 + Location: 53,46 + Owner: Neutral + Actor74: v14 + Location: 54,46 + Owner: Neutral + Actor75: v16 + Location: 55,46 + Owner: Neutral + Actor76: brik + Location: 73,46 + Owner: Neutral + Actor77: brik + Location: 74,46 + Owner: Neutral + Actor78: brik + Location: 75,46 + Owner: Neutral + Actor79: brik + Location: 76,46 + Owner: Neutral + Actor80: brik + Location: 77,46 + Owner: Neutral + Actor81: brik + Location: 78,46 + Owner: Neutral + Actor82: brik + Location: 79,46 + Owner: Neutral + Actor83: brik + Location: 80,46 + Owner: Neutral + Actor84: brik + Location: 81,46 + Owner: Neutral + Actor85: brik + Location: 82,46 + Owner: Neutral + Actor86: brik + Location: 91,46 + Owner: Neutral + Actor87: brik + Location: 92,46 + Owner: Neutral + Actor88: brik + Location: 93,46 + Owner: Neutral + Actor89: brik + Location: 94,46 + Owner: Neutral + Actor90: brik + Location: 95,46 + Owner: Neutral + Actor91: brik + Location: 96,46 + Owner: Neutral + Actor92: brik + Location: 97,46 + Owner: Neutral + Actor93: brik + Location: 98,46 + Owner: Neutral + Actor94: cycl + Location: 84,49 + Owner: Neutral + Actor95: cycl + Location: 90,49 + Owner: Neutral + Actor96: cycl + Location: 73,50 + Owner: Neutral + Actor97: cycl + Location: 74,50 + Owner: Neutral + Actor98: cycl + Location: 75,50 + Owner: Neutral + Actor99: cycl + Location: 76,50 + Owner: Neutral + Actor100: cycl + Location: 77,50 + Owner: Neutral + Actor101: cycl + Location: 78,50 + Owner: Neutral + Actor102: cycl + Location: 80,50 + Owner: Neutral + Actor103: cycl + Location: 81,50 + Owner: Neutral + Actor104: cycl + Location: 82,50 + Owner: Neutral + Actor105: cycl + Location: 83,50 + Owner: Neutral + Actor106: cycl + Location: 84,50 + Owner: Neutral + Actor107: cycl + Location: 90,50 + Owner: Neutral + Actor108: cycl + Location: 91,50 + Owner: Neutral + Actor109: cycl + Location: 92,50 + Owner: Neutral + Actor110: cycl + Location: 94,50 + Owner: Neutral + Actor111: cycl + Location: 95,50 + Owner: Neutral + Actor112: cycl + Location: 96,50 + Owner: Neutral + Actor113: cycl + Location: 97,50 + Owner: Neutral + Actor114: cycl + Location: 98,50 + Owner: Neutral + Actor115: cycl + Location: 73,51 + Owner: Neutral + Actor116: cycl + Location: 98,51 + Owner: Neutral + Actor117: cycl + Location: 73,52 + Owner: Neutral + Actor118: cycl + Location: 98,52 + Owner: Neutral + Actor119: cycl + Location: 73,53 + Owner: Neutral + Actor120: cycl + Location: 98,53 + Owner: Neutral + Actor121: cycl + Location: 73,54 + Owner: Neutral + Actor122: wood + Location: 84,54 + Owner: Neutral + Actor123: wood + Location: 85,54 + Owner: Neutral + Actor124: cycl + Location: 98,54 + Owner: Neutral + Actor125: wood + Location: 81,55 + Owner: Neutral + Actor126: v16 + Location: 82,55 + Owner: Neutral + Actor127: v15 + Location: 83,55 + Owner: Neutral + Actor128: v14 + Location: 84,55 + Owner: Neutral + Actor129: wood + Location: 85,55 + Owner: Neutral + Actor130: cycl + Location: 98,55 + Owner: Neutral + Actor131: cycl + Location: 73,56 + Owner: Neutral + Actor132: wood + Location: 81,56 + Owner: Neutral + Actor133: v17 + Location: 82,56 + Owner: Neutral + Actor134: v18 + Location: 83,56 + Owner: Neutral + Actor135: cycl + Location: 73,57 + Owner: Neutral + Actor136: wood + Location: 81,57 + Owner: Neutral + Actor137: wood + Location: 82,57 + Owner: Neutral + Actor138: wood + Location: 83,57 + Owner: Neutral + Actor139: wood + Location: 84,57 + Owner: Neutral + Actor140: wood + Location: 85,57 + Owner: Neutral + Actor141: cycl + Location: 98,57 + Owner: Neutral + Actor142: cycl + Location: 98,58 + Owner: Neutral + Actor143: cycl + Location: 25,59 + Owner: Neutral + Actor144: cycl + Location: 26,59 + Owner: Neutral + Actor145: cycl + Location: 27,59 + Owner: Neutral + Actor146: cycl + Location: 28,59 + Owner: Neutral + Actor147: cycl + Location: 73,59 + Owner: Neutral + Actor148: cycl + Location: 98,59 + Owner: Neutral + Actor149: cycl + Location: 25,60 + Owner: Neutral + Actor150: cycl + Location: 30,60 + Owner: Neutral + Actor151: cycl + Location: 31,60 + Owner: Neutral + Actor152: cycl + Location: 73,60 + Owner: Neutral + Actor153: cycl + Location: 94,60 + Owner: Neutral + Actor154: cycl + Location: 96,60 + Owner: Neutral + Actor155: cycl + Location: 98,60 + Owner: Neutral + Actor156: cycl + Location: 25,61 + Owner: Neutral + Actor157: cycl + Location: 31,61 + Owner: Neutral + Actor158: cycl + Location: 73,61 + Owner: Neutral + Actor159: cycl + Location: 74,61 + Owner: Neutral + Actor160: cycl + Location: 75,61 + Owner: Neutral + Actor161: cycl + Location: 76,61 + Owner: Neutral + Actor162: cycl + Location: 77,61 + Owner: Neutral + Actor163: cycl + Location: 79,61 + Owner: Neutral + Actor164: cycl + Location: 80,61 + Owner: Neutral + Actor165: cycl + Location: 83,61 + Owner: Neutral + Actor166: cycl + Location: 84,61 + Owner: Neutral + Actor167: cycl + Location: 85,61 + Owner: Neutral + Actor168: cycl + Location: 86,61 + Owner: Neutral + Actor169: cycl + Location: 87,61 + Owner: Neutral + Actor170: cycl + Location: 89,61 + Owner: Neutral + Actor171: cycl + Location: 90,61 + Owner: Neutral + Actor172: cycl + Location: 91,61 + Owner: Neutral + Actor173: cycl + Location: 92,61 + Owner: Neutral + Actor174: cycl + Location: 93,61 + Owner: Neutral + Actor175: cycl + Location: 94,61 + Owner: Neutral + Actor176: cycl + Location: 96,61 + Owner: Neutral + Actor177: cycl + Location: 97,61 + Owner: Neutral + Actor178: cycl + Location: 98,61 + Owner: Neutral + Actor179: cycl + Location: 25,62 + Owner: Neutral + Actor180: cycl + Location: 31,62 + Owner: Neutral + Actor181: cycl + Location: 39,62 + Owner: Neutral + Actor182: cycl + Location: 40,62 + Owner: Neutral + Actor183: cycl + Location: 80,62 + Owner: Neutral + Actor184: cycl + Location: 83,62 + Owner: Neutral + Actor185: cycl + Location: 25,63 + Owner: Neutral + Actor186: cycl + Location: 26,63 + Owner: Neutral + Actor187: cycl + Location: 27,63 + Owner: Neutral + Actor188: cycl + Location: 28,63 + Owner: Neutral + Actor189: cycl + Location: 29,63 + Owner: Neutral + Actor190: cycl + Location: 30,63 + Owner: Neutral + Actor191: cycl + Location: 31,63 + Owner: Neutral + Actor192: cycl + Location: 40,63 + Owner: Neutral + Actor193: cycl + Location: 40,64 + Owner: Neutral + Actor194: cycl + Location: 34,65 + Owner: Neutral + Actor195: cycl + Location: 35,65 + Owner: Neutral + Actor196: cycl + Location: 40,65 + Owner: Neutral + Actor197: cycl + Location: 34,66 + Owner: Neutral + Actor198: cycl + Location: 40,66 + Owner: Neutral + Actor199: cycl + Location: 34,67 + Owner: Neutral + Actor200: cycl + Location: 35,67 + Owner: Neutral + Actor201: cycl + Location: 36,67 + Owner: Neutral + Actor202: cycl + Location: 37,67 + Owner: Neutral + Actor203: cycl + Location: 38,67 + Owner: Neutral + Actor204: cycl + Location: 39,67 + Owner: Neutral + Actor205: cycl + Location: 40,67 + Owner: Neutral + Actor206: sbag + Location: 25,68 + Owner: Neutral + Actor207: sbag + Location: 25,69 + Owner: Neutral + Actor208: sbag + Location: 28,69 + Owner: Neutral + Actor209: sbag + Location: 23,70 + Owner: Neutral + Actor210: sbag + Location: 24,70 + Owner: Neutral + Actor211: sbag + Location: 25,70 + Owner: Neutral + Actor212: sbag + Location: 28,70 + Owner: Neutral + Actor213: sbag + Location: 28,71 + Owner: Neutral + Actor214: sbag + Location: 29,71 + Owner: Neutral + Actor215: sbag + Location: 30,71 + Owner: Neutral + Actor216: sbag + Location: 31,71 + Owner: Neutral + Actor217: brik + Location: 61,73 + Owner: Neutral + Actor218: brik + Location: 62,73 + Owner: Neutral + Actor219: brik + Location: 63,73 + Owner: Neutral + Actor220: brik + Location: 64,73 + Owner: Neutral + Actor221: brik + Location: 65,73 + Owner: Neutral + Actor222: brik + Location: 66,73 + Owner: Neutral + Actor223: brik + Location: 67,73 + Owner: Neutral + Actor224: brik + Location: 68,73 + Owner: Neutral + Actor225: brik + Location: 69,73 + Owner: Neutral + Actor226: brik + Location: 70,73 + Owner: Neutral + Actor227: brik + Location: 76,73 + Owner: Neutral + Actor228: brik + Location: 77,73 + Owner: Neutral + Actor229: brik + Location: 78,73 + Owner: Neutral + Actor230: brik + Location: 79,73 + Owner: Neutral + Actor231: brik + Location: 80,73 + Owner: Neutral + Actor232: brik + Location: 81,73 + Owner: Neutral + Actor233: brik + Location: 82,73 + Owner: Neutral + Actor234: brik + Location: 83,73 + Owner: Neutral + Actor235: brik + Location: 84,73 + Owner: Neutral + Actor236: brik + Location: 85,73 + Owner: Neutral + Actor237: brik + Location: 91,73 + Owner: Neutral + Actor238: brik + Location: 92,73 + Owner: Neutral + Actor239: brik + Location: 61,74 + Owner: Neutral + Actor240: brik + Location: 62,74 + Owner: Neutral + Actor241: brik + Location: 69,74 + Owner: Neutral + Actor242: brik + Location: 70,74 + Owner: Neutral + Actor243: brik + Location: 76,74 + Owner: Neutral + Actor244: brik + Location: 77,74 + Owner: Neutral + Actor245: brik + Location: 84,74 + Owner: Neutral + Actor246: brik + Location: 85,74 + Owner: Neutral + Actor247: brik + Location: 91,74 + Owner: Neutral + Actor248: brik + Location: 92,74 + Owner: Neutral + Actor249: brik + Location: 61,75 + Owner: Neutral + Actor250: brik + Location: 92,75 + Owner: Neutral + Actor251: brik + Location: 61,76 + Owner: Neutral + Actor252: brik + Location: 92,76 + Owner: Neutral + Actor253: brik + Location: 61,77 + Owner: Neutral + Actor254: brik + Location: 62,77 + Owner: Neutral + Actor255: brik + Location: 92,77 + Owner: Neutral + Actor256: brik + Location: 61,78 + Owner: Neutral + Actor257: brik + Location: 62,78 + Owner: Neutral + Actor258: sbag + Location: 77,78 + Owner: Neutral + Actor259: sbag + Location: 78,78 + Owner: Neutral + Actor260: sbag + Location: 79,78 + Owner: Neutral + Actor261: brik + Location: 92,78 + Owner: Neutral + Actor262: sbag + Location: 77,79 + Owner: Neutral + Actor263: sbag + Location: 79,79 + Owner: Neutral + Actor264: brik + Location: 92,79 + Owner: Neutral + Actor265: sbag + Location: 77,80 + Owner: Neutral + Actor266: sbag + Location: 78,80 + Owner: Neutral + Actor267: sbag + Location: 79,80 + Owner: Neutral + Actor268: brik + Location: 92,80 + Owner: Neutral + Actor269: brik + Location: 92,81 + Owner: Neutral + Actor270: brik + Location: 92,82 + Owner: Neutral + Actor271: brik + Location: 92,83 + Owner: Neutral + Actor272: brik + Location: 92,84 + Owner: Neutral + Actor273: brik + Location: 61,85 + Owner: Neutral + Actor274: brik + Location: 62,85 + Owner: Neutral + Actor275: brik + Location: 92,85 + Owner: Neutral + Actor276: brik + Location: 61,86 + Owner: Neutral + Actor277: brik + Location: 62,86 + Owner: Neutral + Actor278: sbag + Location: 77,86 + Owner: Neutral + Actor279: sbag + Location: 78,86 + Owner: Neutral + Actor280: sbag + Location: 79,86 + Owner: Neutral + Actor281: brik + Location: 92,86 + Owner: Neutral + Actor282: brik + Location: 61,87 + Owner: Neutral + Actor283: sbag + Location: 77,87 + Owner: Neutral + Actor284: sbag + Location: 79,87 + Owner: Neutral + Actor285: brik + Location: 92,87 + Owner: Neutral + Actor286: brik + Location: 61,88 + Owner: Neutral + Actor287: sbag + Location: 77,88 + Owner: Neutral + Actor288: sbag + Location: 78,88 + Owner: Neutral + Actor289: sbag + Location: 79,88 + Owner: Neutral + Actor290: brik + Location: 92,88 + Owner: Neutral + Actor291: brik + Location: 61,89 + Owner: Neutral + Actor292: brik + Location: 92,89 + Owner: Neutral + Actor293: brik + Location: 61,90 + Owner: Neutral + Actor294: brik + Location: 62,90 + Owner: Neutral + Actor295: brik + Location: 91,90 + Owner: Neutral + Actor296: brik + Location: 92,90 + Owner: Neutral + Actor297: brik + Location: 61,91 + Owner: Neutral + Actor298: brik + Location: 62,91 + Owner: Neutral + Actor299: brik + Location: 63,91 + Owner: Neutral + Actor300: brik + Location: 64,91 + Owner: Neutral + Actor301: brik + Location: 65,91 + Owner: Neutral + Actor302: brik + Location: 66,91 + Owner: Neutral + Actor303: brik + Location: 67,91 + Owner: Neutral + Actor304: brik + Location: 68,91 + Owner: Neutral + Actor305: brik + Location: 69,91 + Owner: Neutral + Actor306: brik + Location: 70,91 + Owner: Neutral + Actor307: brik + Location: 71,91 + Owner: Neutral + Actor308: brik + Location: 72,91 + Owner: Neutral + Actor309: brik + Location: 73,91 + Owner: Neutral + Actor310: brik + Location: 74,91 + Owner: Neutral + Actor311: brik + Location: 75,91 + Owner: Neutral + Actor312: brik + Location: 76,91 + Owner: Neutral + Actor313: brik + Location: 77,91 + Owner: Neutral + Actor314: brik + Location: 78,91 + Owner: Neutral + Actor315: brik + Location: 79,91 + Owner: Neutral + Actor316: brik + Location: 80,91 + Owner: Neutral + Actor317: brik + Location: 81,91 + Owner: Neutral + Actor318: brik + Location: 82,91 + Owner: Neutral + Actor319: brik + Location: 83,91 + Owner: Neutral + Actor320: brik + Location: 84,91 + Owner: Neutral + Actor321: brik + Location: 85,91 + Owner: Neutral + Actor322: brik + Location: 86,91 + Owner: Neutral + Actor323: brik + Location: 87,91 + Owner: Neutral + Actor324: brik + Location: 88,91 + Owner: Neutral + Actor325: brik + Location: 89,91 + Owner: Neutral + Actor326: brik + Location: 90,91 + Owner: Neutral + Actor327: brik + Location: 91,91 + Owner: Neutral + Actor328: brik + Location: 92,91 + Owner: Neutral + Actor329: wood + Location: 32,96 + Owner: Neutral + Actor330: v14 + Location: 30,97 + Owner: Neutral + Actor331: wood + Location: 32,97 + Owner: Neutral + Actor332: v17 + Location: 30,98 + Owner: Neutral + Actor333: v15 + Location: 31,98 + Owner: Neutral + Actor334: wood + Location: 32,98 + Owner: Neutral + Actor335: wood + Location: 31,99 + Owner: Neutral + Actor336: wood + Location: 32,99 + Owner: Neutral + Actor337: v16 + Location: 40,101 + Owner: Neutral + Actor338: v18 + Location: 38,102 + Owner: Neutral + Actor339: v17 + Location: 39,102 + Owner: Neutral + Actor340: v14 + Location: 40,102 + Owner: Neutral + Actor341: wood + Location: 36,103 + Owner: Neutral + Actor342: wood + Location: 37,103 + Owner: Neutral + Actor343: wood + Location: 38,103 + Owner: Neutral + Actor344: wood + Location: 39,103 + Owner: Neutral + Actor345: tc04 + Location: 24,19 + Owner: Neutral + Actor346: tc01 + Location: 23,22 + Owner: Neutral + Actor347: tc02 + Location: 28,23 + Owner: Neutral + Actor348: tc05 + Location: 35,21 + Owner: Neutral + Actor349: tc04 + Location: 32,19 + Owner: Neutral + Actor350: tc03 + Location: 38,17 + Owner: Neutral + Actor351: t07 + Location: 22,24 + Owner: Neutral + Actor352: t07 + Location: 43,23 + Owner: Neutral + Actor353: t06 + Location: 27,19 + Owner: Neutral + Actor354: t05 + Location: 26,24 + Owner: Neutral + Actor355: t01 + Location: 45,21 + Owner: Neutral + Actor356: tc05 + Location: 98,28 + Owner: Neutral + Actor357: tc02 + Location: 95,29 + Owner: Neutral + Actor358: tc01 + Location: 76,33 + Owner: Neutral + Actor359: tc03 + Location: 102,28 + Owner: Neutral + Actor360: tc04 + Location: 103,25 + Owner: Neutral + Actor361: tc04 + Location: 103,41 + Owner: Neutral + Actor362: tc01 + Location: 101,42 + Owner: Neutral + Actor363: tc04 + Location: 63,21 + Owner: Neutral + Actor364: tc05 + Location: 78,19 + Owner: Neutral + Actor365: tc03 + Location: 79,22 + Owner: Neutral + Actor366: tc02 + Location: 70,31 + Owner: Neutral + Actor367: tc05 + Location: 70,59 + Owner: Neutral + Actor368: tc01 + Location: 71,56 + Owner: Neutral + Actor369: tc01 + Location: 84,61 + Owner: Neutral + Actor370: tc04 + Location: 87,63 + Owner: Neutral + Actor371: tc04 + Location: 67,37 + Owner: Neutral + Actor372: tc04 + Location: 22,80 + Owner: Neutral + Actor373: tc02 + Location: 37,50 + Owner: Neutral + Actor374: tc02 + Location: 40,67 + Owner: Neutral + Actor375: tc04 + Location: 37,68 + Owner: Neutral + Actor376: tc05 + Location: 22,59 + Owner: Neutral + Actor377: tc01 + Location: 26,63 + Owner: Neutral + Actor378: t07 + Location: 26,59 + Owner: Neutral + Actor379: t06 + Location: 39,65 + Owner: Neutral + Actor380: tc02 + Location: 22,68 + Owner: Neutral + Actor381: tc01 + Location: 24,71 + Owner: Neutral + Actor382: t01 + Location: 31,33 + Owner: Neutral + Actor383: tc05 + Location: 34,46 + Owner: Neutral + Actor384: tc04 + Location: 37,45 + Owner: Neutral + Actor385: tc02 + Location: 39,41 + Owner: Neutral + Actor386: tc01 + Location: 38,39 + Owner: Neutral + Actor387: mine + Location: 49,83 + Owner: Neutral + Actor388: mine + Location: 44,79 + Owner: Neutral + Actor389: tc05 + Location: 28,82 + Owner: Neutral + Actor390: tc05 + Location: 21,97 + Owner: Neutral + Actor391: tc04 + Location: 25,99 + Owner: Neutral + Actor392: tc02 + Location: 21,100 + Owner: Neutral + Actor393: tc01 + Location: 31,94 + Owner: Neutral + Actor394: tc04 + Location: 38,95 + Owner: Neutral + Actor395: tc05 + Location: 44,101 + Owner: Neutral + Actor396: tc02 + Location: 40,102 + Owner: Neutral + Actor397: tc01 + Location: 36,101 + Owner: Neutral + Actor398: t15 + Location: 29,94 + Owner: Neutral + Actor399: tc05 + Location: 54,41 + Owner: Neutral + Actor400: tc03 + Location: 50,35 + Owner: Neutral + Actor401: tc02 + Location: 51,37 + Owner: Neutral + Actor402: tc01 + Location: 53,39 + Owner: Neutral + Actor403: tc01 + Location: 57,42 + Owner: Neutral + Actor404: t17 + Location: 59,42 + Owner: Neutral + Actor405: t13 + Location: 55,39 + Owner: Neutral + Actor406: tc04 + Location: 49,41 + Owner: Neutral + Actor407: tc01 + Location: 41,48 + Owner: Neutral + Actor408: tc05 + Location: 51,47 + Owner: Neutral + Actor409: t08 + Location: 46,50 + Owner: Neutral + Actor410: t07 + Location: 39,49 + Owner: Neutral + Actor411: t07 + Location: 43,41 + Owner: Neutral + Actor412: tc04 + Location: 48,52 + Owner: Neutral + Actor413: tc02 + Location: 46,54 + Owner: Neutral + Actor414: tc04 + Location: 75,50 + Owner: Neutral + Actor415: tc05 + Location: 95,53 + Owner: Neutral + Actor416: tc01 + Location: 76,59 + Owner: Neutral + Actor417: tc02 + Location: 80,53 + Owner: Neutral + Actor418: t01 + Location: 75,57 + Owner: Neutral + Actor419: t02 + Location: 79,51 + Owner: Neutral + Actor420: t03 + Location: 91,58 + Owner: Neutral + Actor421: tc04 + Location: 86,27 + Owner: Neutral + Actor422: tc02 + Location: 89,27 + Owner: Neutral + Actor423: tc01 + Location: 91,26 + Owner: Neutral + Actor424: weap + Location: 38,19 + Owner: Outpost + Health: 0.375 + Actor425: pbox + Location: 22,27 + Owner: Outpost + Health: 0.28125 + Actor426: pbox + Location: 44,27 + Owner: Outpost + Health: 0.3515625 + Actor427: pbox + Location: 40,29 + Owner: Outpost + Health: 0.375 + Actor428: dome + Location: 35,19 + Owner: Outpost + Health: 0.3515625 + Actor429: gun + Location: 45,25 + Owner: Outpost + Health: 0.3125 + Facing: 96 + Actor430: gun + Location: 29,30 + Owner: Outpost + Health: 0.1875 + Facing: 32 + Actor431: gun + Location: 38,29 + Owner: Outpost + Health: 0.3945313 + Facing: 96 + Actor432: tent + Location: 33,22 + Owner: Outpost + Health: 0.5 + Actor433: fix + Location: 32,28 + Owner: Outpost + Health: 0.3125 + Actor434: ftur + Location: 78,34 + Owner: BadGuy + Actor435: silo + Location: 76,38 + Owner: BadGuy + Actor436: silo + Location: 75,38 + Owner: BadGuy + Actor437: silo + Location: 75,37 + Owner: BadGuy + Actor438: silo + Location: 76,37 + Owner: BadGuy + Actor439: apwr + Location: 98,32 + Owner: BadGuy + Actor440: apwr + Location: 94,34 + Owner: BadGuy + Actor441: barr + Location: 97,40 + Owner: BadGuy + Actor442: miss + Location: 86,33 + Owner: BadGuy + SuperTankDome: dome.NoInfiltrate + Location: 90,32 + Owner: BadGuy + Actor444: ftur + Location: 91,47 + Owner: BadGuy + Actor445: ftur + Location: 82,47 + Owner: BadGuy + Actor446: ftur + Location: 86,31 + Owner: BadGuy + Actor447: tsla + Location: 93,44 + Owner: BadGuy + Actor448: tsla + Location: 80,44 + Owner: BadGuy + Actor449: apwr + Location: 95,31 + Owner: BadGuy + Actor450: spen + Location: 102,47 + Owner: BadGuy + Health: 0.875 + Actor451: fact + Location: 88,87 + Owner: USSR + Actor452: proc + Location: 68,81 + Owner: USSR + Actor453: silo + Location: 65,87 + Owner: USSR + Actor454: silo + Location: 66,88 + Owner: USSR + Actor455: silo + Location: 66,87 + Owner: USSR + Actor456: silo + Location: 65,88 + Owner: USSR + Actor457: sam + Location: 63,74 + Owner: USSR + Actor458: sam + Location: 80,74 + Owner: USSR + Actor459: apwr + Location: 73,84 + Owner: USSR + Actor460: apwr + Location: 89,75 + Owner: USSR + Actor461: apwr + Location: 69,86 + Owner: USSR + Actor462: apwr + Location: 86,76 + Owner: USSR + Actor463: barr + Location: 66,76 + Owner: USSR + Actor464: kenn + Location: 91,86 + Owner: USSR + Actor465: tsla + Location: 78,73 + Owner: USSR + Actor466: tsla + Location: 83,73 + Owner: USSR + Actor467: tsla + Location: 62,75 + Owner: USSR + Actor468: tsla + Location: 62,86 + Owner: USSR + Actor469: weap + Location: 81,82 + Owner: USSR + Actor470: ftur + Location: 69,72 + Owner: USSR + Actor471: ftur + Location: 77,72 + Owner: USSR + Actor472: ftur + Location: 60,78 + Owner: USSR + Actor473: ftur + Location: 60,85 + Owner: USSR + Actor474: ftur + Location: 85,72 + Owner: USSR + Actor475: ftur + Location: 78,79 + Owner: USSR + Actor476: ftur + Location: 78,87 + Owner: USSR + Actor477: apwr + Location: 89,78 + Owner: USSR + USSRSpen: spen + Location: 32,56 + Owner: BadGuy + Health: 0.6875 + Actor479: silo + Location: 37,61 + Owner: BadGuy + Actor480: powr + Location: 34,61 + Owner: BadGuy + Actor481: v19 + Location: 27,60 + Owner: BadGuy + Actor482: v19 + Location: 29,61 + Owner: BadGuy + Actor483: v19 + Location: 27,61 + Owner: BadGuy + Actor484: v19 + Location: 38,65 + Owner: BadGuy + Actor485: v19 + Location: 36,65 + Owner: BadGuy + Actor486: v19 + Location: 38,64 + Owner: BadGuy + Actor487: barl + Location: 26,61 + Owner: USSR + Actor488: brl3 + Location: 26,62 + Owner: USSR + Actor489: brl3 + Location: 37,65 + Owner: USSR + ExplosiveBarrel1: brl3 + Location: 38,62 + Owner: USSR + Actor491: brl3 + Location: 28,62 + Owner: USSR + ExplosiveBarrel2: brl3 + Location: 28,60 + Owner: USSR + Actor493: brl3 + Location: 30,61 + Owner: USSR + Actor494: barl + Location: 27,62 + Owner: USSR + Actor495: barl + Location: 28,61 + Owner: USSR + Actor496: barl + Location: 29,62 + Owner: USSR + Actor497: barl + Location: 39,64 + Owner: USSR + Actor498: barl + Location: 35,66 + Owner: USSR + Actor499: barl + Location: 37,64 + Owner: USSR + Actor500: barl + Location: 39,65 + Owner: USSR + Actor501: barl + Location: 39,63 + Owner: USSR + FlameTurret1: ftur + Location: 30,64 + Owner: BadGuy + FlameTurret2: ftur + Location: 33,66 + Owner: BadGuy + Actor504: brl3 + Location: 37,66 + Owner: BadGuy + Actor505: barl + Location: 36,66 + Owner: BadGuy + Actor506: barl + Location: 38,66 + Owner: BadGuy + AlliedBaseProc: proc + Location: 27,25 + Owner: Outpost + Health: 0.3476563 + FreeActor: False + AlliedBaseHarv: harv + Location: 30,26 + Owner: Neutral + Actor508: silo + Location: 36,18 + Owner: Outpost + Health: 0.5898438 + Actor509: silo + Location: 37,18 + Owner: Outpost + Health: 0.08203125 + Actor510: silo + Location: 37,19 + Owner: Outpost + Health: 0.3320313 + Actor511: apwr + Location: 26,20 + Owner: Outpost + Health: 0.25 + Actor512: apwr + Location: 23,23 + Owner: Outpost + Health: 0.1367188 + Hospital: hosp + Location: 43,43 + Owner: Neutral + DemitriChurch: v01 + Location: 28,99 + Owner: Neutral + Actor515: v02 + Location: 23,99 + Owner: Neutral + Actor516: v03 + Location: 36,96 + Owner: Neutral + Actor517: v05 + Location: 21,102 + Owner: Neutral + Actor518: v06 + Location: 30,96 + Owner: Neutral + Actor519: v06 + Location: 38,101 + Owner: Neutral + Actor520: v07 + Location: 43,103 + Owner: Neutral + Actor521: v08 + Location: 21,99 + Owner: Neutral + Actor522: apwr + Location: 72,87 + Owner: USSR + Actor523: v02 + Location: 42,47 + Owner: Neutral + Actor524: v03 + Location: 50,43 + Owner: Neutral + Actor525: v04 + Location: 42,39 + Owner: Neutral + Actor526: v05 + Location: 39,51 + Owner: Neutral + Actor527: v06 + Location: 52,45 + Owner: Neutral + Actor528: v07 + Location: 47,50 + Owner: Neutral + Actor529: v08 + Location: 45,52 + Owner: Neutral + Actor530: v09 + Location: 46,49 + Owner: Neutral + Actor531: v01 + Location: 76,52 + Owner: Ukraine + Actor532: v02 + Location: 76,58 + Owner: Ukraine + Actor533: v03 + Location: 89,53 + Owner: Ukraine + Actor534: v04 + Location: 91,59 + Owner: Ukraine + Actor535: v05 + Location: 82,51 + Owner: Ukraine + Actor536: v06 + Location: 82,54 + Owner: Ukraine + Actor537: v07 + Location: 78,60 + Owner: Ukraine + Actor538: v08 + Location: 96,53 + Owner: Ukraine + Actor539: v09 + Location: 97,52 + Owner: Ukraine + Actor540: v19 + Location: 74,55 + Owner: Ukraine + Actor541: v19 + Location: 75,55 + Owner: Ukraine + Actor542: v19 + Location: 97,60 + Owner: Ukraine + Actor443: v19 + Location: 84,56 + Owner: Ukraine + Actor544: barl + Location: 78,59 + Owner: Ukraine + Actor545: brl3 + Location: 75,59 + Owner: Ukraine + Actor546: brl3 + Location: 78,52 + Owner: Ukraine + Actor547: barl + Location: 96,52 + Owner: Ukraine + Actor548: brl3 + Location: 93,60 + Owner: Ukraine + Actor549: barl + Location: 93,59 + Owner: Ukraine + Actor550: brl3 + Location: 92,59 + Owner: Ukraine + Actor551: brl3 + Location: 73,55 + Owner: Ukraine + Actor552: barl + Location: 74,54 + Owner: Ukraine + Actor553: brl3 + Location: 75,53 + Owner: Ukraine + Actor554: brl3 + Location: 93,50 + Owner: Ukraine + Actor555: barl + Location: 94,51 + Owner: Ukraine + Actor556: brl3 + Location: 95,51 + Owner: Ukraine + Actor557: brl3 + Location: 88,61 + Owner: Ukraine + Actor558: barl + Location: 89,60 + Owner: Ukraine + Actor559: barl + Location: 90,60 + Owner: Ukraine + Actor560: barl + Location: 91,58 + Owner: Ukraine + Actor561: barl + Location: 80,60 + Owner: Ukraine + Actor562: barl + Location: 75,60 + Owner: Ukraine + Actor563: barl + Location: 78,61 + Owner: Ukraine + Actor564: brl3 + Location: 80,55 + Owner: Ukraine + Actor565: brl3 + Location: 79,54 + Owner: Ukraine + Actor566: brl3 + Location: 79,53 + Owner: Ukraine + Actor567: brl3 + Location: 80,53 + Owner: Ukraine + Actor568: brl3 + Location: 81,52 + Owner: Ukraine + Actor569: brl3 + Location: 82,53 + Owner: Ukraine + Actor570: brl3 + Location: 73,58 + Owner: Ukraine + Actor571: barl + Location: 74,58 + Owner: Ukraine + Actor572: barl + Location: 79,50 + Owner: Ukraine + Actor573: brl3 + Location: 79,51 + Owner: Ukraine + Actor574: brl3 + Location: 98,56 + Owner: Ukraine + Actor575: barl + Location: 97,57 + Owner: Ukraine + Actor576: brl3 + Location: 97,58 + Owner: Ukraine + Actor577: brl3 + Location: 97,59 + Owner: Ukraine + Actor578: brl3 + Location: 85,56 + Owner: Ukraine + Actor579: barl + Location: 86,56 + Owner: Ukraine + Actor580: brl3 + Location: 87,57 + Owner: Ukraine + Actor581: barl + Location: 88,58 + Owner: Ukraine + Actor582: barl + Location: 87,55 + Owner: Ukraine + Actor583: barl + Location: 88,54 + Owner: Ukraine + Actor584: brl3 + Location: 89,53 + Owner: Ukraine + stnk1: 5tnk + Location: 89,59 + Owner: Turkey + Facing: 0 + stnk2: 5tnk + Location: 77,57 + Owner: Turkey + Facing: 0 + stnk3: 5tnk + Location: 94,53 + Owner: Turkey + Facing: 0 + Actor588: v2rl + Location: 91,75 + Owner: USSR + Facing: 32 + Actor589: v2rl + Location: 91,89 + Owner: USSR + Facing: 32 + Actor590: badtruk + Location: 89,34 + Owner: BadGuy + Facing: 32 + Actor591: badtruk + Location: 90,35 + Owner: BadGuy + Facing: 96 + Actor592: badtruk + Location: 89,36 + Owner: BadGuy + Facing: 0 + Actor593: v2rl + Location: 32,48 + Owner: BadGuy + Facing: 160 + Actor594: 3tnk + Location: 85,86 + Owner: USSR + Facing: 0 + Actor595: v2rl + Location: 86,86 + Owner: USSR + Facing: 0 + Actor596: dtrk + Location: 74,81 + Owner: USSR + Facing: 0 + Actor597: dtrk + Location: 77,83 + Owner: USSR + Facing: 0 + Actor598: ttnk + Location: 55,61 + Owner: USSR + Facing: 0 + Actor599: bad3tnk + Location: 76,27 + Owner: BadGuy + Facing: 224 + Actor600: dtrk + Location: 86,83 + Owner: USSR + Facing: 0 + Actor601: e1 + Location: 24,71 + Owner: BadGuy + Facing: 96 + SubCell: 2 + Actor602: e1 + Location: 25,71 + Owner: BadGuy + Facing: 96 + SubCell: 2 + Actor603: e1 + Location: 28,72 + Owner: BadGuy + Facing: 192 + SubCell: 1 + Actor604: e1 + Location: 29,72 + Owner: BadGuy + Facing: 0 + SubCell: 1 + Actor605: e2 + Location: 29,70 + Owner: BadGuy + Facing: 160 + SubCell: 4 + Actor606: e2 + Location: 24,69 + Owner: BadGuy + Facing: 160 + SubCell: 4 + Actor607: e1 + Location: 81,88 + Owner: USSR + Facing: 0 + SubCell: 1 + Actor608: e1 + Location: 81,88 + Owner: USSR + Facing: 0 + SubCell: 2 + Actor609: e1 + Location: 82,88 + Owner: USSR + Facing: 0 + SubCell: 1 + Actor610: e1 + Location: 81,88 + Owner: USSR + Facing: 0 + SubCell: 0 + Actor611: e1 + Location: 81,88 + Owner: USSR + Facing: 0 + SubCell: 4 + Actor612: e3 + Location: 83,89 + Owner: USSR + Facing: 0 + SubCell: 0 + Actor613: e3 + Location: 83,89 + Owner: USSR + Facing: 0 + SubCell: 2 + Actor614: e3 + Location: 84,89 + Owner: USSR + Facing: 0 + SubCell: 1 + Actor615: e4 + Location: 85,89 + Owner: USSR + Facing: 0 + SubCell: 2 + Actor616: e4 + Location: 85,89 + Owner: USSR + Facing: 0 + SubCell: 3 + Actor617: e4 + Location: 85,90 + Owner: USSR + Facing: 0 + SubCell: 2 + Actor618: e1 + Location: 61,23 + Owner: BadGuy + Facing: 160 + SubCell: 0 + Actor619: e1 + Location: 74,26 + Owner: BadGuy + Facing: 0 + SubCell: 1 + Actor620: e1 + Location: 75,25 + Owner: BadGuy + Facing: 0 + SubCell: 4 + Actor621: e2 + Location: 78,19 + Owner: BadGuy + Facing: 192 + SubCell: 0 + Actor622: e2 + Location: 79,19 + Owner: BadGuy + Facing: 192 + SubCell: 3 + Actor623: dog + Location: 61,24 + Owner: BadGuy + Facing: 160 + SubCell: 2 + Actor624: dog + Location: 60,24 + Owner: BadGuy + Facing: 160 + SubCell: 2 + Actor625: dog + Location: 74,25 + Owner: BadGuy + Facing: 224 + SubCell: 2 + DemitriLZ: waypoint + Location: 30,21 + Owner: Neutral + StartEntryPoint: waypoint + Location: 19,91 + Owner: Neutral + DemitriChurchSpawnPoint: waypoint + Location: 29,100 + Owner: Neutral + StartMovePoint: waypoint + Location: 25,81 + Owner: Neutral + StartBridgeEndPoint: waypoint + Location: 25,85 + Owner: Neutral + AlliedBaseTopLeft: waypoint + Location: 19,16 + Owner: Neutral + HospitalCivilianSpawnPoint: waypoint + Location: 44,43 + Owner: Neutral + HospitalSuperTankPoint: waypoint + Location: 47,46 + Owner: Neutral + ProvingGroundsCameraPoint: waypoint + Location: 85,55 + Owner: Neutral + AlliedBaseBottomRight: waypoint + Location: 45,32 + Owner: Neutral + AlliedBaseMovePoint: waypoint + Location: 43,20 + Owner: Neutral + DemitriTriggerAreaCenter: waypoint + Location: 30,101 + Owner: Neutral + AlliedBaseEntryPoint: waypoint + Location: 42,16 + Owner: Neutral + Actor507: v11 + Location: 97,56 + Owner: Ukraine + Actor513: brl3 + Location: 85,56 + Owner: Ukraine + Actor514: brl3 + Location: 97,59 + Owner: Ukraine + AlliedBaseEntryRight: waypoint + Location: 29,32 + Owner: Neutral + AlliedBaseEntryLeft: waypoint + Location: 19,33 + Owner: Neutral + SuperTankHuntWaypoint1: waypoint + Location: 96,35 + Owner: Neutral + SuperTankHuntWaypoint2: waypoint + Location: 78,31 + Owner: Neutral + SuperTankHuntWaypoint3: waypoint + Location: 84,84 + Owner: Neutral + SuperTankHuntWaypoint4: waypoint + Location: 65,78 + Owner: Neutral + +Smudges: + +Rules: + Player: + -ConquestVictoryConditions: + MissionObjectives: + EarlyGameOver: true + World: + -CrateDrop: + -SpawnMPUnits: + -MPStartLocations: + LuaScript: + Scripts: monster-tank-madness.lua + ObjectivesPanel: + PanelName: MISSION_OBJECTIVES + ^Building: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Infantry: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Vehicle: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Tank: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^CivBuilding: + Explodes: + Weapon: BarrelExplode + EmptyWeapon: BarrelExplode + DEMITRI: + Inherits: DELPHI + Tooltip: + Name: Dr. Demitri + RenderInfantry: + Image: DELPHI + Passenger: + CargoType: Demitri + TRAN: + RevealsShroud: + Range: 0c0 + Cargo: + Types: Demitri + MaxWeight: 1 + -Selectable: + LST: + Cargo: + Types: Infantry, Vehicle, Demitri + JEEP: + Cargo: + Types: Infantry, Demitri + PBOX: + Cargo: + Types: Infantry, Demitri + 5TNK: + Inherits: ^Tank + Valued: + Cost: 10000 + Tooltip: + Name: Super Tank + GenericName: Super Tank + Health: + HP: 20000 + Armor: + Type: Concrete + Mobile: + Speed: 42 + Crushes: wall, mine, crate, infantry + RevealsShroud: + Range: 6c0 + Turreted: + ROT: 1 + Armament@PRIMARY: + Weapon: SuperTankPrimary + LocalOffset: 900,180,340, 900,-180,340 + Recoil: 171 + RecoilRecovery: 30 + MuzzleSequence: muzzle + Armament@SECONDARY: + Name: secondary + Weapon: MammothTusk + LocalOffset: -85,384,340, -85,-384,340 + LocalYaw: -100,100 + Recoil: 43 + MuzzleSequence: muzzle + AttackTurreted: + WithMuzzleFlash: + RenderUnit: + Image: 4TNK + WithTurret: + AutoTarget: + Explodes: + Weapon: MiniNuke + EmptyWeapon: MiniNuke + LeavesHusk: + HuskActor: 5TNK.Husk + SelfHealing: + Step: 1 + Ticks: 1 + HealIfBelow: 50% + DamageCooldown: 150 + Selectable: + Bounds: 44,38,0,-4 + 5TNK.Husk: + Inherits: ^Husk + Tooltip: + Name: Husk (Super Tank) + RenderUnit: + Image: 4TNK + ThrowsParticle@turret: + Anim: turret + Health: + HP: 2000 + DOME.NoInfiltrate: + Inherits: DOME + Buildable: + Prerequisites: ~disabled + RenderBuilding: + Image: DOME + -InfiltrateForExploration: + TargetableBuilding: + TargetTypes: Ground, C4, DetonateAttack, MissionObjective + SPY: + Infiltrates: + Types: SpyInfiltrate, MissionObjective + BAD3TNK: + Inherits: 3TNK + Buildable: + Prerequisites: ~disabled + RenderUnit: + Image: 3TNK + -EjectOnDeath: + BADTRUK: + Inherits: TRUK + Buildable: + Prerequisites: ~disabled + RenderUnit: + Image: TRUK + -EjectOnDeath: + SS: + Buildable: + Prerequisites: ~disabled + AGUN: + Buildable: + Prerequisites: ~disabled + MSUB: + Buildable: + Prerequisites: ~disabled + DD: + Buildable: + Prerequisites: ~disabled + CA: + Buildable: + Prerequisites: ~disabled + PT: + Buildable: + Prerequisites: ~disabled + MSLO: + Buildable: + Prerequisites: ~disabled + SYRD: + Buildable: + Prerequisites: ~disabled + SPEN: + Buildable: + Prerequisites: ~disabled + IRON: + Buildable: + Prerequisites: ~disabled + PDOX: + Buildable: + Prerequisites: ~disabled + SAM: + Buildable: + Prerequisites: ~disabled + HPAD: + Buildable: + Prerequisites: ~disabled + AFLD: + Buildable: + Prerequisites: ~disabled + ATEK: + Buildable: + Prerequisites: ~disabled + STEK: + Buildable: + Prerequisites: ~disabled + 4TNK: + Buildable: + Prerequisites: ~disabled + MCV: + Buildable: + Prerequisites: ~disabled + MNLY.AP: + Buildable: + Prerequisites: ~disabled + MNLY.AT: + Buildable: + Prerequisites: ~disabled + TTNK: + Buildable: + Prerequisites: ~disabled + CTNK: + Buildable: + Prerequisites: ~disabled + MGG: + Buildable: + Prerequisites: ~disabled + GAP: + Buildable: + Prerequisites: ~disabled + MRJ: + Buildable: + Prerequisites: ~disabled + E7: + Buildable: + Prerequisites: ~disabled + SHOK: + Buildable: + Prerequisites: ~disabled + STNK: + Buildable: + Prerequisites: ~disabled + DTRK: + Buildable: + Prerequisites: ~disabled + QTNK: + Buildable: + Prerequisites: ~disabled + CAMERA.Large: + Inherits: CAMERA + RevealsShroud: + Range: 1000 + +Sequences: + +VoxelSequences: + +Weapons: + FireballLauncher: + Projectile: + High: True + TurretGun: + Projectile: + High: True + SuperTankPrimary: + ROF: 70 + Range: 4c768 + Report: TURRET1.AUD + Burst: 2 + InvalidTargets: Air, Infantry + Projectile: Bullet + Speed: 682 + Image: 120MM + Warhead@1Dam: SpreadDamage + Spread: 128 + Damage: 50 + DeathType: 4 + InvalidTargets: Air, Infantry + Versus: + None: 20 + Wood: 75 + Light: 75 + Concrete: 50 + Warhead@2Smu: LeaveSmudge + SmudgeType: Crater + Warhead@3EffGround: CreateEffect + Explosion: small_explosion + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: small_splash + ValidImpactTypes: Water + +Voices: + +Notifications: + +Translations: diff --git a/mods/ra/maps/monster-tank-madness/monster-tank-madness.lua b/mods/ra/maps/monster-tank-madness/monster-tank-madness.lua new file mode 100644 index 0000000000..8569007426 --- /dev/null +++ b/mods/ra/maps/monster-tank-madness/monster-tank-madness.lua @@ -0,0 +1,361 @@ +AlliedUnits = +{ + { 0, { "1tnk", "1tnk", "2tnk", "2tnk" } }, + { Utils.Seconds(3), { "e1", "e1", "e1", "e3", "e3" } }, + { Utils.Seconds(7), { "e6" } } +} +ReinforceBaseUnits = { "1tnk", "1tnk", "2tnk", "arty", "arty" } +CivilianEvacuees = { "c1", "c2", "c5", "c7", "c8" } +USSROutpostFlameTurrets = { FlameTurret1, FlameTurret2 } +ExplosiveBarrels = { ExplosiveBarrel1, ExplosiveBarrel2 } +SuperTanks = { stnk1, stnk2, stnk3 } +SuperTankMoveWaypoints = { HospitalSuperTankPoint, AlliedBaseBottomRight, DemitriTriggerAreaCenter, DemitriLZ } +SuperTankMove = 1 +SuperTankHuntWaypoints = { SuperTankHuntWaypoint1, SuperTankHuntWaypoint2, SuperTankHuntWaypoint3, SuperTankHuntWaypoint4 } +SuperTankHunt = 1 +SuperTankHuntCounter = 1 +ExtractionHeli = "tran" +ExtractionWaypoint = CPos.New(DemitriLZ.Location.X, 0) +ExtractionLZ = DemitriLZ.Location +BeachTrigger = { CPos.New(19, 44), CPos.New(20, 44), CPos.New(21, 44), CPos.New(22, 44), CPos.New(22, 45), CPos.New(23, 45), CPos.New(22, 44), CPos.New(24, 45), CPos.New(24, 46), CPos.New(24, 47), CPos.New(25, 47), CPos.New(25, 48) } +SetupAlliedBaseTrigger = { CPos.New(19, 33), CPos.New(20, 33), CPos.New(21, 33), CPos.New(22, 33), CPos.New(23, 33), CPos.New(24, 33), CPos.New(25, 33), CPos.New(26, 33), CPos.New(27, 33), CPos.New(28, 33) } +DemitriAreaTrigger = { CPos.New(32, 98), CPos.New(32, 99), CPos.New(33, 99), CPos.New(33, 100), CPos.New(33, 101), CPos.New(33, 102), CPos.New(32, 102), CPos.New(32, 103) } +HospitalAreaTrigger = { CPos.New(43, 41), CPos.New(44, 41), CPos.New(45, 41), CPos.New(46, 41), CPos.New(46, 42), CPos.New(46, 43), CPos.New(46, 44), CPos.New(46, 45), CPos.New(46, 46), CPos.New(45, 46), CPos.New(44, 46), CPos.New(43, 46) } + + +EvacuateCivilians = function() + local evacuees = Reinforcements.Reinforce(neutral, CivilianEvacuees, { HospitalCivilianSpawnPoint.Location }, 0) + + Trigger.OnAnyKilled(evacuees, function() + player.MarkFailedObjective(RescueCivilians) + end) + Trigger.OnAllRemovedFromWorld(evacuees, function() + player.MarkCompletedObjective(RescueCivilians) + end) + + Utils.Do(evacuees, function(civ) + Trigger.OnIdle(civ, function() + if civ.Location == AlliedBaseEntryPoint.Location then + civ.Destroy() + else + civ.Move(AlliedBaseEntryPoint.Location) + end + end) + end) +end + +SpawnAndMoveAlliedBaseUnits = function() + Media.PlaySpeechNotification(player, "ReinforcementsArrived") + Reinforcements.Reinforce(player, ReinforceBaseUnits, { AlliedBaseEntryPoint.Location, AlliedBaseMovePoint.Location }, 18) +end + +SetupAlliedBase = function() + local alliedOutpost = Map.ActorsInBox(AlliedBaseTopLeft.CenterPosition, AlliedBaseBottomRight.CenterPosition, + function(self) return self.Owner == outpost end) + + Media.PlaySoundNotification(player, "BaseSetup") + Utils.Do(alliedOutpost, function(building) + building.Owner = player + end) + + AlliedBaseHarv.Owner = player + AlliedBaseHarv.FindResources() + + FindDemitri = player.AddPrimaryObjective("Find Dr. Demitri. He is likely hiding in the village\n to the far south.") + InfiltrateRadarDome = player.AddPrimaryObjective("Reprogram the super tanks by sending a spy into\n the Soviet radar dome.") + DefendOutpost = player.AddSecondaryObjective("Defend and repair our outpost.") + player.MarkCompletedObjective(FindOutpost) + + Trigger.AfterDelay(Utils.Seconds(1), function() -- don't fail the Objective instantly + Trigger.OnAllRemovedFromWorld(alliedOutpost, function() player.MarkFailedObjective(DefendOutpost) end) + end) + + Trigger.AfterDelay(Utils.Minutes(1) + Utils.Seconds(40), function() + if not SuperTankDomeIsInfiltrated then + SuperTankAttack = true + Utils.Do(SuperTanks, function(tnk) + if not tnk.IsDead then + Trigger.ClearAll(tnk) + Trigger.OnIdle(tnk, function() + if SuperTankAttack then + if tnk.Location == SuperTankMoveWaypoints[SuperTankMove].Location then + SuperTankMove = SuperTankMove + 1 + if SuperTankMove == 5 then + SuperTankAttack = false + end + else + tnk.AttackMove(SuperTankMoveWaypoints[SuperTankMove].Location, 2) + end + end + end) + end + end) + end + end) +end + +SendAlliedUnits = function() + Camera.Position = StartEntryPoint.CenterPosition + Actor.Create("camera" ,true , { Owner = player, Location = ProvingGroundsCameraPoint.Location }) + Actor.Create("camera" ,true , { Owner = ussr, Location = USSRSpen.Location }) + + Trigger.AfterDelay(Utils.Seconds(1), function() Media.PlaySpeechNotification(player, "ReinforcementsArrived") end) + --To avoid overlapping "battlecontrol initialized" and "reinforcements have arrived" + Utils.Do(AlliedUnits, function(table) + Trigger.AfterDelay(table[1], function() + Reinforcements.Reinforce(player, table[2], { StartEntryPoint.Location, StartMovePoint.Location }, 18) + end) + end) + + Trigger.AfterDelay(Utils.Seconds(1), function() InitialUnitsArrived = true end) +end + +SuperTankDomeInfiltrated = function() + turkey.SetStance(player, "Ally") + turkey.SetStance(neutral, "Ally") + + SuperTankAttack = true + Utils.Do(SuperTanks, function(tnk) + if not tnk.IsDead then + Trigger.ClearAll(tnk) + tnk.Stop() + if tnk.Location.Y > 61 then + SuperTankHunt = 4 + SuperTankHuntCounter = -1 + end + Trigger.OnIdle(tnk, function() + if SuperTankAttack then + if tnk.Location == SuperTankHuntWaypoints[SuperTankHunt].Location then + SuperTankHunt = SuperTankHunt + SuperTankHuntCounter + if SuperTankHunt == 0 or SuperTankHunt == 5 then + SuperTankAttack = false + end + else + tnk.AttackMove(SuperTankHuntWaypoints[SuperTankHunt].Location, 2) + end + else + tnk.Hunt() + end + end) + end + end) + + player.MarkCompletedObjective(InfiltrateRadarDome) + Trigger.AfterDelay(Utils.Minutes(3), SuperTanksDestruction) + + Trigger.AfterDelay(Utils.Seconds(2), function() + Media.PlaySpeechNotification(player, "ControlCenterDeactivated") + + Trigger.AfterDelay(Utils.Seconds(3), function() + Media.DisplayMessage("In 3 minutes the super tanks will self destruct.") + Media.PlaySpeechNotification(player, "WarningThreeMinutesRemaining") + end) + end) +end + +SuperTanksDestruction = function() + local badGuys = Map.ActorsInBox(Map.TopLeft, Map.BottomRight, + function(self) return self.Owner == badguy and self.HasProperty("Health") end) + + Utils.Do(badGuys, function(unit) + unit.Kill() + end) + + Utils.Do(SuperTanks, function(tnk) + if not tnk.IsDead then + Trigger.ClearAll(tnk) + tnk.Kill() + end + end) + + player.MarkCompletedObjective(DefendOutpost) +end + +CreateDemitri = function() + local demitri = Actor.Create("demitri", true, { Owner = player, Location = DemitriChurchSpawnPoint.Location }) + demitri.Move(DemitriTriggerAreaCenter.Location) + + Media.PlaySpeechNotification(player, "TargetFreed") + EvacuateDemitri = player.AddPrimaryObjective("Evacuate Dr. Demitri with the helicopter waiting\n at our outpost.") + player.MarkCompletedObjective(FindDemitri) + + local flarepos = CPos.New(DemitriLZ.Location.X, DemitriLZ.Location.Y - 1) + local demitriLZFlare = Actor.Create("flare", true, { Owner = player, Location = flarepos }) + Trigger.AfterDelay(Utils.Seconds(3), function() Media.PlaySpeechNotification(player, "SignalFlareNorth") end) + + local demitriChinook = Reinforcements.ReinforceWithTransport(player, ExtractionHeli, nil, { ExtractionWaypoint, ExtractionLZ })[1] + + Trigger.OnAnyKilled({ demitri, demitriChinook }, function() + player.MarkFailedObjective(EvacuateDemitri) + end) + + Trigger.OnRemovedFromWorld(demitriChinook, function() + if not demitriChinook.IsDead then + Media.PlaySpeechNotification(player, "TargetRescued") + Trigger.AfterDelay(Utils.Seconds(1), function() player.MarkCompletedObjective(EvacuateDemitri) end) + Trigger.AfterDelay(Utils.Seconds(3), SpawnAndMoveAlliedBaseUnits) + end + end) + Trigger.OnRemovedFromWorld(demitri, function() + if not demitriChinook.IsDead and demitriChinook.HasPassengers then + demitriChinook.Move(ExtractionWaypoint) + Trigger.OnIdle(demitriChinook, demitriChinook.Destroy) + demitriLZFlare.Destroy() + end + end) +end + +Tick = function() + ussr.Resources = ussr.Resources - (0.01 * ussr.ResourceCapacity / 25) + + if InitialUnitsArrived then -- don't fail the mission straight at the beginning + if not DemitriFound or not SuperTankDomeIsInfiltrated then + if player.HasNoRequiredUnits() then + player.MarkFailedObjective(EliminateSuperTanks) + end + end + end +end + +InitPlayers = function() + player = Player.GetPlayer("Greece") + neutral = Player.GetPlayer("Neutral") + outpost = Player.GetPlayer("Outpost") + badguy = Player.GetPlayer("BadGuy") + ussr = Player.GetPlayer("USSR") + ukraine = Player.GetPlayer("Ukraine") + turkey = Player.GetPlayer("Turkey") + + player.Cash = 0 + ussr.Cash = 2000 + --badguy.Resources = badguy.ResourceCapacity -- doesn't work, workaround below + Trigger.OnCapture(Actor479, function() + player.Cash = player.Cash + Utils.RandomInteger(1200, 1300) + end) +end + +InitObjectives = function() + Trigger.OnObjectiveAdded(player, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective") + end) + + EliminateSuperTanks = player.AddPrimaryObjective("Eliminate these super tanks.") + CrossRiver = player.AddPrimaryObjective("Find a way to transport your forces to the mainland") + FindOutpost = player.AddPrimaryObjective("Find our outpost and start repairs on it.") + RescueCivilians = player.AddSecondaryObjective("Evacuate all civilians from the hospital.") + BadGuyObj = badguy.AddPrimaryObjective("Deny the destruction of the super tanks.") + USSRObj = ussr.AddPrimaryObjective("Deny the destruction of the super tanks.") + UkraineObj = ukraine.AddPrimaryObjective("Survive.") + TurkeyObj = turkey.AddPrimaryObjective("Destroy.") + + 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.OnPlayerLost(player, function() + Media.PlaySpeechNotification(player, "Lose") + + ussr.MarkCompletedObjective(USSRObj) + badguy.MarkCompletedObjective(BadGuyObj) + ukraine.MarkCompletedObjective(UkraineObj) + turkey.MarkCompletedObjective(TurkeyObj) + end) + Trigger.OnPlayerWon(player, function() + Media.PlaySpeechNotification(player, "Win") + Media.DisplayMessage("Dr. Demitri has been extracted and the super tanks have been dealt with.") + + ussr.MarkFailedObjective(USSRObj) + badguy.MarkFailedObjective(BadGuyObj) + ukraine.MarkFailedObjective(UkraineObj) + turkey.MarkFailedObjective(TurkeyObj) + end) +end + +InitTriggers = function() + Trigger.OnAllKilled(SuperTanks, function() + Trigger.AfterDelay(Utils.Seconds(3), function() player.MarkCompletedObjective(EliminateSuperTanks) end) + end) + + Trigger.OnKilled(SuperTankDome, function() + if not SuperTankDomeIsInfiltrated then + player.MarkFailedObjective(InfiltrateRadarDome) + end + end) + Trigger.OnInfiltrated(SuperTankDome, function() + if not SuperTankDomeIsInfiltrated then + SuperTankDomeIsInfiltrated = true + SuperTankDomeInfiltrated() + end + end) + Trigger.OnCapture(SuperTankDome, function() + if not SuperTankDomeIsInfiltrated then + SuperTankDomeIsInfiltrated = true + SuperTankDomeInfiltrated() + end + end) + + Trigger.OnAnyKilled(USSROutpostFlameTurrets, function() + Utils.Do(ExplosiveBarrels, function(barrel) + if not barrel.IsDead then barrel.Kill() end + end) + end) + + Trigger.OnKilled(DemitriChurch, function() + if not DemitriFound then + player.MarkFailedObjective(FindDemitri) + end + end) + + Trigger.OnKilled(Hospital, function() + if not HospitalEvacuated then + HospitalEvacuated = true + player.MarkFailedObjective(RescueCivilians) + end + end) + + beachReached = false + Trigger.OnEnteredFootprint(BeachTrigger, function(a, id) + if not beachReached and a.Owner == player then + beachReached = true + Trigger.RemoveFootprintTrigger(id) + player.MarkCompletedObjective(CrossRiver) + end + end) + + Trigger.OnEnteredFootprint(SetupAlliedBaseTrigger, function(a, id) + if not outpostReached and a.Owner == player then + outpostReached = true + Trigger.RemoveFootprintTrigger(id) + SetupAlliedBase() + end + end) + + Trigger.OnEnteredFootprint(DemitriAreaTrigger, function(a, id) + if not DemitriFound and a.Owner == player then + DemitriFound = true + Trigger.RemoveFootprintTrigger(id) + CreateDemitri() + end + end) + + Trigger.OnEnteredFootprint(HospitalAreaTrigger, function(a, id) + if not HospitalEvacuated and a.Owner == player then + HospitalEvacuated = true + Trigger.RemoveFootprintTrigger(id) + EvacuateCivilians() + end + end) +end + +WorldLoaded = function() + + InitPlayers() + InitObjectives() + InitTriggers() + + SendAlliedUnits() +end +