Add Soviet11b

This commit is contained in:
Smittytron
2021-02-19 09:47:20 -06:00
committed by reaperrr
parent ca2f966c3b
commit a96e2fb588
7 changed files with 1243 additions and 0 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,840 @@
MapFormat: 11
RequiresMod: ra
Title: 11b: Sunk Costs
Author: Westwood Studios
Tileset: SNOW
MapSize: 128,128
Bounds: 21,20,90,85
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
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
Actors:
Actor0: cycl
Location: 29,90
Owner: Greece
Actor1: cycl
Location: 30,90
Owner: Greece
Actor2: cycl
Location: 31,90
Owner: Greece
Actor3: cycl
Location: 32,90
Owner: Greece
Actor4: cycl
Location: 39,91
Owner: Greece
Actor5: cycl
Location: 40,91
Owner: Greece
Actor6: cycl
Location: 41,91
Owner: Greece
Actor7: cycl
Location: 42,91
Owner: Greece
Actor8: cycl
Location: 38,97
Owner: Greece
Actor9: cycl
Location: 39,97
Owner: Greece
Actor10: cycl
Location: 40,97
Owner: Greece
Actor11: cycl
Location: 41,97
Owner: Greece
Actor12: tc04
Location: 23,78
Owner: Neutral
Actor13: tc05
Location: 33,76
Owner: Neutral
Actor14: tc05
Location: 35,63
Owner: Neutral
Actor15: tc05
Location: 42,58
Owner: Neutral
Actor16: tc05
Location: 41,43
Owner: Neutral
Actor17: tc04
Location: 44,43
Owner: Neutral
Actor18: t16
Location: 43,52
Owner: Neutral
Actor19: tc03
Location: 27,84
Owner: Neutral
Actor20: tc02
Location: 40,83
Owner: Neutral
Actor21: tc01
Location: 58,93
Owner: Neutral
Actor22: t16
Location: 60,85
Owner: Neutral
Actor23: t12
Location: 24,63
Owner: Neutral
Actor24: t11
Location: 31,54
Owner: Neutral
Actor25: t10
Location: 40,55
Owner: Neutral
Actor26: t08
Location: 37,41
Owner: Neutral
Actor27: tc03
Location: 49,40
Owner: Neutral
Actor28: tc01
Location: 44,76
Owner: Neutral
Actor29: tc02
Location: 46,78
Owner: Neutral
Actor30: tc05
Location: 94,48
Owner: Neutral
Actor31: tc04
Location: 85,46
Owner: Neutral
Actor32: tc02
Location: 89,48
Owner: Neutral
Actor33: tc01
Location: 87,52
Owner: Neutral
Actor34: t17
Location: 93,52
Owner: Neutral
Actor35: tc03
Location: 80,45
Owner: Neutral
Actor36: t08
Location: 79,46
Owner: Neutral
Actor37: t06
Location: 102,41
Owner: Neutral
Actor38: t05
Location: 95,42
Owner: Neutral
Actor39: t01
Location: 52,89
Owner: Neutral
Actor40: t06
Location: 56,87
Owner: Neutral
Actor41: t07
Location: 56,89
Owner: Neutral
Actor42: mine
Location: 88,48
Owner: Neutral
Actor43: mine
Location: 95,54
Owner: Neutral
Actor44: mine
Location: 87,94
Owner: Neutral
Actor45: mine
Location: 83,56
Owner: Neutral
Actor46: weap
Location: 35,80
Owner: Greece
Actor47: pbox
Location: 30,87
Owner: Greece
Actor48: hbox
Location: 42,43
Owner: Greece
Actor49: hbox
Location: 43,52
Owner: Greece
Actor50: hbox
Location: 43,58
Owner: Greece
Actor51: hbox
Location: 45,43
Owner: Greece
Actor52: gap
Location: 36,90
Owner: Greece
Actor53: gun
Location: 33,58
Owner: Greece
Actor54: gun
Location: 38,58
Owner: Greece
Actor55: gun
Location: 31,72
Owner: Greece
Actor56: gun
Location: 27,72
Owner: Greece
Actor57: gun
Location: 51,66
Owner: Greece
Facing: 127
TurretFacing: 192
Actor58: gun
Location: 48,70
Owner: Greece
Facing: 191
Actor59: gun
Location: 51,74
Owner: Greece
Actor60: gun
Location: 33,85
Owner: Greece
Actor61: agun
Location: 30,89
Owner: Greece
Actor62: agun
Location: 39,96
Owner: Greece
Facing: 191
Actor63: agun
Location: 30,93
Owner: Greece
Facing: 95
Actor64: agun
Location: 40,90
Owner: Greece
Actor65: fact
Location: 31,86
Owner: Greece
Helipad3: hpad
Location: 31,78
Owner: Greece
Helipad4: hpad
Location: 24,83
Owner: Greece
Helipad2: hpad
Location: 26,78
Owner: Greece
Helipad1: hpad
Location: 24,72
Owner: Greece
Actor69: apwr
Location: 53,89
Owner: Greece
Actor70: apwr
Location: 57,90
Owner: Greece
Actor71: apwr
Location: 49,88
Owner: Greece
Actor72: apwr
Location: 53,86
Owner: Greece
Actor73: apwr
Location: 57,87
Owner: Greece
Actor74: tent
Location: 44,78
Owner: Greece
NavalYard1: syrd
Location: 44,93
Owner: Greece
NavalYard2: syrd
Location: 32,96
Owner: Greece
Actor77: barl
Location: 39,94
Owner: Greece
Actor78: brl3
Location: 40,94
Owner: Greece
Actor79: brl3
Location: 40,92
Owner: Greece
Actor80: brl3
Location: 31,93
Owner: Greece
Actor81: brl3
Location: 30,91
Owner: Greece
Actor82: brl3
Location: 29,93
Owner: Greece
Actor83: barl
Location: 32,93
Owner: Greece
Actor84: barl
Location: 38,94
Owner: Greece
Actor85: brl3
Location: 39,92
Owner: Greece
Actor86: brl3
Location: 39,93
Owner: Greece
Actor87: v19
Location: 31,92
Owner: Greece
Actor88: v19
Location: 29,91
Owner: Greece
Actor89: v19
Location: 29,92
Owner: Greece
Actor90: v19
Location: 31,91
Owner: Greece
Actor91: v19
Location: 38,93
Owner: Greece
Actor92: v19
Location: 40,93
Owner: Greece
Actor93: v19
Location: 38,95
Owner: Greece
Actor94: v19
Location: 40,95
Owner: Greece
Actor95: minv
Location: 64,73
Owner: Greece
Actor96: minv
Location: 63,74
Owner: Greece
Actor97: minv
Location: 62,71
Owner: Greece
Actor98: minv
Location: 61,72
Owner: Greece
Actor99: minv
Location: 62,73
Owner: Greece
Actor100: minv
Location: 61,74
Owner: Greece
Actor101: minv
Location: 60,73
Owner: Greece
Actor102: minv
Location: 59,74
Owner: Greece
Actor103: minv
Location: 58,73
Owner: Greece
Actor104: minv
Location: 57,72
Owner: Greece
Actor105: minv
Location: 55,72
Owner: Greece
Actor106: minv
Location: 56,71
Owner: Greece
Actor107: minv
Location: 58,71
Owner: Greece
Actor108: minv
Location: 60,71
Owner: Greece
Actor109: minv
Location: 59,72
Owner: Greece
Actor110: minv
Location: 57,70
Owner: Greece
Actor111: minv
Location: 55,70
Owner: Greece
Actor112: minv
Location: 59,70
Owner: Greece
Actor113: minv
Location: 54,71
Owner: Greece
Actor115: pbox
Location: 34,87
Owner: Greece
Actor116: minv
Location: 46,50
Owner: Greece
Actor117: minv
Location: 47,51
Owner: Greece
Actor118: minv
Location: 48,50
Owner: Greece
Actor119: minv
Location: 49,51
Owner: Greece
Actor120: minv
Location: 50,50
Owner: Greece
Actor121: minv
Location: 50,52
Owner: Greece
Actor122: minv
Location: 48,52
Owner: Greece
Actor123: minv
Location: 46,52
Owner: Greece
Actor124: minv
Location: 47,53
Owner: Greece
Actor125: minv
Location: 49,53
Owner: Greece
Actor126: minv
Location: 46,54
Owner: Greece
Actor127: minv
Location: 47,55
Owner: Greece
Actor128: minv
Location: 48,54
Owner: Greece
Actor129: minv
Location: 50,54
Owner: Greece
Actor130: minv
Location: 49,55
Owner: Greece
Actor131: minv
Location: 46,56
Owner: Greece
Actor132: minv
Location: 48,56
Owner: Greece
Actor133: minv
Location: 50,56
Owner: Greece
Actor134: minv
Location: 45,57
Owner: Greece
Actor135: minv
Location: 47,57
Owner: Greece
Actor136: minv
Location: 49,57
Owner: Greece
Actor137: minv
Location: 51,57
Owner: Greece
Actor138: hbox
Location: 52,89
Owner: Greece
Actor139: hbox
Location: 56,89
Owner: Greece
Actor140: barl
Location: 38,75
Owner: Greece
Actor141: brl3
Location: 38,76
Owner: Greece
BridgeBarrel: brl3
Location: 42,76
Owner: Greece
Actor143: barl
Location: 43,76
Owner: Greece
Actor144: barl
Location: 41,76
Owner: Greece
Actor145: barl
Location: 39,75
Owner: Greece
Actor146: 2tnk
Location: 56,69
Owner: Greece
Facing: 689
Actor147: 2tnk
Location: 53,69
Owner: Greece
Facing: 713
Actor148: 2tnk
Location: 53,71
Owner: Greece
Facing: 697
Actor149: 2tnk
Location: 47,47
Owner: Greece
Facing: 523
Actor150: 2tnk
Location: 50,47
Owner: Greece
Facing: 523
Actor151: arty
Location: 47,45
Owner: Greece
Facing: 491
Actor152: arty
Location: 50,45
Owner: Greece
Facing: 531
Actor153: arty
Location: 32,59
Owner: Greece
Actor154: arty
Location: 38,59
Owner: Greece
Actor155: 2tnk
Location: 36,57
Owner: Greece
Actor156: 2tnk
Location: 35,57
Owner: Greece
Actor157: 2tnk
Location: 34,57
Owner: Greece
Actor158: 2tnk
Location: 25,82
Owner: Greece
Actor159: 2tnk
Location: 26,76
Owner: Greece
BridgeTank: 2tnk
Location: 42,78
Owner: Greece
Actor161: 1tnk
Location: 48,45
Owner: Greece
TurretFacing: 0
Facing: 523
Actor162: 1tnk
Location: 49,45
Owner: Greece
Facing: 507
Actor163: 1tnk
Location: 32,92
Owner: Greece
Actor164: 1tnk
Location: 37,94
Owner: Greece
Actor165: 1tnk
Location: 51,86
Owner: Greece
Actor166: 1tnk
Location: 48,90
Owner: Greece
Actor167: arty
Location: 63,68
Owner: Greece
Facing: 674
Actor168: arty
Location: 59,67
Owner: Greece
Facing: 689
Actor169: arty
Location: 55,66
Owner: Greece
Facing: 682
Actor170: 2tnk
Location: 93,30
Owner: Greece
Facing: 507
Actor171: 1tnk
Location: 92,29
Owner: Greece
Facing: 523
Actor172: 1tnk
Location: 92,31
Owner: Greece
Facing: 531
Rocket5: e3
Location: 56,86
Owner: Greece
SubCell: 2
Rocket6: e3
Location: 57,86
Owner: Greece
SubCell: 2
Actor175: e3
Location: 59,93
Owner: Greece
SubCell: 0
Actor176: e3
Location: 58,93
Owner: Greece
SubCell: 0
Rocket3: e3
Location: 50,86
Owner: Greece
SubCell: 1
Rocket4: e3
Location: 50,87
Owner: Greece
SubCell: 1
Rocket1: e3
Location: 31,85
Owner: Greece
SubCell: 2
Rocket2: e3
Location: 32,85
Owner: Greece
SubCell: 2
Actor181: e3
Location: 48,44
Owner: Greece
SubCell: 4
Facing: 547
Actor182: e3
Location: 49,44
Owner: Greece
SubCell: 0
Facing: 475
Actor183: e3
Location: 35,58
Owner: Greece
SubCell: 1
Actor184: e3
Location: 35,58
Owner: Greece
SubCell: 2
Actor185: ss
Location: 105,94
Owner: USSR
Facing: 31
Actor186: ss
Location: 101,94
Owner: USSR
Facing: 31
Actor187: ss
Location: 101,97
Owner: USSR
Facing: 31
Actor188: dd
Location: 98,92
Owner: Greece
Health: 6
Facing: 364
StartGunboat: pt
Location: 97,96
Owner: Greece
Facing: 428
Actor190: ca
Location: 83,24
Owner: Greece
Facing: 539
TurretFacing@PRIMARY: 0
TurretFacing@SECONDARY: 0
Actor192: ca
Location: 50,95
Owner: Greece
Facing: 658
Actor193: dd
Location: 48,93
Owner: Greece
Facing: 618
Actor194: dd
Location: 53,94
Owner: Greece
Facing: 610
Actor195: dd
Location: 48,97
Owner: Greece
Facing: 642
Actor196: dd
Location: 53,97
Owner: Greece
Facing: 610
Gunboat1: pt
Location: 77,39
Owner: Greece
Facing: 388
Gunboat2: pt
Location: 79,40
Owner: Greece
Facing: 396
Actor199: pt
Location: 51,101
Owner: Greece
Facing: 610
Actor200: pt
Location: 54,100
Owner: Greece
Facing: 666
Actor201: pt
Location: 57,99
Owner: Greece
TurretFacing: 0
Facing: 634
Cruiser1: ca
Location: 80,38
Owner: Greece
Facing: 380
Actor203: dd
Location: 58,55
Owner: Greece
Facing: 666
Actor204: dd
Location: 55,55
Owner: Greece
Facing: 642
Actor205: pt
Location: 61,56
Owner: Greece
Facing: 666
Actor206: pt
Location: 59,59
Owner: Greece
Facing: 650
Actor207: dd
Location: 58,52
Owner: Greece
Facing: 618
Actor208: pt
Location: 61,58
Owner: Greece
Facing: 618
Actor249: dome
Owner: Greece
Location: 45,82
Actor250: camera
Owner: Greece
Location: 92,79
NavalYard3: syrd
Owner: Greece
Location: 54,51
Rocket7: e3
Owner: Greece
SubCell: 3
Location: 51,64
Facing: 384
Rocket8: e3
Owner: Greece
Location: 51,64
SubCell: 1
Facing: 384
DefaultCameraPosition: waypoint
Location: 99,94
Owner: Neutral
TransportEntry: waypoint
Location: 110,102
Owner: Neutral
TransportStop: waypoint
Location: 104,96
Owner: Neutral
ShipWaypoint1: waypoint
Location: 69,59
Owner: Neutral
ShipWaypoint2: waypoint
Location: 73,72
Owner: Neutral
ShipWaypoint3: waypoint
Location: 69,92
Owner: Neutral
ShipWaypoint4: waypoint
Location: 87,102
Owner: Neutral
ShipWaypoint5: waypoint
Location: 101,94
Owner: Neutral
PlayerBase: waypoint
Location: 92,78
Owner: Neutral
RocketPath1: waypoint
Location: 29,71
Owner: Neutral
RocketPath2: waypoint
Location: 31,84
Owner: Neutral
RocketPath3: waypoint
Location: 39,77
Owner: Neutral
RocketPath4: waypoint
Location: 34,93
Owner: Neutral
RocketPath5: waypoint
Location: 54,74
Owner: Neutral
RocketPath6: waypoint
Location: 57,85
Owner: Neutral
RocketPath7: waypoint
Location: 52,65
Owner: Neutral
RocketPath8: waypoint
Location: 62,67
Owner: Neutral
CruiserEntry: waypoint
Location: 110,40
Owner: Neutral
SurpriseTransportEntry: waypoint
Location: 24,20
Owner: Neutral
SurpriseTransportDrop: waypoint
Location: 38,24
Owner: Neutral
AmbushTrigger: waypoint
Location: 92,30
Owner: Neutral
AlliedTransportEntry1: waypoint
Location: 61,104
Owner: Neutral
AlliedTransportEntry2: waypoint
Location: 71,104
Owner: Neutral
AlliedTransportEntry3: waypoint
Location: 110,63
Owner: Neutral
AlliedTransportDrop1: waypoint
Location: 80,52
Owner: Neutral
AlliedTransportDrop2: waypoint
Location: 83,97
Owner: Neutral
AlliedTransportDrop3: waypoint
Location: 102,49
Owner: Neutral
ShipEntry: waypoint
Location: 57,53
Owner: Neutral
BaseBridge: waypoint
Location: 43,73
Owner: Neutral
Rules: ra|rules/campaign-rules.yaml, ra|rules/campaign-tooltips.yaml, ra|rules/campaign-palettes.yaml, rules.yaml

