Add Soviet13a

This commit is contained in:
Smittytron
2021-04-21 10:55:06 -05:00
committed by Gustas
parent c093e7c90b
commit 9dca6ef1c3
8 changed files with 1321 additions and 0 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,940 @@
MapFormat: 12
RequiresMod: ra
Title: 13a: Capture the Chronosphere
Author: Westwood Studios
Tileset: SNOW
MapSize: 128,128
Bounds: 18,17,96,90
Visibility: MissionSelector
Categories: Campaign
LockPreview: True
Players:
PlayerReference@Neutral:
Name: Neutral
OwnsWorld: True
NonCombatant: True
Faction: england
PlayerReference@Greece:
Name: Greece
Bot: campaign
Faction: allies
Color: E2E6F6
Allies: GoodGuy
Enemies: USSR
PlayerReference@GoodGuy:
Name: GoodGuy
Faction: allies
Color: E2E6F6
Allies: 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: GoodGuy, Greece
Actors:
Actor0: cycl
Location: 42,73
Owner: Greece
Actor1: cycl
Location: 43,73
Owner: Greece
Actor2: cycl
Location: 44,73
Owner: Greece
Actor3: cycl
Location: 45,73
Owner: Greece
Actor4: cycl
Location: 46,73
Owner: Greece
Actor5: cycl
Location: 50,73
Owner: Greece
Actor6: cycl
Location: 51,73
Owner: Greece
Actor7: cycl
Location: 52,73
Owner: Greece
Actor8: cycl
Location: 53,73
Owner: Greece
Actor9: cycl
Location: 54,73
Owner: Greece
Actor10: cycl
Location: 55,73
Owner: Greece
Actor11: cycl
Location: 26,74
Owner: Greece
Actor12: cycl
Location: 27,74
Owner: Greece
Actor13: cycl
Location: 28,74
Owner: Greece
Actor14: cycl
Location: 29,74
Owner: Greece
Actor15: cycl
Location: 30,74
Owner: Greece
Actor16: cycl
Location: 35,74
Owner: Greece
Actor17: cycl
Location: 36,74
Owner: Greece
Actor18: cycl
Location: 41,74
Owner: Greece
Actor19: cycl
Location: 42,74
Owner: Greece
Actor20: cycl
Location: 55,74
Owner: Greece
Actor21: cycl
Location: 56,74
Owner: Greece
Actor22: cycl
Location: 25,75
Owner: Greece
Actor23: cycl
Location: 26,75
Owner: Greece
Actor24: cycl
Location: 36,75
Owner: Greece
Actor25: cycl
Location: 37,75
Owner: Greece
Actor26: cycl
Location: 38,75
Owner: Greece
Actor27: cycl
Location: 39,75
Owner: Greece
Actor28: cycl
Location: 40,75
Owner: Greece
Actor29: cycl
Location: 41,75
Owner: Greece
Actor30: cycl
Location: 56,75
Owner: Greece
Actor31: cycl
Location: 57,75
Owner: Greece
Actor32: cycl
Location: 58,75
Owner: Greece
Actor33: cycl
Location: 59,75
Owner: Greece
Actor34: cycl
Location: 25,76
Owner: Greece
Actor35: cycl
Location: 59,76
Owner: Greece
Actor36: cycl
Location: 62,79
Owner: Greece
Actor37: cycl
Location: 63,79
Owner: Greece
Actor38: cycl
Location: 64,79
Owner: Greece
Actor39: cycl
Location: 64,80
Owner: Greece
Actor40: cycl
Location: 65,80
Owner: Greece
Actor41: cycl
Location: 66,80
Owner: Greece
Actor42: cycl
Location: 66,81
Owner: Greece
Actor43: cycl
Location: 67,81
Owner: Greece
Actor44: cycl
Location: 68,81
Owner: Greece
Actor45: cycl
Location: 69,81
Owner: Greece
Actor46: cycl
Location: 66,88
Owner: Greece
Actor47: cycl
Location: 67,88
Owner: Greece
Actor48: cycl
Location: 68,88
Owner: Greece
Actor49: cycl
Location: 69,88
Owner: Greece
Actor50: cycl
Location: 70,88
Owner: Greece
Actor51: cycl
Location: 71,88
Owner: Greece
Actor52: cycl
Location: 71,89
Owner: Greece
Actor53: cycl
Location: 71,90
Owner: Greece
Actor54: cycl
Location: 71,91
Owner: Greece
Actor55: cycl
Location: 54,95
Owner: Greece
Actor56: cycl
Location: 55,95
Owner: Greece
Actor57: cycl
Location: 58,95
Owner: Greece
Actor58: cycl
Location: 59,95
Owner: Greece
Actor59: cycl
Location: 54,96
Owner: Greece
Actor60: cycl
Location: 59,96
Owner: Greece
Actor61: cycl
Location: 54,97
Owner: Greece
Actor62: cycl
Location: 55,97
Owner: Greece
Actor63: cycl
Location: 56,97
Owner: Greece
Actor64: cycl
Location: 57,97
Owner: Greece
Actor65: cycl
Location: 58,97
Owner: Greece
Actor66: cycl
Location: 59,97
Owner: Greece
Actor67: cycl
Location: 71,97
Owner: Greece
Actor68: cycl
Location: 71,98
Owner: Greece
Actor69: brik
Location: 26,100
Owner: Greece
Actor70: brik
Location: 27,100
Owner: Greece
Actor71: brik
Location: 28,100
Owner: Greece
Actor72: brik
Location: 29,100
Owner: Greece
Actor73: brik
Location: 26,101
Owner: Greece
Actor74: brik
Location: 29,101
Owner: Greece
Actor75: brik
Location: 26,102
Owner: Greece
Actor76: brik
Location: 29,102
Owner: Greece
Actor77: brik
Location: 26,103
Owner: Greece
Actor78: brik
Location: 27,103
Owner: Greece
Actor79: brik
Location: 28,103
Owner: Greece
Actor80: brik
Location: 29,103
Owner: Greece
Actor81: tc02
Location: 46,99
Owner: Neutral
Actor82: t01
Location: 92,88
Owner: Neutral
Actor83: tc04
Location: 73,89
Owner: Neutral
Actor84: tc01
Location: 76,91
Owner: Neutral
Actor85: tc04
Location: 60,65
Owner: Neutral
Actor86: t12
Location: 64,65
Owner: Neutral
Actor87: tc02
Location: 93,17
Owner: Neutral
Actor88: tc05
Location: 104,19
Owner: Neutral
Actor89: tc04
Location: 111,17
Owner: Neutral
Actor90: tc01
Location: 46,56
Owner: Neutral
Actor91: tc05
Location: 36,54
Owner: Neutral
Actor92: tc04
Location: 39,56
Owner: Neutral
Actor93: tc03
Location: 37,67
Owner: Neutral
Actor94: tc02
Location: 52,62
Owner: Neutral
Actor95: tc03
Location: 70,59
Owner: Neutral
Actor96: tc02
Location: 82,62
Owner: Neutral
Actor97: t16
Location: 42,48
Owner: Neutral
Actor98: t15
Location: 27,68
Owner: Neutral
Actor99: t14
Location: 56,68
Owner: Neutral
Actor100: t13
Location: 59,50
Owner: Neutral
Actor101: t12
Location: 92,54
Owner: Neutral
Actor102: t11
Location: 108,26
Owner: Neutral
Actor103: tc04
Location: 23,63
Owner: Neutral
Actor104: tc02
Location: 18,52
Owner: Neutral
Actor105: tc01
Location: 29,53
Owner: Neutral
Actor106: t15
Location: 27,59
Owner: Neutral
Actor107: tc01
Location: 20,57
Owner: Neutral
Actor108: t16
Location: 19,58
Owner: Neutral
Actor109: t13
Location: 18,57
Owner: Neutral
Actor110: mine
Location: 101,27
Owner: Neutral
Actor111: mine
Location: 84,92
Owner: Neutral
Actor112: mine
Location: 84,74
Owner: Neutral
Actor113: tc04
Location: 58,99
Owner: Neutral
Actor114: tc02
Location: 55,100
Owner: Neutral
Actor115: t17
Location: 54,99
Owner: Neutral
Actor116: t16
Location: 53,100
Owner: Neutral
Actor117: atek
Location: 27,96
Owner: Greece
Chronosphere: pdox
Location: 27,101
Owner: Greece
Actor119: pbox
Location: 48,75
Owner: Greece
Actor120: pbox
Location: 58,80
Owner: Greece
Actor121: pbox
Location: 34,74
Owner: Greece
Actor122: pbox
Location: 31,74
Owner: Greece
Actor123: hbox
Location: 46,99
Owner: Greece
Actor124: hbox
Location: 26,83
Owner: Greece
Actor125: hbox
Location: 27,89
Owner: Greece
Actor126: hbox
Location: 71,94
Owner: Greece
Radar4: dome
Location: 44,104
Owner: Greece
Actor128: gap
Location: 47,105
Owner: Greece
Actor129: gap
Location: 26,78
Owner: Greece
Actor130: gun
Location: 58,78
Owner: Greece
Facing: 223
Actor131: gun
Location: 60,80
Owner: Greece
Facing: 223
Actor132: gun
Location: 50,72
Owner: Greece
Actor133: gun
Location: 46,72
Owner: Greece
Actor134: gun
Location: 71,92
Owner: Greece
Facing: 191
Actor135: gun
Location: 71,96
Owner: Greece
Facing: 191
Actor136: fact
Location: 47,84
Owner: Greece
Actor137: proc
Location: 54,90
Owner: Greece
Actor138: proc
Location: 59,90
Owner: Greece
Actor139: silo
Location: 56,96
Owner: Greece
Actor140: silo
Location: 58,96
Owner: Greece
Actor141: silo
Location: 57,96
Owner: Greece
Actor142: silo
Location: 55,96
Owner: Greece
HPad1: hpad
Location: 32,73
Owner: Greece
HPad4: hpad
Location: 49,100
Owner: Greece
Actor145: apwr
Location: 44,86
Owner: Greece
Actor146: apwr
Location: 43,99
Owner: Greece
Actor147: apwr
Location: 60,95
Owner: Greece
Actor148: apwr
Location: 51,95
Owner: Greece
Actor150: apwr
Location: 50,86
Owner: Greece
Actor151: apwr
Location: 31,91
Owner: Greece
GreeceTent2: tent
Location: 19,98
Owner: Greece
GreeceTent1: tent
Location: 46,80
Owner: Greece
Radar2: dome
Location: 29,90
Owner: Greece
Radar3: dome
Location: 48,88
Owner: Greece
Radar1: dome
Location: 27,75
Owner: Greece
HPad2: hpad
Location: 56,76
Owner: Greece
Actor158: syrd
Location: 73,84
Owner: Greece
GoodguyShipyard: syrd
Location: 32,43
Owner: GoodGuy
Actor160: brl3
Location: 71,87
Owner: Greece
Actor161: barl
Location: 71,86
Owner: Greece
Actor162: barl
Location: 70,87
Owner: Greece
Actor163: barl
Location: 70,89
Owner: Greece
Actor164: brl3
Location: 70,90
Owner: Greece
Actor165: brl3
Location: 69,89
Owner: Greece
Actor166: barl
Location: 69,90
Owner: Greece
Actor167: barl
Location: 70,91
Owner: Greece
Actor168: v19
Location: 67,89
Owner: Greece
Actor169: v19
Location: 69,91
Owner: Greece
Actor170: hbox
Location: 27,93
Owner: Greece
HPad3: hpad
Location: 61,80
Owner: Greece
Actor172: gap
Location: 24,46
Owner: GoodGuy
Actor173: gun
Location: 27,42
Owner: Greece
Facing: 223
Actor174: gun
Location: 25,41
Owner: Greece
Facing: 223
Actor175: agun
Location: 28,45
Owner: GoodGuy
Actor176: agun
Location: 23,42
Owner: GoodGuy
Actor177: fact
Location: 20,42
Owner: GoodGuy
Actor178: weap
Location: 25,50
Owner: GoodGuy
Actor179: apwr
Location: 25,47
Owner: GoodGuy
Actor180: apwr
Location: 18,46
Owner: GoodGuy
Actor181: agun
Location: 24,50
Owner: GoodGuy
Actor182: apwr
Location: 27,79
Owner: Greece
GreeceWarFactory: weap
Location: 58,84
Owner: Greece
Actor184: agun
Location: 47,101
Owner: Greece
Actor185: v19
Location: 26,76
Owner: Greece
Actor186: brl3
Location: 26,77
Owner: Greece
Actor187: brl3
Location: 51,101
Owner: Greece
Actor188: barl
Location: 51,102
Owner: Greece
Actor189: v19
Location: 52,101
Owner: Greece
Actor190: brl3
Location: 52,102
Owner: Greece
Actor191: gap
Location: 67,84
Owner: Greece
Actor192: gap
Location: 30,88
Owner: Greece
Actor193: apwr
Location: 36,104
Owner: Greece
Actor194: agun
Location: 33,89
Owner: Greece
StartAttack1: 2tnk
Location: 78,59
Owner: Greece
Facing: 927
StartAttack2: 2tnk
Location: 79,59
Owner: Greece
Facing: 904
StartAttack3: 2tnk
Location: 79,60
Owner: Greece
Facing: 911
StartAttack5: arty
Location: 78,61
Owner: Greece
Facing: 896
StartAttack4: arty
Location: 77,60
Owner: Greece
Facing: 911
V2A: v2rl
Location: 106,40
Owner: USSR
Facing: 261
V2B: v2rl
Location: 106,39
Owner: USSR
Facing: 253
Actor203: 4tnk
Location: 106,38
Owner: USSR
Facing: 261
Actor204: 4tnk
Location: 106,41
Owner: USSR
Facing: 253
Actor205: 3tnk
Location: 104,40
Owner: USSR
Facing: 261
OreAttack3: 2tnk
Location: 108,98
Owner: GoodGuy
OreAttack2: 2tnk
Location: 107,98
Owner: GoodGuy
OreAttack4: 2tnk
Location: 109,98
Owner: GoodGuy
OreAttack6: 2tnk
Location: 108,99
Owner: GoodGuy
OreAttack1: 2tnk
Location: 108,97
Owner: GoodGuy
OreAttack5: arty
Location: 107,99
Owner: GoodGuy
OreAttack7: arty
Location: 109,99
Owner: GoodGuy
OreAttack8: arty
Location: 108,100
Owner: GoodGuy
Actor214: 3tnk
Location: 104,39
Owner: USSR
Facing: 253
Actor215: 2tnk
Location: 28,41
Owner: Greece
Actor216: 2tnk
Location: 30,41
Owner: Greece
Actor217: 2tnk
Location: 24,40
Owner: Greece
Facing: 872
Actor218: 2tnk
Location: 26,40
Owner: Greece
Facing: 880
Actor219: arty
Location: 29,42
Owner: Greece
Actor220: arty
Location: 24,41
Owner: Greece
Facing: 223
Actor223: e3
Location: 43,105
Owner: Greece
SubCell: 0
Actor224: e3
Location: 46,106
Owner: Greece
SubCell: 0
Actor225: e3
Location: 47,88
Owner: Greece
SubCell: 2
Actor226: e3
Location: 46,85
Owner: Greece
SubCell: 2
Actor227: e3
Location: 50,85
Owner: Greece
SubCell: 3
Actor228: e3
Location: 50,89
Owner: Greece
SubCell: 1
Actor229: e3
Location: 29,75
Owner: Greece
SubCell: 0
Actor230: e3
Location: 29,77
Owner: Greece
SubCell: 1
Actor231: e3
Location: 27,78
Owner: Greece
SubCell: 2
Actor232: e3
Location: 58,76
Owner: Greece
SubCell: 1
Actor233: e3
Location: 55,75
Owner: Greece
SubCell: 4
Actor234: e3
Location: 63,80
Owner: Greece
SubCell: 4
Actor235: e3
Location: 63,81
Owner: Greece
SubCell: 4
Actor236: e3
Location: 46,79
Owner: Greece
SubCell: 4
Actor237: e3
Location: 47,79
Owner: Greece
SubCell: 4
Actor238: e3
Location: 31,90
Owner: Greece
SubCell: 1
Actor239: e3
Location: 28,91
Owner: Greece
SubCell: 3
Actor240: e3
Location: 30,93
Owner: Greece
SubCell: 0
Actor241: dd
Location: 79,98
Owner: Greece
Facing: 642
Actor242: dd
Location: 68,103
Owner: Greece
Facing: 777
Actor243: pt
Location: 80,97
Owner: Greece
Facing: 626
Actor244: pt
Location: 82,98
Owner: Greece
Facing: 634
Actor245: pt
Location: 70,104
Owner: Greece
Facing: 745
Actor246: pt
Location: 70,102
Owner: Greece
Facing: 761
Actor247: pt
Location: 82,82
Owner: Greece
Facing: 515
Actor248: pt
Location: 82,87
Owner: Greece
Actor249: dd
Location: 80,81
Owner: Greece
Facing: 515
Actor250: dd
Location: 80,87
Owner: Greece
Facing: 1015
Actor251: dd
Location: 35,41
Owner: GoodGuy
Actor252: dd
Location: 38,46
Owner: GoodGuy
Facing: 0
Actor253: pt
Location: 36,40
Owner: GoodGuy
Actor254: pt
Location: 39,44
Owner: GoodGuy
Facing: 0
Actor255: pt
Location: 35,39
Owner: GoodGuy
Jeep2: jeep
Owner: Greece
Location: 27,91
Facing: 396
Jeep1: jeep
Owner: Greece
Location: 26,91
Facing: 364
Actor271: fix
Owner: Greece
Location: 38,79
Actor149: apwr
Location: 27,83
Owner: Greece
Actor272: arty
Owner: Greece
Location: 48,102
Facing: 1023
Actor273: arty
Owner: Greece
Location: 45,102
Facing: 1023
Actor274: arty
Owner: Greece
Location: 32,94
Facing: 848
Actor275: arty
Owner: Greece
Location: 31,88
Facing: 888
DefaultCameraPosition: waypoint
Location: 108,39
Owner: Neutral
JeepWaypoint1: waypoint
Location: 23,47
Owner: Neutral
JeepWaypoint2: waypoint
Location: 26,91
Owner: Neutral
MCVEntry: waypoint
Location: 113,39
Owner: Neutral
ChinookLZ: waypoint
Location: 108,20
Owner: Neutral
ChronoshiftPoint: waypoint
Location: 32,101
Owner: Neutral
EastWaterEntry: waypoint
Location: 73,106
Owner: Neutral
EastBeach1: waypoint
Location: 92,104
Owner: Neutral
EastBeach2: waypoint
Location: 102,83
Owner: Neutral
EastBeach3: waypoint
Location: 101,53
Owner: Neutral
WestWaterEntry: waypoint
Location: 18,36
Owner: Neutral
WestBeach1: waypoint
Location: 60,29
Owner: Neutral
WestBeach2: waypoint
Location: 93,26
Owner: Neutral
CruiserStop: waypoint
Location: 88,27
Owner: Neutral
ChinookEntry: waypoint
Location: 18,19
Owner: Neutral
WarFactoryRally: waypoint
Location: 56,82
Owner: Neutral
Rules: ra|rules/campaign-rules.yaml, ra|rules/campaign-tooltips.yaml, ra|rules/campaign-palettes.yaml, rules.yaml
Translations: ra|languages/lua/en.ftl, ra|languages/difficulties/en.ftl

