Add Aftermath mission: Production Disruption
This commit is contained in:
BIN
mods/ra/maps/production-disruption/map.bin
Normal file
BIN
mods/ra/maps/production-disruption/map.bin
Normal file
Binary file not shown.
BIN
mods/ra/maps/production-disruption/map.png
Normal file
BIN
mods/ra/maps/production-disruption/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
650
mods/ra/maps/production-disruption/map.yaml
Normal file
650
mods/ra/maps/production-disruption/map.yaml
Normal file
@@ -0,0 +1,650 @@
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: ra
|
||||
|
||||
Title: Production Disruption
|
||||
|
||||
Author: Westwood Studios
|
||||
|
||||
Tileset: TEMPERAT
|
||||
|
||||
MapSize: 128,128
|
||||
|
||||
Bounds: 41,7,47,94
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Categories: Mission
|
||||
|
||||
LockPreview: True
|
||||
|
||||
Players:
|
||||
PlayerReference@Neutral:
|
||||
Name: Neutral
|
||||
OwnsWorld: True
|
||||
NonCombatant: True
|
||||
Faction: england
|
||||
PlayerReference@BadGuy:
|
||||
Name: BadGuy
|
||||
Faction: soviet
|
||||
Color: FF1400
|
||||
Allies: USSR
|
||||
Enemies: Greece
|
||||
PlayerReference@USSR:
|
||||
Name: USSR
|
||||
Faction: soviet
|
||||
Color: FF1400
|
||||
Allies: BadGuy
|
||||
Enemies: Greece
|
||||
PlayerReference@Greece:
|
||||
Name: Greece
|
||||
AllowBots: False
|
||||
Playable: True
|
||||
Required: True
|
||||
LockFaction: True
|
||||
Faction: allies
|
||||
LockColor: True
|
||||
Color: ABB7E4
|
||||
LockSpawn: True
|
||||
LockTeam: True
|
||||
Enemies: USSR, BadGuy
|
||||
|
||||
Actors:
|
||||
Actor0: brik
|
||||
Location: 49,37
|
||||
Owner: USSR
|
||||
Actor1: brik
|
||||
Location: 50,37
|
||||
Owner: USSR
|
||||
Actor2: brik
|
||||
Location: 74,37
|
||||
Owner: USSR
|
||||
Actor3: brik
|
||||
Location: 75,37
|
||||
Owner: USSR
|
||||
Actor4: brik
|
||||
Location: 49,38
|
||||
Owner: USSR
|
||||
Actor5: brik
|
||||
Location: 50,38
|
||||
Owner: USSR
|
||||
Actor6: brik
|
||||
Location: 74,38
|
||||
Owner: USSR
|
||||
Actor7: brik
|
||||
Location: 75,38
|
||||
Owner: USSR
|
||||
Actor8: brik
|
||||
Location: 49,39
|
||||
Owner: USSR
|
||||
Actor9: brik
|
||||
Location: 75,39
|
||||
Owner: USSR
|
||||
Actor10: brik
|
||||
Location: 49,40
|
||||
Owner: USSR
|
||||
Actor11: brik
|
||||
Location: 75,40
|
||||
Owner: USSR
|
||||
Actor12: brik
|
||||
Location: 49,41
|
||||
Owner: USSR
|
||||
Actor13: brik
|
||||
Location: 75,41
|
||||
Owner: USSR
|
||||
Actor14: brik
|
||||
Location: 49,42
|
||||
Owner: USSR
|
||||
Actor15: brik
|
||||
Location: 75,42
|
||||
Owner: USSR
|
||||
Actor16: brik
|
||||
Location: 49,43
|
||||
Owner: USSR
|
||||
Actor17: brik
|
||||
Location: 75,43
|
||||
Owner: USSR
|
||||
Actor18: brik
|
||||
Location: 49,44
|
||||
Owner: USSR
|
||||
Actor19: brik
|
||||
Location: 75,44
|
||||
Owner: USSR
|
||||
Actor20: brik
|
||||
Location: 49,45
|
||||
Owner: USSR
|
||||
Actor21: brik
|
||||
Location: 75,45
|
||||
Owner: USSR
|
||||
Actor22: brik
|
||||
Location: 49,46
|
||||
Owner: USSR
|
||||
Actor23: brik
|
||||
Location: 75,46
|
||||
Owner: USSR
|
||||
Actor24: brik
|
||||
Location: 49,47
|
||||
Owner: USSR
|
||||
Actor25: brik
|
||||
Location: 75,47
|
||||
Owner: USSR
|
||||
Actor26: brik
|
||||
Location: 49,48
|
||||
Owner: USSR
|
||||
Actor27: brik
|
||||
Location: 75,48
|
||||
Owner: USSR
|
||||
Actor28: brik
|
||||
Location: 49,49
|
||||
Owner: USSR
|
||||
Actor29: brik
|
||||
Location: 75,49
|
||||
Owner: USSR
|
||||
Actor30: brik
|
||||
Location: 49,50
|
||||
Owner: USSR
|
||||
Actor31: brik
|
||||
Location: 50,50
|
||||
Owner: USSR
|
||||
Actor32: brik
|
||||
Location: 51,50
|
||||
Owner: USSR
|
||||
Actor33: brik
|
||||
Location: 52,50
|
||||
Owner: USSR
|
||||
Actor34: brik
|
||||
Location: 53,50
|
||||
Owner: USSR
|
||||
Actor35: brik
|
||||
Location: 54,50
|
||||
Owner: USSR
|
||||
Actor36: brik
|
||||
Location: 55,50
|
||||
Owner: USSR
|
||||
Actor37: brik
|
||||
Location: 56,50
|
||||
Owner: USSR
|
||||
Actor38: brik
|
||||
Location: 57,50
|
||||
Owner: USSR
|
||||
Actor39: brik
|
||||
Location: 61,50
|
||||
Owner: USSR
|
||||
Actor40: brik
|
||||
Location: 62,50
|
||||
Owner: USSR
|
||||
Actor41: brik
|
||||
Location: 75,50
|
||||
Owner: USSR
|
||||
Actor42: brik
|
||||
Location: 56,51
|
||||
Owner: USSR
|
||||
Actor43: brik
|
||||
Location: 57,51
|
||||
Owner: USSR
|
||||
Actor44: brik
|
||||
Location: 61,51
|
||||
Owner: USSR
|
||||
Actor45: brik
|
||||
Location: 62,51
|
||||
Owner: USSR
|
||||
Actor46: brik
|
||||
Location: 63,51
|
||||
Owner: USSR
|
||||
Actor47: brik
|
||||
Location: 64,51
|
||||
Owner: USSR
|
||||
Actor48: brik
|
||||
Location: 65,51
|
||||
Owner: USSR
|
||||
Actor49: brik
|
||||
Location: 66,51
|
||||
Owner: USSR
|
||||
Actor50: brik
|
||||
Location: 67,51
|
||||
Owner: USSR
|
||||
Actor51: brik
|
||||
Location: 68,51
|
||||
Owner: USSR
|
||||
Actor52: brik
|
||||
Location: 69,51
|
||||
Owner: USSR
|
||||
Actor53: brik
|
||||
Location: 70,51
|
||||
Owner: USSR
|
||||
Actor54: brik
|
||||
Location: 71,51
|
||||
Owner: USSR
|
||||
Actor55: brik
|
||||
Location: 72,51
|
||||
Owner: USSR
|
||||
Actor56: brik
|
||||
Location: 73,51
|
||||
Owner: USSR
|
||||
Actor57: brik
|
||||
Location: 74,51
|
||||
Owner: USSR
|
||||
Actor58: brik
|
||||
Location: 75,51
|
||||
Owner: USSR
|
||||
Actor60: brik
|
||||
Location: 67,73
|
||||
Owner: BadGuy
|
||||
Actor61: brik
|
||||
Location: 68,73
|
||||
Owner: BadGuy
|
||||
Actor62: brik
|
||||
Location: 69,73
|
||||
Owner: BadGuy
|
||||
Actor63: brik
|
||||
Location: 70,73
|
||||
Owner: BadGuy
|
||||
Actor64: brik
|
||||
Location: 71,73
|
||||
Owner: BadGuy
|
||||
Actor65: brik
|
||||
Location: 72,73
|
||||
Owner: BadGuy
|
||||
Actor66: brik
|
||||
Location: 73,73
|
||||
Owner: BadGuy
|
||||
Actor67: brik
|
||||
Location: 74,73
|
||||
Owner: BadGuy
|
||||
Actor68: brik
|
||||
Location: 75,73
|
||||
Owner: BadGuy
|
||||
Actor69: brik
|
||||
Location: 76,73
|
||||
Owner: BadGuy
|
||||
Actor70: brik
|
||||
Location: 67,74
|
||||
Owner: BadGuy
|
||||
Actor71: brik
|
||||
Location: 68,74
|
||||
Owner: BadGuy
|
||||
Actor72: brik
|
||||
Location: 76,74
|
||||
Owner: BadGuy
|
||||
Actor73: brik
|
||||
Location: 76,75
|
||||
Owner: BadGuy
|
||||
Actor74: brik
|
||||
Location: 76,76
|
||||
Owner: BadGuy
|
||||
Actor75: brik
|
||||
Location: 67,77
|
||||
Owner: BadGuy
|
||||
Actor76: brik
|
||||
Location: 68,77
|
||||
Owner: BadGuy
|
||||
Actor77: brik
|
||||
Location: 76,77
|
||||
Owner: BadGuy
|
||||
Actor78: brik
|
||||
Location: 67,78
|
||||
Owner: BadGuy
|
||||
Actor79: brik
|
||||
Location: 68,78
|
||||
Owner: BadGuy
|
||||
Actor80: brik
|
||||
Location: 69,78
|
||||
Owner: BadGuy
|
||||
Actor81: brik
|
||||
Location: 70,78
|
||||
Owner: BadGuy
|
||||
Actor82: brik
|
||||
Location: 71,78
|
||||
Owner: BadGuy
|
||||
Actor83: brik
|
||||
Location: 72,78
|
||||
Owner: BadGuy
|
||||
Actor84: brik
|
||||
Location: 73,78
|
||||
Owner: BadGuy
|
||||
Actor85: brik
|
||||
Location: 74,78
|
||||
Owner: BadGuy
|
||||
Actor86: brik
|
||||
Location: 75,78
|
||||
Owner: BadGuy
|
||||
Actor87: brik
|
||||
Location: 76,78
|
||||
Owner: BadGuy
|
||||
Actor88: t01
|
||||
Location: 46,67
|
||||
Owner: Neutral
|
||||
Actor89: tc04
|
||||
Location: 46,63
|
||||
Owner: Neutral
|
||||
Actor90: tc05
|
||||
Location: 50,71
|
||||
Owner: Neutral
|
||||
Actor91: tc05
|
||||
Location: 80,92
|
||||
Owner: Neutral
|
||||
Actor92: tc04
|
||||
Location: 67,69
|
||||
Owner: Neutral
|
||||
Actor93: tc02
|
||||
Location: 66,79
|
||||
Owner: Neutral
|
||||
Actor94: tc04
|
||||
Location: 49,86
|
||||
Owner: Neutral
|
||||
Actor95: tc03
|
||||
Location: 50,88
|
||||
Owner: Neutral
|
||||
Actor96: tc01
|
||||
Location: 54,77
|
||||
Owner: Neutral
|
||||
Actor97: t17
|
||||
Location: 64,73
|
||||
Owner: Neutral
|
||||
Actor98: t16
|
||||
Location: 61,86
|
||||
Owner: Neutral
|
||||
Actor99: t15
|
||||
Location: 57,89
|
||||
Owner: Neutral
|
||||
Actor100: t13
|
||||
Location: 71,93
|
||||
Owner: Neutral
|
||||
Actor101: t14
|
||||
Location: 80,84
|
||||
Owner: Neutral
|
||||
Actor102: tc04
|
||||
Location: 47,58
|
||||
Owner: Neutral
|
||||
Actor103: tc05
|
||||
Location: 78,57
|
||||
Owner: Neutral
|
||||
Actor104: tc03
|
||||
Location: 79,60
|
||||
Owner: Neutral
|
||||
Actor105: tc02
|
||||
Location: 49,59
|
||||
Owner: Neutral
|
||||
Actor106: tc03
|
||||
Location: 45,46
|
||||
Owner: Neutral
|
||||
Actor107: tc04
|
||||
Location: 53,50
|
||||
Owner: Neutral
|
||||
Actor108: tc05
|
||||
Location: 78,37
|
||||
Owner: Neutral
|
||||
Actor109: tc02
|
||||
Location: 75,51
|
||||
Owner: Neutral
|
||||
Actor110: tc01
|
||||
Location: 71,58
|
||||
Owner: Neutral
|
||||
Actor111: tc02
|
||||
Location: 80,68
|
||||
Owner: Neutral
|
||||
Actor112: tsla
|
||||
Location: 70,94
|
||||
Owner: BadGuy
|
||||
SubPen: spen
|
||||
Location: 67,37
|
||||
Owner: BadGuy
|
||||
Actor114: kenn
|
||||
Location: 61,45
|
||||
Owner: USSR
|
||||
Actor115: barr
|
||||
Location: 56,46
|
||||
Owner: USSR
|
||||
Actor116: apwr
|
||||
Location: 53,44
|
||||
Owner: USSR
|
||||
Actor117: apwr
|
||||
Location: 51,47
|
||||
Owner: USSR
|
||||
Actor118: apwr
|
||||
Location: 62,47
|
||||
Owner: USSR
|
||||
Actor119: dome
|
||||
Location: 70,47
|
||||
Owner: USSR
|
||||
Actor120: apwr
|
||||
Location: 71,41
|
||||
Owner: USSR
|
||||
Actor121: fcom
|
||||
Location: 51,40
|
||||
Owner: USSR
|
||||
Actor122: apwr
|
||||
Location: 73,74
|
||||
Owner: BadGuy
|
||||
Actor123: apwr
|
||||
Location: 69,74
|
||||
Owner: BadGuy
|
||||
FlameTower1: ftur
|
||||
Location: 62,66
|
||||
Owner: USSR
|
||||
FlameTower2: ftur
|
||||
Location: 65,66
|
||||
Owner: USSR
|
||||
Actor126: ftur
|
||||
Location: 57,52
|
||||
Owner: USSR
|
||||
Actor127: ftur
|
||||
Location: 61,52
|
||||
Owner: USSR
|
||||
Actor128: sam
|
||||
Location: 55,49
|
||||
Owner: USSR
|
||||
Actor129: sam
|
||||
Location: 63,50
|
||||
Owner: USSR
|
||||
Actor130: tsla
|
||||
Location: 63,92
|
||||
Owner: BadGuy
|
||||
Actor131: weap
|
||||
Location: 66,45
|
||||
Owner: USSR
|
||||
ObjectiveDome: dome
|
||||
Location: 77,61
|
||||
Owner: BadGuy
|
||||
Church: v01
|
||||
Location: 51,58
|
||||
Owner: USSR
|
||||
Actor134: v02
|
||||
Location: 49,60
|
||||
Owner: USSR
|
||||
Actor135: v03
|
||||
Location: 53,61
|
||||
Owner: USSR
|
||||
Actor136: v05
|
||||
Location: 50,63
|
||||
Owner: USSR
|
||||
Actor137: v06
|
||||
Location: 55,64
|
||||
Owner: USSR
|
||||
Actor138: v07
|
||||
Location: 51,65
|
||||
Owner: USSR
|
||||
Actor139: v08
|
||||
Location: 47,63
|
||||
Owner: USSR
|
||||
Actor140: apwr
|
||||
Location: 85,8
|
||||
Owner: BadGuy
|
||||
Heavy1: 3tnk
|
||||
Location: 70,45
|
||||
Owner: USSR
|
||||
Facing: 95
|
||||
Heavy2: 3tnk
|
||||
Location: 58,45
|
||||
Owner: USSR
|
||||
Facing: 159
|
||||
Actor143: e2
|
||||
Location: 67,49
|
||||
Owner: USSR
|
||||
SubCell: 1
|
||||
Actor144: dog
|
||||
Location: 61,47
|
||||
Owner: USSR
|
||||
Facing: 95
|
||||
SubCell: 2
|
||||
Actor145: e1
|
||||
Location: 68,59
|
||||
Owner: USSR
|
||||
Facing: 127
|
||||
SubCell: 0
|
||||
Actor146: e1
|
||||
Location: 67,75
|
||||
Owner: BadGuy
|
||||
Facing: 31
|
||||
SubCell: 1
|
||||
Actor147: e1
|
||||
Location: 67,76
|
||||
Owner: BadGuy
|
||||
Facing: 95
|
||||
SubCell: 3
|
||||
Actor148: e1
|
||||
Location: 71,77
|
||||
Owner: BadGuy
|
||||
Facing: 31
|
||||
SubCell: 4
|
||||
Actor149: e1
|
||||
Location: 74,76
|
||||
Owner: BadGuy
|
||||
Facing: 127
|
||||
SubCell: 1
|
||||
Actor150: e1
|
||||
Location: 72,75
|
||||
Owner: BadGuy
|
||||
Facing: 95
|
||||
SubCell: 0
|
||||
Actor151: e1
|
||||
Location: 77,64
|
||||
Owner: USSR
|
||||
Facing: 159
|
||||
SubCell: 1
|
||||
Actor152: e1
|
||||
Location: 76,62
|
||||
Owner: USSR
|
||||
Facing: 95
|
||||
SubCell: 4
|
||||
Actor153: e1
|
||||
Location: 54,40
|
||||
Owner: USSR
|
||||
SubCell: 3
|
||||
Actor154: e1
|
||||
Location: 69,40
|
||||
Owner: USSR
|
||||
SubCell: 0
|
||||
Actor155: e1
|
||||
Location: 68,43
|
||||
Owner: USSR
|
||||
SubCell: 1
|
||||
Actor156: e1
|
||||
Location: 61,49
|
||||
Owner: USSR
|
||||
SubCell: 1
|
||||
Actor157: e1
|
||||
Location: 51,44
|
||||
Owner: USSR
|
||||
SubCell: 1
|
||||
Actor158: e2
|
||||
Location: 54,48
|
||||
Owner: USSR
|
||||
SubCell: 0
|
||||
Actor159: e2
|
||||
Location: 60,44
|
||||
Owner: USSR
|
||||
SubCell: 2
|
||||
Actor160: e2
|
||||
Location: 71,39
|
||||
Owner: USSR
|
||||
SubCell: 4
|
||||
Rifle1: e1
|
||||
Location: 78,81
|
||||
Owner: USSR
|
||||
SubCell: 2
|
||||
Rifle2: e1
|
||||
Location: 78,79
|
||||
Owner: USSR
|
||||
SubCell: 3
|
||||
Rifle3: e1
|
||||
Location: 77,80
|
||||
Owner: USSR
|
||||
SubCell: 4
|
||||
Rifle4: e1
|
||||
Location: 47,71
|
||||
Owner: USSR
|
||||
SubCell: 4
|
||||
Rifle5: e1
|
||||
Location: 49,71
|
||||
Owner: USSR
|
||||
SubCell: 3
|
||||
Rifle6: e1
|
||||
Location: 49,70
|
||||
Owner: USSR
|
||||
SubCell: 3
|
||||
DefaultCameraPosition: waypoint
|
||||
Location: 58,86
|
||||
Owner: Neutral
|
||||
TeslaCam: waypoint
|
||||
Location: 66,94
|
||||
Owner: Neutral
|
||||
LZ: waypoint
|
||||
Location: 54,85
|
||||
Owner: Neutral
|
||||
Beach1: waypoint
|
||||
Location: 65,90
|
||||
Owner: Neutral
|
||||
WaterEntry1: waypoint
|
||||
Location: 66,100
|
||||
Owner: Neutral
|
||||
FlameCam: waypoint
|
||||
Location: 64,66
|
||||
Owner: Neutral
|
||||
RadarCam: waypoint
|
||||
Location: 77,63
|
||||
Owner: Neutral
|
||||
ChurchCrate: waypoint
|
||||
Location: 51,59
|
||||
Owner: Neutral
|
||||
ChronoSpawn1: waypoint
|
||||
Location: 62,59
|
||||
Owner: Neutral
|
||||
ChronoSpawn2: waypoint
|
||||
Location: 61,59
|
||||
Owner: Neutral
|
||||
ChronoSpawn3: waypoint
|
||||
Location: 62,60
|
||||
Owner: Neutral
|
||||
Beach2: waypoint
|
||||
Location: 83,59
|
||||
Owner: Neutral
|
||||
Beach3: waypoint
|
||||
Location: 84,64
|
||||
Owner: Neutral
|
||||
WaterEntry2: waypoint
|
||||
Location: 87,61
|
||||
Owner: Neutral
|
||||
EasyCamera: waypoint
|
||||
Location: 62,36
|
||||
Owner: Neutral
|
||||
MissileSubSpawn: waypoint
|
||||
Location: 66,38
|
||||
Owner: Neutral
|
||||
SubPath1: waypoint
|
||||
Location: 66,33
|
||||
Owner: Neutral
|
||||
SubPath2: waypoint
|
||||
Location: 63,28
|
||||
Owner: Neutral
|
||||
SubPath3: waypoint
|
||||
Location: 63,13
|
||||
Owner: Neutral
|
||||
Mammoth: waypoint
|
||||
Location: 77,39
|
||||
Owner: Neutral
|
||||
V2: waypoint
|
||||
Location: 66,43
|
||||
Owner: Neutral
|
||||
|
||||
Rules: ra|rules/campaign-rules.yaml, ra|rules/campaign-tooltips.yaml, rules.yaml
|
||||
268
mods/ra/maps/production-disruption/production-disruption.lua
Normal file
268
mods/ra/maps/production-disruption/production-disruption.lua
Normal file
@@ -0,0 +1,268 @@
|
||||
--[[
|
||||
Copyright 2007-2020 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.
|
||||
]]
|
||||
TimerTicks = DateTime.Minutes(12)
|
||||
LSTType = "lst.reinforcement"
|
||||
RifleSquad1 = { Rifle1, Rifle2, Rifle3 }
|
||||
RifleSquad2 = { Rifle4, Rifle5, Rifle6 }
|
||||
Heavys = { Heavy1, Heavy2 }
|
||||
FlameTowerWall = { FlameTower1, FlameTower2 }
|
||||
DemoEngiPath = { WaterEntry1.Location, Beach1.Location }
|
||||
DemoEngiTeam = { "dtrk", "dtrk", "e6", "e6", "e6" }
|
||||
SovietWaterEntry1 = { WaterEntry2.Location, Beach2.Location }
|
||||
SovietWaterEntry2 = { WaterEntry2.Location, Beach3.Location }
|
||||
SovietSquad = { "e1", "e1", "e1", "e4", "e4" }
|
||||
V2Squad = { "v2rl", "v2rl" }
|
||||
SubEscapePath = { SubPath1, SubPath2, SubPath3 }
|
||||
|
||||
IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end
|
||||
|
||||
MissionStart = function()
|
||||
LZCamera = Actor.Create("camera", true, { Owner = Greece, Location = LZ.Location })
|
||||
Chalk1.TargetParatroopers(LZ.CenterPosition, Angle.New(740))
|
||||
if Map.LobbyOption("difficulty") == "normal" then
|
||||
Actor.Create("tsla", true, { Owner = USSR, Location = EasyCamera.Location })
|
||||
Actor.Create("4tnk", true, { Owner = USSR, Facing = Angle.South, Location = Mammoth.Location })
|
||||
Actor.Create("4tnk", true, { Owner = USSR, Facing = Angle.South, Location = Mammoth.Location + CVec.New(1,0) })
|
||||
Actor.Create("v2rl", true, { Owner = USSR, Facing = Angle.South, Location = V2.Location })
|
||||
end
|
||||
|
||||
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
||||
Chalk2.TargetParatroopers(LZ.CenterPosition, Angle.New(780))
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
||||
UnitsArrived = true
|
||||
TeslaCamera = Actor.Create("camera", true, { Owner = Greece, Location = TeslaCam.Location })
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(DateTime.Seconds(10), function()
|
||||
LZCamera.Destroy()
|
||||
Utils.Do(RifleSquad1, function(actor)
|
||||
if not actor.IsDead then
|
||||
actor.AttackMove(LZ.Location)
|
||||
IdleHunt(actor)
|
||||
end
|
||||
end)
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(DateTime.Seconds(15), function()
|
||||
TeslaCamera.Destroy()
|
||||
Utils.Do(RifleSquad2, function(actor)
|
||||
if not actor.IsDead then
|
||||
actor.AttackMove(LZ.Location)
|
||||
IdleHunt(actor)
|
||||
end
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
SetupTriggers = function()
|
||||
Trigger.OnDamaged(SubPen, function()
|
||||
Utils.Do(Heavys, function(actor)
|
||||
if not actor.IsDead then
|
||||
IdleHunt(actor)
|
||||
end
|
||||
end)
|
||||
end)
|
||||
|
||||
Trigger.OnKilled(Church, function()
|
||||
Actor.Create("healcrate", true, { Owner = Greece, Location = ChurchCrate.Location })
|
||||
end)
|
||||
|
||||
Trigger.OnKilled(ObjectiveDome, function()
|
||||
if not DomeCaptured == true then
|
||||
Greece.MarkFailedObjective(CaptureDome)
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnAllKilled(FlameTowerWall, function()
|
||||
DomeCam = Actor.Create("camera", true, { Owner = Greece, Location = RadarCam.Location })
|
||||
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
||||
DomeCam.Destroy()
|
||||
end)
|
||||
end)
|
||||
|
||||
Trigger.OnKilledOrCaptured(SubPen, function()
|
||||
Greece.MarkCompletedObjective(StopProduction)
|
||||
end)
|
||||
end
|
||||
|
||||
PowerDown = false
|
||||
PowerDownTeslas = function()
|
||||
if not PowerDown then
|
||||
CaptureDome = Greece.AddObjective("Capture the enemy radar dome.", "Secondary", false)
|
||||
Greece.MarkCompletedObjective(PowerDownTeslaCoils)
|
||||
Media.PlaySpeechNotification(Greece, "ReinforcementsArrived")
|
||||
PowerDown = true
|
||||
|
||||
local bridge = Utils.Where(Map.ActorsInWorld, function(actor) return actor.Type == "bridge1" end)[1]
|
||||
if not bridge.IsDead then
|
||||
bridge.Kill()
|
||||
end
|
||||
|
||||
local demoEngis = Reinforcements.ReinforceWithTransport(Greece, LSTType, DemoEngiTeam, DemoEngiPath, { DemoEngiPath[1] })[2]
|
||||
Trigger.OnAllRemovedFromWorld(Utils.Where(demoEngis, function(a) return a.Type == "e6" end), function()
|
||||
if not DomeCaptured then
|
||||
Greece.MarkFailedObjective(CaptureDome)
|
||||
end
|
||||
if not DomeCaptured and bridge.IsDead then
|
||||
Greece.MarkFailedObjective(StopProduction)
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnCapture(ObjectiveDome, function()
|
||||
DomeCaptured = true
|
||||
Greece.MarkCompletedObjective(CaptureDome)
|
||||
SendChronos()
|
||||
end)
|
||||
|
||||
FlameTowersCam = Actor.Create("camera", true, { Owner = Greece, Location = FlameCam.Location })
|
||||
Trigger.AfterDelay(DateTime.Seconds(10), function()
|
||||
FlameTowersCam.Destroy()
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
SendChronos = function()
|
||||
Trigger.AfterDelay(DateTime.Seconds(3), function()
|
||||
local sovietWaterSquad1 = Reinforcements.ReinforceWithTransport(USSR, "lst", SovietSquad, { WaterEntry2.Location, Beach2.Location }, { WaterEntry2.Location })[2]
|
||||
Utils.Do(sovietWaterSquad1, function(a)
|
||||
Trigger.OnAddedToWorld(a, function()
|
||||
IdleHunt(a)
|
||||
end)
|
||||
end)
|
||||
|
||||
Actor.Create("ctnk", true, { Owner = Greece, Location = ChronoSpawn1.Location })
|
||||
Actor.Create("ctnk", true, { Owner = Greece, Location = ChronoSpawn2.Location })
|
||||
Actor.Create("ctnk", true, { Owner = Greece, Location = ChronoSpawn3.Location })
|
||||
Actor.Create("camera", true, { Owner = Greece, Location = EasyCamera.Location })
|
||||
Media.PlaySound("chrono2.aud")
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
||||
local sovietWaterSquad2 = Reinforcements.ReinforceWithTransport(USSR, "lst", SovietSquad, { WaterEntry2.Location, Beach3.Location }, { WaterEntry2.Location })[2]
|
||||
Utils.Do(sovietWaterSquad2, function(a)
|
||||
Trigger.OnAddedToWorld(a, function()
|
||||
a.AttackMove(FlameCam.Location)
|
||||
IdleHunt(a)
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(DateTime.Seconds(13), function()
|
||||
local sovietWaterSquad2 = Reinforcements.ReinforceWithTransport(USSR, "lst", V2Squad, { WaterEntry2.Location, Beach2.Location }, { WaterEntry2.Location })[2]
|
||||
Utils.Do(sovietWaterSquad2, function(a)
|
||||
Trigger.OnAddedToWorld(a, function()
|
||||
a.AttackMove(FlameCam.Location)
|
||||
IdleHunt(a)
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
MissileSubEscape = function()
|
||||
local missileSub = Actor.Create("msub", true, { Owner = USSR, Location = MissileSubSpawn.Location })
|
||||
Actor.Create("camera", true, { Owner = Greece, Location = SubPath2.Location })
|
||||
DestroySub = Greece.AddPrimaryObjective("Destroy the submarine before it escapes!.")
|
||||
|
||||
Utils.Do(SubEscapePath, function(waypoint)
|
||||
missileSub.Move(waypoint.Location)
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredFootprint({ SubPath3.Location }, function(a, id)
|
||||
if a.Owner == USSR and a.Type == "msub" then
|
||||
Trigger.RemoveFootprintTrigger(id)
|
||||
USSR.MarkCompletedObjective(EscapeWithSub)
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnKilled(missileSub, function()
|
||||
Greece.MarkCompletedObjective(DestroySub)
|
||||
end)
|
||||
end
|
||||
|
||||
FinishTimer = function()
|
||||
for i = 0, 5 do
|
||||
local c = TimerColor
|
||||
if i % 2 == 0 then
|
||||
c = HSLColor.White
|
||||
end
|
||||
|
||||
Trigger.AfterDelay(DateTime.Seconds(i), function() UserInterface.SetMissionText("The sub is heading for open sea!", c) end)
|
||||
end
|
||||
Trigger.AfterDelay(DateTime.Seconds(6), function() UserInterface.SetMissionText("") end)
|
||||
end
|
||||
|
||||
UnitsArrived = false
|
||||
TimerFinished = false
|
||||
ticked = TimerTicks
|
||||
Tick = function()
|
||||
if BadGuy.PowerState ~= "Normal" then
|
||||
PowerDownTeslas()
|
||||
end
|
||||
|
||||
if Greece.HasNoRequiredUnits() and UnitsArrived then
|
||||
USSR.MarkCompletedObjective(EscapeWithSub)
|
||||
end
|
||||
|
||||
if ticked > 0 then
|
||||
UserInterface.SetMissionText("Submarine completes in " .. Utils.FormatTime(ticked), TimerColor)
|
||||
ticked = ticked - 1
|
||||
elseif ticked == 0 and not TimerFinished then
|
||||
MissileSubEscape()
|
||||
TimerFinished = true
|
||||
end
|
||||
end
|
||||
|
||||
WorldLoaded = function()
|
||||
Greece = Player.GetPlayer("Greece")
|
||||
USSR = Player.GetPlayer("USSR")
|
||||
BadGuy = Player.GetPlayer("BadGuy")
|
||||
|
||||
EscapeWithSub = USSR.AddObjective("Get a missile sub to open waters.")
|
||||
StopProduction = Greece.AddObjective("Destroy the Soviet sub pen.")
|
||||
PowerDownTeslaCoils = Greece.AddObjective("Take down power to the tesla coils.")
|
||||
|
||||
Trigger.OnObjectiveAdded(Greece, function(p, id)
|
||||
Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective")
|
||||
end)
|
||||
|
||||
Trigger.OnObjectiveCompleted(Greece, function(p, id)
|
||||
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed")
|
||||
end)
|
||||
Trigger.OnObjectiveFailed(Greece, function(p, id)
|
||||
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed")
|
||||
end)
|
||||
Trigger.OnPlayerLost(Greece, function()
|
||||
Media.PlaySpeechNotification(Greece, "Lose")
|
||||
end)
|
||||
Trigger.OnPlayerWon(Greece, function()
|
||||
Media.PlaySpeechNotification(Greece, "Win")
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(DateTime.Minutes(2), function()
|
||||
Media.PlaySpeechNotification(Greece, "TenMinutesRemaining")
|
||||
end)
|
||||
Trigger.AfterDelay(DateTime.Minutes(7), function()
|
||||
Media.PlaySpeechNotification(Greece, "WarningFiveMinutesRemaining")
|
||||
end)
|
||||
Trigger.AfterDelay(DateTime.Minutes(9), function()
|
||||
Media.PlaySpeechNotification(Greece, "WarningThreeMinutesRemaining")
|
||||
end)
|
||||
Trigger.AfterDelay(DateTime.Minutes(11), function()
|
||||
Media.PlaySpeechNotification(Greece, "WarningOneMinuteRemaining")
|
||||
end)
|
||||
|
||||
Camera.Position = DefaultCameraPosition.CenterPosition
|
||||
TimerColor = USSR.Color
|
||||
Chalk1 = Actor.Create("chalk1", false, { Owner = Greece })
|
||||
Chalk2 = Actor.Create("chalk2", false, { Owner = Greece })
|
||||
MissionStart()
|
||||
SetupTriggers()
|
||||
end
|
||||
42
mods/ra/maps/production-disruption/rules.yaml
Normal file
42
mods/ra/maps/production-disruption/rules.yaml
Normal file
@@ -0,0 +1,42 @@
|
||||
World:
|
||||
LuaScript:
|
||||
Scripts: production-disruption.lua
|
||||
MissionData:
|
||||
WinVideo: battle.vqa
|
||||
LossVideo: slntsrvc.vqa
|
||||
Briefing: The Soviets are beginning construction of a new class of submarine capable of launching sea-to-ground missiles. We don't have to tell you the amount of devestation these could cause.\n\nTake a small squad of troops and infiltrate their power grid. When it is down, additional reinforcements will be sent in. When ready, head north and destroy their Sub pen, preventing further construction of these subs.\n\nIf any are built, they must not be allowed to escape!
|
||||
ScriptLobbyDropdown@difficulty:
|
||||
ID: difficulty
|
||||
Label: Difficulty
|
||||
Values:
|
||||
easy: Easy
|
||||
normal: Normal
|
||||
Default: easy
|
||||
|
||||
CHALK1:
|
||||
ParatroopersPower:
|
||||
DisplayBeacon: False
|
||||
DropItems: E1, E1, E1, E1, E1
|
||||
AlwaysVisible:
|
||||
|
||||
CHALK2:
|
||||
ParatroopersPower:
|
||||
DisplayBeacon: False
|
||||
DropItems: E3, E3, E3, E3, MEDI
|
||||
AlwaysVisible:
|
||||
|
||||
LST.Reinforcement:
|
||||
Inherits: LST
|
||||
RejectsOrders:
|
||||
-Buildable:
|
||||
-Selectable:
|
||||
RenderSprites:
|
||||
Image: lst
|
||||
Interactable:
|
||||
|
||||
MSUB:
|
||||
-Cloak:
|
||||
-GrantConditionOnDamageState@UNCLOAK:
|
||||
-Targetable@UNDERWATER:
|
||||
Targetable:
|
||||
-RequiresCondition:
|
||||
@@ -29,6 +29,7 @@ Counterstrike:
|
||||
soviet-soldier-volkov-n-chitzkoi
|
||||
top-o-the-world
|
||||
Aftermath:
|
||||
production-disruption
|
||||
monster-tank-madness
|
||||
OpenRA Originals:
|
||||
evacuation
|
||||
|
||||
Reference in New Issue
Block a user