View File

@@ -0,0 +1,91 @@
World:
LuaScript:
Scripts: campaign-global.lua, soviet11b.lua, soviet11b-AI.lua
MissionData:
BriefingVideo: soviet11.vqa
WinVideo: sitduck.vqa
LossVideo: dpthchrg.vqa
StartVideo: periscop.vqa
Briefing: Intelligence indicates that a large portion of the Allied Naval Fleet will stop for refueling at a base in this area. Destroy the fleet and the base. Beware the long range of their cruisers.
ScriptLobbyDropdown@difficulty:
ID: difficulty
Label: Difficulty
Values:
easy: Easy
normal: Normal
hard: Hard
Default: normal
Player:
PlayerResources:
DefaultCash: 10000
AFLD:
AirstrikePower@parabombs:
Prerequisites: aircraft.soviet
ParatroopersPower@paratroopers:
DropItems: E1,E1,E1,E2,E2
ATEK:
Buildable:
Prerequisites: ~disabled
IRON:
Buildable:
Prerequisites: ~disabled
MSLO:
Buildable:
Prerequisites: ~disabled
TRUK:
Buildable:
Prerequisites: ~disabled
FTRK:
Buildable:
Prerequisites: ~disabled
QTNK:
Buildable:
Prerequisites: ~disabled
MSUB:
Buildable:
Prerequisites: ~disabled
THF:
Buildable:
Prerequisites: ~disabled
PDOX:
Buildable:
Prerequisites: ~disabled
E7:
Buildable:
Prerequisites: ~disabled
MCV:
Buildable:
Prerequisites: ~disabled
MECH:
Buildable:
Prerequisites: ~disabled
MH60:
Buildable:
Prerequisites: ~disabled
E3:
Buildable:
Prerequisites: ~tent
CA:
Buildable:
Prerequisites: ~syrd, dome
HELI:
Buildable:
Prerequisites: ~hpad

