Add Aftermath mission Shock Therapy
This commit is contained in:
BIN
mods/ra/maps/shock-therapy/map.bin
Normal file
BIN
mods/ra/maps/shock-therapy/map.bin
Normal file
Binary file not shown.
BIN
mods/ra/maps/shock-therapy/map.png
Normal file
BIN
mods/ra/maps/shock-therapy/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
998
mods/ra/maps/shock-therapy/map.yaml
Normal file
998
mods/ra/maps/shock-therapy/map.yaml
Normal file
@@ -0,0 +1,998 @@
|
|||||||
|
MapFormat: 11
|
||||||
|
|
||||||
|
RequiresMod: ra
|
||||||
|
|
||||||
|
Title: Shock Therapy
|
||||||
|
|
||||||
|
Author: Westwood Studios
|
||||||
|
|
||||||
|
Tileset: TEMPERAT
|
||||||
|
|
||||||
|
MapSize: 128,128
|
||||||
|
|
||||||
|
Bounds: 26,32,73,67
|
||||||
|
|
||||||
|
Visibility: MissionSelector
|
||||||
|
|
||||||
|
Categories: Mission
|
||||||
|
|
||||||
|
LockPreview: True
|
||||||
|
|
||||||
|
Players:
|
||||||
|
PlayerReference@Neutral:
|
||||||
|
Name: Neutral
|
||||||
|
OwnsWorld: True
|
||||||
|
NonCombatant: True
|
||||||
|
Faction: england
|
||||||
|
PlayerReference@Spain:
|
||||||
|
Name: Spain
|
||||||
|
Faction: allies
|
||||||
|
Color: F6D679
|
||||||
|
Allies: Greece, GoodGuy
|
||||||
|
Enemies: USSR
|
||||||
|
PlayerReference@Greece:
|
||||||
|
Name: Greece
|
||||||
|
Faction: allies
|
||||||
|
Color: E2E6F6
|
||||||
|
Allies: Spain, GoodGuy
|
||||||
|
Enemies: USSR
|
||||||
|
PlayerReference@GoodGuy:
|
||||||
|
Name: GoodGuy
|
||||||
|
Faction: allies
|
||||||
|
Color: E2E6F6
|
||||||
|
Allies: Spain, Greece
|
||||||
|
Enemies: USSR
|
||||||
|
PlayerReference@USSR:
|
||||||
|
Name: USSR
|
||||||
|
AllowBots: False
|
||||||
|
Playable: True
|
||||||
|
Required: True
|
||||||
|
LockFaction: True
|
||||||
|
Faction: soviet
|
||||||
|
LockColor: True
|
||||||
|
Color: FE1100
|
||||||
|
LockSpawn: True
|
||||||
|
LockTeam: True
|
||||||
|
Enemies: Greece, GoodGuy, Spain
|
||||||
|
|
||||||
|
Actors:
|
||||||
|
Actor0: sbag
|
||||||
|
Location: 26,39
|
||||||
|
Owner: Greece
|
||||||
|
Actor1: sbag
|
||||||
|
Location: 27,39
|
||||||
|
Owner: Greece
|
||||||
|
Actor2: sbag
|
||||||
|
Location: 28,39
|
||||||
|
Owner: Greece
|
||||||
|
Actor3: sbag
|
||||||
|
Location: 29,39
|
||||||
|
Owner: Greece
|
||||||
|
Actor4: sbag
|
||||||
|
Location: 30,39
|
||||||
|
Owner: Greece
|
||||||
|
Actor5: sbag
|
||||||
|
Location: 26,40
|
||||||
|
Owner: Greece
|
||||||
|
Actor6: sbag
|
||||||
|
Location: 30,40
|
||||||
|
Owner: Greece
|
||||||
|
Actor7: sbag
|
||||||
|
Location: 31,40
|
||||||
|
Owner: Greece
|
||||||
|
Actor8: sbag
|
||||||
|
Location: 26,41
|
||||||
|
Owner: Greece
|
||||||
|
Actor9: sbag
|
||||||
|
Location: 31,41
|
||||||
|
Owner: Greece
|
||||||
|
Actor10: sbag
|
||||||
|
Location: 32,41
|
||||||
|
Owner: Greece
|
||||||
|
Actor11: sbag
|
||||||
|
Location: 26,42
|
||||||
|
Owner: Greece
|
||||||
|
Actor12: sbag
|
||||||
|
Location: 32,42
|
||||||
|
Owner: Greece
|
||||||
|
Actor13: sbag
|
||||||
|
Location: 33,42
|
||||||
|
Owner: Greece
|
||||||
|
Actor14: sbag
|
||||||
|
Location: 34,42
|
||||||
|
Owner: Greece
|
||||||
|
Actor15: sbag
|
||||||
|
Location: 35,42
|
||||||
|
Owner: Greece
|
||||||
|
Actor16: sbag
|
||||||
|
Location: 26,43
|
||||||
|
Owner: Greece
|
||||||
|
Actor17: sbag
|
||||||
|
Location: 35,43
|
||||||
|
Owner: Greece
|
||||||
|
Actor18: sbag
|
||||||
|
Location: 36,43
|
||||||
|
Owner: Greece
|
||||||
|
Actor19: sbag
|
||||||
|
Location: 37,43
|
||||||
|
Owner: Greece
|
||||||
|
Actor20: sbag
|
||||||
|
Location: 26,44
|
||||||
|
Owner: Greece
|
||||||
|
Actor21: sbag
|
||||||
|
Location: 36,44
|
||||||
|
Owner: Greece
|
||||||
|
Actor22: sbag
|
||||||
|
Location: 37,44
|
||||||
|
Owner: Greece
|
||||||
|
Actor23: sbag
|
||||||
|
Location: 26,45
|
||||||
|
Owner: Greece
|
||||||
|
Actor24: sbag
|
||||||
|
Location: 36,45
|
||||||
|
Owner: Greece
|
||||||
|
Actor25: sbag
|
||||||
|
Location: 37,45
|
||||||
|
Owner: Greece
|
||||||
|
Actor26: sbag
|
||||||
|
Location: 26,46
|
||||||
|
Owner: Greece
|
||||||
|
Actor27: sbag
|
||||||
|
Location: 26,47
|
||||||
|
Owner: Greece
|
||||||
|
Actor28: sbag
|
||||||
|
Location: 26,48
|
||||||
|
Owner: Greece
|
||||||
|
Actor29: sbag
|
||||||
|
Location: 26,49
|
||||||
|
Owner: Greece
|
||||||
|
Actor30: sbag
|
||||||
|
Location: 36,49
|
||||||
|
Owner: Greece
|
||||||
|
Actor31: sbag
|
||||||
|
Location: 37,49
|
||||||
|
Owner: Greece
|
||||||
|
Actor32: sbag
|
||||||
|
Location: 26,50
|
||||||
|
Owner: Greece
|
||||||
|
Actor33: sbag
|
||||||
|
Location: 36,50
|
||||||
|
Owner: Greece
|
||||||
|
Actor34: sbag
|
||||||
|
Location: 37,50
|
||||||
|
Owner: Greece
|
||||||
|
Actor35: sbag
|
||||||
|
Location: 26,51
|
||||||
|
Owner: Greece
|
||||||
|
Actor36: sbag
|
||||||
|
Location: 36,51
|
||||||
|
Owner: Greece
|
||||||
|
Actor37: sbag
|
||||||
|
Location: 37,51
|
||||||
|
Owner: Greece
|
||||||
|
Actor38: sbag
|
||||||
|
Location: 26,52
|
||||||
|
Owner: Greece
|
||||||
|
Actor39: sbag
|
||||||
|
Location: 37,52
|
||||||
|
Owner: Greece
|
||||||
|
Actor40: sbag
|
||||||
|
Location: 26,53
|
||||||
|
Owner: Greece
|
||||||
|
Actor41: sbag
|
||||||
|
Location: 36,53
|
||||||
|
Owner: Greece
|
||||||
|
Actor42: sbag
|
||||||
|
Location: 37,53
|
||||||
|
Owner: Greece
|
||||||
|
Actor43: sbag
|
||||||
|
Location: 26,54
|
||||||
|
Owner: Greece
|
||||||
|
Actor44: sbag
|
||||||
|
Location: 36,54
|
||||||
|
Owner: Greece
|
||||||
|
Actor45: sbag
|
||||||
|
Location: 26,55
|
||||||
|
Owner: Greece
|
||||||
|
Actor46: sbag
|
||||||
|
Location: 36,55
|
||||||
|
Owner: Greece
|
||||||
|
Actor47: sbag
|
||||||
|
Location: 26,56
|
||||||
|
Owner: Greece
|
||||||
|
Actor48: sbag
|
||||||
|
Location: 36,56
|
||||||
|
Owner: Greece
|
||||||
|
Actor49: sbag
|
||||||
|
Location: 26,57
|
||||||
|
Owner: Greece
|
||||||
|
Actor50: sbag
|
||||||
|
Location: 27,57
|
||||||
|
Owner: Greece
|
||||||
|
Actor51: sbag
|
||||||
|
Location: 28,57
|
||||||
|
Owner: Greece
|
||||||
|
Actor52: sbag
|
||||||
|
Location: 29,57
|
||||||
|
Owner: Greece
|
||||||
|
Actor53: sbag
|
||||||
|
Location: 30,57
|
||||||
|
Owner: Greece
|
||||||
|
Actor54: sbag
|
||||||
|
Location: 31,57
|
||||||
|
Owner: Greece
|
||||||
|
Actor55: sbag
|
||||||
|
Location: 32,57
|
||||||
|
Owner: Greece
|
||||||
|
Actor56: sbag
|
||||||
|
Location: 33,57
|
||||||
|
Owner: Greece
|
||||||
|
Health: 100
|
||||||
|
Actor57: sbag
|
||||||
|
Location: 34,57
|
||||||
|
Owner: Greece
|
||||||
|
Actor58: sbag
|
||||||
|
Location: 35,57
|
||||||
|
Owner: Greece
|
||||||
|
Actor59: sbag
|
||||||
|
Location: 36,57
|
||||||
|
Owner: Greece
|
||||||
|
Actor60: healcrate
|
||||||
|
Location: 70,61
|
||||||
|
Owner: Greece
|
||||||
|
Actor61: sbag
|
||||||
|
Location: 72,85
|
||||||
|
Owner: Greece
|
||||||
|
Actor62: sbag
|
||||||
|
Location: 73,85
|
||||||
|
Owner: Greece
|
||||||
|
Actor63: sbag
|
||||||
|
Location: 74,85
|
||||||
|
Owner: Greece
|
||||||
|
Actor64: sbag
|
||||||
|
Location: 75,85
|
||||||
|
Owner: Greece
|
||||||
|
Actor65: sbag
|
||||||
|
Location: 76,85
|
||||||
|
Owner: Greece
|
||||||
|
Actor66: sbag
|
||||||
|
Location: 77,85
|
||||||
|
Owner: Greece
|
||||||
|
Actor67: sbag
|
||||||
|
Location: 78,85
|
||||||
|
Owner: Greece
|
||||||
|
Actor68: sbag
|
||||||
|
Location: 79,85
|
||||||
|
Owner: Greece
|
||||||
|
Actor69: sbag
|
||||||
|
Location: 80,85
|
||||||
|
Owner: Greece
|
||||||
|
Actor70: sbag
|
||||||
|
Location: 81,85
|
||||||
|
Owner: Greece
|
||||||
|
Actor71: sbag
|
||||||
|
Location: 87,85
|
||||||
|
Owner: Greece
|
||||||
|
Actor72: sbag
|
||||||
|
Location: 88,85
|
||||||
|
Owner: Greece
|
||||||
|
Actor73: sbag
|
||||||
|
Location: 89,85
|
||||||
|
Owner: Greece
|
||||||
|
Actor74: sbag
|
||||||
|
Location: 71,86
|
||||||
|
Owner: Greece
|
||||||
|
Actor75: sbag
|
||||||
|
Location: 72,86
|
||||||
|
Owner: Greece
|
||||||
|
Actor76: sbag
|
||||||
|
Location: 79,86
|
||||||
|
Owner: Greece
|
||||||
|
Actor77: sbag
|
||||||
|
Location: 80,86
|
||||||
|
Owner: Greece
|
||||||
|
Actor78: sbag
|
||||||
|
Location: 81,86
|
||||||
|
Owner: Greece
|
||||||
|
Actor79: sbag
|
||||||
|
Location: 87,86
|
||||||
|
Owner: Greece
|
||||||
|
Actor80: sbag
|
||||||
|
Location: 88,86
|
||||||
|
Owner: Greece
|
||||||
|
Actor81: sbag
|
||||||
|
Location: 89,86
|
||||||
|
Owner: Greece
|
||||||
|
Actor82: sbag
|
||||||
|
Location: 71,87
|
||||||
|
Owner: Greece
|
||||||
|
Actor83: sbag
|
||||||
|
Location: 89,87
|
||||||
|
Owner: Greece
|
||||||
|
Actor84: sbag
|
||||||
|
Location: 71,88
|
||||||
|
Owner: Greece
|
||||||
|
Actor85: sbag
|
||||||
|
Location: 89,88
|
||||||
|
Owner: Greece
|
||||||
|
Actor86: sbag
|
||||||
|
Location: 71,89
|
||||||
|
Owner: Greece
|
||||||
|
Actor87: sbag
|
||||||
|
Location: 72,89
|
||||||
|
Owner: Greece
|
||||||
|
Actor88: sbag
|
||||||
|
Location: 89,89
|
||||||
|
Owner: Greece
|
||||||
|
Actor89: sbag
|
||||||
|
Location: 71,90
|
||||||
|
Owner: Greece
|
||||||
|
Actor90: sbag
|
||||||
|
Location: 72,90
|
||||||
|
Owner: Greece
|
||||||
|
Actor91: sbag
|
||||||
|
Location: 89,90
|
||||||
|
Owner: Greece
|
||||||
|
Actor92: healcrate
|
||||||
|
Location: 57,91
|
||||||
|
Owner: Greece
|
||||||
|
Actor93: sbag
|
||||||
|
Location: 71,91
|
||||||
|
Owner: Greece
|
||||||
|
Actor94: sbag
|
||||||
|
Location: 72,91
|
||||||
|
Owner: Greece
|
||||||
|
Actor95: sbag
|
||||||
|
Location: 89,91
|
||||||
|
Owner: Greece
|
||||||
|
Actor96: sbag
|
||||||
|
Location: 89,92
|
||||||
|
Owner: Greece
|
||||||
|
Actor97: sbag
|
||||||
|
Location: 89,93
|
||||||
|
Owner: Greece
|
||||||
|
Actor98: sbag
|
||||||
|
Location: 71,94
|
||||||
|
Owner: Greece
|
||||||
|
Actor99: sbag
|
||||||
|
Location: 72,94
|
||||||
|
Owner: Greece
|
||||||
|
Actor100: sbag
|
||||||
|
Location: 89,94
|
||||||
|
Owner: Greece
|
||||||
|
Actor101: sbag
|
||||||
|
Location: 71,95
|
||||||
|
Owner: Greece
|
||||||
|
Actor102: sbag
|
||||||
|
Location: 72,95
|
||||||
|
Owner: Greece
|
||||||
|
Actor103: sbag
|
||||||
|
Location: 89,95
|
||||||
|
Owner: Greece
|
||||||
|
Actor104: sbag
|
||||||
|
Location: 71,96
|
||||||
|
Owner: Greece
|
||||||
|
Actor105: sbag
|
||||||
|
Location: 72,96
|
||||||
|
Owner: Greece
|
||||||
|
Actor106: sbag
|
||||||
|
Location: 89,96
|
||||||
|
Owner: Greece
|
||||||
|
Actor107: sbag
|
||||||
|
Location: 71,97
|
||||||
|
Owner: Greece
|
||||||
|
Actor108: sbag
|
||||||
|
Location: 89,97
|
||||||
|
Owner: Greece
|
||||||
|
Actor109: sbag
|
||||||
|
Location: 71,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor110: sbag
|
||||||
|
Location: 72,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor111: sbag
|
||||||
|
Location: 73,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor112: sbag
|
||||||
|
Location: 74,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor113: sbag
|
||||||
|
Location: 75,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor114: sbag
|
||||||
|
Location: 76,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor115: sbag
|
||||||
|
Location: 77,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor116: sbag
|
||||||
|
Location: 78,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor117: sbag
|
||||||
|
Location: 79,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor118: sbag
|
||||||
|
Location: 80,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor119: sbag
|
||||||
|
Location: 81,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor120: sbag
|
||||||
|
Location: 82,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor121: sbag
|
||||||
|
Location: 83,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor122: sbag
|
||||||
|
Location: 84,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor123: sbag
|
||||||
|
Location: 85,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor124: sbag
|
||||||
|
Location: 86,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor125: sbag
|
||||||
|
Location: 87,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor126: sbag
|
||||||
|
Location: 88,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor127: sbag
|
||||||
|
Location: 89,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor128: t03
|
||||||
|
Location: 57,79
|
||||||
|
Owner: Neutral
|
||||||
|
Actor129: t05
|
||||||
|
Location: 55,92
|
||||||
|
Owner: Neutral
|
||||||
|
Actor130: t02
|
||||||
|
Location: 83,58
|
||||||
|
Owner: Neutral
|
||||||
|
Actor131: t10
|
||||||
|
Location: 60,47
|
||||||
|
Owner: Neutral
|
||||||
|
Actor132: t16
|
||||||
|
Location: 63,75
|
||||||
|
Owner: Neutral
|
||||||
|
Actor133: tc04
|
||||||
|
Location: 58,97
|
||||||
|
Owner: Neutral
|
||||||
|
Actor134: tc05
|
||||||
|
Location: 48,44
|
||||||
|
Owner: Neutral
|
||||||
|
Actor135: tc05
|
||||||
|
Location: 30,75
|
||||||
|
Owner: Neutral
|
||||||
|
Actor136: tc04
|
||||||
|
Location: 65,36
|
||||||
|
Owner: Neutral
|
||||||
|
Actor137: tc04
|
||||||
|
Location: 46,73
|
||||||
|
Owner: Neutral
|
||||||
|
Actor138: tc03
|
||||||
|
Location: 37,71
|
||||||
|
Owner: Neutral
|
||||||
|
Actor139: tc03
|
||||||
|
Location: 76,74
|
||||||
|
Owner: Neutral
|
||||||
|
Actor140: tc03
|
||||||
|
Location: 51,43
|
||||||
|
Owner: Neutral
|
||||||
|
Actor141: tc02
|
||||||
|
Location: 78,74
|
||||||
|
Owner: Neutral
|
||||||
|
Actor142: tc02
|
||||||
|
Location: 83,57
|
||||||
|
Owner: Neutral
|
||||||
|
Actor143: tc01
|
||||||
|
Location: 56,97
|
||||||
|
Owner: Neutral
|
||||||
|
Actor144: tc01
|
||||||
|
Location: 38,79
|
||||||
|
Owner: Neutral
|
||||||
|
Actor145: tc01
|
||||||
|
Location: 45,53
|
||||||
|
Owner: Neutral
|
||||||
|
Actor146: t17
|
||||||
|
Location: 45,90
|
||||||
|
Owner: Neutral
|
||||||
|
Actor147: t17
|
||||||
|
Location: 65,49
|
||||||
|
Owner: Neutral
|
||||||
|
Actor148: t16
|
||||||
|
Location: 56,91
|
||||||
|
Owner: Neutral
|
||||||
|
Actor149: t16
|
||||||
|
Location: 69,85
|
||||||
|
Owner: Neutral
|
||||||
|
Actor150: t15
|
||||||
|
Location: 51,47
|
||||||
|
Owner: Neutral
|
||||||
|
Actor151: t15
|
||||||
|
Location: 53,77
|
||||||
|
Owner: Neutral
|
||||||
|
Actor152: t14
|
||||||
|
Location: 85,76
|
||||||
|
Owner: Neutral
|
||||||
|
Actor153: t14
|
||||||
|
Location: 50,85
|
||||||
|
Owner: Neutral
|
||||||
|
Actor154: t14
|
||||||
|
Location: 59,76
|
||||||
|
Owner: Neutral
|
||||||
|
Actor155: t13
|
||||||
|
Location: 78,80
|
||||||
|
Owner: Neutral
|
||||||
|
Actor156: t12
|
||||||
|
Location: 30,76
|
||||||
|
Owner: Neutral
|
||||||
|
Actor157: t11
|
||||||
|
Location: 28,37
|
||||||
|
Owner: Neutral
|
||||||
|
Actor158: t10
|
||||||
|
Location: 50,66
|
||||||
|
Owner: Neutral
|
||||||
|
Actor159: t08
|
||||||
|
Location: 38,70
|
||||||
|
Owner: Neutral
|
||||||
|
Actor160: t07
|
||||||
|
Location: 60,83
|
||||||
|
Owner: Neutral
|
||||||
|
Actor161: t06
|
||||||
|
Location: 36,70
|
||||||
|
Owner: Neutral
|
||||||
|
Actor162: t05
|
||||||
|
Location: 46,75
|
||||||
|
Owner: Neutral
|
||||||
|
Actor163: t03
|
||||||
|
Location: 54,65
|
||||||
|
Owner: Neutral
|
||||||
|
Actor164: t02
|
||||||
|
Location: 27,64
|
||||||
|
Owner: Neutral
|
||||||
|
Actor165: t01
|
||||||
|
Location: 49,61
|
||||||
|
Owner: Neutral
|
||||||
|
Actor166: tc05
|
||||||
|
Location: 73,57
|
||||||
|
Owner: Neutral
|
||||||
|
Actor167: tc04
|
||||||
|
Location: 72,59
|
||||||
|
Owner: Neutral
|
||||||
|
Actor168: t17
|
||||||
|
Location: 73,60
|
||||||
|
Owner: Neutral
|
||||||
|
Actor169: t16
|
||||||
|
Location: 59,56
|
||||||
|
Owner: Neutral
|
||||||
|
Actor170: tc02
|
||||||
|
Location: 86,51
|
||||||
|
Owner: Neutral
|
||||||
|
Actor171: tc02
|
||||||
|
Location: 76,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor172: tc02
|
||||||
|
Location: 85,78
|
||||||
|
Owner: Neutral
|
||||||
|
Actor173: mine
|
||||||
|
Location: 64,92
|
||||||
|
Owner: Neutral
|
||||||
|
Actor174: mine
|
||||||
|
Location: 68,96
|
||||||
|
Owner: Neutral
|
||||||
|
Actor175: tc05
|
||||||
|
Location: 79,66
|
||||||
|
Owner: Neutral
|
||||||
|
Actor176: tc04
|
||||||
|
Location: 75,72
|
||||||
|
Owner: Neutral
|
||||||
|
Actor177: tc03
|
||||||
|
Location: 40,80
|
||||||
|
Owner: Neutral
|
||||||
|
Actor178: tc04
|
||||||
|
Location: 58,54
|
||||||
|
Owner: Neutral
|
||||||
|
Actor179: tc05
|
||||||
|
Location: 54,93
|
||||||
|
Owner: Neutral
|
||||||
|
Actor180: tc03
|
||||||
|
Location: 26,37
|
||||||
|
Owner: Neutral
|
||||||
|
Actor181: t10
|
||||||
|
Location: 27,79
|
||||||
|
Owner: Neutral
|
||||||
|
Actor182: t08
|
||||||
|
Location: 29,80
|
||||||
|
Owner: Neutral
|
||||||
|
Actor183: tc04
|
||||||
|
Location: 26,83
|
||||||
|
Owner: Neutral
|
||||||
|
Actor184: tc03
|
||||||
|
Location: 39,82
|
||||||
|
Owner: Neutral
|
||||||
|
Actor185: tc04
|
||||||
|
Location: 44,89
|
||||||
|
Owner: Neutral
|
||||||
|
Actor186: tc01
|
||||||
|
Location: 49,84
|
||||||
|
Owner: Neutral
|
||||||
|
Actor187: t16
|
||||||
|
Location: 46,97
|
||||||
|
Owner: Neutral
|
||||||
|
Actor188: t15
|
||||||
|
Location: 51,88
|
||||||
|
Owner: Neutral
|
||||||
|
Actor189: t14
|
||||||
|
Location: 28,72
|
||||||
|
Owner: Neutral
|
||||||
|
Actor190: t12
|
||||||
|
Location: 53,54
|
||||||
|
Owner: Neutral
|
||||||
|
Actor191: t11
|
||||||
|
Location: 34,65
|
||||||
|
Owner: Neutral
|
||||||
|
Actor192: t12
|
||||||
|
Location: 28,64
|
||||||
|
Owner: Neutral
|
||||||
|
Actor193: t12
|
||||||
|
Location: 35,66
|
||||||
|
Owner: Neutral
|
||||||
|
SWVillage7: v04
|
||||||
|
Location: 30,96
|
||||||
|
Owner: Spain
|
||||||
|
SWVillage4: v03
|
||||||
|
Location: 33,91
|
||||||
|
Owner: Spain
|
||||||
|
SWVillage2: v02
|
||||||
|
Location: 34,87
|
||||||
|
Owner: Spain
|
||||||
|
SWVillage3: v01
|
||||||
|
Location: 29,92
|
||||||
|
Owner: Spain
|
||||||
|
SWVillage6: v07
|
||||||
|
Location: 33,94
|
||||||
|
Owner: Spain
|
||||||
|
SWVillage5: v08
|
||||||
|
Location: 38,91
|
||||||
|
Owner: Spain
|
||||||
|
SWVillage1: v10
|
||||||
|
Location: 30,88
|
||||||
|
Owner: Spain
|
||||||
|
SouthCabin: v11
|
||||||
|
Location: 57,91
|
||||||
|
Owner: Spain
|
||||||
|
NEVillage7: v10
|
||||||
|
Location: 78,44
|
||||||
|
Owner: Spain
|
||||||
|
NEVillage8: v11
|
||||||
|
Location: 81,50
|
||||||
|
Owner: Spain
|
||||||
|
NorthCabin: v08
|
||||||
|
Location: 70,61
|
||||||
|
Owner: Spain
|
||||||
|
NEVillage3: v07
|
||||||
|
Location: 79,41
|
||||||
|
Owner: Spain
|
||||||
|
NEVillage4: v06
|
||||||
|
Location: 85,46
|
||||||
|
Owner: Spain
|
||||||
|
NEVillage2: v05
|
||||||
|
Location: 84,42
|
||||||
|
Owner: Spain
|
||||||
|
NEVillage5: v04
|
||||||
|
Location: 76,41
|
||||||
|
Owner: Spain
|
||||||
|
NEVillage9: v03
|
||||||
|
Location: 85,49
|
||||||
|
Owner: Spain
|
||||||
|
NEVillage6: v02
|
||||||
|
Location: 81,46
|
||||||
|
Owner: Spain
|
||||||
|
NEVillage1: v01
|
||||||
|
Location: 80,44
|
||||||
|
Owner: Spain
|
||||||
|
Health: 53
|
||||||
|
SETent1: tent
|
||||||
|
Location: 80,95
|
||||||
|
Owner: Greece
|
||||||
|
NWTent2: tent
|
||||||
|
Location: 33,54
|
||||||
|
Owner: GoodGuy
|
||||||
|
Actor214: hosp
|
||||||
|
Location: 86,87
|
||||||
|
Owner: Greece
|
||||||
|
NWAdvPower: apwr
|
||||||
|
Location: 28,50
|
||||||
|
Owner: GoodGuy
|
||||||
|
Actor216: apwr
|
||||||
|
Location: 79,87
|
||||||
|
Owner: Greece
|
||||||
|
NWTent1: tent
|
||||||
|
Location: 30,54
|
||||||
|
Owner: GoodGuy
|
||||||
|
SETent2: tent
|
||||||
|
Location: 77,95
|
||||||
|
Owner: Greece
|
||||||
|
NWHospital: hosp
|
||||||
|
Location: 28,45
|
||||||
|
Owner: GoodGuy
|
||||||
|
Actor220: v19
|
||||||
|
Location: 42,96
|
||||||
|
Owner: Greece
|
||||||
|
Actor221: v19
|
||||||
|
Location: 44,94
|
||||||
|
Owner: Greece
|
||||||
|
Actor222: v19
|
||||||
|
Location: 63,49
|
||||||
|
Owner: Neutral
|
||||||
|
Actor223: v19
|
||||||
|
Location: 67,50
|
||||||
|
Owner: Neutral
|
||||||
|
Actor224: brl3
|
||||||
|
Location: 62,48
|
||||||
|
Owner: Spain
|
||||||
|
Actor225: barl
|
||||||
|
Location: 65,49
|
||||||
|
Owner: Spain
|
||||||
|
Actor226: barl
|
||||||
|
Location: 68,49
|
||||||
|
Owner: Spain
|
||||||
|
Actor227: brl3
|
||||||
|
Location: 44,95
|
||||||
|
Owner: Greece
|
||||||
|
Actor228: barl
|
||||||
|
Location: 63,48
|
||||||
|
Owner: Spain
|
||||||
|
Actor229: brl3
|
||||||
|
Location: 67,49
|
||||||
|
Owner: Spain
|
||||||
|
Actor230: brl3
|
||||||
|
Location: 41,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor231: brl3
|
||||||
|
Location: 43,97
|
||||||
|
Owner: Greece
|
||||||
|
Actor232: brl3
|
||||||
|
Location: 66,50
|
||||||
|
Owner: Spain
|
||||||
|
Actor233: brl3
|
||||||
|
Location: 64,48
|
||||||
|
Owner: Spain
|
||||||
|
Actor234: barl
|
||||||
|
Location: 46,92
|
||||||
|
Owner: Greece
|
||||||
|
Actor235: barl
|
||||||
|
Location: 69,49
|
||||||
|
Owner: Spain
|
||||||
|
Actor236: barl
|
||||||
|
Location: 64,49
|
||||||
|
Owner: Spain
|
||||||
|
Actor237: barl
|
||||||
|
Location: 66,49
|
||||||
|
Owner: Spain
|
||||||
|
Actor238: barl
|
||||||
|
Location: 68,48
|
||||||
|
Owner: Spain
|
||||||
|
Actor239: barl
|
||||||
|
Location: 44,96
|
||||||
|
Owner: Greece
|
||||||
|
Actor240: barl
|
||||||
|
Location: 45,93
|
||||||
|
Owner: Greece
|
||||||
|
Actor241: barl
|
||||||
|
Location: 42,97
|
||||||
|
Owner: Greece
|
||||||
|
Actor242: barl
|
||||||
|
Location: 43,96
|
||||||
|
Owner: Greece
|
||||||
|
Actor243: barl
|
||||||
|
Location: 45,94
|
||||||
|
Owner: Greece
|
||||||
|
Actor244: barl
|
||||||
|
Location: 42,98
|
||||||
|
Owner: Greece
|
||||||
|
Actor245: barl
|
||||||
|
Location: 41,97
|
||||||
|
Owner: Greece
|
||||||
|
RadarDome: dome
|
||||||
|
Location: 28,40
|
||||||
|
Owner: GoodGuy
|
||||||
|
Actor247: proc
|
||||||
|
Location: 73,88
|
||||||
|
Owner: Greece
|
||||||
|
Actor248: silo
|
||||||
|
Location: 77,86
|
||||||
|
Owner: Greece
|
||||||
|
Actor249: silo
|
||||||
|
Location: 77,87
|
||||||
|
Owner: Greece
|
||||||
|
Actor250: silo
|
||||||
|
Location: 76,86
|
||||||
|
Owner: Greece
|
||||||
|
Actor251: silo
|
||||||
|
Location: 76,87
|
||||||
|
Owner: Greece
|
||||||
|
Actor252: silo
|
||||||
|
Location: 75,86
|
||||||
|
Owner: Greece
|
||||||
|
Actor253: silo
|
||||||
|
Location: 75,87
|
||||||
|
Owner: Greece
|
||||||
|
Actor254: apwr
|
||||||
|
Location: 86,95
|
||||||
|
Owner: Greece
|
||||||
|
WarFactory: weap
|
||||||
|
Location: 73,95
|
||||||
|
Owner: Greece
|
||||||
|
SouthPill1: pbox
|
||||||
|
Location: 79,81
|
||||||
|
Owner: Greece
|
||||||
|
SouthPill2: pbox
|
||||||
|
Location: 85,78
|
||||||
|
Owner: Greece
|
||||||
|
NorthPill1: pbox
|
||||||
|
Location: 46,53
|
||||||
|
Owner: GoodGuy
|
||||||
|
NorthPill2: pbox
|
||||||
|
Location: 51,47
|
||||||
|
Owner: GoodGuy
|
||||||
|
Actor260: powr
|
||||||
|
Location: 83,95
|
||||||
|
Owner: Greece
|
||||||
|
Actor262: arty
|
||||||
|
Location: 79,68
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 63
|
||||||
|
Actor263: arty
|
||||||
|
Location: 79,76
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 63
|
||||||
|
Ltnk1: 1tnk
|
||||||
|
Location: 87,90
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 31
|
||||||
|
Ltnk2: 1tnk
|
||||||
|
Location: 87,91
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 31
|
||||||
|
Ltnk3: 1tnk
|
||||||
|
Location: 87,92
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 31
|
||||||
|
Jeep3: jeep
|
||||||
|
Location: 88,92
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 31
|
||||||
|
Jeep2: jeep
|
||||||
|
Location: 88,91
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 31
|
||||||
|
Jeep1: jeep
|
||||||
|
Location: 88,90
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 31
|
||||||
|
Actor270: e1
|
||||||
|
Location: 38,45
|
||||||
|
Owner: Greece
|
||||||
|
Health: 89
|
||||||
|
Facing: 191
|
||||||
|
SubCell: 1
|
||||||
|
Actor271: e1
|
||||||
|
Location: 87,84
|
||||||
|
Owner: Greece
|
||||||
|
SubCell: 4
|
||||||
|
Actor272: e1
|
||||||
|
Location: 81,84
|
||||||
|
Owner: Greece
|
||||||
|
SubCell: 3
|
||||||
|
Actor273: e1
|
||||||
|
Location: 38,49
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 191
|
||||||
|
SubCell: 1
|
||||||
|
LZ: waypoint
|
||||||
|
Location: 51,72
|
||||||
|
Owner: Neutral
|
||||||
|
WaterEntryNW: waypoint
|
||||||
|
Location: 42,32
|
||||||
|
Owner: Neutral
|
||||||
|
WaterLandingNW: waypoint
|
||||||
|
Location: 42,42
|
||||||
|
Owner: Neutral
|
||||||
|
WaterEntryNE: waypoint
|
||||||
|
Location: 70,32
|
||||||
|
Owner: Neutral
|
||||||
|
WaterLandingNE: waypoint
|
||||||
|
Location: 73,41
|
||||||
|
Owner: Neutral
|
||||||
|
WaterEntrySE: waypoint
|
||||||
|
Location: 98,78
|
||||||
|
Owner: Neutral
|
||||||
|
WaterLandingSE: waypoint
|
||||||
|
Location: 91,78
|
||||||
|
Owner: Neutral
|
||||||
|
SouthwestLZ: waypoint
|
||||||
|
Location: 39,97
|
||||||
|
Owner: Neutral
|
||||||
|
CivRallySE: waypoint
|
||||||
|
Location: 81,92
|
||||||
|
Owner: Neutral
|
||||||
|
CivRallyNW: waypoint
|
||||||
|
Location: 31,47
|
||||||
|
Owner: Neutral
|
||||||
|
NWSpawn1: waypoint
|
||||||
|
Location: 30,55
|
||||||
|
Owner: Neutral
|
||||||
|
NWSpawn2: waypoint
|
||||||
|
Location: 33,55
|
||||||
|
Owner: Neutral
|
||||||
|
NEHermitSpawn: waypoint
|
||||||
|
Location: 70,61
|
||||||
|
Owner: Neutral
|
||||||
|
SouthHermitSpawn: waypoint
|
||||||
|
Location: 57,91
|
||||||
|
Owner: Neutral
|
||||||
|
NECivSpawn1: waypoint
|
||||||
|
Location: 80,45
|
||||||
|
Owner: Neutral
|
||||||
|
NECivSpawn2: waypoint
|
||||||
|
Location: 84,42
|
||||||
|
Owner: Neutral
|
||||||
|
NECivSpawn3: waypoint
|
||||||
|
Location: 80,41
|
||||||
|
Owner: Neutral
|
||||||
|
NECivSpawn4: waypoint
|
||||||
|
Location: 86,46
|
||||||
|
Owner: Neutral
|
||||||
|
NECivSpawn5: waypoint
|
||||||
|
Location: 76,42
|
||||||
|
Owner: Neutral
|
||||||
|
NECivSpawn6: waypoint
|
||||||
|
Location: 82,47
|
||||||
|
Owner: Neutral
|
||||||
|
NECivSpawn9: waypoint
|
||||||
|
Location: 85,50
|
||||||
|
Owner: Neutral
|
||||||
|
NECivSpawn8: waypoint
|
||||||
|
Location: 81,50
|
||||||
|
Owner: Neutral
|
||||||
|
NECivSpawn7: waypoint
|
||||||
|
Location: 78,44
|
||||||
|
Owner: Neutral
|
||||||
|
SWCivSpawn3: waypoint
|
||||||
|
Location: 29,93
|
||||||
|
Owner: Neutral
|
||||||
|
SWCivSpawn4: waypoint
|
||||||
|
Location: 33,92
|
||||||
|
Owner: Neutral
|
||||||
|
SWCivSpawn6: waypoint
|
||||||
|
Location: 33,94
|
||||||
|
Owner: Neutral
|
||||||
|
SWCivSpawn2: waypoint
|
||||||
|
Location: 35,88
|
||||||
|
Owner: Neutral
|
||||||
|
SWCivSpawn5: waypoint
|
||||||
|
Location: 38,91
|
||||||
|
Owner: Neutral
|
||||||
|
SWCivSpawn1: waypoint
|
||||||
|
Location: 30,88
|
||||||
|
Owner: Neutral
|
||||||
|
SWCivSpawn7: waypoint
|
||||||
|
Location: 30,97
|
||||||
|
Owner: Neutral
|
||||||
|
SEBaseBombingRun: waypoint
|
||||||
|
Location: 78,87
|
||||||
|
Owner: Neutral
|
||||||
|
MSubEntry: waypoint
|
||||||
|
Location: 98,57
|
||||||
|
Owner: Neutral
|
||||||
|
MSubStop: waypoint
|
||||||
|
Location: 94,73
|
||||||
|
Owner: Neutral
|
||||||
|
SEShockDrop: waypoint
|
||||||
|
Location: 83,79
|
||||||
|
Owner: Neutral
|
||||||
|
|
||||||
|
Rules: ra|rules/campaign-rules.yaml, ra|rules/campaign-tooltips.yaml, ra|rules/campaign-palettes.yaml, rules.yaml
|
||||||
30
mods/ra/maps/shock-therapy/rules.yaml
Normal file
30
mods/ra/maps/shock-therapy/rules.yaml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
World:
|
||||||
|
LuaScript:
|
||||||
|
Scripts: shock-therapy.lua
|
||||||
|
MissionData:
|
||||||
|
WinVideo: sovtstar.vqa
|
||||||
|
LossVideo: sovcemet.vqa
|
||||||
|
Briefing: A small border town has been voicing support for the Allied cause. These people are no longer soviets, but enemies to our great empire. As enemies, they must be destroyed.\n\nTake Stalin's elite shock troopers and show them the iron might of the Soviet army. No doubt, the rabble will seek help from the minute allied influence in the area.\n\nWhatever pathetic support they can muster, it will not be enough. Crush them all -- let nothing stop you.
|
||||||
|
|
||||||
|
SHOCKDROP:
|
||||||
|
ParatroopersPower:
|
||||||
|
DisplayBeacon: False
|
||||||
|
DropItems: SHOK, SHOK, SHOK, SHOK, SHOK
|
||||||
|
AlwaysVisible:
|
||||||
|
|
||||||
|
LST.Reinforcement:
|
||||||
|
Inherits: LST
|
||||||
|
RejectsOrders:
|
||||||
|
-Buildable:
|
||||||
|
-Selectable:
|
||||||
|
RenderSprites:
|
||||||
|
Image: lst
|
||||||
|
Interactable:
|
||||||
|
|
||||||
|
powerproxy.parabombs:
|
||||||
|
AirstrikePower:
|
||||||
|
DisplayBeacon: False
|
||||||
|
|
||||||
|
HEALCRATE:
|
||||||
|
Crate:
|
||||||
|
Lifetime: 0
|
||||||
347
mods/ra/maps/shock-therapy/shock-therapy.lua
Normal file
347
mods/ra/maps/shock-therapy/shock-therapy.lua
Normal file
@@ -0,0 +1,347 @@
|
|||||||
|
--[[
|
||||||
|
Copyright 2007-2021 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.
|
||||||
|
]]
|
||||||
|
Cabins = { NorthCabin, SouthCabin }
|
||||||
|
NWFootprintTrigger = { CPos.New(41, 49), CPos.New(41, 48), CPos.New(41, 47), CPos.New(41, 46), CPos.New(41, 45), CPos.New(41, 44) }
|
||||||
|
SWFootprintTrigger = { CPos.New(26, 77), CPos.New(27, 77), CPos.New(28, 77), CPos.New(29, 77), CPos.New(33, 77), CPos.New(34, 77), CPos.New(35, 77), CPos.New(36, 77), CPos.New(37, 77), CPos.New(38, 77), CPos.New(39, 77) }
|
||||||
|
SEFootprintTrigger = { CPos.New(75, 83), CPos.New(76, 83), CPos.New(77, 83), CPos.New(78, 83), CPos.New(79, 83), CPos.New(80, 83), CPos.New(81, 83), CPos.New(82, 83), CPos.New(83, 83), CPos.New(84, 83), CPos.New(85, 83), CPos.New(86, 83), CPos.New(87, 83), CPos.New(88, 83), CPos.New(89, 83) }
|
||||||
|
NWWaterPath = { WaterEntryNW.Location, WaterLandingNW.Location }
|
||||||
|
NEWaterPath = { WaterEntryNE.Location, WaterLandingNE.Location }
|
||||||
|
SEWaterPath = { WaterEntrySE.Location, WaterLandingSE.Location }
|
||||||
|
NWWaterUnits = { "dtrk", "ttnk", "ttnk", "ttnk", "3tnk" }
|
||||||
|
NEWaterUnits = { "dtrk", "v2rl", "e6", "e6", "e6" }
|
||||||
|
SEWaterUnits = { "ttnk", "ttnk", "shok", "shok", "shok" }
|
||||||
|
NorthPillboxes = { NorthPill1, NorthPill2 }
|
||||||
|
SouthPillboxes = { SouthPill1, SouthPill2 }
|
||||||
|
VehicleSquad1 = { Ltnk1, Jeep1 }
|
||||||
|
VehicleSquad2 = { Ltnk2, Jeep2 }
|
||||||
|
VehicleSquad3 = { Ltnk3, Jeep3 }
|
||||||
|
CivSquads = { { "c1", "c3", "c7", "c10" }, { "c2", "c4", "c6", "c11" }, { "c11", "c10", "c9" }, { "c8", "c7", "c6" }, { "c5", "c4", "c3" }, { "c5", "c10" }, { "c4", "c2" }, { "c3", "c5" }, { "c9", "c11" } }
|
||||||
|
AlliedInfantry = { "e1", "e1", "e1", "e3" }
|
||||||
|
AttackGroupSize = 4
|
||||||
|
InfantryDelay = DateTime.Seconds(10)
|
||||||
|
IdlingUnits = { }
|
||||||
|
IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end
|
||||||
|
|
||||||
|
MissionStart = function()
|
||||||
|
LZCamera = Actor.Create("camera", true, { Owner = USSR, Location = LZ.Location })
|
||||||
|
ShockDrop.TargetParatroopers(LZ.CenterPosition, Angle.New(508))
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
||||||
|
ShockDrop.TargetParatroopers(LZ.CenterPosition, Angle.New(520))
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(4), function()
|
||||||
|
Media.PlaySpeechNotification(USSR, "ReinforcementsArrived")
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(10), function()
|
||||||
|
LZCamera.Destroy()
|
||||||
|
TroopsArrived = true
|
||||||
|
end)
|
||||||
|
|
||||||
|
InfantryProduction()
|
||||||
|
end
|
||||||
|
|
||||||
|
InfantryProduction = function()
|
||||||
|
if (SETent1.IsDead or SETent1.Owner ~= Greece) and (SETent2.IsDead or SETent2.Owner ~= Greece) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local toBuild = { Utils.Random(AlliedInfantry) }
|
||||||
|
|
||||||
|
Greece.Build(toBuild, function(unit)
|
||||||
|
IdlingUnits[#IdlingUnits + 1] = unit[1]
|
||||||
|
Trigger.AfterDelay(InfantryDelay, InfantryProduction)
|
||||||
|
|
||||||
|
if #IdlingUnits >= (AttackGroupSize * 1.5) then
|
||||||
|
SendAttack()
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
SendAttack = function()
|
||||||
|
local units = { }
|
||||||
|
|
||||||
|
for i = 0, AttackGroupSize, 1 do
|
||||||
|
local number = Utils.RandomInteger(1, #IdlingUnits)
|
||||||
|
|
||||||
|
if IdlingUnits[number] and not IdlingUnits[number].IsDead then
|
||||||
|
units[i] = IdlingUnits[number]
|
||||||
|
table.remove(IdlingUnits, number)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Utils.Do(units, function(unit)
|
||||||
|
if not unit.IsDead then
|
||||||
|
IdleHunt(unit)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
DomeCaptured = false
|
||||||
|
MissionTriggers = function()
|
||||||
|
local neFootTriggered
|
||||||
|
Trigger.OnEnteredProximityTrigger(NECivSpawn1.CenterPosition, WDist.FromCells(9), function(actor, id)
|
||||||
|
if actor.Owner == USSR and actor.Type ~= "badr" and not neFootTriggered then
|
||||||
|
Trigger.RemoveFootprintTrigger(id)
|
||||||
|
neFootTriggered = true
|
||||||
|
|
||||||
|
local proxy = Actor.Create("powerproxy.parabombs", false, { Owner = USSR })
|
||||||
|
proxy.TargetAirstrike(NECivSpawn6.CenterPosition, Angle.SouthEast)
|
||||||
|
proxy.Destroy()
|
||||||
|
|
||||||
|
Utils.Do(VehicleSquad1, function(a)
|
||||||
|
if not a.IsDead then
|
||||||
|
a.AttackMove(NECivSpawn1.Location)
|
||||||
|
IdleHunt(a)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
local neVillageCam = Actor.Create("camera", true, { Owner = USSR, Location = NECivSpawn1.Location })
|
||||||
|
Media.PlaySpeechNotification(USSR, "ReinforcementsArrived")
|
||||||
|
local neTroops = Reinforcements.ReinforceWithTransport(USSR, "lst.reinforcement", NEWaterUnits, NEWaterPath, { NEWaterPath[1] })[2]
|
||||||
|
Trigger.OnAllRemovedFromWorld(Utils.Where(neTroops, function(a) return a.Type == "e6" end), function()
|
||||||
|
if not DomeCaptured then
|
||||||
|
USSR.MarkFailedObjective(CaptureDome)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
||||||
|
if not NEVillage1.IsDead then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { NECivSpawn1.Location, CivRallyNW.Location }, 0)
|
||||||
|
end
|
||||||
|
if not NEVillage2.IsDead then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { NECivSpawn2.Location, CivRallyNW.Location }, 0)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
||||||
|
if not NEVillage3.IsDead then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { NECivSpawn3.Location, CivRallyNW.Location }, 0)
|
||||||
|
end
|
||||||
|
if not NEVillage4.IsDead then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { NECivSpawn4.Location, CivRallyNW.Location }, 0)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(4), function()
|
||||||
|
if not NEVillage5.IsDead then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { NECivSpawn5.Location, CivRallyNW.Location }, 0)
|
||||||
|
end
|
||||||
|
if not NEVillage6.IsDead then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { NECivSpawn6.Location, CivRallySE.Location }, 0)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
||||||
|
if not NEVillage7.IsDead then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { NECivSpawn7.Location, CivRallySE.Location }, 0)
|
||||||
|
end
|
||||||
|
if not NEVillage8.IsDead then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { NECivSpawn8.Location, CivRallySE.Location }, 0)
|
||||||
|
end
|
||||||
|
if not NEVillage9.IsDead then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { NECivSpawn9.Location, CivRallySE.Location }, 0)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(10), function()
|
||||||
|
neVillageCam.Destroy()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnDamaged(NorthCabin, function()
|
||||||
|
if not NorthCabinDamaged then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { NEHermitSpawn.Location, CivRallyNW.Location }, 1)
|
||||||
|
NorthCabinDamaged = true
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnDamaged(SouthCabin, function()
|
||||||
|
if not SouthCabinDamaged then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { SouthHermitSpawn.Location, CivRallySE.Location }, 1)
|
||||||
|
SouthCabinDamaged = true
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnAllKilled(Cabins, function()
|
||||||
|
Media.PlaySpeechNotification(USSR, "ReinforcementsArrived")
|
||||||
|
ShockDrop.TargetParatroopers(LZ.CenterPosition, Angle.SouthWest)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnAllKilled(NorthPillboxes, function()
|
||||||
|
Media.PlaySpeechNotification(USSR, "ReinforcementsArrived")
|
||||||
|
ShockDrop.TargetParatroopers(LZ.CenterPosition, Angle.South)
|
||||||
|
end)
|
||||||
|
|
||||||
|
local nwFootTriggered
|
||||||
|
Trigger.OnEnteredFootprint(NWFootprintTrigger, function(actor, id)
|
||||||
|
if actor.Owner == USSR and not nwFootTriggered then
|
||||||
|
Trigger.RemoveFootprintTrigger(id)
|
||||||
|
nwFootTriggered = true
|
||||||
|
|
||||||
|
local nwBarracks1 = Reinforcements.Reinforce(GoodGuy, AlliedInfantry, { NWSpawn1.Location }, 0)
|
||||||
|
Utils.Do(nwBarracks1, IdleHunt)
|
||||||
|
local nwBarracks2 = Reinforcements.Reinforce(GoodGuy, AlliedInfantry, { NWSpawn2.Location }, 0)
|
||||||
|
Utils.Do(nwBarracks2, IdleHunt)
|
||||||
|
|
||||||
|
Utils.Do(VehicleSquad2, function(a)
|
||||||
|
if not a.IsDead then
|
||||||
|
a.AttackMove(SWCivSpawn1.Location)
|
||||||
|
IdleHunt(a)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(RadarDome, function()
|
||||||
|
if not DomeCaptured then
|
||||||
|
USSR.MarkFailedObjective(CaptureDome)
|
||||||
|
Media.PlaySpeechNotification(USSR, "ReinforcementsArrived")
|
||||||
|
ShockDrop.TargetParatroopers(CivRallyNW.CenterPosition, Angle.West)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnCapture(RadarDome, function()
|
||||||
|
DomeCaptured = true
|
||||||
|
USSR.MarkCompletedObjective(CaptureDome)
|
||||||
|
Media.PlaySpeechNotification(USSR, "ReinforcementsArrived")
|
||||||
|
local nwTroops = Reinforcements.ReinforceWithTransport(USSR, "lst.reinforcement", NWWaterUnits, NWWaterPath, { NWWaterPath[1] })[2]
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnAllKilled(SouthPillboxes, function()
|
||||||
|
Media.PlaySpeechNotification(USSR, "ReinforcementsArrived")
|
||||||
|
local seTroops = Reinforcements.ReinforceWithTransport(USSR, "lst.reinforcement", SEWaterUnits, SEWaterPath, { SEWaterPath[1] })[2]
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(10), function()
|
||||||
|
Media.PlaySpeechNotification(USSR, "ReinforcementsArrived")
|
||||||
|
Reinforcements.Reinforce(USSR, { "msub", "msub" }, { MSubEntry.Location, MSubStop.Location })
|
||||||
|
ShockDrop.TargetParatroopers(SEShockDrop.CenterPosition, Angle.SouthWest)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
local swFootTriggered
|
||||||
|
Trigger.OnEnteredFootprint(SWFootprintTrigger, function(actor, id)
|
||||||
|
if actor.Owner == USSR and actor.Type ~= "badr" and not swFootTriggered then
|
||||||
|
Trigger.RemoveFootprintTrigger(id)
|
||||||
|
swFootTriggered = true
|
||||||
|
|
||||||
|
local proxy = Actor.Create("powerproxy.parabombs", false, { Owner = USSR })
|
||||||
|
proxy.TargetAirstrike(SWCivSpawn3.CenterPosition, Angle.South)
|
||||||
|
proxy.Destroy()
|
||||||
|
local swVillageCam = Actor.Create("camera", true, { Owner = USSR, Location = SWCivSpawn2.Location })
|
||||||
|
|
||||||
|
local hiding = Reinforcements.Reinforce(Greece, { 'e1', 'e1', 'e3', 'e3', 'e3' }, { SWCivSpawn1.Location }, 0)
|
||||||
|
Utils.Do(hiding, IdleHunt)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
||||||
|
if not SWVillage1.IsDead then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { SWCivSpawn1.Location, CivRallySE.Location }, 0)
|
||||||
|
end
|
||||||
|
if not SWVillage2.IsDead then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { SWCivSpawn2.Location, CivRallySE.Location }, 0)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(4), function()
|
||||||
|
if not SWVillage3.IsDead then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { SWCivSpawn3.Location, CivRallySE.Location }, 0)
|
||||||
|
end
|
||||||
|
if not SWVillage4.IsDead then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { SWCivSpawn4.Location, CivRallyNW.Location }, 0)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
||||||
|
if not SWVillage5.IsDead then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { SWCivSpawn5.Location, CivRallySE.Location }, 0)
|
||||||
|
end
|
||||||
|
if not SWVillage6.IsDead then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { SWCivSpawn6.Location, CivRallyNW.Location }, 0)
|
||||||
|
end
|
||||||
|
if not SWVillage7.IsDead then
|
||||||
|
Reinforcements.Reinforce(Spain, Utils.Random(CivSquads), { SWCivSpawn7.Location, CivRallySE.Location }, 0)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
||||||
|
ShockDrop.TargetParatroopers(SouthwestLZ.CenterPosition, Angle.SouthWest)
|
||||||
|
Utils.Do(VehicleSquad3, function(a)
|
||||||
|
if not a.IsDead then
|
||||||
|
a.AttackMove(NECivSpawn1.Location)
|
||||||
|
IdleHunt(a)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
swVillageCam.Destroy()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
local seFootTriggered
|
||||||
|
Trigger.OnEnteredFootprint(SEFootprintTrigger, function(actor, id)
|
||||||
|
if actor.Owner == USSR and not seFootTriggered then
|
||||||
|
Trigger.RemoveFootprintTrigger(id)
|
||||||
|
seFootTriggered = true
|
||||||
|
|
||||||
|
local proxy = Actor.Create("powerproxy.parabombs", false, { Owner = USSR })
|
||||||
|
proxy.TargetAirstrike(SEBaseBombingRun.CenterPosition, Angle.East)
|
||||||
|
proxy.Destroy()
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
TroopsArrived = false
|
||||||
|
Tick = function()
|
||||||
|
if USSR.HasNoRequiredUnits() and TroopsArrived then
|
||||||
|
Greece.MarkCompletedObjective(BeatRussia)
|
||||||
|
end
|
||||||
|
|
||||||
|
if Greece.HasNoRequiredUnits() and GoodGuy.HasNoRequiredUnits() and Spain.HasNoRequiredUnits() then
|
||||||
|
USSR.MarkCompletedObjective(KillAll)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
WorldLoaded = function()
|
||||||
|
USSR = Player.GetPlayer("USSR")
|
||||||
|
Greece = Player.GetPlayer("Greece")
|
||||||
|
GoodGuy = Player.GetPlayer("GoodGuy")
|
||||||
|
Spain = Player.GetPlayer("Spain")
|
||||||
|
|
||||||
|
Trigger.OnObjectiveAdded(USSR, function(p, id)
|
||||||
|
Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective")
|
||||||
|
end)
|
||||||
|
|
||||||
|
BeatRussia = Greece.AddObjective("Stop Ivan.")
|
||||||
|
KillAll = USSR.AddObjective("Destroy all that oppose us.")
|
||||||
|
CaptureDome = USSR.AddObjective("Capture the enemy radar dome.", "Secondary", false)
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
Camera.Position = LZ.CenterPosition
|
||||||
|
ShockDrop = Actor.Create("shockdrop", false, { Owner = USSR })
|
||||||
|
MissionStart()
|
||||||
|
MissionTriggers()
|
||||||
|
end
|
||||||
|
|
||||||
|
OnAnyDamaged = function(actors, func)
|
||||||
|
Utils.Do(actors, function(actor)
|
||||||
|
Trigger.OnDamaged(actor, func)
|
||||||
|
end)
|
||||||
|
end
|
||||||
@@ -36,6 +36,7 @@ Counterstrike:
|
|||||||
Aftermath:
|
Aftermath:
|
||||||
production-disruption
|
production-disruption
|
||||||
monster-tank-madness
|
monster-tank-madness
|
||||||
|
shock-therapy
|
||||||
situation-critical
|
situation-critical
|
||||||
OpenRA Originals:
|
OpenRA Originals:
|
||||||
evacuation
|
evacuation
|
||||||
|
|||||||
Reference in New Issue
Block a user