View File

@@ -0,0 +1,79 @@
World:
LuaScript:
Scripts: campaign.lua, soviet13a.lua, soviet13a-AI.lua, utils.lua
MissionData:
BriefingVideo: soviet13.vqa
WinVideo: sovtstar.vqa
LossVideo: allymorf.vqa
StartVideo: mtnkfact.vqa
Briefing: We have another chance to capture the Chronosphere. Take out the Radar Domes to cut the link between them and the Chronosphere. Then capture it!
ScriptLobbyDropdown@difficulty:
ID: difficulty
Label: dropdown-difficulty.label
Description: dropdown-difficulty.description
Values:
easy: options-difficulty.easy
normal: options-difficulty.normal
hard: options-difficulty.hard
Default: normal
Player:
PlayerResources:
DefaultCash: 10000
AFLD:
AirstrikePower@parabombs:
Prerequisites: aircraft.soviet
ParatroopersPower@paratroopers:
DropItems: E1,E1,E1,E2,E2
PDOX:
Power:
Amount: 0
-WithColoredOverlay@IDISABLE:
Buildable:
Prerequisites: ~disabled
ATEK:
GpsPower:
DisplayTimerRelationships: Ally
MSLO:
Buildable:
Prerequisites: ~disabled
MCV:
Buildable:
Prerequisites: ~disabled
MECH:
Buildable:
Prerequisites: ~disabled
IRON:
Buildable:
Prerequisites: ~disabled
QTNK:
Buildable:
Prerequisites: ~disabled
E7:
Buildable:
Prerequisites: ~disabled
E7.noautotarget:
Buildable:
Prerequisites: ~disabled
E3:
Buildable:
Prerequisites: ~tent
MSUB:
Buildable:
Prerequisites: ~disabled
THF:
Buildable:
Prerequisites: ~disabled

