Add Allies08b

This commit is contained in:
Smittytron
2018-09-01 22:43:12 -05:00
committed by Oliver Brakmann
parent 7ed67338f3
commit 65269f7950
7 changed files with 1375 additions and 0 deletions

View File

@@ -0,0 +1,241 @@
--[[
Copyright 2007-2018 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.
]]
AttackGroup = { }
AttackGroupSize = 10
SovietInfantry = { "e1", "e2", "e4" }
SovietVehicles = { "3tnk", "3tnk", "v2rl" }
SovietAircraftType = { "mig" }
Migs = { }
IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end
GroundWavesUpgradeDelay = DateTime.Minutes(12)
GroundAttackUnitType = "Normal"
GroundAttackUnits =
{
Normal = { {"4tnk", "3tnk", "e2", "e2", "e2" }, { "3tnk", "v2rl", "e4", "e4", "e4" } },
Upgraded = { {"4tnk", "3tnk", "ftrk", "apc", "apc", "e1", "e1", "e1", "e1", "e1", "e2", "e2", "e2" }, { "3tnk", "v2rl", "ftrk", "apc", "apc", "e1", "e1", "e1", "e1", "e1", "e4", "e4", "e4" } }
}
GroundAttackPaths =
{
{ SovEntry1.Location, ParaLZ2.Location, AttackChrono.Location },
{ SovEntry2.Location, ParaLZ2.Location, AttackChrono.Location },
{ SovEntry3.Location, ParaLZ4.Location, AttackChrono.Location }
}
GroundWavesDelays =
{
easy = 4,
normal = 3,
hard = 2
}
WTransUnits = { { "4tnk", "3tnk", "e2", "e2", "e2" }, { "3tnk", "v2rl", "e4", "e4", "e4" } }
WTransWays =
{
{ DDEntry.Location, WaterLanding1.Location },
{ WaterEntry2.Location, WaterLanding2.Location }
}
WTransDelays =
{
easy = 5,
normal = 4,
hard = 3
}
ParadropLZs = { ParaLZ1.CenterPosition, ParaLZ2.CenterPosition, ParaLZ3.CenterPosition, ParaLZ4.CenterPosition, ParaLZ5.CenterPosition }
ParadropDelays =
{
easy = 3,
normal = 2,
hard = 1
}
BombDelays =
{
easy = 4,
normal = 3,
hard = 2
}
ProductionInterval =
{
easy = DateTime.Seconds(20),
normal = DateTime.Seconds(10),
hard = DateTime.Seconds(5)
}
SendAttackGroup = function()
if #AttackGroup < AttackGroupSize then
return
end
Utils.Do(AttackGroup, function(unit)
if not unit.IsDead then
Trigger.OnIdle(unit, unit.Hunt)
end
end)
AttackGroup = { }
end
ProduceInfantry = function()
if USSRRax.IsDead or USSRRax.Owner ~= ussr then
return
end
ussr.Build({ Utils.Random(SovietInfantry) }, function(units)
table.insert(AttackGroup, units[1])
SendAttackGroup()
Trigger.AfterDelay(ProductionInterval[Map.LobbyOption("difficulty")], ProduceInfantry)
end)
end
ProduceVehicles = function()
if USSRWarFactory.IsDead or USSRWarFactory.Owner ~= ussr then
return
end
ussr.Build({ Utils.Random(SovietVehicles) }, function(units)
table.insert(AttackGroup, units[1])
SendAttackGroup()
Trigger.AfterDelay(ProductionInterval[Map.LobbyOption("difficulty")], ProduceVehicles)
end)
end
ProduceAircraft = function()
if (Airfield1.IsDead or Airfield1.Owner ~= ussr) and (Airfield2.IsDead or Airfield2.Owner ~= ussr) then
return
end
ussr.Build(SovietAircraftType, function(units)
local mig = units[1]
Migs[#Migs + 1] = mig
Trigger.OnKilled(mig, ProduceAircraft)
local alive = Utils.Where(Migs, function(y) return not y.IsDead end)
if #alive < 2 then
Trigger.AfterDelay(DateTime.Seconds(ProductionInterval[Map.LobbyOption("difficulty")] / 2), ProduceAircraft)
end
TargetAndAttack(mig)
end)
end
TargetAndAttack = function(mig, target)
if not target or target.IsDead or (not target.IsInWorld) then
local enemies = Utils.Where(greece.GetActors(), function(actor)
return actor.HasProperty("Health") and actor.Type ~= "brik"
end)
if #enemies > 0 then
target = Utils.Random(enemies)
end
end
if target and mig.AmmoCount() > 0 and mig.CanTarget(target) then
mig.Attack(target)
else
mig.ReturnToBase()
end
mig.CallFunc(function()
TargetAndAttack(mig, target)
end)
end
GroundWaves = function()
local path = Utils.Random(GroundAttackPaths)
local units = Reinforcements.Reinforce(ussr, Utils.Random(GroundAttackUnits[GroundAttackUnitType]), { path[1] })
local lastWaypoint = path[#path]
Utils.Do(units, function(unit)
Trigger.OnAddedToWorld(unit, function()
unit.Patrol(path)
Trigger.OnIdle(unit, function()
unit.AttackMove(lastWaypoint)
end)
end)
end)
Trigger.AfterDelay(DateTime.Minutes(GroundWavesDelays), GroundWaves)
end
WTransWaves = function()
local way = Utils.Random(WTransWays)
local units = Utils.Random(WTransUnits)
local attackUnits = Reinforcements.ReinforceWithTransport(ussr, "lst", units , way, { way[2], way[1] })[2]
Utils.Do(attackUnits, function(a)
Trigger.OnAddedToWorld(a, function()
a.AttackMove(AttackChrono.Location)
IdleHunt(a)
end)
end)
Trigger.AfterDelay(DateTime.Minutes(WTransDelays), WTransWaves)
end
Paradrop = function()
local units = PowerProxy.SendParatroopers(Utils.Random(ParadropLZs))
Utils.Do(units, function(unit)
Trigger.OnAddedToWorld(unit, IdleHunt)
end)
Trigger.AfterDelay(DateTime.Minutes(ParadropDelays), Paradrop)
end
SendParabombs = function()
local airfield = Airfield1
if Airfield1.IsDead or Airfield1.Owner ~= ussr then
if Airfield2.IsDead or Airfield2.Owner ~= ussr then
return
end
airfield = Airfield2
end
local targets = Utils.Where(greece.GetActors(), function(actor)
return
actor.HasProperty("Sell") and
actor.Type ~= "brik" and
actor.Type ~= "sbag" or
actor.Type == "pdox" or
actor.Type == "atek"
end)
if #targets > 0 then
airfield.SendAirstrike(Utils.Random(targets).CenterPosition, true, 0)
end
Trigger.AfterDelay(DateTime.Minutes(BombDelays), SendParabombs)
end
ActivateAI = function()
local difficulty = Map.LobbyOption("difficulty")
GroundWavesDelays = GroundWavesDelays[difficulty]
WTransDelays = WTransDelays[difficulty]
ParadropDelays = ParadropDelays[difficulty]
BombDelays = BombDelays[difficulty]
local buildings = Utils.Where(Map.ActorsInWorld, function(self) return self.Owner == ussr and self.HasProperty("StartBuildingRepairs") end)
Utils.Do(buildings, function(actor)
Trigger.OnDamaged(actor, function(building)
if building.Owner == ussr and building.Health < building.MaxHealth * 3/4 then
building.StartBuildingRepairs()
end
end)
end)
ProduceInfantry()
ProduceVehicles()
ProduceAircraft()
Trigger.AfterDelay(DateTime.Minutes(GroundWavesDelays), GroundWaves)
Trigger.AfterDelay(DateTime.Minutes(WTransDelays), WTransWaves)
Trigger.AfterDelay(DateTime.Minutes(ParadropDelays), Paradrop)
Trigger.AfterDelay(DateTime.Minutes(BombDelays), SendParabombs)
Trigger.AfterDelay(GroundWavesUpgradeDelay, function() GroundAttackUnitType = "Upgraded" end)
end

View File

@@ -0,0 +1,191 @@
--[[
Copyright 2007-2018 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.
]]
AlliedBoatReinforcements = { "dd", "dd" }
TimerTicks = DateTime.Minutes(21)
ObjectiveBuildings = { Chronosphere, AlliedTechCenter }
ScientistTypes = { "chan", "chan", "chan", "chan" }
ScientistDiscoveryFootprint = { CPos.New(99, 63), CPos.New(99, 64), CPos.New(99, 65), CPos.New(99, 66), CPos.New(99, 67), CPos.New(100, 63), CPos.New(101, 63), CPos.New(102, 63), CPos.New(103, 63) }
ScientistEvacuationFootprint = { CPos.New(98, 88), CPos.New(98, 87), CPos.New(99, 87), CPos.New(100, 87), CPos.New(101, 87), CPos.New(102, 87), CPos.New(103, 87) }
InitialAlliedReinforcements = function()
Trigger.AfterDelay(DateTime.Seconds(2), function()
Media.PlaySpeechNotification(greece, "ReinforcementsArrived")
Reinforcements.Reinforce(greece, { "mcv" }, { MCVEntry.Location, MCVStop.Location })
Reinforcements.Reinforce(greece, AlliedBoatReinforcements, { DDEntry.Location, DDStop.Location })
end)
end
CreateScientists = function()
scientists = Reinforcements.Reinforce(greece, ScientistTypes, { ScientistsExit.Location })
Utils.Do(scientists, function(s)
s.Move(s.Location + CVec.New(0, 1))
s.Scatter()
end)
local flare = Actor.Create("flare", true, { Owner = greece, Location = DefaultCameraPosition.Location + CVec.New(-1, 0) })
Trigger.AfterDelay(DateTime.Seconds(2), function() Media.PlaySpeechNotification(player, "SignalFlareSouth") end)
Trigger.OnAnyKilled(scientists, function()
Media.PlaySpeechNotification(greece, "ObjectiveNotMet")
greece.MarkFailedObjective(EvacuateScientists)
end)
-- Add the footprint trigger in a frame end task (delay 0) to avoid crashes
local left = #scientists
Trigger.AfterDelay(0, function()
local changeOwnerTrigger = Trigger.OnEnteredFootprint(ScientistEvacuationFootprint, function(a, id)
if a.Owner == greece and a.Type == "chan" then
a.Owner = england
a.Stop()
a.Move(MCVEntry.Location)
-- Constantly try to reach the exit (and thus avoid getting stuck if the path was blocked)
Trigger.OnIdle(a, function()
a.Move(MCVEntry.Location)
end)
end
end)
-- Use a cell trigger to destroy the scientists preventing the player from causing glitchs by blocking the path
Trigger.OnEnteredFootprint({ MCVEntry.Location }, function(a, id)
if a.Owner == england then
a.Stop()
a.Destroy()
left = left - 1
if left == 0 then
Trigger.RemoveFootprintTrigger(id)
Trigger.RemoveFootprintTrigger(changeOwnerTrigger)
flare.Destroy()
if not greece.IsObjectiveCompleted(EvacuateScientists) and not greece.IsObjectiveFailed(EvacuateScientists) then
Media.PlaySpeechNotification(greece, "ObjectiveMet")
greece.MarkCompletedObjective(EvacuateScientists)
end
end
end
end)
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 experiment is a success!", c) end)
end
Trigger.AfterDelay(DateTime.Seconds(6), function() UserInterface.SetMissionText("") end)
end
DefendChronosphereCompleted = function()
local cells = Utils.ExpandFootprint({ ChronoshiftLocation.Location }, false)
local units = { }
for i = 1, #cells do
local unit = Actor.Create("2tnk", true, { Owner = greece, Facing = 0 })
units[unit] = cells[i]
end
Chronosphere.Chronoshift(units)
Trigger.AfterDelay(DateTime.Seconds(3), function()
greece.MarkCompletedObjective(DefendChronosphere)
greece.MarkCompletedObjective(KeepBasePowered)
end)
end
ticked = TimerTicks
Tick = function()
ussr.Cash = 5000
if ussr.HasNoRequiredUnits() then
greece.MarkCompletedObjective(DefendChronosphere)
greece.MarkCompletedObjective(KeepBasePowered)
end
if greece.HasNoRequiredUnits() then
ussr.MarkCompletedObjective(BeatAllies)
end
if ticked > 0 then
UserInterface.SetMissionText("Chronosphere experiment completes in " .. Utils.FormatTime(ticked), TimerColor)
ticked = ticked - 1
elseif ticked == 0 and (greece.PowerState ~= "Normal") then
greece.MarkFailedObjective(KeepBasePowered)
elseif ticked == 0 then
DefendChronosphereCompleted()
ticked = ticked - 1
end
end
WorldLoaded = function()
greece = Player.GetPlayer("Greece")
ussr = Player.GetPlayer("USSR")
england = Player.GetPlayer("England")
DefendChronosphere = greece.AddPrimaryObjective("Defend the Chronosphere and the Tech Center\nat all costs.")
KeepBasePowered = greece.AddPrimaryObjective("The Chronosphere must have power when the\ntimer runs out.")
EvacuateScientists = greece.AddSecondaryObjective("Evacuate all scientists from the island to\nthe east.")
BeatAllies = ussr.AddPrimaryObjective("Defeat the Allied forces.")
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()
Trigger.AfterDelay(DateTime.Seconds(1), function()
Media.PlaySpeechNotification(greece, "MissionFailed")
end)
end)
Trigger.OnPlayerWon(greece, function()
Trigger.AfterDelay(DateTime.Seconds(1), function()
Media.PlaySpeechNotification(greece, "MissionAccomplished")
end)
end)
Trigger.AfterDelay(DateTime.Minutes(1), function()
Media.PlaySpeechNotification(greece, "TwentyMinutesRemaining")
end)
Trigger.AfterDelay(DateTime.Minutes(11), function()
Media.PlaySpeechNotification(greece, "TenMinutesRemaining")
end)
Trigger.AfterDelay(DateTime.Minutes(16), function()
Media.PlaySpeechNotification(greece, "WarningFiveMinutesRemaining")
end)
Trigger.AfterDelay(DateTime.Minutes(18), function()
Media.PlaySpeechNotification(greece, "WarningThreeMinutesRemaining")
end)
Trigger.AfterDelay(DateTime.Minutes(20), function()
Media.PlaySpeechNotification(greece, "WarningOneMinuteRemaining")
end)
PowerProxy = Actor.Create("powerproxy.paratroopers", false, { Owner = ussr })
Camera.Position = DefaultCameraPosition.CenterPosition
TimerColor = greece.Color
Trigger.OnAnyKilled(ObjectiveBuildings, function()
greece.MarkFailedObjective(DefendChronosphere)
end)
Trigger.OnEnteredFootprint(ScientistDiscoveryFootprint, function(a, id)
if a.Owner == greece and not scientistsTriggered then
scientistsTriggered = true
Trigger.RemoveFootprintTrigger(id)
CreateScientists()
end
end)
InitialAlliedReinforcements()
ActivateAI()
end

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,827 @@
MapFormat: 11
RequiresMod: ra
Title: 08b: Protect the Chronosphere
Author: Westwood Studios
Tileset: SNOW
MapSize: 128,128
Bounds: 28,36,80,54
Visibility: MissionSelector
Categories: Campaign
LockPreview: True
Players:
PlayerReference@Neutral:
Name: Neutral
OwnsWorld: True
NonCombatant: True
Faction: england
PlayerReference@Creeps:
Name: Creeps
NonCombatant: True
Faction: england
PlayerReference@USSR:
Name: USSR
Faction: soviet
Color: FF1400
Enemies: Greece, England
PlayerReference@England:
Name: England
Faction: allies
Color: A0F08C
Enemies: USSR
PlayerReference@Greece:
Name: Greece
AllowBots: False
Playable: True
Required: True
LockFaction: True
Faction: allies
LockColor: True
Color: E2E6F6
LockSpawn: True
LockTeam: True
Enemies: USSR
Actors:
Actor0: brik
Location: 64,43
Owner: Greece
Actor1: brik
Location: 65,43
Owner: Greece
Actor2: brik
Location: 70,43
Owner: Greece
Actor3: brik
Location: 71,43
Owner: Greece
Actor4: brik
Location: 64,44
Owner: Greece
Actor5: brik
Location: 65,44
Owner: Greece
Actor6: brik
Location: 70,44
Owner: Greece
Actor7: brik
Location: 71,44
Owner: Greece
Actor8: brik
Location: 65,45
Owner: Greece
Actor9: brik
Location: 66,45
Owner: Greece
Actor10: brik
Location: 69,45
Owner: Greece
Actor11: brik
Location: 70,45
Owner: Greece
Actor12: brik
Location: 65,46
Owner: Greece
Actor13: brik
Location: 66,46
Owner: Greece
Actor14: brik
Location: 69,46
Owner: Greece
Actor15: brik
Location: 70,46
Owner: Greece
Actor16: brik
Location: 52,47
Owner: Greece
Actor17: brik
Location: 53,47
Owner: Greece
Actor18: brik
Location: 52,48
Owner: Greece
Actor19: brik
Location: 53,48
Owner: Greece
Actor20: brik
Location: 52,52
Owner: Greece
Actor21: brik
Location: 53,52
Owner: Greece
Actor22: brik
Location: 52,53
Owner: Greece
Actor23: brik
Location: 53,53
Owner: Greece
Actor24: brik
Location: 65,53
Owner: Greece
Actor25: brik
Location: 66,53
Owner: Greece
Actor26: brik
Location: 65,54
Owner: Greece
Actor27: brik
Location: 66,54
Owner: Greece
Actor28: brik
Location: 69,54
Owner: Greece
Actor29: brik
Location: 70,54
Owner: Greece
Actor30: brik
Location: 74,54
Owner: Greece
Actor31: brik
Location: 75,54
Owner: Greece
Actor32: brik
Location: 79,54
Owner: Greece
Actor33: brik
Location: 80,54
Owner: Greece
Actor34: brik
Location: 66,55
Owner: Greece
Actor35: brik
Location: 67,55
Owner: Greece
Actor36: brik
Location: 68,55
Owner: Greece
Actor37: brik
Location: 69,55
Owner: Greece
Actor38: brik
Location: 70,55
Owner: Greece
Actor39: brik
Location: 74,55
Owner: Greece
Actor40: brik
Location: 75,55
Owner: Greece
Actor41: brik
Location: 76,55
Owner: Greece
Actor42: brik
Location: 77,55
Owner: Greece
Actor43: brik
Location: 78,55
Owner: Greece
Actor44: brik
Location: 79,55
Owner: Greece
Actor45: brik
Location: 80,55
Owner: Greece
Actor46: brik
Location: 47,86
Owner: USSR
Actor47: brik
Location: 48,86
Owner: USSR
Actor48: brik
Location: 47,87
Owner: USSR
Actor49: brik
Location: 48,87
Owner: USSR
Actor50: brik
Location: 46,88
Owner: USSR
Actor51: brik
Location: 47,88
Owner: USSR
Actor52: brik
Location: 46,89
Owner: USSR
Actor53: brik
Location: 47,89
Owner: USSR
Actor54: tc02
Location: 104,84
Owner: Neutral
Actor55: tc01
Location: 68,41
Owner: Neutral
Actor56: t01
Location: 48,53
Owner: Neutral
Actor57: tc05
Location: 61,55
Owner: Neutral
Actor58: tc03
Location: 52,59
Owner: Neutral
Actor59: tc02
Location: 51,57
Owner: Neutral
Actor60: tc03
Location: 59,53
Owner: Neutral
Actor61: tc04
Location: 52,38
Owner: Neutral
Actor62: tc04
Location: 70,38
Owner: Neutral
Actor63: tc01
Location: 46,56
Owner: Neutral
Actor64: t14
Location: 48,55
Owner: Neutral
Actor65: t16
Location: 50,53
Owner: Neutral
Actor66: t15
Location: 49,54
Owner: Neutral
Actor67: t12
Location: 48,59
Owner: Neutral
Actor68: tc02
Location: 75,39
Owner: Neutral
Actor69: tc05
Location: 95,69
Owner: Neutral
Actor70: tc04
Location: 90,61
Owner: Neutral
Actor71: tc03
Location: 105,71
Owner: Neutral
Actor72: tc05
Location: 105,49
Owner: Neutral
Actor73: tc02
Location: 102,72
Owner: Neutral
Actor74: tc05
Location: 105,67
Owner: Neutral
Actor75: tc02
Location: 104,60
Owner: Neutral
Actor76: t16
Location: 104,53
Owner: Neutral
Actor77: t15
Location: 99,60
Owner: Neutral
Actor78: tc01
Location: 53,35
Owner: Neutral
Actor79: tc02
Location: 59,39
Owner: Neutral
Actor80: tc03
Location: 66,36
Owner: Neutral
Actor81: t01
Location: 29,36
Owner: Neutral
Actor82: tc05
Location: 49,43
Owner: Neutral
Actor83: tc02
Location: 48,42
Owner: Neutral
Actor84: tc05
Location: 64,88
Owner: Neutral
Actor85: tc01
Location: 68,86
Owner: Neutral
Actor86: tc02
Location: 73,88
Owner: Neutral
Actor87: tc02
Location: 56,64
Owner: Neutral
Actor88: tc04
Location: 61,59
Owner: Neutral
Actor89: tc05
Location: 29,71
Owner: Neutral
Actor90: tc04
Location: 28,70
Owner: Neutral
Actor91: tc05
Location: 28,87
Owner: Neutral
Actor92: t17
Location: 28,88
Owner: Neutral
Actor93: tc01
Location: 31,88
Owner: Neutral
Actor94: t01
Location: 52,86
Owner: Neutral
Actor95: t02
Location: 59,83
Owner: Neutral
Actor96: tc04
Location: 43,73
Owner: Neutral
Actor97: tc05
Location: 48,88
Owner: Neutral
Actor98: tc04
Location: 33,74
Owner: Neutral
Actor99: t01
Location: 53,36
Owner: Neutral
Actor100: t02
Location: 53,37
Owner: Neutral
Actor101: t03
Location: 54,36
Owner: Neutral
Actor102: t05
Location: 55,36
Owner: Neutral
Actor103: tc01
Location: 55,37
Owner: Neutral
Actor104: t06
Location: 54,37
Owner: Neutral
Actor105: tc01
Location: 34,69
Owner: Neutral
Actor106: tc03
Location: 37,64
Owner: Neutral
Actor107: tc05
Location: 89,49
Owner: Neutral
Actor108: tc03
Location: 73,62
Owner: Neutral
Actor109: tc04
Location: 85,35
Owner: Neutral
Actor110: tc01
Location: 90,35
Owner: Neutral
Actor111: t17
Location: 77,79
Owner: Neutral
Actor112: t17
Location: 28,72
Owner: Neutral
Actor113: tc02
Location: 33,56
Owner: Neutral
Actor114: t01
Location: 57,59
Owner: Neutral
Actor115: mine
Location: 95,38
Owner: Neutral
Actor116: t02
Location: 92,64
Owner: Neutral
Chronosphere: pdox
Location: 67,44
Owner: Greece
AAGun1: agun
Location: 64,45
Owner: Greece
Facing: 95
AAGun2: agun
Location: 71,45
Owner: Greece
Facing: 159
Gap1: gap
Location: 66,44
Owner: Greece
Gap2: gap
Location: 69,44
Owner: Greece
Apwr1: apwr
Location: 85,38
Owner: Greece
Apwr2: apwr
Location: 82,42
Owner: Greece
Apwr3: apwr
Location: 85,41
Owner: Greece
Apwr4: apwr
Location: 79,41
Owner: Greece
Apwr5: apwr
Location: 82,39
Owner: Greece
ServiceDepot: fix
Location: 76,44
Owner: Greece
AlliedTechCenter: atek
Location: 73,43
Owner: Greece
OreRef: proc
Location: 60,43
Owner: Greece
Gun1: gun
Location: 51,48
Owner: Greece
Facing: 63
Gun2: gun
Location: 74,56
Owner: Greece
Facing: 95
Gun3: gun
Location: 70,56
Owner: Greece
Facing: 95
Gun4: gun
Location: 51,52
Owner: Greece
Facing: 63
Dome: dome
Location: 75,41
Owner: Greece
Actor135: fact
Location: 33,82
Owner: USSR
Actor136: powr
Location: 35,87
Owner: USSR
Actor137: powr
Location: 33,87
Owner: USSR
Actor138: silo
Location: 31,86
Owner: USSR
Actor139: silo
Location: 29,86
Owner: USSR
USSRWarFactory: weap
Location: 41,81
Owner: USSR
Actor141: apwr
Location: 30,76
Owner: USSR
Actor142: apwr
Location: 28,79
Owner: USSR
Actor143: apwr
Location: 37,87
Owner: USSR
Actor144: apwr
Location: 40,87
Owner: USSR
USSRRax: barr
Location: 39,77
Owner: USSR
Airfield1: afld.ukraine
Owner: USSR
Location: 37,81
Airfield2: afld
Owner: USSR
Location: 34,78
Actor226: stek
Owner: USSR
Location: 36,84
Actor146: tsla
Location: 43,80
Owner: USSR
Actor147: ftur
Location: 40,75
Owner: USSR
Actor148: ftur
Location: 46,83
Owner: USSR
Actor149: silo
Location: 30,85
Owner: USSR
Actor150: miss
Location: 100,64
Owner: England
Health: 8
Actor151: v04
Location: 96,63
Owner: England
Actor152: v03
Location: 104,56
Owner: England
Actor153: v02
Location: 100,58
Owner: England
Actor154: v01
Location: 105,51
Owner: England
Actor155: v02
Location: 103,69
Owner: England
Actor156: harv
Location: 60,47
Owner: Greece
Facing: 95
Actor157: 3tnk
Location: 68,81
Owner: USSR
Facing: 159
Actor158: 3tnk
Location: 66,82
Owner: USSR
Facing: 159
Actor159: 3tnk
Location: 64,83
Owner: USSR
Facing: 159
Actor160: 3tnk
Location: 65,80
Owner: USSR
Facing: 159
Actor161: 3tnk
Location: 63,81
Owner: USSR
Facing: 159
Actor162: v2rl
Location: 66,78
Owner: USSR
Facing: 159
Actor163: v2rl
Location: 61,81
Owner: USSR
Facing: 159
Actor164: 2tnk
Location: 100,86
Owner: Greece
Facing: 63
Actor165: 2tnk
Location: 98,86
Owner: Greece
Facing: 63
Actor166: 2tnk
Location: 98,88
Owner: Greece
Facing: 63
Actor167: 2tnk
Location: 99,87
Owner: Greece
Facing: 63
Actor168: 1tnk
Location: 96,85
Owner: Greece
Facing: 63
Actor169: 1tnk
Location: 96,87
Owner: Greece
Facing: 63
Actor170: jeep
Location: 94,87
Owner: Greece
Facing: 63
Actor171: arty
Location: 101,87
Owner: Greece
Facing: 31
Actor172: arty
Location: 100,88
Owner: Greece
Facing: 31
Actor173: mnly
Location: 99,89
Owner: Greece
Facing: 31
Actor174: mnly
Location: 102,86
Owner: Greece
Facing: 31
Actor175: 3tnk
Location: 47,82
Owner: USSR
Facing: 191
Actor176: 3tnk
Location: 47,85
Owner: USSR
Facing: 191
Actor177: v2rl
Location: 36,82
Owner: USSR
Actor178: 3tnk
Location: 38,74
Owner: USSR
Facing: 223
Actor179: 3tnk
Location: 41,74
Owner: USSR
Facing: 31
Actor180: e1
Location: 67,47
Owner: Greece
Facing: 127
SubCell: 1
Actor181: e1
Location: 68,47
Owner: Greece
Facing: 127
SubCell: 2
Actor182: e1
Location: 70,48
Owner: Greece
Facing: 127
SubCell: 1
Actor183: e1
Location: 67,48
Owner: Greece
Facing: 127
SubCell: 2
Actor184: e1
Location: 64,47
Owner: Greece
Facing: 95
SubCell: 4
Actor185: e1
Location: 71,47
Owner: Greece
Facing: 159
SubCell: 3
Actor186: e1
Location: 71,47
Owner: Greece
Facing: 191
SubCell: 2
Actor187: e1
Location: 64,47
Owner: Greece
Facing: 63
SubCell: 1
Actor188: e1
Location: 68,48
Owner: Greece
Facing: 127
SubCell: 1
Actor189: e1
Location: 65,48
Owner: Greece
Facing: 127
SubCell: 2
Actor190: e1
Location: 70,53
Owner: Greece
Facing: 159
SubCell: 4
Actor191: e1
Location: 73,53
Owner: Greece
Facing: 95
SubCell: 4
Actor192: e1
Location: 40,79
Owner: USSR
Facing: 159
SubCell: 0
Actor193: e1
Location: 39,79
Owner: USSR
Facing: 95
SubCell: 3
Actor194: e2
Location: 46,81
Owner: USSR
SubCell: 0
Actor195: e2
Location: 45,85
Owner: USSR
Facing: 159
SubCell: 4
Actor196: e2
Location: 40,85
Owner: USSR
Facing: 159
SubCell: 4
Actor197: c1
Location: 97,66
Owner: England
Facing: 95
SubCell: 3
Actor198: c2
Location: 102,56
Owner: England
SubCell: 4
Actor199: c1
Location: 106,53
Owner: England
Facing: 95
SubCell: 4
Actor200: c3
Location: 102,60
Owner: England
SubCell: 1
Actor201: c4
Location: 102,67
Owner: England
Facing: 159
SubCell: 4
Actor202: c4
Location: 90,64
Owner: England
SubCell: 4
Actor203: c5
Location: 104,51
Owner: England
Facing: 127
SubCell: 3
Actor204: c6
Location: 98,67
Owner: England
Facing: 95
SubCell: 1
Actor205: c8
Location: 104,68
Owner: England
Facing: 159
SubCell: 3
MCVEntry: waypoint
Location: 102,89
Owner: Neutral
MCVStop: waypoint
Location: 100,87
Owner: Neutral
DDStop: waypoint
Location: 98,78
Owner: Neutral
waypoint5: waypoint
Location: 83,39
Owner: Neutral
waypoint6: waypoint
Location: 83,42
Owner: Neutral
ParaLZ1: waypoint
Owner: Neutral
Location: 33,46
ParaLZ2: waypoint
Location: 42,52
Owner: Neutral
ParaLZ3: waypoint
Owner: Neutral
Location: 54,50
ParaLZ4: waypoint
Location: 64,64
Owner: Neutral
ParaLZ5: waypoint
Owner: Neutral
Location: 90,43
SovEntry2: waypoint
Location: 28,83
Owner: Neutral
waypoint9: waypoint
Location: 34,83
Owner: Neutral
DDEntry: waypoint
Location: 107,78
Owner: Neutral
WaterEntry2: waypoint
Location: 107,45
Owner: Neutral
SovEntry3: waypoint
Location: 45,89
Owner: Neutral
WaterLanding1: waypoint
Location: 71,78
Owner: Neutral
WaterLanding2: waypoint
Location: 84,55
Owner: Neutral
SovEntry1: waypoint
Location: 28,65
Owner: Neutral
DefaultCameraPosition: waypoint
Location: 98,87
Owner: Neutral
ScientistsExit: waypoint
Owner: Neutral
Location: 101,65
AttackChrono: waypoint
Owner: Neutral
Location: 68,47
ChronoshiftLocation: waypoint
Owner: Neutral
Location: 72,60
Rules: ra|rules/campaign-rules.yaml, ra|rules/campaign-tooltips.yaml, ra|rules/campaign-palettes.yaml, rules.yaml

View File

@@ -0,0 +1,115 @@
Player:
PlayerResources:
DefaultCash: 15000
World:
LuaScript:
Scripts: allies08b.lua, allies08b-AI.lua
MissionData:
Briefing: Our latest technology, the Chronosphere, is housed in this research station. The timer represents the appointed time for the completion of a vital experiment. The Soviets have learned of this and are moving in. \n\nProtect the Chronosphere and the Advanced-Tech research center. Make sure the base is fully powered at the appointed time. If not, all will be lost!
BriefingVideo: ally8.vqa
WinVideo: crontest.vqa
LossVideo: cronfail.vqa
StartVideo: aagun.vqa
ScriptLobbyDropdown@difficulty:
ID: difficulty
Label: Difficulty
Values:
easy: Easy
normal: Normal
hard: Hard
Default: easy
powerproxy.paratroopers:
ParatroopersPower:
DropItems: E1,E1,E1,E2,E2
MCV:
Buildable:
Prerequisites: ~disabled
TRUK:
Buildable:
Prerequisites: ~disabled
FTRK:
Buildable:
Prerequisites: ~disabled
APC:
Buildable:
Prerequisites: ~disabled
MRJ:
Buildable:
Prerequisites: ~disabled
3TNK:
Buildable:
Prerequisites: ~vehicles.soviet
V2RL:
Buildable:
Prerequisites: ~vehicles.soviet
4TNK:
Buildable:
Prerequisites: ~vehicles.soviet
QTNK:
Buildable:
Prerequisites: ~disabled
HPAD:
Buildable:
Prerequisites: ~disabled
AFLD.Ukraine:
-AirstrikePower@spyplane:
ATEK:
Buildable:
Prerequisites: ~disabled
GpsPower:
ChargeInterval: 15000
-Sellable:
PDOX:
Inherits@IDISABLE: ^DisableOnLowPower
Buildable:
Prerequisites: ~disabled
ChronoshiftPower@chronoshift:
Prerequisites: ~disabled
-Sellable:
IRON:
Buildable:
Prerequisites: ~disabled
MSLO:
Buildable:
Prerequisites: ~disabled
MECH:
Buildable:
Prerequisites: ~disabled
HIJACKER:
Buildable:
Prerequisites: ~disabled
E7:
Buildable:
Prerequisites: ~disabled
E7.noautotarget:
Buildable:
Prerequisites: ~disabled
CA:
Buildable:
Prerequisites: ~disabled
MSUB:
Buildable:
Prerequisites: ~disabled

View File

@@ -9,6 +9,7 @@ Allied Campaign:
./mods/ra/maps/allies-06b
./mods/ra/maps/allies-07
./mods/ra/maps/allies-08a
./mods/ra/maps/allies-08b
Soviet Campaign:
./mods/ra/maps/soviet-01
./mods/ra/maps/soviet-02a