Added Allies-06b to the Red Alert mod

This commit is contained in:
abc013
2017-09-24 19:29:59 +02:00
committed by reaperrr
parent 1aa57cd5b1
commit 38c4c10c73
8 changed files with 1464 additions and 0 deletions

View File

@@ -66,6 +66,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Red Alert Lua scripts", "Re
mods\ra\maps\allies-05a\allies05a.lua = mods\ra\maps\allies-05a\allies05a.lua
mods\ra\maps\allies-06a\allies06a-AI.lua = mods\ra\maps\allies-06a\allies06a-AI.lua
mods\ra\maps\allies-06a\allies06a.lua = mods\ra\maps\allies-06a\allies06a.lua
mods\ra\maps\allies-06b\allies06b.lua = mods\ra\maps\allies-06b\allies06b.lua
mods\ra\maps\allies-06b\allies06b-AI.lua = mods\ra\maps\allies-06b\allies06b-AI.lua
mods\ra\maps\desert-shellmap\desert-shellmap.lua = mods\ra\maps\desert-shellmap\desert-shellmap.lua
mods\ra\maps\evacuation\evacuation.lua = mods\ra\maps\evacuation\evacuation.lua
mods\ra\maps\exodus\exodus.lua = mods\ra\maps\exodus\exodus.lua

View File

