@@ -68,6 +68,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Red Alert Lua scripts", "Re
|
|||||||
mods\ra\maps\soviet-05\soviet05.lua = mods\ra\maps\soviet-05\soviet05.lua
|
mods\ra\maps\soviet-05\soviet05.lua = mods\ra\maps\soviet-05\soviet05.lua
|
||||||
mods\ra\maps\soviet-05\soviet05-AI.lua = mods\ra\maps\soviet-05\soviet05-AI.lua
|
mods\ra\maps\soviet-05\soviet05-AI.lua = mods\ra\maps\soviet-05\soviet05-AI.lua
|
||||||
mods\ra\maps\soviet-05\soviet05-reinforcements_teams.lua = mods\ra\maps\soviet-05\soviet05-reinforcements_teams.lua
|
mods\ra\maps\soviet-05\soviet05-reinforcements_teams.lua = mods\ra\maps\soviet-05\soviet05-reinforcements_teams.lua
|
||||||
|
mods\ra\maps\soviet-06a\soviet06a.lua = mods\ra\maps\soviet-06a\soviet06a.lua
|
||||||
|
mods\ra\maps\soviet-06a\soviet06a-AI.lua = mods\ra\maps\soviet-06a\soviet06a-AI.lua
|
||||||
mods\ra\maps\soviet-07\soviet07.lua = mods\ra\maps\soviet-07\soviet07.lua
|
mods\ra\maps\soviet-07\soviet07.lua = mods\ra\maps\soviet-07\soviet07.lua
|
||||||
mods\ra\maps\survival01\survival01.lua = mods\ra\maps\survival01\survival01.lua
|
mods\ra\maps\survival01\survival01.lua = mods\ra\maps\survival01\survival01.lua
|
||||||
mods\ra\maps\survival02\survival02.lua = mods\ra\maps\survival02\survival02.lua
|
mods\ra\maps\survival02\survival02.lua = mods\ra\maps\survival02\survival02.lua
|
||||||
|
|||||||
BIN
mods/ra/maps/soviet-06a/map.bin
Normal file
BIN
mods/ra/maps/soviet-06a/map.bin
Normal file
Binary file not shown.
BIN
mods/ra/maps/soviet-06a/map.png
Normal file
BIN
mods/ra/maps/soviet-06a/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
980
mods/ra/maps/soviet-06a/map.yaml
Normal file
980
mods/ra/maps/soviet-06a/map.yaml
Normal file
@@ -0,0 +1,980 @@
|
|||||||
|
MapFormat: 7
|
||||||
|
|
||||||
|
RequiresMod: ra
|
||||||
|
|
||||||
|
Title: Soviet 06a: Bridge over the River Grotzny
|
||||||
|
|
||||||
|
Description: There is a special cargo that needs to be transported to a nearby Soviet base in the northeast.\n\nMake sure the trucks reach their destination intact. Along the way, there is a bridge which the Allies may have destroyed.\n\nIf so, use the Naval options at your disposal. Our attack subs will make short work of any Allied boats you discover.
|
||||||
|
|
||||||
|
Author: Westwood Studios
|
||||||
|
|
||||||
|
Tileset: TEMPERAT
|
||||||
|
|
||||||
|
MapSize: 128,128
|
||||||
|
|
||||||
|
Bounds: 5,1,93,53
|
||||||
|
|
||||||
|
Visibility: MissionSelector
|
||||||
|
|
||||||
|
Type: Campaign
|
||||||
|
|
||||||
|
Videos:
|
||||||
|
Briefing: soviet6.vqa
|
||||||
|
GameStart: onthprwl.vqa
|
||||||
|
GameWon: sitduck.vqa
|
||||||
|
GameLost: dpthchrg.vqa
|
||||||
|
|
||||||
|
Options:
|
||||||
|
Crates: False
|
||||||
|
Fog: True
|
||||||
|
Shroud: True
|
||||||
|
AllyBuildRadius: False
|
||||||
|
FragileAlliances: False
|
||||||
|
StartingCash: 11500
|
||||||
|
ConfigurableStartingUnits: False
|
||||||
|
ShortGame: False
|
||||||
|
|
||||||
|
Players:
|
||||||
|
PlayerReference@Neutral:
|
||||||
|
Name: Neutral
|
||||||
|
OwnsWorld: True
|
||||||
|
NonCombatant: True
|
||||||
|
Faction: allies
|
||||||
|
PlayerReference@Creeps:
|
||||||
|
Name: Creeps
|
||||||
|
NonCombatant: True
|
||||||
|
PlayerReference@Greece:
|
||||||
|
Name: Greece
|
||||||
|
Faction: allies
|
||||||
|
ColorRamp: 161,134,236
|
||||||
|
Enemies: USSR
|
||||||
|
PlayerReference@USSR:
|
||||||
|
Name: USSR
|
||||||
|
AllowBots: False
|
||||||
|
Playable: True
|
||||||
|
Required: True
|
||||||
|
LockFaction: True
|
||||||
|
Faction: soviet
|
||||||
|
LockColor: True
|
||||||
|
ColorRamp: 3,255,127
|
||||||
|
LockSpawn: True
|
||||||
|
LockTeam: True
|
||||||
|
Enemies: Greece, Creeps
|
||||||
|
|
||||||
|
Actors:
|
||||||
|
Actor0: cycl
|
||||||
|
Location: 17,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor1: cycl
|
||||||
|
Location: 18,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor2: cycl
|
||||||
|
Location: 19,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor3: cycl
|
||||||
|
Location: 20,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor4: cycl
|
||||||
|
Location: 21,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor5: cycl
|
||||||
|
Location: 22,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor6: cycl
|
||||||
|
Location: 23,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor7: cycl
|
||||||
|
Location: 24,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor8: cycl
|
||||||
|
Location: 25,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor9: cycl
|
||||||
|
Location: 26,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor10: cycl
|
||||||
|
Location: 27,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor11: cycl
|
||||||
|
Location: 28,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor12: cycl
|
||||||
|
Location: 29,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor13: cycl
|
||||||
|
Location: 30,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor14: cycl
|
||||||
|
Location: 31,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor15: cycl
|
||||||
|
Location: 32,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor16: cycl
|
||||||
|
Location: 33,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor17: cycl
|
||||||
|
Location: 34,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor18: cycl
|
||||||
|
Location: 35,1
|
||||||
|
Owner: Greece
|
||||||
|
Actor19: cycl
|
||||||
|
Location: 17,2
|
||||||
|
Owner: Greece
|
||||||
|
Actor20: cycl
|
||||||
|
Location: 17,3
|
||||||
|
Owner: Greece
|
||||||
|
Actor21: cycl
|
||||||
|
Location: 18,3
|
||||||
|
Owner: Greece
|
||||||
|
Actor22: cycl
|
||||||
|
Location: 17,4
|
||||||
|
Owner: Greece
|
||||||
|
Actor23: cycl
|
||||||
|
Location: 18,4
|
||||||
|
Owner: Greece
|
||||||
|
Actor24: cycl
|
||||||
|
Location: 17,10
|
||||||
|
Owner: Greece
|
||||||
|
Actor25: cycl
|
||||||
|
Location: 18,10
|
||||||
|
Owner: Greece
|
||||||
|
Actor26: cycl
|
||||||
|
Location: 17,11
|
||||||
|
Owner: Greece
|
||||||
|
Actor27: cycl
|
||||||
|
Location: 18,11
|
||||||
|
Owner: Greece
|
||||||
|
Actor28: cycl
|
||||||
|
Location: 17,12
|
||||||
|
Owner: Greece
|
||||||
|
Actor29: cycl
|
||||||
|
Location: 17,13
|
||||||
|
Owner: Greece
|
||||||
|
Actor30: cycl
|
||||||
|
Location: 17,14
|
||||||
|
Owner: Greece
|
||||||
|
Actor31: cycl
|
||||||
|
Location: 17,15
|
||||||
|
Owner: Greece
|
||||||
|
Actor32: cycl
|
||||||
|
Location: 17,16
|
||||||
|
Owner: Greece
|
||||||
|
Actor33: cycl
|
||||||
|
Location: 17,17
|
||||||
|
Owner: Greece
|
||||||
|
Actor34: cycl
|
||||||
|
Location: 17,18
|
||||||
|
Owner: Greece
|
||||||
|
Actor35: cycl
|
||||||
|
Location: 18,18
|
||||||
|
Owner: Greece
|
||||||
|
Actor36: cycl
|
||||||
|
Location: 18,19
|
||||||
|
Owner: Greece
|
||||||
|
Actor37: cycl
|
||||||
|
Location: 31,19
|
||||||
|
Owner: Greece
|
||||||
|
Actor38: cycl
|
||||||
|
Location: 32,19
|
||||||
|
Owner: Greece
|
||||||
|
Actor39: cycl
|
||||||
|
Location: 18,20
|
||||||
|
Owner: Greece
|
||||||
|
Actor40: cycl
|
||||||
|
Location: 31,20
|
||||||
|
Owner: Greece
|
||||||
|
Actor41: cycl
|
||||||
|
Location: 17,21
|
||||||
|
Owner: Greece
|
||||||
|
Actor42: cycl
|
||||||
|
Location: 18,21
|
||||||
|
Owner: Greece
|
||||||
|
Actor43: cycl
|
||||||
|
Location: 31,21
|
||||||
|
Owner: Greece
|
||||||
|
Actor44: cycl
|
||||||
|
Location: 17,22
|
||||||
|
Owner: Greece
|
||||||
|
Actor45: sbag
|
||||||
|
Location: 19,22
|
||||||
|
Owner: Greece
|
||||||
|
Actor46: sbag
|
||||||
|
Location: 20,22
|
||||||
|
Owner: Greece
|
||||||
|
Actor47: sbag
|
||||||
|
Location: 21,22
|
||||||
|
Owner: Greece
|
||||||
|
Actor48: sbag
|
||||||
|
Location: 27,22
|
||||||
|
Owner: Greece
|
||||||
|
Actor49: sbag
|
||||||
|
Location: 28,22
|
||||||
|
Owner: Greece
|
||||||
|
Actor50: sbag
|
||||||
|
Location: 29,22
|
||||||
|
Owner: Greece
|
||||||
|
Actor51: cycl
|
||||||
|
Location: 31,22
|
||||||
|
Owner: Greece
|
||||||
|
Actor52: cycl
|
||||||
|
Location: 17,23
|
||||||
|
Owner: Greece
|
||||||
|
Actor53: sbag
|
||||||
|
Location: 21,23
|
||||||
|
Owner: Greece
|
||||||
|
Actor54: sbag
|
||||||
|
Location: 27,23
|
||||||
|
Owner: Greece
|
||||||
|
Actor55: cycl
|
||||||
|
Location: 31,23
|
||||||
|
Owner: Greece
|
||||||
|
Actor56: cycl
|
||||||
|
Location: 17,24
|
||||||
|
Owner: Greece
|
||||||
|
Actor57: cycl
|
||||||
|
Location: 18,24
|
||||||
|
Owner: Greece
|
||||||
|
Actor58: cycl
|
||||||
|
Location: 19,24
|
||||||
|
Owner: Greece
|
||||||
|
Actor59: cycl
|
||||||
|
Location: 20,24
|
||||||
|
Owner: Greece
|
||||||
|
Actor60: cycl
|
||||||
|
Location: 21,24
|
||||||
|
Owner: Greece
|
||||||
|
Actor61: cycl
|
||||||
|
Location: 27,24
|
||||||
|
Owner: Greece
|
||||||
|
Actor62: cycl
|
||||||
|
Location: 28,24
|
||||||
|
Owner: Greece
|
||||||
|
Actor63: cycl
|
||||||
|
Location: 29,24
|
||||||
|
Owner: Greece
|
||||||
|
Actor64: cycl
|
||||||
|
Location: 30,24
|
||||||
|
Owner: Greece
|
||||||
|
Actor65: cycl
|
||||||
|
Location: 31,24
|
||||||
|
Owner: Greece
|
||||||
|
Actor66: sbag
|
||||||
|
Location: 71,31
|
||||||
|
Owner: Greece
|
||||||
|
Actor67: sbag
|
||||||
|
Location: 72,31
|
||||||
|
Owner: Greece
|
||||||
|
Actor68: sbag
|
||||||
|
Location: 71,32
|
||||||
|
Owner: Greece
|
||||||
|
Actor69: sbag
|
||||||
|
Location: 72,32
|
||||||
|
Owner: Greece
|
||||||
|
Actor70: sbag
|
||||||
|
Location: 72,33
|
||||||
|
Owner: Greece
|
||||||
|
Actor71: sbag
|
||||||
|
Location: 73,33
|
||||||
|
Owner: Greece
|
||||||
|
Actor72: sbag
|
||||||
|
Location: 73,34
|
||||||
|
Owner: Greece
|
||||||
|
Actor73: sbag
|
||||||
|
Location: 74,34
|
||||||
|
Owner: Greece
|
||||||
|
Actor74: sbag
|
||||||
|
Location: 75,34
|
||||||
|
Owner: Greece
|
||||||
|
Actor75: sbag
|
||||||
|
Location: 74,35
|
||||||
|
Owner: Greece
|
||||||
|
Actor76: sbag
|
||||||
|
Location: 75,35
|
||||||
|
Owner: Greece
|
||||||
|
Actor77: t17
|
||||||
|
Location: 66,28
|
||||||
|
Owner: Neutral
|
||||||
|
Actor78: t08
|
||||||
|
Location: 83,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor79: t16
|
||||||
|
Location: 82,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor80: tc04
|
||||||
|
Location: 80,36
|
||||||
|
Owner: Neutral
|
||||||
|
Actor81: tc05
|
||||||
|
Location: 77,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor82: tc01
|
||||||
|
Location: 79,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor83: tc01
|
||||||
|
Location: 61,52
|
||||||
|
Owner: Neutral
|
||||||
|
Actor84: tc02
|
||||||
|
Location: 61,49
|
||||||
|
Owner: Neutral
|
||||||
|
Actor85: tc03
|
||||||
|
Location: 58,52
|
||||||
|
Owner: Neutral
|
||||||
|
Actor86: tc05
|
||||||
|
Location: 52,47
|
||||||
|
Owner: Neutral
|
||||||
|
Actor87: t16
|
||||||
|
Location: 35,21
|
||||||
|
Owner: Neutral
|
||||||
|
Actor88: tc04
|
||||||
|
Location: 36,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor89: t15
|
||||||
|
Location: 38,22
|
||||||
|
Owner: Neutral
|
||||||
|
Actor90: t12
|
||||||
|
Location: 31,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor91: tc05
|
||||||
|
Location: 95,15
|
||||||
|
Owner: Neutral
|
||||||
|
Actor92: tc01
|
||||||
|
Location: 94,19
|
||||||
|
Owner: Neutral
|
||||||
|
Actor93: tc03
|
||||||
|
Location: 85,13
|
||||||
|
Owner: Neutral
|
||||||
|
Actor94: tc02
|
||||||
|
Location: 94,6
|
||||||
|
Owner: Neutral
|
||||||
|
Actor95: tc01
|
||||||
|
Location: 96,11
|
||||||
|
Owner: Neutral
|
||||||
|
Actor96: tc04
|
||||||
|
Location: 84,4
|
||||||
|
Owner: Neutral
|
||||||
|
Actor97: t17
|
||||||
|
Location: 83,13
|
||||||
|
Owner: Neutral
|
||||||
|
Actor98: t16
|
||||||
|
Location: 88,11
|
||||||
|
Owner: Neutral
|
||||||
|
Actor99: t16
|
||||||
|
Location: 91,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor100: t14
|
||||||
|
Location: 93,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor101: t11
|
||||||
|
Location: 95,22
|
||||||
|
Owner: Neutral
|
||||||
|
Actor102: tc05
|
||||||
|
Location: 32,22
|
||||||
|
Owner: Neutral
|
||||||
|
Actor103: tc05
|
||||||
|
Location: 5,12
|
||||||
|
Owner: Neutral
|
||||||
|
Actor104: tc01
|
||||||
|
Location: 9,12
|
||||||
|
Owner: Neutral
|
||||||
|
Actor105: tc05
|
||||||
|
Location: 50,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor106: tc04
|
||||||
|
Location: 53,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor107: tc05
|
||||||
|
Location: 74,47
|
||||||
|
Owner: Neutral
|
||||||
|
Actor108: tc04
|
||||||
|
Location: 80,43
|
||||||
|
Owner: Neutral
|
||||||
|
Actor109: tc02
|
||||||
|
Location: 78,42
|
||||||
|
Owner: Neutral
|
||||||
|
Actor110: tc01
|
||||||
|
Location: 74,46
|
||||||
|
Owner: Neutral
|
||||||
|
Actor111: t17
|
||||||
|
Location: 73,48
|
||||||
|
Owner: Neutral
|
||||||
|
Actor112: t16
|
||||||
|
Location: 77,46
|
||||||
|
Owner: Neutral
|
||||||
|
Actor113: t15
|
||||||
|
Location: 80,41
|
||||||
|
Owner: Neutral
|
||||||
|
Actor114: t14
|
||||||
|
Location: 68,52
|
||||||
|
Owner: Neutral
|
||||||
|
Actor115: t13
|
||||||
|
Location: 84,40
|
||||||
|
Owner: Neutral
|
||||||
|
Actor116: tc02
|
||||||
|
Location: 65,52
|
||||||
|
Owner: Neutral
|
||||||
|
Actor117: tc01
|
||||||
|
Location: 66,49
|
||||||
|
Owner: Neutral
|
||||||
|
Actor118: t08
|
||||||
|
Location: 32,20
|
||||||
|
Owner: Neutral
|
||||||
|
Actor119: tc02
|
||||||
|
Location: 18,52
|
||||||
|
Owner: Neutral
|
||||||
|
Actor120: t15
|
||||||
|
Location: 27,51
|
||||||
|
Owner: Neutral
|
||||||
|
Actor121: t11
|
||||||
|
Location: 40,40
|
||||||
|
Owner: Neutral
|
||||||
|
Actor122: t10
|
||||||
|
Location: 41,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor123: t10
|
||||||
|
Location: 43,29
|
||||||
|
Owner: Neutral
|
||||||
|
Actor124: t08
|
||||||
|
Location: 41,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor125: t08
|
||||||
|
Location: 42,41
|
||||||
|
Owner: Neutral
|
||||||
|
Actor126: tc05
|
||||||
|
Location: 29,28
|
||||||
|
Owner: Neutral
|
||||||
|
Actor127: tc02
|
||||||
|
Location: 19,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor128: tc04
|
||||||
|
Location: 17,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor129: t14
|
||||||
|
Location: 37,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor130: tc01
|
||||||
|
Location: 38,28
|
||||||
|
Owner: Neutral
|
||||||
|
Actor131: t16
|
||||||
|
Location: 39,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor132: t16
|
||||||
|
Location: 37,28
|
||||||
|
Owner: Neutral
|
||||||
|
Actor133: t10
|
||||||
|
Location: 11,49
|
||||||
|
Owner: Neutral
|
||||||
|
Actor134: tc05
|
||||||
|
Location: 12,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor135: tc04
|
||||||
|
Location: 5,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor136: tc02
|
||||||
|
Location: 12,12
|
||||||
|
Owner: Neutral
|
||||||
|
Actor137: t16
|
||||||
|
Location: 11,12
|
||||||
|
Owner: Neutral
|
||||||
|
Actor234: t12
|
||||||
|
Owner: Neutral
|
||||||
|
Location: 15,14
|
||||||
|
Actor139: t08
|
||||||
|
Location: 16,15
|
||||||
|
Owner: Neutral
|
||||||
|
Actor140: t01
|
||||||
|
Location: 8,12
|
||||||
|
Owner: Neutral
|
||||||
|
Actor141: t10
|
||||||
|
Location: 13,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor142: t15
|
||||||
|
Location: 7,40
|
||||||
|
Owner: Neutral
|
||||||
|
Actor143: t14
|
||||||
|
Location: 17,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor144: tc02
|
||||||
|
Location: 5,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor145: tc03
|
||||||
|
Location: 85,6
|
||||||
|
Owner: Neutral
|
||||||
|
Actor233: t01
|
||||||
|
Owner: Neutral
|
||||||
|
Location: 15,13
|
||||||
|
Actor147: t10
|
||||||
|
Location: 14,12
|
||||||
|
Owner: Neutral
|
||||||
|
Actor148: tc05
|
||||||
|
Location: 81,4
|
||||||
|
Owner: Neutral
|
||||||
|
Actor149: t01
|
||||||
|
Location: 61,9
|
||||||
|
Owner: Neutral
|
||||||
|
Actor150: tc03
|
||||||
|
Location: 71,6
|
||||||
|
Owner: Neutral
|
||||||
|
Actor151: t17
|
||||||
|
Location: 60,6
|
||||||
|
Owner: Neutral
|
||||||
|
Actor152: t11
|
||||||
|
Location: 70,3
|
||||||
|
Owner: Neutral
|
||||||
|
Actor153: tc05
|
||||||
|
Location: 22,2
|
||||||
|
Owner: Neutral
|
||||||
|
Actor154: tc03
|
||||||
|
Location: 28,2
|
||||||
|
Owner: Neutral
|
||||||
|
Actor155: tc01
|
||||||
|
Location: 33,1
|
||||||
|
Owner: Neutral
|
||||||
|
Actor156: hbox
|
||||||
|
Location: 19,23
|
||||||
|
Owner: Greece
|
||||||
|
Actor157: hbox
|
||||||
|
Location: 29,23
|
||||||
|
Owner: Greece
|
||||||
|
Actor158: gun
|
||||||
|
Location: 20,23
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 128
|
||||||
|
Actor159: gun
|
||||||
|
Location: 28,23
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 128
|
||||||
|
Actor161: dome
|
||||||
|
Location: 23,5
|
||||||
|
Owner: Greece
|
||||||
|
Actor163: gap
|
||||||
|
Location: 24,21
|
||||||
|
Owner: Greece
|
||||||
|
Actor164: syrd
|
||||||
|
Location: 35,14
|
||||||
|
Owner: Greece
|
||||||
|
Actor167: gun
|
||||||
|
Location: 33,5
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 192
|
||||||
|
Actor168: gun
|
||||||
|
Location: 33,9
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 192
|
||||||
|
Actor169: v07
|
||||||
|
Location: 66,4
|
||||||
|
Owner: Greece
|
||||||
|
Health: 45
|
||||||
|
Actor170: v03
|
||||||
|
Location: 64,8
|
||||||
|
Owner: Greece
|
||||||
|
Actor171: v01
|
||||||
|
Location: 71,8
|
||||||
|
Owner: Greece
|
||||||
|
Actor172: v05
|
||||||
|
Location: 61,8
|
||||||
|
Owner: Greece
|
||||||
|
Health: 43
|
||||||
|
Actor173: v06
|
||||||
|
Location: 68,4
|
||||||
|
Owner: Greece
|
||||||
|
Actor174: powr
|
||||||
|
Location: 20,2
|
||||||
|
Owner: Greece
|
||||||
|
Actor175: powr
|
||||||
|
Location: 25,2
|
||||||
|
Owner: Greece
|
||||||
|
Actor179: 2tnk
|
||||||
|
Location: 73,35
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor180: 2tnk
|
||||||
|
Location: 72,34
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor181: 2tnk
|
||||||
|
Location: 71,33
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor182: arty
|
||||||
|
Location: 74,33
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor183: arty
|
||||||
|
Location: 73,32
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor186: 3tnk
|
||||||
|
Location: 56,47
|
||||||
|
Owner: USSR
|
||||||
|
Health: 99
|
||||||
|
Facing: 32
|
||||||
|
Actor187: 3tnk
|
||||||
|
Location: 60,49
|
||||||
|
Owner: USSR
|
||||||
|
Health: 99
|
||||||
|
Facing: 32
|
||||||
|
Actor191: v2rl
|
||||||
|
Location: 57,49
|
||||||
|
Owner: USSR
|
||||||
|
Facing: 32
|
||||||
|
Actor193: 2tnk
|
||||||
|
Location: 73,31
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor194: 2tnk
|
||||||
|
Location: 75,33
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor195: 2tnk
|
||||||
|
Location: 85,18
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor196: 2tnk
|
||||||
|
Location: 88,20
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor197: 2tnk
|
||||||
|
Location: 22,23
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 128
|
||||||
|
Actor198: 2tnk
|
||||||
|
Location: 26,23
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 128
|
||||||
|
Actor199: arty
|
||||||
|
Location: 18,23
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 96
|
||||||
|
Actor200: arty
|
||||||
|
Location: 30,23
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor202: 1tnk
|
||||||
|
Location: 23,21
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 128
|
||||||
|
Actor203: 1tnk
|
||||||
|
Location: 25,21
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 128
|
||||||
|
Actor204: 2tnk
|
||||||
|
Location: 40,6
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 192
|
||||||
|
Actor205: 2tnk
|
||||||
|
Location: 40,8
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 192
|
||||||
|
Actor206: arty
|
||||||
|
Location: 40,7
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 192
|
||||||
|
Actor207: 1tnk
|
||||||
|
Location: 77,10
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 192
|
||||||
|
Actor208: 1tnk
|
||||||
|
Location: 77,11
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 192
|
||||||
|
Actor209: 1tnk
|
||||||
|
Location: 77,12
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 192
|
||||||
|
Actor210: ca
|
||||||
|
Location: 87,29
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 224
|
||||||
|
Actor211: ca
|
||||||
|
Location: 87,25
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor212: ca
|
||||||
|
Location: 76,22
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 224
|
||||||
|
Actor213: pt
|
||||||
|
Location: 38,4
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 192
|
||||||
|
Actor214: pt
|
||||||
|
Location: 38,10
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 192
|
||||||
|
Actor215: dd
|
||||||
|
Location: 55,15
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 192
|
||||||
|
Actor216: waypoint
|
||||||
|
Location: 39,13
|
||||||
|
Owner: Neutral
|
||||||
|
Actor235: silo
|
||||||
|
Owner: Greece
|
||||||
|
Location: 26,9
|
||||||
|
Actor236: silo
|
||||||
|
Owner: Greece
|
||||||
|
Location: 24,9
|
||||||
|
Actor237: silo
|
||||||
|
Owner: Greece
|
||||||
|
Location: 27,2
|
||||||
|
Actor238: silo
|
||||||
|
Owner: Greece
|
||||||
|
Location: 27,3
|
||||||
|
waypoint78: waypoint
|
||||||
|
Location: 83,23
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint79: waypoint
|
||||||
|
Location: 87,19
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint80: waypoint
|
||||||
|
Location: 84,22
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint81: waypoint
|
||||||
|
Location: 76,22
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint82: waypoint
|
||||||
|
Location: 87,29
|
||||||
|
Owner: Neutral
|
||||||
|
APCWaypoint1: waypoint
|
||||||
|
Location: 52,50
|
||||||
|
Owner: Neutral
|
||||||
|
APCWaypoint2: waypoint
|
||||||
|
Location: 58,51
|
||||||
|
Owner: Neutral
|
||||||
|
Apwr: apwr
|
||||||
|
Location: 18,11
|
||||||
|
Owner: Greece
|
||||||
|
Apwr2: apwr
|
||||||
|
Owner: Greece
|
||||||
|
Location: 27,5
|
||||||
|
AttackWaypoint1: waypoint
|
||||||
|
Owner: Neutral
|
||||||
|
Location: 24,30
|
||||||
|
AttackWaypoint2: waypoint
|
||||||
|
Owner: Neutral
|
||||||
|
Location: 35,30
|
||||||
|
Barr: tent
|
||||||
|
Location: 29,16
|
||||||
|
Owner: Greece
|
||||||
|
BaseAttacker1: 1tnk
|
||||||
|
Location: 76,35
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
BaseAttacker2: 1tnk
|
||||||
|
Location: 71,30
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
CameraBarrier: camera
|
||||||
|
Location: 70,36
|
||||||
|
Owner: Neutral
|
||||||
|
CameraBase1: camera
|
||||||
|
Location: 34,40
|
||||||
|
Owner: Neutral
|
||||||
|
CameraBase2: camera
|
||||||
|
Location: 24,40
|
||||||
|
Owner: Neutral
|
||||||
|
CameraBase3: camera
|
||||||
|
Location: 30,46
|
||||||
|
Owner: Neutral
|
||||||
|
CameraBase4: camera
|
||||||
|
Location: 48,39
|
||||||
|
Owner: Neutral
|
||||||
|
CameraStart: camera
|
||||||
|
Location: 58,48
|
||||||
|
Owner: Neutral
|
||||||
|
CYard: fact
|
||||||
|
Location: 30,2
|
||||||
|
Owner: Greece
|
||||||
|
CYardLocation: waypoint
|
||||||
|
Owner: Neutral
|
||||||
|
Location: 31,4
|
||||||
|
Harvester: harv
|
||||||
|
Location: 12,10
|
||||||
|
Owner: Greece
|
||||||
|
IntroEnemy1: 1tnk
|
||||||
|
Location: 63,42
|
||||||
|
Owner: Greece
|
||||||
|
Health: 28
|
||||||
|
Facing: 160
|
||||||
|
IntroEnemy2: jeep
|
||||||
|
Location: 64,42
|
||||||
|
Owner: Greece
|
||||||
|
Health: 43
|
||||||
|
Facing: 160
|
||||||
|
IntroEnemy3: 1tnk
|
||||||
|
Location: 64,43
|
||||||
|
Owner: Greece
|
||||||
|
Health: 50
|
||||||
|
Facing: 160
|
||||||
|
Mcv: mcv
|
||||||
|
Location: 61,45
|
||||||
|
Owner: USSR
|
||||||
|
Facing: 96
|
||||||
|
McvWaypoint: waypoint
|
||||||
|
Location: 53,53
|
||||||
|
Owner: Neutral
|
||||||
|
Proc: proc
|
||||||
|
Location: 24,9
|
||||||
|
Owner: Greece
|
||||||
|
FreeActor: False
|
||||||
|
Truck1: truk
|
||||||
|
Location: 54,52
|
||||||
|
Owner: USSR
|
||||||
|
Facing: 32
|
||||||
|
Truck2: truk
|
||||||
|
Location: 55,51
|
||||||
|
Owner: USSR
|
||||||
|
Facing: 32
|
||||||
|
Weap: weap
|
||||||
|
Location: 22,15
|
||||||
|
Owner: Greece
|
||||||
|
|
||||||
|
Smudges:
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
Player:
|
||||||
|
-ConquestVictoryConditions:
|
||||||
|
MissionObjectives:
|
||||||
|
EarlyGameOver: true
|
||||||
|
-EnemyWatcher:
|
||||||
|
World:
|
||||||
|
-CrateSpawner:
|
||||||
|
-SpawnMPUnits:
|
||||||
|
-MPStartLocations:
|
||||||
|
LuaScript:
|
||||||
|
Scripts: soviet06a.lua, soviet06a-AI.lua
|
||||||
|
ObjectivesPanel:
|
||||||
|
PanelName: MISSION_OBJECTIVES
|
||||||
|
^Building:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Infantry:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Vehicle:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Ship:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Plane:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Wall:
|
||||||
|
Tooltip:
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^TechBuilding:
|
||||||
|
Tooltip:
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Crate:
|
||||||
|
Tooltip:
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Husk:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy, Ally, Neutral
|
||||||
|
GenericStancePrefix: false
|
||||||
|
ShowOwnerRow: false
|
||||||
|
APWR:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
ARTY:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~vehicles.allies, ~techlevel.low
|
||||||
|
BRIK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
TSLA:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
SAM:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
IRON:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
MSLO:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
E3:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~tent
|
||||||
|
SHOK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
SNIPER:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
HIJACKER:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
MIG:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
FTRK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
2TNK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~vehicles.allies, ~techlevel.low
|
||||||
|
4TNK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
APC:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
TRUK:
|
||||||
|
-SpawnActorOnDeath:
|
||||||
|
-SupplyTruck:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
QTNK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
MCV:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
MSUB:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
STEK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
DOG:
|
||||||
|
Health:
|
||||||
|
HP: 25
|
||||||
|
AutoTarget:
|
||||||
|
ScanRadius: 5
|
||||||
|
HARV:
|
||||||
|
Harvester:
|
||||||
|
SearchFromProcRadius: 50
|
||||||
|
SearchFromOrderRadius: 50
|
||||||
|
AFLD:
|
||||||
|
ParatroopersPower@paratroopers:
|
||||||
|
DropItems: E1,E1,E1,E1,E1
|
||||||
|
MONEYCRATE:
|
||||||
|
GiveCashCrateAction:
|
||||||
|
Amount: 2000
|
||||||
|
V01:
|
||||||
|
SpawnActorOnDeath:
|
||||||
|
Actor: moneycrate
|
||||||
|
V05:
|
||||||
|
SpawnActorOnDeath:
|
||||||
|
Actor: healcrate
|
||||||
|
|
||||||
|
Sequences:
|
||||||
|
|
||||||
|
VoxelSequences:
|
||||||
|
|
||||||
|
Weapons:
|
||||||
|
|
||||||
|
Voices:
|
||||||
|
|
||||||
|
Notifications:
|
||||||
|
|
||||||
|
Translations:
|
||||||
112
mods/ra/maps/soviet-06a/soviet06a-AI.lua
Normal file
112
mods/ra/maps/soviet-06a/soviet06a-AI.lua
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end
|
||||||
|
|
||||||
|
IdlingUnits = function()
|
||||||
|
local lazyUnits = enemy.GetGroundAttackers()
|
||||||
|
|
||||||
|
Utils.Do(lazyUnits, function(unit)
|
||||||
|
Trigger.OnDamaged(unit, function()
|
||||||
|
Trigger.ClearAll(unit)
|
||||||
|
Trigger.AfterDelay(0, function() IdleHunt(unit) end)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
BaseBuildings =
|
||||||
|
{
|
||||||
|
{ "apwr", CVec.New(-13, 7), 500, true },
|
||||||
|
{ "tent", CVec.New(-2, 12), 400, true },
|
||||||
|
{ "proc", CVec.New(-7, 5), 1400, true },
|
||||||
|
{ "weap", CVec.New(-9, 11), 2000, true },
|
||||||
|
{ "apwr", CVec.New(-4, 1), 500, true }
|
||||||
|
}
|
||||||
|
|
||||||
|
BuildBase = function()
|
||||||
|
if CYard.IsDead or CYard.Owner ~= enemy then
|
||||||
|
return
|
||||||
|
elseif Harvester.IsDead and enemy.Resources <= 299 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
for i,v in ipairs(BaseBuildings) do
|
||||||
|
if not v[4] then
|
||||||
|
BuildBuilding(v)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(10), BuildBase)
|
||||||
|
end
|
||||||
|
|
||||||
|
BuildBuilding = function(building)
|
||||||
|
Trigger.AfterDelay(Actor.BuildTime(building[1]), function()
|
||||||
|
local actor = Actor.Create(building[1], true, { Owner = enemy, Location = CYardLocation.Location + building[2] })
|
||||||
|
enemy.Cash = enemy.Cash - building[3]
|
||||||
|
|
||||||
|
building[4] = true
|
||||||
|
Trigger.OnKilled(actor, function() building[4] = true end)
|
||||||
|
Trigger.OnDamaged(actor, function(building)
|
||||||
|
if building.Owner == enemy and building.Health < building.MaxHealth * 3/4 then
|
||||||
|
building.StartBuildingRepairs()
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(10), BuildBase)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
ProduceInfantry = function()
|
||||||
|
if not BaseBuildings[2][4] then
|
||||||
|
return
|
||||||
|
elseif Harvester.IsDead and enemy.Resources <= 299 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local delay = Utils.RandomInteger(DateTime.Seconds(3), DateTime.Seconds(9))
|
||||||
|
local toBuild = { Utils.Random(AlliedInfantryTypes) }
|
||||||
|
local Path = Utils.Random(AttackPaths)
|
||||||
|
enemy.Build(toBuild, function(unit)
|
||||||
|
InfAttack[#InfAttack + 1] = unit[1]
|
||||||
|
|
||||||
|
if #InfAttack >= 10 then
|
||||||
|
SendUnits(InfAttack, Path)
|
||||||
|
InfAttack = { }
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(2), ProduceInfantry)
|
||||||
|
else
|
||||||
|
Trigger.AfterDelay(delay, ProduceInfantry)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
ProduceArmor = function()
|
||||||
|
if not BaseBuildings[4][4] then
|
||||||
|
return
|
||||||
|
elseif Harvester.IsDead and enemy.Resources <= 599 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local delay = Utils.RandomInteger(DateTime.Seconds(12), DateTime.Seconds(17))
|
||||||
|
local toBuild = { Utils.Random(AlliedArmorTypes) }
|
||||||
|
local Path = Utils.Random(AttackPaths)
|
||||||
|
enemy.Build(toBuild, function(unit)
|
||||||
|
ArmorAttack[#ArmorAttack + 1] = unit[1]
|
||||||
|
|
||||||
|
if #ArmorAttack >= 6 then
|
||||||
|
SendUnits(ArmorAttack, Path)
|
||||||
|
ArmorAttack = { }
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(3), ProduceArmor)
|
||||||
|
else
|
||||||
|
Trigger.AfterDelay(delay, ProduceArmor)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
SendUnits = function(units, waypoints)
|
||||||
|
Utils.Do(units, function(unit)
|
||||||
|
if not unit.IsDead then
|
||||||
|
Utils.Do(waypoints, function(waypoint)
|
||||||
|
unit.AttackMove(waypoint.Location)
|
||||||
|
end)
|
||||||
|
IdleHunt(unit)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
142
mods/ra/maps/soviet-06a/soviet06a.lua
Normal file
142
mods/ra/maps/soviet-06a/soviet06a.lua
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
ArmorAttack = { }
|
||||||
|
AttackPaths = { { AttackWaypoint1 }, { AttackWaypoint2 } }
|
||||||
|
BaseAttackers = { BaseAttacker1, BaseAttacker2 }
|
||||||
|
InfAttack = { }
|
||||||
|
IntroAttackers = { IntroEnemy1, IntroEnemy2, IntroEnemy3 }
|
||||||
|
Trucks = { Truck1, Truck2 }
|
||||||
|
|
||||||
|
AlliedInfantryTypes = { "e1", "e1", "e3" }
|
||||||
|
AlliedArmorTypes = { "jeep", "jeep", "1tnk", "1tnk", "2tnk", "2tnk", "arty" }
|
||||||
|
|
||||||
|
SovietReinforcements1 = { "e6", "e6", "e6", "e6", "e6" }
|
||||||
|
SovietReinforcements2 = { "e4", "e4", "e2", "e2", "e2" }
|
||||||
|
SovietReinforcements1Waypoints = { McvWaypoint.Location, APCWaypoint1.Location }
|
||||||
|
SovietReinforcements2Waypoints = { McvWaypoint.Location, APCWaypoint2.Location }
|
||||||
|
|
||||||
|
TruckGoalTrigger = { CPos.New(83, 7), CPos.New(83, 8), CPos.New(83, 9), CPos.New(83, 10), CPos.New(84, 10), CPos.New(84, 11), CPos.New(84, 12), CPos.New(85, 12), CPos.New(86, 12), CPos.New(87, 12), CPos.New(87, 13), CPos.New(88, 13), CPos.New(89, 13), CPos.New(90, 13), CPos.New(90, 14), CPos.New(90, 15), CPos.New(91, 15), CPos.New(92, 15), CPos.New(93, 15), CPos.New(94, 15) }
|
||||||
|
CameraBarrierTrigger = { CPos.New(65, 39), CPos.New(65, 40), CPos.New(66, 40), CPos.New(66, 41), CPos.New(67, 41), CPos.New(67, 42), CPos.New(68, 42), CPos.New(68, 43), CPos.New(68, 44) }
|
||||||
|
CameraBaseTrigger = { CPos.New(53, 42), CPos.New(54, 42), CPos.New(54, 41), CPos.New(55, 41), CPos.New(56, 41), CPos.New(56, 40), CPos.New(57, 40), CPos.New(57, 39), CPos.New(58, 39), CPos.New(59, 39), CPos.New(59, 38), CPos.New(60, 38), CPos.New(61, 38) }
|
||||||
|
|
||||||
|
Trigger.OnEnteredFootprint(TruckGoalTrigger, function(a, id)
|
||||||
|
if not truckGoalTrigger and a.Owner == player and a.Type == "truk" then
|
||||||
|
truckGoalTrigger = true
|
||||||
|
player.MarkCompletedObjective(sovietObjective)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnEnteredFootprint(CameraBarrierTrigger, function(a, id)
|
||||||
|
if not cameraBarrierTrigger and a.Owner == player then
|
||||||
|
cameraBarrierTrigger = true
|
||||||
|
local cameraBarrier = Actor.Create("camera", true, { Owner = player, Location = CameraBarrier.Location })
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(15), function()
|
||||||
|
cameraBarrier.Kill()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnEnteredFootprint(CameraBaseTrigger, function(a, id)
|
||||||
|
if not cameraBaseTrigger and a.Owner == player then
|
||||||
|
cameraBaseTrigger = true
|
||||||
|
local cameraBase1 = Actor.Create("camera", true, { Owner = player, Location = CameraBase1.Location })
|
||||||
|
local cameraBase2 = Actor.Create("camera", true, { Owner = player, Location = CameraBase2.Location })
|
||||||
|
local cameraBase3 = Actor.Create("camera", true, { Owner = player, Location = CameraBase3.Location })
|
||||||
|
local cameraBase4 = Actor.Create("camera", true, { Owner = player, Location = CameraBase4.Location })
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(1), function()
|
||||||
|
cameraBase1.Kill()
|
||||||
|
cameraBase2.Kill()
|
||||||
|
cameraBase3.Kill()
|
||||||
|
cameraBase4.Kill()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnAllKilled(Trucks, function()
|
||||||
|
if not controlCenterTrigger then
|
||||||
|
enemy.MarkCompletedObjective(alliedObjective)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(Apwr, function(building)
|
||||||
|
BaseBuildings[1][4] = false
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(Barr, function(building)
|
||||||
|
BaseBuildings[2][4] = false
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(Proc, function(building)
|
||||||
|
BaseBuildings[3][4] = false
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(Weap, function(building)
|
||||||
|
BaseBuildings[4][4] = false
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(Apwr2, function(building)
|
||||||
|
BaseBuildings[5][4] = false
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- Activate the AI once the player deployed the Mcv
|
||||||
|
Trigger.OnRemovedFromWorld(Mcv, function()
|
||||||
|
if not mcvDeployed then
|
||||||
|
mcvDeployed = true
|
||||||
|
BuildBase()
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(1), ProduceInfantry)
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(2), ProduceArmor)
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(2), function()
|
||||||
|
Utils.Do(BaseAttackers, function(actor)
|
||||||
|
IdleHunt(actor)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
WorldLoaded = function()
|
||||||
|
player = Player.GetPlayer("USSR")
|
||||||
|
enemy = Player.GetPlayer("Greece")
|
||||||
|
Camera.Position = CameraStart.CenterPosition
|
||||||
|
Mcv.Move(McvWaypoint.Location)
|
||||||
|
Harvester.FindResources()
|
||||||
|
Utils.Do(IntroAttackers, function(actor)
|
||||||
|
IdleHunt(actor)
|
||||||
|
end)
|
||||||
|
Utils.Do(Map.NamedActors, function(actor)
|
||||||
|
if actor.Owner == enemy and actor.HasProperty("StartBuildingRepairs") then
|
||||||
|
Trigger.OnDamaged(actor, function(building)
|
||||||
|
if building.Owner == enemy and building.Health < 3/4 * building.MaxHealth then
|
||||||
|
building.StartBuildingRepairs()
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
Reinforcements.ReinforceWithTransport(player, "apc", SovietReinforcements1, SovietReinforcements1Waypoints)
|
||||||
|
Reinforcements.ReinforceWithTransport(player, "apc", SovietReinforcements2, SovietReinforcements2Waypoints)
|
||||||
|
Trigger.OnObjectiveAdded(player, function(p, id)
|
||||||
|
Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective")
|
||||||
|
end)
|
||||||
|
Trigger.OnObjectiveCompleted(player, function(p, id)
|
||||||
|
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed")
|
||||||
|
end)
|
||||||
|
Trigger.OnObjectiveFailed(player, function(p, id)
|
||||||
|
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed")
|
||||||
|
end)
|
||||||
|
Trigger.OnPlayerWon(player, function()
|
||||||
|
Media.PlaySpeechNotification(player, "Win")
|
||||||
|
end)
|
||||||
|
Trigger.OnPlayerLost(player, function()
|
||||||
|
Media.PlaySpeechNotification(player, "Lose")
|
||||||
|
end)
|
||||||
|
alliedObjective = enemy.AddPrimaryObjective("Destroy all Soviet troops.")
|
||||||
|
sovietObjective = player.AddPrimaryObjective("Escort the Convoy.")
|
||||||
|
end
|
||||||
|
|
||||||
|
Tick = function()
|
||||||
|
if player.HasNoRequiredUnits() then
|
||||||
|
enemy.MarkCompletedObjective(alliedObjective)
|
||||||
|
end
|
||||||
|
|
||||||
|
if enemy.Resources >= enemy.ResourceCapacity * 0.75 then
|
||||||
|
enemy.Cash = enemy.Cash + enemy.Resources - enemy.ResourceCapacity * 0.25
|
||||||
|
enemy.Resources = enemy.ResourceCapacity * 0.25
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -12,4 +12,5 @@ Soviet Campaign:
|
|||||||
./mods/ra/maps/soviet-04a
|
./mods/ra/maps/soviet-04a
|
||||||
./mods/ra/maps/soviet-04b
|
./mods/ra/maps/soviet-04b
|
||||||
./mods/ra/maps/soviet-05
|
./mods/ra/maps/soviet-05
|
||||||
|
./mods/ra/maps/soviet-06a
|
||||||
./mods/ra/maps/soviet-07
|
./mods/ra/maps/soviet-07
|
||||||
|
|||||||
Reference in New Issue
Block a user