View File

@@ -0,0 +1,248 @@
--[[
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.
]]
FirstPatrolActors = { Cruiser1, Gunboat1, Gunboat2 }
PatrolA = { Rocket1, Rocket2 }
PatrolB = { Rocket3, Rocket4 }
PatrolC = { Rocket5, Rocket6 }
PatrolD = { Rocket7, Rocket8 }
PatrolPathA = { RocketPath1.Location, RocketPath2.Location }
PatrolPathB = { RocketPath3.Location, RocketPath4.Location }
PatrolPathC = { RocketPath5.Location, RocketPath6.Location }
PatrolPathD = { RocketPath7.Location, RocketPath8.Location }
Helipads = { Helipad1, Helipad2, Helipad3, Helipad4 }
HeliType = { "heli" }
DestroyerSquad = { "dd", "dd" }
DestroyerDelays =
{
easy = 4,
normal = 3,
hard = 2
}
TransportDelays =
{
easy = 6,
normal = 5,
hard = 4
}
AlliedShips =
{
easy = { "pt", "pt", "dd" },
normal = { "pt", "dd", "dd" },
hard = { "dd", "dd" , "dd" }
}
Helis = { }
PatrolWay = { ShipWaypoint1.Location, ShipWaypoint2.Location, ShipWaypoint3.Location, ShipWaypoint4.Location, ShipWaypoint5.Location }
TransportWays =
{
{ AlliedTransportEntry1.Location, AlliedTransportDrop1.Location },
{ AlliedTransportEntry2.Location, AlliedTransportDrop2.Location },
{ AlliedTransportEntry3.Location, AlliedTransportDrop3.Location }
}
TransportUnits =
{
easy = { { "1tnk", "1tnk", "2tnk" }, { "arty", "jeep", "1tnk" } },
normal = { { "1tnk", "2tnk", "2tnk" }, { "arty", "arty", "1tnk" } },
hard = { { "2tnk", "2tnk", "2tnk" }, { "arty", "arty", "2tnk" } }
}
SurpriseTransportWay = { SurpriseTransportEntry.Location, SurpriseTransportDrop.Location }
SurpriseTransportUnits =
{
easy = { "jeep", "jeep", "1tnk" },
normal = { "jeep", "jeep", "1tnk" },
hard = { "jeep", "1tnk", "2tnk" }
}
ProductionDelays =
{
easy = 3,
normal = 2,
hard = 1
}
IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end
SendCruiser = function()
if NavalYard2.IsDead or NavalYard2.Owner ~= Greece then
return
end
local boat = Reinforcements.Reinforce(Greece, { "ca" }, { CruiserEntry.Location })
Utils.Do(boat, function(ca)
ca.Move(DefaultCameraPosition.Location)
Trigger.OnKilled(ca, function()
Trigger.AfterDelay(DateTime.Minutes(3), SendCruiser)
end)
end)
end
DestroyerAttacks = function()
if NavalYard3.IsDead or NavalYard3.Owner ~= Greece then
return
end
local boats = Reinforcements.Reinforce(Greece, DestroyerSquad, { ShipEntry.Location })
Utils.Do(boats, function(dd)
dd.Patrol(PatrolWay, false, 1)
IdleHunt(dd)
end)
Trigger.OnAllKilled(boats, function()
Trigger.AfterDelay(DateTime.Minutes(DestroyerDelays), DestroyerAttacks)
end)
end
AlliedTransportReinforcements = function()
local way = Utils.Random(TransportWays)
local group = Utils.Random(TransportUnits)
local units = Reinforcements.ReinforceWithTransport(Greece, "lst", group, way, { way[2], way[1] } )[2]
Utils.Do(units, function(a)
Trigger.OnAddedToWorld(a, function()
a.AttackMove(PlayerBase.Location)
IdleHunt(a)
end)
end)
Trigger.AfterDelay(DateTime.Minutes(TransportDelays), AlliedTransportReinforcements)
end
BuildingsHealing = function()
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)
end
StartPatrols = function()
Utils.Do(FirstPatrolActors, function(a)
if not a.IsDead then
a.Patrol(PatrolWay, false, 1)
IdleHunt(a)
end
end)
Utils.Do(PatrolA, function(a)
a.Patrol(PatrolPathA, true, 20)
end)
Utils.Do(PatrolB, function(b)
b.Patrol(PatrolPathB, true, 20)
end)
Utils.Do(PatrolC, function(c)
c.Patrol(PatrolPathC, true, 20)
end)
Utils.Do(PatrolD, function(d)
d.Patrol(PatrolPathD, true, 20)
end)
end
ProduceShips = function()
if NavalYard1.IsDead or NavalYard1.Owner ~= Greece then
return
end
Greece.Build(AlliedShips, function(ships)
Utils.Do(ships, function(a)
a.AttackMove(ShipWaypoint5.Location)
IdleHunt(a)
end)
end)
Trigger.AfterDelay(DateTime.Minutes(ProductionDelays), ProduceShips)
end
ProduceHelicopters = function()
if Utils.All(Helipads, function(a) return a.IsDead or a.Owner ~= Greece end) then
return
end
Greece.Build(HeliType, function(helis)
local heli = helis[1]
Helis[#Helis+1] = heli
Trigger.OnKilled(heli, ProduceHelicopters)
local alive = Utils.Where(Helis, function(y) return not y.IsDead end)
if #alive < 2 then
Trigger.AfterDelay(DateTime.Minutes(ProductionDelays), ProduceHelicopters)
end
InitializeAttackAircraft(heli, USSR)
end)
end
AlliedTransportAmbush = function()
Trigger.OnEnteredProximityTrigger(AmbushTrigger.CenterPosition, WDist.FromCells(7), function(actor, id)
if actor.Owner == USSR and actor.Type ~= "badr" and actor.Type ~= "u2" and actor.Type ~= "camera.spyplane" then
Trigger.RemoveProximityTrigger(id)
local way = SurpriseTransportWay
local group = SurpriseTransportUnits
local units = Reinforcements.ReinforceWithTransport(Greece, "lst", group, way, { way[2], way[1] } )[2]
Utils.Do(units, function(a)
Trigger.OnAddedToWorld(a, function()
a.AttackMove(PlayerBase.Location)
IdleHunt(a)
end)
end)
end
end)
end
BridgeTrigger = function()
TheBridge = Utils.Where(Map.ActorsInWorld, function(actor) return actor.Type == "bridge1" end)[1]
Trigger.OnKilled(BridgeBarrel, function()
if not TheBridge.IsDead then
TheBridge.Kill()
end
end)
Trigger.OnEnteredProximityTrigger(BaseBridge.CenterPosition, WDist.FromCells(3), function(actor, id)
if actor.Owner == USSR and actor.Type ~= "badr" and actor.Type ~= "u2" and actor.Type ~= "camera.spyplane" then
Trigger.RemoveProximityTrigger(id)
if not BridgeTank.IsDead and not BridgeBarrel.IsDead and not TheBridge.IsDead then
BridgeTank.Attack(BridgeBarrel, true, true)
end
end
end)
end
ActivateAI = function()
local difficulty = Map.LobbyOption("difficulty")
TransportDelays = TransportDelays[difficulty]
DestroyerDelays = DestroyerDelays[difficulty]
TransportUnits = TransportUnits[difficulty]
ProductionDelays = ProductionDelays[difficulty]
AlliedShips = AlliedShips[difficulty]
SurpriseTransportUnits = SurpriseTransportUnits[difficulty]
BuildingsHealing()
AlliedTransportAmbush()
BridgeTrigger()
NavalYard1.IsPrimaryBuilding = true
Trigger.AfterDelay(DateTime.Minutes(1), StartPatrols)
Trigger.AfterDelay(DateTime.Minutes(3), AlliedTransportReinforcements)
Trigger.AfterDelay(DateTime.Minutes(4), DestroyerAttacks)
Trigger.AfterDelay(DateTime.Minutes(5), ProduceShips)
Trigger.AfterDelay(DateTime.Minutes(6), ProduceHelicopters)
Trigger.AfterDelay(DateTime.Minutes(7), SendCruiser)
end

View File

@@ -0,0 +1,63 @@
--[[
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.
]]
StartingUnits = { "mcv", "e4", "e4", "e2", "e2" }
SovietTransportWay = { TransportEntry.Location, TransportStop.Location }
InitialSovietReinforcements = function()
Trigger.AfterDelay(DateTime.Seconds(2), function()
Media.PlaySpeechNotification(USSR, "ReinforcementsArrived")
Reinforcements.ReinforceWithTransport(USSR, "lst", StartingUnits, SovietTransportWay)
end)
end
Tick = function()
Greece.Cash = 10000
if Greece.HasNoRequiredUnits() then
USSR.MarkCompletedObjective(DestroyNavalBase)
end
if USSR.HasNoRequiredUnits() and DateTime.GameTime > DateTime.Seconds(5) then
Greece.MarkCompletedObjective(BeatSoviets)
end
end
WorldLoaded = function()
USSR = Player.GetPlayer("USSR")
Greece = Player.GetPlayer("Greece")
Trigger.OnObjectiveAdded(USSR, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective")
end)
DestroyNavalBase = USSR.AddPrimaryObjective("Destroy Allied naval base")
BeatSoviets = Greece.AddPrimaryObjective("Destroy all Soviet troops.")
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 = DefaultCameraPosition.CenterPosition
InitialSovietReinforcements()
Trigger.AfterDelay(DateTime.Seconds(5), ActivateAI)
end

View File

@@ -28,6 +28,7 @@ Soviet Campaign:
soviet-08b
soviet-09
soviet-11a
soviet-11b
Counterstrike:
sarin-gas-1-crackdown
sarin-gas-2-down-under