@@ -0,0 +1,248 @@
--[[
Copyright 2007-2017 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.
]]
WTransWays =
{
{ WaterUnloadEntry1.Location, WaterUnload1.Location },
{ WaterUnloadEntry2.Location, WaterUnload2.Location },
{ WaterUnloadEntry3.Location, WaterUnload3.Location }
}
WTransUnits =
{
hard = { { "3tnk", "3tnk", "3tnk", "v2rl", "v2rl" }, { "v2rl", "v2rl", "e4", "e4", "3tnk" } },
normal = { { "e1", "e1", "3tnk", "3tnk", "v2rl" }, { "e4", "e4", "e4", "e4", "v2rl" } },
easy = { { "e1", "e1", "e1", "e2", "e2" }, { "e2", "e2", "3tnk" } }
}
WTransDelays =
{
easy = 4,
normal = 3,
hard = 1
}
BuildDelays =
{
easy = 90,
normal = 60,
hard = 30
}
WaterAttacks =
{
easy = 1,
normal = 2,
hard = 3
}
WaterAttackTypes =
{
easy = { "ss" },
normal = { "ss", "ss" },
hard = { "ss", "ss", "ss" }
}
VehicleTypes = { "v2rl", "3tnk", "3tnk", "3tnk", "3tnk", "harv" }
InfTypes =
{
{ "e1", "e1", "e1", "e1", "e1"},
{ "e2", "e2", "e1", "e1", "e1"},
{ "e4", "e4", "e4", "e1", "e1"}
}
AttackRallyPoints =
{
{ SovietSideAttack1.Location, SovietBaseAttack.Location },
{ SovietBaseAttack.Location },
{ SovietSideAttack2.Location, SovietBaseAttack.Location }
}
ImportantBuildings = { WarFactory, Airfield1, Airfield2, Radar2, Refinery, SovietConyard }
SovietAircraftType = { "yak" }
Yaks = { }
IdlingUnits = { }
IdlingTanks = { tank1, tank2, tank3, tank4, tank5, tank6, tank7 }
IdlingNavalUnits = { }
InitialiseAttack = function()
Utils.Do(ImportantBuildings, function(a)
Trigger.OnDamaged(a, function()
Utils.Do(IdlingTanks, function(unit)
if not unit.IsDead then
IdleHunt(unit)
end
end)
end)
Trigger.OnCapture(a, function()
Utils.Do(IdlingTanks, function(unit)
if not unit.IsDead then
IdleHunt(unit)
end
end)
end)
end)
end
Attack = 0
ProduceInfantry = function()
if SovietBarracks.IsDead or SovietBarracks.Owner ~= ussr then
return
end
Attack = Attack + 1
local toBuild = Utils.Random(InfTypes)
ussr.Build(toBuild, function(units)
if Attack == 2 and not AttackTank1.IsDead then
units[#units + 1] = AttackTank1
elseif Attack == 4 and not AttackTank2.IsDead then
units[#units + 1] = AttackTank2
end
SendAttack(units, Utils.Random(AttackRallyPoints))
Trigger.AfterDelay(DateTime.Seconds(BuildDelays), ProduceInfantry)
end)
end
ProduceVehicles = function()
if WarFactory.IsDead or WarFactory.Owner ~= ussr then
return
end
ussr.Build(VehicleTypes, function(units)
Utils.Do(units, function(unit)
if unit.Type ~= "harv" then
IdlingTanks[#IdlingTanks + 1] = unit
end
end)
end)
end
ProduceNaval = function()
if SubPen.IsDead or SubPen.Owner ~= ussr then
return
end
if not shouldProduce and #Utils.Where(Map.ActorsInWorld, function(self) return self.Owner == player and self.Type == "syrd" end) < 1 then
Trigger.AfterDelay(DateTime.Minutes(1), ProduceNaval)
return
end
shouldProduce = true
ussr.Build(WaterAttackTypes, function(units)
Utils.Do(units, function(unit)
IdlingNavalUnits[#IdlingNavalUnits + 1] = unit
end)
Trigger.AfterDelay(DateTime.Minutes(1) + DateTime.Seconds(40), ProduceNaval)
if #IdlingNavalUnits >= WaterAttacks then
Trigger.AfterDelay(DateTime.Seconds(20), function()
SendAttack(SetupNavalAttackGroup(), { SubPatrol1_2.Location })
end)
end
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 yak = units[1]
Yaks[#Yaks + 1] = yak
Trigger.OnKilled(yak, ProduceAircraft)
local alive = Utils.Where(Yaks, function(y) return not y.IsDead end)
if #alive < 2 then
Trigger.AfterDelay(DateTime.Seconds(BuildDelays / 2), ProduceAircraft)
end
TargetAndAttack(yak)
end)
end
TargetAndAttack = function(yak, target)
if not target or target.IsDead or (not target.IsInWorld) then
local enemies = Utils.Where(Map.ActorsInWorld, function(self) return self.Owner == player and self.HasProperty("Health") and yak.CanTarget(self) end)
if #enemies > 0 then
target = Utils.Random(enemies)
end
end
if target and yak.AmmoCount() > 0 and yak.CanTarget(target) then
yak.Attack(target)
else
yak.ReturnToBase()
end
yak.CallFunc(function()
TargetAndAttack(yak, target)
end)
end
IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end
SendAttack = function(units, path)
Utils.Do(units, function(unit)
unit.Patrol(path, false)
IdleHunt(unit)
end)
end
SetupNavalAttackGroup = function()
local units = { }
for i = 0, 3 do
if #IdlingNavalUnits == 0 then
return units
end
local number = Utils.RandomInteger(1, #IdlingNavalUnits + 1)
if IdlingNavalUnits[number] and not IdlingNavalUnits[number].IsDead then
units[i] = IdlingNavalUnits[number]
table.remove(IdlingNavalUnits, number)
end
end
return units
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(SovietBaseAttack.Location)
IdleHunt(a)
end)
end)
Trigger.AfterDelay(DateTime.Minutes(WTransDelays), WTransWaves)
end
ActivateAI = function()
local difficulty = Map.LobbyOption("difficulty")
WaterAttackTypes = WaterAttackTypes[difficulty]
WaterAttacks = WaterAttacks[difficulty]
WTransUnits = WTransUnits[difficulty]
WTransDelays = WTransDelays[difficulty]
BuildDelays = BuildDelays[difficulty]
InitialiseAttack()
Trigger.AfterDelay(DateTime.Seconds(40), ProduceInfantry)
Trigger.AfterDelay(DateTime.Minutes(1) + DateTime.Seconds(10), ProduceAircraft)
Trigger.AfterDelay(DateTime.Minutes(2) + DateTime.Seconds(10), ProduceVehicles)
WarFactory.RallyPoint = WeaponMeetPoint.Location
Trigger.AfterDelay(DateTime.Minutes(4) + DateTime.Seconds(10), ProduceNaval)
Trigger.AfterDelay(DateTime.Minutes(WTransDelays + 1) + DateTime.Seconds(30), WTransWaves)
end

View File

@@ -0,0 +1,269 @@
--[[
Copyright 2007-2017 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.
]]
AlliedReinforcementsA = { "e1", "e1", "e1", "e1", "e1" }
AlliedReinforcementsB = { "e1", "e1", "e3", "e3", "e3" }
AlliedBoatReinforcements = { "pt", "pt" }
BadGuys = { BadGuy1, BadGuy2, BadGuy3, BadGuy4 }
SovietDogPatrols =
{
{ Patrol_1_e1, Patrol_1_dog },
{ Patrol_2_e1, Patrol_2_dog },
{ Patrol_3_e1, Patrol_3_dog },
{ Patrol_4_e1, Patrol_4_dog }
}
SovietDogPatrolPaths =
{
{ Patrol6.Location, Patrol7.Location, Patrol8.Location, Patrol1.Location, Patrol2.Location, Patrol3.Location, Patrol4.Location, Patrol5.Location },
{ Patrol8.Location, Patrol1.Location, Patrol2.Location, Patrol3.Location, Patrol4.Location, Patrol5.Location, Patrol6.Location, Patrol7.Location },
{ Patrol1.Location, Patrol2.Location, Patrol3.Location, Patrol4.Location, Patrol5.Location, Patrol6.Location, Patrol7.Location, Patrol8.Location },
{ Patrol2.Location, Patrol3.Location, Patrol4.Location, Patrol5.Location, Patrol6.Location, Patrol7.Location, Patrol8.Location, Patrol1.Location }
}
Mammoths = { Mammoth1, Mammoth2, Mammoth3 }
SovietMammothPaths =
{
{ TnkPatrol1.Location, TnkPatrol2.Location,TnkPatrol3.Location, TnkPatrol4.Location, TnkPatrol5.Location, TnkPatrol6.Location },
{ TnkPatrol5.Location, TnkPatrol6.Location, TnkPatrol1.Location, TnkPatrol2.Location, TnkPatrol3.Location, TnkPatrol4.Location },
{ TnkPatrol6.Location, TnkPatrol1.Location, TnkPatrol2.Location, TnkPatrol3.Location, TnkPatrol4.Location, TnkPatrol5.Location }
}
SubPaths = {
{ SubPatrol1_1.Location, SubPatrol1_2.Location },
{ SubPatrol2_1.Location, SubPatrol2_2.Location },
{ SubPatrol3_1.Location, SubPatrol3_2.Location },
{ SubPatrol4_1.Location, SubPatrol4_2.Location },
{ SubPatrol5_1.Location, SubPatrol5_2.Location }
}
ParadropWaypoints =
{
easy = { UnitBStopLocation },
normal = { UnitBStopLocation, UnitAStopLocation },
hard = { UnitBStopLocation, UnitCStopLocation, UnitAStopLocation }
}
SovietTechLabs = { TechLab1, TechLab2 }
TechLabCams = { TechCam1, TechCam2 }
GroupPatrol = function(units, waypoints, delay)
local i = 1
local stop = false
Utils.Do(units, function(unit)
Trigger.OnIdle(unit, function()
if stop then
return
end
if unit.Location == waypoints[i] then
local bool = Utils.All(units, function(actor) return actor.IsIdle end)
if bool then
stop = true
i = i + 1
if i > #waypoints then
i = 1
end
Trigger.AfterDelay(delay, function() stop = false end)
end
else
unit.AttackMove(waypoints[i])
end
end)
end)
end
InitialSovietPatrols = function()
-- Dog Patrols
BeachDog.Patrol({ BeachPatrol1.Location, BeachPatrol2.Location, BeachPatrol3.Location })
for i = 1, 4 do
GroupPatrol(SovietDogPatrols[i], SovietDogPatrolPaths[i], DateTime.Seconds(5))
end
-- Mammoth Patrols
for i = 1, 3 do
Trigger.AfterDelay(DateTime.Seconds(6 * (i - 1)), function()
Trigger.OnIdle(Mammoths[i], function()
Mammoths[i].Patrol(SovietMammothPaths[i])
end)
end)
end
-- Sub Patrols
Patrol1Sub.Patrol(SubPaths[1])
Patrol2Sub.Patrol(SubPaths[2])
Patrol3Sub.Patrol(SubPaths[3])
Patrol4Sub.Patrol(SubPaths[4])
Patrol5Sub.Patrol(SubPaths[5])
end
InitialAlliedReinforcements = function()
local camera = Actor.Create("Camera", true, { Owner = player, Location = DefaultCameraPosition.Location })
Trigger.AfterDelay(DateTime.Seconds(30), camera.Destroy)
Trigger.AfterDelay(DateTime.Seconds(1), function()
Reinforcements.Reinforce(player, AlliedReinforcementsA, { AlliedEntry3.Location, UnitCStopLocation.Location }, 2)
Reinforcements.Reinforce(player, AlliedReinforcementsB, { AlliedEntry2.Location, UnitAStopLocation.Location }, 2)
end)
Trigger.AfterDelay(DateTime.Seconds(3), function()
Reinforcements.Reinforce(player, { "mcv" }, { AlliedEntry1.Location, UnitBStopLocation.Location })
Reinforcements.Reinforce(player, AlliedBoatReinforcements, { AlliedBoatEntry.Location, AlliedBoatStop.Location })
end)
end
CaptureRadarDome = function()
Trigger.OnKilled(Radar, function()
player.MarkFailedObjective(CaptureRadarDomeObj)
end)
Trigger.OnCapture(Radar, function()
player.MarkCompletedObjective(CaptureRadarDomeObj)
Beacon.New(player, TechLab1.CenterPosition)
Beacon.New(player, TechLab2.CenterPosition)
Media.DisplayMessage("Coordinates of the Soviet tech centers discovered.")
if Map.LobbyOption("difficulty") ~= "hard" then
Utils.Do(TechLabCams, function(a)
Actor.Create("TECH.CAM", true, { Owner = player, Location = a.Location })
end)
if Map.LobbyOption("difficulty") == "easy" then
Actor.Create("Camera", true, { Owner = player, Location = Weapcam.Location })
end
end
end)
end
InfiltrateTechCenter = function()
Utils.Do(SovietTechLabs, function(a)
Trigger.OnInfiltrated(a, function()
if infiltrated then
return
end
infiltrated = true
DestroySovietsObj = player.AddPrimaryObjective("Destroy all Soviet buildings and units in the area.")
player.MarkCompletedObjective(InfiltrateTechCenterObj)
end)
Trigger.OnCapture(a, function()
if not infiltrated then
Media.DisplayMessage("Do not capture the tech centers! Infiltrate one with a spy.")
end
end)
end)
Trigger.OnAllKilledOrCaptured(SovietTechLabs, function()
if not player.IsObjectiveCompleted(InfiltrateTechCenterObj) then
player.MarkFailedObjective(InfiltrateTechCenterObj)
end
end)
end
InfiltrateRef = function()
Trigger.OnInfiltrated(Refinery, function()
player.MarkCompletedObjective(InfiltrateRefObj)
end)
Trigger.OnCapture(Refinery, function()
player.MarkCompletedObjective(InfiltrateRefObj)
end)
Trigger.OnKilled(Refinery, function()
if not player.IsObjectiveCompleted(InfiltrateRefObj) then
player.MarkFailedObjective(InfiltrateRefObj)
end
end)
end
Tick = function()
if player.HasNoRequiredUnits() then
player.MarkFailedObjective(InfiltrateTechCenterObj)
end
if DestroySovietsObj and ussr.HasNoRequiredUnits() then
player.MarkCompletedObjective(DestroySovietsObj)
end
end
WorldLoaded = function()
player = Player.GetPlayer("Greece")
ussr = Player.GetPlayer("USSR")
Trigger.OnObjectiveAdded(player, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective")
end)
Trigger.OnObjectiveCompleted(player, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed")
end)
Trigger.OnObjectiveFailed(player, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed")
end)
Trigger.OnPlayerLost(player, function()
Media.PlaySpeechNotification(player, "MissionFailed")
end)
Trigger.OnPlayerWon(player, function()
Media.PlaySpeechNotification(player, "MissionAccomplished")
end)
InfiltrateTechCenterObj = player.AddPrimaryObjective("Infiltrate one of the Soviet tech centers with a spy.")
CaptureRadarDomeObj = player.AddSecondaryObjective("Capture the Radar Dome at the shore.")
InfiltrateRefObj = player.AddSecondaryObjective("Infiltrate the Refinery for money.")
Camera.Position = DefaultCameraPosition.CenterPosition
if Map.LobbyOption("difficulty") ~= "hard" then
Trigger.OnEnteredProximityTrigger(SovietDefenseCam.CenterPosition, WDist.New(1024 * 7), function(a, id)
if a.Owner == player then
Trigger.RemoveProximityTrigger(id)
local cam1 = Actor.Create("TECH.CAM", true, { Owner = player, Location = SovietDefenseCam.Location })
Trigger.AfterDelay(DateTime.Seconds(15), cam1.Destroy)
if not DefenseFlame1.IsDead then
local cam2 = Actor.Create("TECH.CAM", true, { Owner = player, Location = DefenseFlame1.Location })
Trigger.AfterDelay(DateTime.Seconds(15), cam2.Destroy)
end
if not DefenseFlame2.IsDead then
local cam3 = Actor.Create("TECH.CAM", true, { Owner = player, Location = DefenseFlame2.Location })
Trigger.AfterDelay(DateTime.Seconds(15), cam3.Destroy)
end
end
end)
if Map.LobbyOption("difficulty") == "easy" then
Trigger.OnKilled(DefBrl1, function(a, b)
DefenseFlame1.Kill()
end)
Trigger.OnKilled(DefBrl2, function(a, b)
DefenseFlame2.Kill()
end)
end
end
Utils.Do(BadGuys, function(a)
a.AttackMove(UnitCStopLocation.Location)
end)
InitialAlliedReinforcements()
Trigger.AfterDelay(DateTime.Seconds(1), function()
InitialSovietPatrols()
end)
Trigger.OnEnteredProximityTrigger(SovietMiniBaseCam.CenterPosition, WDist.New(1024 * 14), function(a, id)
if a.Owner == player then
Trigger.RemoveProximityTrigger(id)
local cam = Actor.Create("Camera", true, { Owner = player, Location = SovietMiniBaseCam.Location })
Trigger.AfterDelay(DateTime.Seconds(15), cam.Destroy)
end
end)
CaptureRadarDome()
InfiltrateTechCenter()
InfiltrateRef()
Trigger.AfterDelay(0, ActivateAI)
end

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,851 @@
MapFormat: 11
RequiresMod: ra
Title: 06b: Cripple Iron Curtain research
Author: Westwood Studios
Tileset: SNOW
MapSize: 128,128
Bounds: 20,34,83,78
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
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:
Actor245: sbag
Owner: Neutral
Location: 69,83
Actor0: sbag
Location: 69,80
Owner: Neutral
Actor1: sbag
Location: 70,80
Owner: Neutral
Actor2: sbag
Location: 71,80
Owner: Neutral
Actor3: sbag
Location: 72,80
Owner: Neutral
Actor4: sbag
Location: 73,80
Owner: Neutral
Actor5: sbag
Location: 74,80
Owner: Neutral
Actor6: sbag
Location: 75,80
Owner: Neutral
Actor7: sbag
Location: 76,80
Owner: Neutral
Actor8: sbag
Location: 77,80
Owner: Neutral
Actor9: sbag
Location: 69,81
Owner: Neutral
Actor10: sbag
Location: 75,81
Owner: Neutral
Actor11: sbag
Location: 77,81
Owner: Neutral
Actor12: sbag
Location: 69,82
Owner: Neutral
Actor13: sbag
Location: 75,82
Owner: Neutral
Actor14: sbag
Location: 76,82
Owner: Neutral
Actor15: sbag
Location: 77,82
Owner: Neutral
Actor17: sbag
Location: 69,84
Owner: Neutral
Actor18: sbag
Location: 85,84
Owner: Neutral
Actor19: sbag
Location: 86,84
Owner: Neutral
Actor20: sbag
Location: 87,84
Owner: Neutral
Actor21: sbag
Location: 85,85
Owner: Neutral
Actor22: sbag
Location: 87,85
Owner: Neutral
Actor23: sbag
Location: 85,86
Owner: Neutral
Actor24: sbag
Location: 86,86
Owner: Neutral
Actor25: sbag
Location: 87,86
Owner: Neutral
Actor26: sbag
Location: 87,87
Owner: Neutral
Actor27: sbag
Location: 87,88
Owner: Neutral
Actor28: sbag
Location: 87,89
Owner: Neutral
Actor29: sbag
Location: 69,90
Owner: Neutral
Actor30: sbag
Location: 87,90
Owner: Neutral
Actor31: sbag
Location: 69,91
Owner: Neutral
Actor32: sbag
Location: 87,91
Owner: Neutral
Actor33: sbag
Location: 69,92
Owner: Neutral
Actor34: sbag
Location: 74,92
Owner: Neutral
Actor35: sbag
Location: 75,92
Owner: Neutral
Actor36: sbag
Location: 76,92
Owner: Neutral
Actor37: sbag
Location: 81,92
Owner: Neutral
Actor38: sbag
Location: 82,92
Owner: Neutral
Actor39: sbag
Location: 83,92
Owner: Neutral
Actor40: sbag
Location: 87,92
Owner: Neutral
Actor41: sbag
Location: 69,93
Owner: Neutral
Actor42: sbag
Location: 74,93
Owner: Neutral
Actor43: sbag
Location: 76,93
Owner: Neutral
Actor44: sbag
Location: 81,93
Owner: Neutral
Actor45: sbag
Location: 83,93
Owner: Neutral
Actor46: sbag
Location: 87,93
Owner: Neutral
Actor47: sbag
Location: 69,94
Owner: Neutral
Actor48: sbag
Location: 70,94
Owner: Neutral
Actor49: sbag
Location: 71,94
Owner: Neutral
Actor50: sbag
Location: 72,94
Owner: Neutral
Actor51: sbag
Location: 73,94
Owner: Neutral
Actor52: sbag
Location: 74,94
Owner: Neutral
Actor53: sbag
Location: 75,94
Owner: Neutral
Actor54: sbag
Location: 76,94
Owner: Neutral
Actor55: sbag
Location: 81,94
Owner: Neutral
Actor56: sbag
Location: 82,94
Owner: Neutral
Actor57: sbag
Location: 83,94
Owner: Neutral
Actor58: sbag
Location: 84,94
Owner: Neutral
Actor59: sbag
Location: 85,94
Owner: Neutral
Actor60: sbag
Location: 86,94
Owner: Neutral
Actor61: sbag
Location: 87,94
Owner: Neutral
Actor62: tc05
Location: 54,109
Owner: Neutral
Actor63: tc02
Location: 46,103
Owner: Neutral
Actor64: t08
Location: 43,103
Owner: Neutral
Actor65: t08
Location: 46,109
Owner: Neutral
Actor66: t01
Location: 52,102
Owner: Neutral
Actor67: t11
Location: 72,94
Owner: Neutral
Actor68: tc05
Location: 89,89
Owner: Neutral
Actor69: tc04
Location: 84,95
Owner: Neutral
Actor70: tc03
Location: 78,97
Owner: Neutral
Actor71: tc01
Location: 73,97
Owner: Neutral
Actor72: t17
Location: 76,95
Owner: Neutral
Actor73: t16
Location: 77,102
Owner: Neutral
Actor74: tc02
Location: 76,40
Owner: Neutral
Actor75: tc05
Location: 72,47
Owner: Neutral
Actor76: tc04
Location: 72,45
Owner: Neutral
Actor77: t08
Location: 75,49
Owner: Neutral
Actor78: t08
Location: 75,40
Owner: Neutral
Actor79: tc02
Location: 39,34
Owner: Neutral
Actor80: t08
Location: 38,36
Owner: Neutral
Actor81: tc05
Location: 93,43
Owner: Neutral
Actor82: tc03
Location: 93,42
Owner: Neutral
Actor83: tc01
Location: 91,45
Owner: Neutral
Actor84: t08
Location: 93,45
Owner: Neutral
Actor85: tc02
Location: 42,38
Owner: Neutral
Actor86: tc04
Location: 42,41
Owner: Neutral
Actor87: tc05
Location: 46,39
Owner: Neutral
Actor88: t17
Location: 46,42
Owner: Neutral
Actor89: tc01
Location: 51,104
Owner: Neutral
Actor90: t17
Location: 47,106
Owner: Neutral
Actor91: t16
Location: 53,107
Owner: Neutral
Actor92: t08
Location: 50,109
Owner: Neutral
Actor93: t08
Location: 51,106
Owner: Neutral
Actor94: t08
Location: 87,95
Owner: Neutral
Actor95: tc04
Location: 88,93
Owner: Neutral
Actor96: tc05
Location: 88,95
Owner: Neutral
Actor97: t01
Location: 36,110
Owner: Neutral
Actor98: t07
Location: 38,110
Owner: Neutral
Actor99: t07
Location: 34,100
Owner: Neutral
Actor100: t08
Location: 33,105
Owner: Neutral
Actor101: mine
Location: 42,108
Owner: Neutral
Actor102: mine
Location: 77,105
Owner: Neutral
Actor103: mine
Location: 84,104
Owner: Neutral
Actor104: mine
Location: 31,108
Owner: Neutral
Actor106: ftur
Location: 69,89
Owner: USSR
Actor107: ftur
Location: 69,85
Owner: USSR
Actor108: powr
Location: 80,87
Owner: USSR
Actor109: powr
Location: 78,85
Owner: USSR
Actor114: ftur
Location: 57,45
Owner: USSR
Actor115: ftur
Location: 62,45
Owner: USSR
Actor118: silo
Location: 68,35
Owner: USSR
Actor119: silo
Location: 71,34
Owner: USSR
Actor120: silo
Location: 67,34
Owner: USSR
Actor121: silo
Location: 72,35
Owner: USSR
Actor124: apwr
Location: 81,46
Owner: USSR
Actor125: apwr
Location: 58,59
Owner: USSR
Actor126: apwr
Location: 75,46
Owner: USSR
Actor127: apwr
Location: 78,46
Owner: USSR
Actor128: apwr
Location: 50,59
Owner: USSR
Actor131: kenn
Location: 52,45
Owner: USSR
Actor132: kenn
Location: 75,41
Owner: USSR
Actor133: tsla
Location: 77,64
Owner: USSR
Actor134: tsla
Location: 33,44
Owner: USSR
Actor135: tsla
Location: 72,60
Owner: USSR
Actor136: kenn
Location: 72,50
Owner: USSR
Actor137: brl3
Location: 52,91
Owner: USSR
Actor138: barl
Location: 52,90
Owner: USSR
Actor139: brl3
Location: 47,90
Owner: USSR
Actor140: barl
Location: 46,91
Owner: USSR
Actor143: barl
Location: 52,92
Owner: USSR
Actor146: barl
Location: 46,90
Owner: USSR
Actor148: 3tnk
Location: 49,91
Owner: USSR
Facing: 127
Actor158: harv
Location: 78,37
Owner: USSR
Facing: 223
Actor161: v2rl
Location: 85,55
Owner: USSR
Facing: 63
Actor165: e1
Location: 75,93
Owner: USSR
SubCell: 3
Actor166: e1
Location: 82,93
Owner: USSR
SubCell: 3
Actor167: e1
Location: 86,85
Owner: USSR
SubCell: 2
Actor168: e1
Location: 76,81
Owner: USSR
SubCell: 1
Actor169: e2
Location: 75,93
Owner: USSR
SubCell: 2
Actor170: e2
Location: 82,93
Owner: USSR
SubCell: 2
Actor171: e2
Location: 86,85
Owner: USSR
SubCell: 3
Actor172: e2
Location: 76,81
Owner: USSR
SubCell: 3
Actor182: e1
Location: 54,105
Owner: Greece
SubCell: 1
Actor183: e1
Location: 53,106
Owner: Greece
Facing: 31
SubCell: 2
Actor184: e1
Location: 55,105
Owner: Greece
Facing: 223
SubCell: 4
Actor186: ss
Location: 67,62
Owner: USSR
Facing: 127
Actor236: mine
Owner: Neutral
Location: 88,35
Actor237: mine
Owner: Neutral
Location: 40,52
Actor238: mine
Owner: Neutral
Location: 28,36
Actor244: camera
Owner: USSR
Location: 49,107
SovietBaseAttack: waypoint
Owner: Neutral
Location: 49,87
SovietSideAttack1: waypoint
Owner: Neutral
Location: 66,93
SovietSideAttack2: waypoint
Owner: Neutral
Location: 66,82
AttackTank1: 3tnk
Location: 71,87
Owner: USSR
Facing: 63
AttackTank2: 3tnk
Location: 80,84
Owner: USSR
Facing: 95
AlliedEntry1: waypoint
Location: 49,111
Owner: Neutral
AlliedEntry2: waypoint
Location: 46,111
Owner: Neutral
AlliedEntry3: waypoint
Location: 52,111
Owner: Neutral
AlliedBoatEntry: waypoint
Location: 60,111
Owner: Neutral
UnitAStopLocation: waypoint
Location: 49,108
Owner: Neutral
UnitBStopLocation: waypoint
Location: 47,108
Owner: Neutral
UnitCStopLocation: waypoint
Location: 51,108
Owner: Neutral
AlliedBoatStop: waypoint
Location: 60,108
Owner: Neutral
WaterUnload1: waypoint
Location: 79,109
Owner: Neutral
WaterUnload2: waypoint
Location: 26,107
Owner: Neutral
WaterUnload3: waypoint
Location: 83,82
Owner: Neutral
WaterUnloadEntry1: waypoint
Location: 102,108
Owner: Neutral
WaterUnloadEntry2: waypoint
Owner: Neutral
Location: 20,68
WaterUnloadEntry3: waypoint
Location: 102,53
Owner: Neutral
DefaultCameraPosition: waypoint
Location: 54,107
Owner: Neutral
SovietMiniBaseCam: waypoint
Location: 77,87
Owner: Neutral
SovietDefenseCam: waypoint
Owner: Neutral
Location: 49,91
TechCam1: waypoint
Owner: Neutral
Location: 55,58
TechCam2: waypoint
Owner: Neutral
Location: 91,43
Weapcam: waypoint
Owner: Neutral
Location: 53,47
TechLab1: stek
Location: 54,57
Owner: USSR
TechLab2: stek
Location: 90,42
Owner: USSR
Airfield1: afld
Location: 60,48
Owner: USSR
Airfield2: afld
Location: 58,41
Owner: USSR
WarFactory: weap
Location: 52,46
Owner: USSR
WeaponMeetPoint: waypoint
Owner: Neutral
Location: 65,46
SovietConyard: fact
Location: 70,54
Owner: USSR
Refinery: proc
Location: 68,35
Owner: USSR
Radar: dome
Location: 75,86
Owner: USSR
Radar2: dome
Location: 59,44
Owner: USSR
SovietBarracks: barr
Location: 73,83
Owner: USSR
SubPen: spen
Location: 72,62
Owner: USSR
BadGuy1: e1
Location: 48,95
Owner: USSR
Facing: 95
SubCell: 4
BadGuy2: e1
Location: 50,98
Owner: USSR
Facing: 95
SubCell: 1
BadGuy3: e1
Location: 50,96
Owner: USSR
Facing: 95
SubCell: 1
BadGuy4: e1
Location: 48,97
Owner: USSR
Facing: 95
SubCell: 4
Patrol1Sub: ss
Location: 96,58
Owner: USSR
Facing: 127
SubPatrol1_1: waypoint
Location: 96,58
Owner: Neutral
SubPatrol1_2: waypoint
Location: 86,77
Owner: Neutral
Patrol2Sub: ss
Location: 39,70
Owner: USSR
Facing: 95
SubPatrol2_1: waypoint
Location: 42,63
Owner: Neutral
SubPatrol2_2: waypoint
Location: 22,72
Owner: Neutral
Patrol3Sub: ss
Location: 22,64
Owner: USSR
Facing: 191
SubPatrol3_1: waypoint
Location: 41,75
Owner: Neutral
SubPatrol3_2: waypoint
Location: 22,64
Owner: Neutral
Patrol4Sub: ss
Location: 79,51
Owner: USSR
Facing: 191
SubPatrol4_1: waypoint
Location: 79,51
Owner: Neutral
SubPatrol4_2: waypoint
Location: 102,51
Owner: Neutral
Patrol5Sub: ss
Owner: USSR
Location: 94,75
Facing: 125
SubPatrol5_1: waypoint
Location: 94,94
Owner: Neutral
SubPatrol5_2: waypoint
Location: 94,75
Owner: Neutral
Mammoth1: 4tnk
Location: 69,43
Owner: USSR
Facing: 63
Mammoth2: 4tnk
Location: 43,40
Owner: USSR
Facing: 63
Mammoth3: 4tnk
Location: 54,37
Owner: USSR
Facing: 63
TnkPatrol1: waypoint
Location: 69,43
Owner: Neutral
TnkPatrol2: waypoint
Location: 69,55
Owner: Neutral
TnkPatrol3: waypoint
Location: 56,55
Owner: Neutral
TnkPatrol4: waypoint
Location: 41,44
Owner: Neutral
TnkPatrol5: waypoint
Location: 42,37
Owner: Neutral
TnkPatrol6: waypoint
Location: 62,37
Owner: Neutral
DefenseFlame1: ftur
Location: 51,91
Owner: USSR
DefenseFlame2: ftur
Location: 47,91
Owner: USSR
DefBrl1: brl3
Location: 51,90
Owner: USSR
DefBrl2: brl3
Location: 46,89
Owner: USSR
Patrol_1_e1: e1
Location: 40,44
Owner: USSR
Facing: 63
SubCell: 1
Patrol_1_dog: dog
Location: 40,43
Owner: USSR
Facing: 63
SubCell: 1
Patrol_2_e1: e1
Location: 41,37
Owner: USSR
Facing: 63
SubCell: 1
Patrol_2_dog: dog
Location: 41,37
Owner: USSR
Facing: 63
SubCell: 3
Patrol_3_e1: e1
Location: 84,43
Owner: USSR
Facing: 63
SubCell: 2
Patrol_3_dog: dog
Location: 86,43
Owner: USSR
Facing: 63
SubCell: 0
Patrol_4_e1: e1
Location: 67,51
Owner: USSR
Facing: 95
SubCell: 1
Patrol_4_dog: dog
Location: 66,50
Owner: USSR
Facing: 95
SubCell: 3
Patrol1: waypoint
Location: 85,43
Owner: Neutral
Patrol2: waypoint
Location: 66,50
Owner: Neutral
Patrol3: waypoint
Location: 53,55
Owner: Neutral
Patrol4: waypoint
Location: 46,49
Owner: Neutral
Patrol5: waypoint
Location: 40,44
Owner: Neutral
Patrol6: waypoint
Location: 41,37
Owner: Neutral
Patrol7: waypoint
Location: 54,37
Owner: Neutral
Patrol8: waypoint
Location: 71,43
Owner: Neutral
tank1: 3tnk
Location: 81,56
Owner: USSR
Facing: 95
tank2: 3tnk
Location: 77,54
Owner: USSR
Facing: 95
tank3: 3tnk
Location: 64,43
Owner: USSR
Facing: 159
tank4: 3tnk
Location: 45,43
Owner: USSR
Facing: 127
tank5: 3tnk
Location: 51,56
Owner: USSR
tank6: v2rl
Location: 46,41
Owner: USSR
Facing: 95
tank7: v2rl
Location: 62,42
Owner: USSR
Facing: 159
BeachDog: dog
Location: 75,54
Owner: USSR
Facing: 95
SubCell: 1
BeachPatrol1: waypoint
Owner: Neutral
Location: 68,59
BeachPatrol2: waypoint
Owner: Neutral
Location: 75,54
BeachPatrol3: waypoint
Location: 77,58
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,93 @@
Player:
PlayerResources:
DefaultCash: 5000
World:
LuaScript:
Scripts: allies06b.lua, allies06b-AI.lua
MissionData:
BriefingVideo: ally6.vqa
WinVideo: allymorf.vqa
LossVideo: overrun.vqa
StartVideo: mcv.vqa
Briefing: Priority one is to establish a base and get your spy into one of the Soviet Tech Centers in the base across the gulf.\nData on the Iron Curtain is in there and we need it.\n\nOnce you get the data complete your mission...\nWipe out everything.
MapOptions:
TechLevel: medium
ScriptLobbyDropdown@difficulty:
ID: difficulty
Label: Difficulty
Values:
easy: Easy
normal: Normal
hard: Hard
Default: easy
powerproxy.paratroopers:
ParatroopersPower:
DropItems: E1,E1,E1,E4,E4
3TNK:
Buildable:
Prerequisites: ~vehicles.soviet
ARTY:
Buildable:
Prerequisites: ~disabled
MCV:
Buildable:
Prerequisites: ~disabled
TRUK:
Buildable:
Prerequisites: ~disabled
TECH.CAM:
Inherits: CAMERA
RevealsShroud:
Range: 4c0
Type: CenterPosition
STEK:
Targetable:
TargetTypes: Ground, Water, Structure, C4, DetonateAttack, SpyInfiltrate
APWR:
Buildable:
Prerequisites: ~disabled
AFLD:
Buildable:
Prerequisites: ~disabled
HPAD:
Buildable:
Prerequisites: ~disabled
BRIK:
Buildable:
Prerequisites: ~disabled
MECH:
Buildable:
Prerequisites: ~disabled
HIJACKER:
Buildable:
Prerequisites: ~disabled
DD:
Buildable:
Prerequisites: ~disabled
CA:
Buildable:
Prerequisites: ~disabled
MSUB:
Buildable:
Prerequisites: ~disabled
SS:
AutoTarget:
InitialStanceAI: AttackAnything

View File

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