View File

@@ -0,0 +1,170 @@
--[[
Copyright (c) The OpenRA Developers and Contributors
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.
]]
WTransWays =
{
{ EastWaterEntry.Location, EastBeach1.Location },
{ EastWaterEntry.Location, EastBeach2.Location },
{ EastWaterEntry.Location, EastBeach3.Location },
{ WestWaterEntry.Location, WestBeach1.Location },
{ WestWaterEntry.Location, WestBeach2.Location }
}
WTransUnits =
{
hard = { { "2tnk", "2tnk", "e3", "e3", "e3" }, { "2tnk", "2tnk", "2tnk", "2tnk" } },
normal = { { "2tnk", "1tnk", "e3", "e3", "jeep" }, { "2tnk", "2tnk", "1tnk", "jeep" } },
easy = { { "2tnk", "e1", "e1", "e3", "e3" }, { "1tnk", "1tnk", "jeep", "jeep" } }
}
WTransDelays =
{
easy = DateTime.Minutes(5),
normal = DateTime.Minutes(4),
hard = DateTime.Minutes(3)
}
AttackGroup = { }
AttackGroupSize = 8
ProductionInterval =
{
easy = DateTime.Seconds(20),
normal = DateTime.Seconds(14),
hard = DateTime.Seconds(8)
}
AlliedInfantry = { "e1", "e3" }
AlliedVehiclesUpgradeDelay = DateTime.Minutes(8)
AlliedVehicleType = "Normal"
AlliedVehicles =
{
Normal = { "1tnk", "2tnk", "2tnk" },
Upgraded = { "2tnk", "2tnk", "arty" }
}
WTransWaves = function()
local way = Utils.Random(WTransWays)
local units = Utils.Random(WTransUnits)
local attackUnits = Reinforcements.ReinforceWithTransport(Greece, "lst", units , way, { way[2], way[1] })[2]
Utils.Do(attackUnits, function(a)
Trigger.OnAddedToWorld(a, function()
IdleHunt(a)
end)
end)
Trigger.AfterDelay(WTransDelay, WTransWaves)
end
SendAttackGroup = function()
if #AttackGroup < AttackGroupSize then
return
end
Utils.Do(AttackGroup, IdleHunt)
AttackGroup = { }
end
ProduceInfantry = function()
if (GreeceTent1.IsDead or GreeceTent1.Owner ~= Greece) and (GreeceTent2.IsDead or GreeceTent2.Owner ~= Greece) then
return
end
Greece.Build({ Utils.Random(AlliedInfantry) }, function(units)
table.insert(AttackGroup, units[1])
SendAttackGroup()
Trigger.AfterDelay(ProductionInterval[Difficulty], ProduceInfantry)
end)
end
ProduceVehicles = function()
if GreeceWarFactory.IsDead or GreeceWarFactory.Owner ~= Greece then
return
end
Greece.Build({ Utils.Random(AlliedVehicles[AlliedVehicleType]) }, function(units)
table.insert(AttackGroup, units[1])
SendAttackGroup()
Trigger.AfterDelay(ProductionInterval[Difficulty], ProduceVehicles)
end)
end
AlliedAircraftType = { "heli" }
Longbows = { }
AlliedAircraft = function()
if (HPad1.IsDead or HPad1.Owner ~= Greece) and (HPad2.IsDead or HPad2.Owner ~= Greece) and (HPad3.IsDead or HPad3.Owner ~= Greece) and (HPad4.IsDead or HPad4.Owner ~= Greece) then
return
end
Greece.Build(AlliedAircraftType, function(units)
local longbow = units[1]
Longbows[#Longbows + 1] = longbow
Trigger.OnKilled(longbow, AlliedAircraft)
local alive = Utils.Where(Longbows, function(y) return not y.IsDead end)
if #alive < 2 then
Trigger.AfterDelay(DateTime.Seconds(75), AlliedAircraft)
end
InitializeAttackAircraft(longbow, USSR)
end)
end
SendCruiser = function()
if GoodguyShipyard.IsDead or GoodguyShipyard.Owner ~= GoodGuy then
return
end
local boat = Reinforcements.Reinforce(Greece, { "ca" }, { WestWaterEntry.Location })
Utils.Do(boat, function(ca)
ca.Move(CruiserStop.Location)
Trigger.OnKilled(ca, function()
Trigger.AfterDelay(DateTime.Minutes(6), SendCruiser)
end)
end)
end
ChinookChalk = { "e1", "e1", "e1", "e3", "e3", "e3", "e3", "e3" }
ChinookPath = { ChinookEntry.Location, ChinookLZ.Location }
SendChinook = function()
if (HPad1.IsDead or HPad1.Owner ~= Greece) and (HPad2.IsDead or HPad2.Owner ~= Greece) and (HPad3.IsDead or HPad3.Owner ~= Greece) and (HPad4.IsDead or HPad4.Owner ~= Greece) then
return
end
local chalk = Reinforcements.ReinforceWithTransport(Greece, "tran", ChinookChalk , ChinookPath, { ChinookPath[1] })[2]
Utils.Do(chalk, function(unit)
Trigger.OnAddedToWorld(unit, IdleHunt)
end)
Trigger.AfterDelay(DateTime.Minutes(5), SendChinook)
end
ActivateAI = function()
WTransUnits = WTransUnits[Difficulty]
WTransDelay = WTransDelays[Difficulty]
local buildings = Utils.Where(Map.ActorsInWorld, function(self) return self.Owner == Greece and self.HasProperty("StartBuildingRepairs") end)
Utils.Do(buildings, function(actor)
Trigger.OnDamaged(actor, function(building)
if building.Owner == Greece and building.Health < building.MaxHealth * 3/4 then
building.StartBuildingRepairs()
end
end)
end)
Trigger.AfterDelay(AlliedVehiclesUpgradeDelay, function() AlliedVehicleType = "Upgraded" end)
ProduceInfantry()
Trigger.AfterDelay(DateTime.Minutes(3), ProduceVehicles)
Trigger.AfterDelay(DateTime.Minutes(5), AlliedAircraft)
Trigger.AfterDelay(DateTime.Minutes(6), WTransWaves)
Trigger.AfterDelay(DateTime.Minutes(10), SendCruiser)
end

View File

@@ -0,0 +1,125 @@
--[[
Copyright (c) The OpenRA Developers and Contributors
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.
]]
Jeeps = { Jeep1, Jeep2 }
JeepWaypoints = { JeepWaypoint1.Location, JeepWaypoint2.Location }
OreAttackers = { OreAttack1, OreAttack2, OreAttack3, OreAttack4, OreAttack5, OreAttack6, OreAttack7, OreAttack8 }
RadarSites = { Radar1, Radar2, Radar3, Radar4 }
StartAttack = { StartAttack1, StartAttack2, StartAttack3, StartAttack4, StartAttack5 }
ChronoDemolitionTrigger = { CPos.New(35,96), CPos.New(36,96), CPos.New(37,96), CPos.New(37,97), CPos.New(38,97), CPos.New(39,97) }
OreAttackTrigger = { CPos.New(105,67), CPos.New(106,67), CPos.New(107,67), CPos.New(108,67), CPos.New(109,67), CPos.New(110,67) }
Start = function()
Reinforcements.Reinforce(USSR, { "mcv" }, { MCVEntry.Location, DefaultCameraPosition.Location }, 5)
Utils.Do(Jeeps, function(jeep)
jeep.Patrol(JeepWaypoints, true, 125)
end)
Utils.Do(StartAttack, function(a)
IdleHunt(a)
end)
ChronoCam = Actor.Create("camera", true, { Owner = USSR, Location = Chronosphere.Location})
end
MissionTriggers = function()
Trigger.OnAllKilledOrCaptured(RadarSites, function()
USSR.MarkCompletedObjective(TakeDownRadar)
ChronoshiftAlliedUnits()
end)
Trigger.OnCapture(Chronosphere, function()
if not USSR.IsObjectiveCompleted(TakeDownRadar) then
Media.DisplayMessage(UserInterface.Translate("chrono-trap-triggered"), UserInterface.Translate("headquarters"))
Chronosphere.Kill()
else
USSR.MarkCompletedObjective(CaptureChronosphere)
end
end)
Trigger.OnKilled(Chronosphere, function()
USSR.MarkFailedObjective(CaptureChronosphere)
end)
local chronoTriggered
Trigger.OnEnteredFootprint(ChronoDemolitionTrigger, function(actor, id)
if actor.Owner == USSR and not chronoTriggered and not USSR.IsObjectiveCompleted(TakeDownRadar) then
Trigger.RemoveFootprintTrigger(id)
chronoTriggered = true
Media.DisplayMessage(UserInterface.Translate("chrono-trap-triggered"), UserInterface.Translate("headquarters"))
Chronosphere.Kill()
end
end)
Trigger.OnEnteredProximityTrigger(ChinookLZ.CenterPosition, WDist.FromCells(5), function(actor, id)
if actor.Owner == USSR and actor.Type == "harv" then
Trigger.RemoveProximityTrigger(id)
SendChinook()
end
end)
local oreAttackTriggered
Trigger.OnEnteredFootprint(OreAttackTrigger, function(actor, id)
if actor.Owner == USSR and not oreAttackTriggered then
Trigger.RemoveFootprintTrigger(id)
oreAttackTriggered = true
Utils.Do(OreAttackers, function(a)
if not a.IsDead then
IdleHunt(a)
end
end)
end
end)
end
ChronoshiftAlliedUnits = function()
if Chronosphere.IsDead then
return
end
local cells = Utils.ExpandFootprint({ ChronoshiftPoint.Location }, false)
local units = { }
for i = 1, #cells do
local unit = Actor.Create("2tnk", true, { Owner = Greece, Facing = Angle.North })
units[unit] = cells[i]
IdleHunt(unit)
end
Chronosphere.Chronoshift(units)
end
Tick = function()
Greece.Cash = 20000
if USSR.HasNoRequiredUnits() then
Greece.MarkCompletedObjective(AlliesObjective)
end
end
WorldLoaded = function()
USSR = Player.GetPlayer("USSR")
Greece = Player.GetPlayer("Greece")
GoodGuy = Player.GetPlayer("GoodGuy")
InitObjectives(USSR)
AlliesObjective = AddPrimaryObjective(Greece, "")
TakeDownRadar = AddPrimaryObjective(USSR, "destroy-allied-radar-sites")
CaptureChronosphere = AddPrimaryObjective(USSR, "capture-the-chronosphere")
Camera.Position = DefaultCameraPosition.CenterPosition
Start()
MissionTriggers()
ActivateAI()
GreeceWarFactory.RallyPoint = WarFactoryRally.Location
if Difficulty == "hard" then
V2A.Destroy()
V2B.Destroy()
end
end