Merge pull request #12322 from abc013/allies-06a
Added allies-06a to the Red Alert mod
This commit is contained in:
@@ -68,6 +68,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Red Alert Lua scripts", "Re
|
||||
mods\ra\maps\allies-03b\allies03b.lua = mods\ra\maps\allies-03b\allies03b.lua
|
||||
mods\ra\maps\allies-05a\allies05a-AI.lua = mods\ra\maps\allies-05a\allies05a-AI.lua
|
||||
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\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
|
||||
|
||||
226
mods/ra/maps/allies-06a/allies06a-AI.lua
Normal file
226
mods/ra/maps/allies-06a/allies06a-AI.lua
Normal file
@@ -0,0 +1,226 @@
|
||||
|
||||
WTransWays =
|
||||
{
|
||||
{ WaterUnloadEntry1.Location, WaterUnload1.Location },
|
||||
{ WaterUnloadEntry2.Location, WaterUnload2.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"},
|
||||
{ "e2", "e1", "e1"},
|
||||
{ "e4", "e4", "e1"}
|
||||
}
|
||||
|
||||
AttackRallyPoints =
|
||||
{
|
||||
{ SovietOreAttackStart.Location, SovietOreAttack1.Location },
|
||||
{ SovietBaseAttack.Location },
|
||||
{ SovietOreAttack2.Location }
|
||||
}
|
||||
|
||||
ImportantBuildings = { WeaponsFactory, Airfield, dome2, SovietConyard }
|
||||
SovietAircraftType = { "yak" }
|
||||
Yaks = { }
|
||||
IdlingUnits = { }
|
||||
IdlingTanks = { tank1, tank2, tank3, tank4, tank5, tank6, tank7, tank8 }
|
||||
IdlingNavalUnits = { }
|
||||
|
||||
InitialiseAttack = function()
|
||||
Utils.Do(ImportantBuildings, function(a)
|
||||
Trigger.OnDamaged(a, function()
|
||||
Utils.Do(IdlingTanks, function(unit)
|
||||
if not unit.IsDead then
|
||||
unit.Hunt()
|
||||
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 AttackTnk1.IsDead then
|
||||
units[#units + 1] = AttackTnk1
|
||||
elseif Attack == 4 and not AttackTnk2.IsDead then
|
||||
units[#units + 1] = AttackTnk2
|
||||
end
|
||||
|
||||
SendAttack(units, Utils.Random(AttackRallyPoints))
|
||||
Trigger.AfterDelay(DateTime.Seconds(BuildDelays), ProduceInfantry)
|
||||
end)
|
||||
end
|
||||
|
||||
ProduceVehicles = function()
|
||||
if WeaponsFactory.IsDead or WeaponsFactory.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
|
||||
|
||||
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(), { Harbor.Location })
|
||||
end)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
ProduceAircraft = function()
|
||||
if Airfield.IsDead or Airfield.Owner ~= ussr then
|
||||
return
|
||||
end
|
||||
|
||||
ussr.Build(SovietAircraftType, function(units)
|
||||
local yak = units[1]
|
||||
Yaks[#Yaks + 1] = yak
|
||||
|
||||
Trigger.OnKilled(yak, ProduceAircraft)
|
||||
if #Yaks == 1 then
|
||||
Trigger.AfterDelay(DateTime.Seconds(BuildDelays), 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") end)
|
||||
if #enemies > 0 then
|
||||
target = Utils.Random(enemies)
|
||||
else
|
||||
yak.Wait(DateTime.Seconds(5))
|
||||
end
|
||||
end
|
||||
|
||||
if target and yak.AmmoCount() > 0 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)
|
||||
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(UnitBStopLocation.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(10), ProduceInfantry)
|
||||
Trigger.AfterDelay(DateTime.Minutes(1) + DateTime.Seconds(10), function()
|
||||
ProduceAircraft()
|
||||
ProduceVehicles()
|
||||
end)
|
||||
|
||||
WeaponsFactory.RallyPoint = WeaponMeetPoint.Location
|
||||
SubPen.RallyPoint = SubMeetPoint.Location
|
||||
Trigger.AfterDelay(DateTime.Minutes(5) + DateTime.Seconds(10), ProduceNaval)
|
||||
Trigger.AfterDelay(DateTime.Minutes(WTransDelays), WTransWaves)
|
||||
end
|
||||
220
mods/ra/maps/allies-06a/allies06a.lua
Normal file
220
mods/ra/maps/allies-06a/allies06a.lua
Normal file
@@ -0,0 +1,220 @@
|
||||
AlliedReinforcementsA = { "e1", "e1", "e1", "e1", "e1" }
|
||||
AlliedReinforcementsB = { "e3", "e3", "e3", "e3", "e3" }
|
||||
BadGuys = { BadGuy1, BadGuy2, BadGuy3 }
|
||||
|
||||
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, TnkPatrol7.Location, TnkPatrol8.Location },
|
||||
{ TnkPatrol5.Location, TnkPatrol6.Location, TnkPatrol7.Location, TnkPatrol8.Location, TnkPatrol1.Location, TnkPatrol2.Location, TnkPatrol3.Location, TnkPatrol4.Location },
|
||||
{ TnkPatrol8.Location, TnkPatrol1.Location, TnkPatrol2.Location, TnkPatrol3.Location, TnkPatrol4.Location, TnkPatrol5.Location, TnkPatrol6.Location, TnkPatrol7.Location }
|
||||
}
|
||||
|
||||
SovietSubPath = { SubPatrol3_1.Location, SubPatrol3_2.Location, SubPatrol3_3.Location }
|
||||
|
||||
ParadropWaypoints =
|
||||
{
|
||||
easy = { UnitBStopLocation },
|
||||
normal = { UnitBStopLocation, UnitAStopLocation },
|
||||
hard = { UnitBStopLocation, MCVStopLocation, UnitAStopLocation }
|
||||
}
|
||||
|
||||
SovietTechLabs = { TechLab1, TechLab2, TechLab3 }
|
||||
TechLabCams = { TechCam1, TechCam2, TechCam3 }
|
||||
|
||||
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
|
||||
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({ SubPatrol1_1.Location, SubPatrol1_2.Location })
|
||||
Patrol2Sub.Patrol({ SubPatrol2_1.Location, SubPatrol2_2.Location })
|
||||
Patrol3Sub1.Patrol(SovietSubPath)
|
||||
Patrol3Sub2.Patrol(SovietSubPath)
|
||||
end
|
||||
|
||||
InitialAlliedReinforcements = function()
|
||||
local camera = Actor.Create("Camera", true, { Owner = player, Location = DefaultCameraPosition.Location })
|
||||
Trigger.AfterDelay(DateTime.Seconds(30), camera.Destroy)
|
||||
|
||||
Reinforcements.Reinforce(player, AlliedReinforcementsA, { AlliedEntry1.Location, UnitBStopLocation.Location }, 2)
|
||||
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
||||
Reinforcements.Reinforce(player, AlliedReinforcementsB, { AlliedEntry2.Location, UnitAStopLocation.Location }, 2)
|
||||
end)
|
||||
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
||||
Reinforcements.Reinforce(player, { "mcv" }, { AlliedEntry3.Location, MCVStopLocation.Location })
|
||||
end)
|
||||
end
|
||||
|
||||
CaptureRadarDome = function()
|
||||
Trigger.OnKilled(Radar, function()
|
||||
player.MarkFailedObjective(CaptureRadarDomeObj)
|
||||
end)
|
||||
|
||||
Trigger.OnCapture(Radar, function()
|
||||
player.MarkCompletedObjective(CaptureRadarDomeObj)
|
||||
end)
|
||||
end
|
||||
|
||||
infiltrated = false
|
||||
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)
|
||||
|
||||
local Proxy = Actor.Create("powerproxy.paratroopers", false, { Owner = ussr })
|
||||
Utils.Do(ParadropWaypoints[Map.LobbyOption("difficulty")], function(waypoint)
|
||||
Proxy.SendParatroopers(waypoint.CenterPosition, false, Facing.South)
|
||||
end)
|
||||
Proxy.Destroy()
|
||||
end)
|
||||
end)
|
||||
|
||||
Trigger.OnAllKilled(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.OnKilled(Refinery, function()
|
||||
if not player.IsObjectiveCompleted(InfiltrateRefObj) then
|
||||
player.MarkFailedObjective(InfiltrateRefObj)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
Tick = function()
|
||||
if DateTime.GameTime > DateTime.Seconds(10) and 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.")
|
||||
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
|
||||
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
|
||||
|
||||
Utils.Do(BadGuys, function(a)
|
||||
a.AttackMove(MCVStopLocation.Location)
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
||||
InitialAlliedReinforcements()
|
||||
InitialSovietPatrols()
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredProximityTrigger(SovietMiniBaseCam.CenterPosition, WDist.New(1024 * 6), 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
|
||||
BIN
mods/ra/maps/allies-06a/map.bin
Normal file
BIN
mods/ra/maps/allies-06a/map.bin
Normal file
Binary file not shown.
BIN
mods/ra/maps/allies-06a/map.png
Normal file
BIN
mods/ra/maps/allies-06a/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
642
mods/ra/maps/allies-06a/map.yaml
Normal file
642
mods/ra/maps/allies-06a/map.yaml
Normal file
@@ -0,0 +1,642 @@
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: ra
|
||||
|
||||
Title: 06a: Cripple Iron Curtain research
|
||||
|
||||
Author: Westwood Studios
|
||||
|
||||
Tileset: SNOW
|
||||
|
||||
MapSize: 128,128
|
||||
|
||||
Bounds: 3,61,94,54
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
Players:
|
||||
PlayerReference@Neutral:
|
||||
Name: Neutral
|
||||
OwnsWorld: True
|
||||
NonCombatant: True
|
||||
Faction: england
|
||||
PlayerReference@USSR:
|
||||
Name: USSR
|
||||
Faction: soviet
|
||||
Color: FF1400
|
||||
Enemies: USSR, 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:
|
||||
Actor176: camera
|
||||
Owner: USSR
|
||||
Location: 19,66
|
||||
Actor0: sbag
|
||||
Location: 22,81
|
||||
Owner: USSR
|
||||
Actor1: sbag
|
||||
Location: 23,81
|
||||
Owner: USSR
|
||||
Actor2: sbag
|
||||
Location: 24,81
|
||||
Owner: USSR
|
||||
Actor3: sbag
|
||||
Location: 22,82
|
||||
Owner: USSR
|
||||
Actor4: sbag
|
||||
Location: 24,82
|
||||
Owner: USSR
|
||||
Actor5: sbag
|
||||
Location: 22,83
|
||||
Owner: USSR
|
||||
Actor6: sbag
|
||||
Location: 23,83
|
||||
Owner: USSR
|
||||
Actor7: sbag
|
||||
Location: 24,83
|
||||
Owner: USSR
|
||||
Actor8: sbag
|
||||
Location: 12,84
|
||||
Owner: USSR
|
||||
Actor9: sbag
|
||||
Location: 13,84
|
||||
Owner: USSR
|
||||
Actor10: sbag
|
||||
Location: 14,84
|
||||
Owner: USSR
|
||||
Actor11: sbag
|
||||
Location: 12,85
|
||||
Owner: USSR
|
||||
Actor12: sbag
|
||||
Location: 14,85
|
||||
Owner: USSR
|
||||
Actor13: sbag
|
||||
Location: 12,86
|
||||
Owner: USSR
|
||||
Actor14: sbag
|
||||
Location: 13,86
|
||||
Owner: USSR
|
||||
Actor15: sbag
|
||||
Location: 14,86
|
||||
Owner: USSR
|
||||
Actor16: t08
|
||||
Location: 88,68
|
||||
Owner: Neutral
|
||||
Actor17: t08
|
||||
Location: 26,72
|
||||
Owner: Neutral
|
||||
Actor18: tc02
|
||||
Location: 52,92
|
||||
Owner: Neutral
|
||||
Actor19: tc01
|
||||
Location: 57,96
|
||||
Owner: Neutral
|
||||
Actor20: t15
|
||||
Location: 3,76
|
||||
Owner: Neutral
|
||||
Actor21: tc05
|
||||
Location: 11,74
|
||||
Owner: Neutral
|
||||
Actor22: t15
|
||||
Location: 74,81
|
||||
Owner: Neutral
|
||||
Actor23: t08
|
||||
Location: 77,85
|
||||
Owner: Neutral
|
||||
Actor24: tc05
|
||||
Location: 94,106
|
||||
Owner: Neutral
|
||||
Actor25: tc03
|
||||
Location: 84,94
|
||||
Owner: Neutral
|
||||
Actor26: t16
|
||||
Location: 83,94
|
||||
Owner: Neutral
|
||||
Actor27: t08
|
||||
Location: 85,96
|
||||
Owner: Neutral
|
||||
Actor28: tc01
|
||||
Location: 62,105
|
||||
Owner: Neutral
|
||||
Actor29: tc01
|
||||
Location: 89,98
|
||||
Owner: Neutral
|
||||
Actor30: tc02
|
||||
Location: 85,100
|
||||
Owner: Neutral
|
||||
Actor31: tc03
|
||||
Location: 87,99
|
||||
Owner: Neutral
|
||||
Actor32: t17
|
||||
Location: 89,99
|
||||
Owner: Neutral
|
||||
Actor33: t16
|
||||
Location: 85,99
|
||||
Owner: Neutral
|
||||
Actor34: t13
|
||||
Location: 86,98
|
||||
Owner: Neutral
|
||||
Actor35: tc04
|
||||
Location: 15,74
|
||||
Owner: Neutral
|
||||
Actor36: tc01
|
||||
Location: 24,73
|
||||
Owner: Neutral
|
||||
Actor37: t17
|
||||
Location: 27,71
|
||||
Owner: Neutral
|
||||
Actor38: t13
|
||||
Location: 36,69
|
||||
Owner: Neutral
|
||||
Actor39: t12
|
||||
Location: 34,70
|
||||
Owner: Neutral
|
||||
Actor40: t11
|
||||
Location: 23,84
|
||||
Owner: Neutral
|
||||
Actor41: t08
|
||||
Location: 9,78
|
||||
Owner: Neutral
|
||||
Actor42: t05
|
||||
Location: 12,89
|
||||
Owner: Neutral
|
||||
Actor43: tc03
|
||||
Location: 12,82
|
||||
Owner: Neutral
|
||||
Actor44: t17
|
||||
Location: 5,82
|
||||
Owner: Neutral
|
||||
Actor45: tc02
|
||||
Location: 9,95
|
||||
Owner: Neutral
|
||||
Actor46: tc03
|
||||
Location: 7,94
|
||||
Owner: Neutral
|
||||
Actor47: tc05
|
||||
Location: 9,109
|
||||
Owner: Neutral
|
||||
Actor48: tc04
|
||||
Location: 3,100
|
||||
Owner: Neutral
|
||||
Actor49: tc02
|
||||
Location: 3,110
|
||||
Owner: Neutral
|
||||
Actor50: tc01
|
||||
Location: 6,105
|
||||
Owner: Neutral
|
||||
Actor51: t17
|
||||
Location: 12,106
|
||||
Owner: Neutral
|
||||
Actor52: t16
|
||||
Location: 8,107
|
||||
Owner: Neutral
|
||||
Actor53: t14
|
||||
Location: 11,100
|
||||
Owner: Neutral
|
||||
Actor54: t01
|
||||
Location: 29,102
|
||||
Owner: Neutral
|
||||
Actor55: t03
|
||||
Location: 36,104
|
||||
Owner: Neutral
|
||||
Actor56: t06
|
||||
Location: 25,104
|
||||
Owner: Neutral
|
||||
Actor57: t08
|
||||
Location: 38,100
|
||||
Owner: Neutral
|
||||
Actor58: tc03
|
||||
Location: 95,72
|
||||
Owner: Neutral
|
||||
Actor59: mine
|
||||
Location: 5,68
|
||||
Owner: Neutral
|
||||
Actor60: mine
|
||||
Location: 9,104
|
||||
Owner: Neutral
|
||||
Actor61: mine
|
||||
Location: 5,113
|
||||
Owner: Neutral
|
||||
Actor70: kenn
|
||||
Location: 91,94
|
||||
Owner: USSR
|
||||
Actor71: kenn
|
||||
Location: 71,83
|
||||
Owner: USSR
|
||||
Actor74: kenn
|
||||
Location: 77,101
|
||||
Owner: USSR
|
||||
Actor75: ftur
|
||||
Location: 16,82
|
||||
Owner: USSR
|
||||
Actor76: ftur
|
||||
Location: 19,82
|
||||
Owner: USSR
|
||||
Actor77: tsla
|
||||
Location: 60,97
|
||||
Owner: USSR
|
||||
Actor78: apwr
|
||||
Location: 79,108
|
||||
Owner: USSR
|
||||
Actor79: apwr
|
||||
Location: 82,109
|
||||
Owner: USSR
|
||||
Actor81: apwr
|
||||
Location: 82,106
|
||||
Owner: USSR
|
||||
Actor82: apwr
|
||||
Location: 81,112
|
||||
Owner: USSR
|
||||
Actor83: silo
|
||||
Location: 94,104
|
||||
Owner: USSR
|
||||
Actor84: silo
|
||||
Location: 94,105
|
||||
Owner: USSR
|
||||
Actor85: silo
|
||||
Location: 95,104
|
||||
Owner: USSR
|
||||
Actor86: silo
|
||||
Location: 95,105
|
||||
Owner: USSR
|
||||
Actor87: silo
|
||||
Location: 85,102
|
||||
Owner: USSR
|
||||
Actor88: silo
|
||||
Location: 85,93
|
||||
Owner: USSR
|
||||
Actor89: apwr
|
||||
Location: 87,101
|
||||
Owner: USSR
|
||||
Actor90: ftur
|
||||
Location: 80,87
|
||||
Owner: USSR
|
||||
Actor105: jeep
|
||||
Location: 19,64
|
||||
Owner: Greece
|
||||
Facing: 127
|
||||
Actor109: e2
|
||||
Location: 13,85
|
||||
Owner: USSR
|
||||
Facing: 223
|
||||
SubCell: 2
|
||||
Actor110: e2
|
||||
Location: 23,82
|
||||
Owner: USSR
|
||||
Facing: 31
|
||||
SubCell: 3
|
||||
Actor111: e1
|
||||
Location: 20,64
|
||||
Owner: Greece
|
||||
Facing: 159
|
||||
SubCell: 2
|
||||
Actor112: e1
|
||||
Location: 19,65
|
||||
Owner: Greece
|
||||
Facing: 127
|
||||
SubCell: 0
|
||||
Actor113: e1
|
||||
Location: 18,64
|
||||
Owner: Greece
|
||||
Facing: 127
|
||||
SubCell: 1
|
||||
Actor114: e1
|
||||
Location: 23,82
|
||||
Owner: USSR
|
||||
SubCell: 2
|
||||
Actor115: e1
|
||||
Location: 13,85
|
||||
Owner: USSR
|
||||
Facing: 63
|
||||
SubCell: 3
|
||||
Actor117: dog
|
||||
Location: 79,100
|
||||
Owner: USSR
|
||||
Facing: 191
|
||||
SubCell: 0
|
||||
Actor126: ss
|
||||
Location: 59,102
|
||||
Owner: USSR
|
||||
Facing: 95
|
||||
Actor130: ss
|
||||
Location: 74,113
|
||||
Owner: USSR
|
||||
Facing: 63
|
||||
Actor177: mine
|
||||
Owner: Neutral
|
||||
Location: 56,94
|
||||
Actor178: mine
|
||||
Owner: Neutral
|
||||
Location: 64,108
|
||||
Actor180: mine
|
||||
Owner: Neutral
|
||||
Location: 93,84
|
||||
SovietConyard: fact
|
||||
Location: 69,96
|
||||
Owner: USSR
|
||||
dome2: dome
|
||||
Location: 90,109
|
||||
Owner: USSR
|
||||
harv: harv
|
||||
Location: 82,94
|
||||
Owner: USSR
|
||||
Facing: 31
|
||||
tank1: 3tnk
|
||||
Location: 69,90
|
||||
Owner: USSR
|
||||
Facing: 95
|
||||
tank2: 3tnk
|
||||
Location: 93,102
|
||||
Owner: USSR
|
||||
Facing: 31
|
||||
tank3: 3tnk
|
||||
Location: 85,90
|
||||
Owner: USSR
|
||||
tank4: 3tnk
|
||||
Location: 93,106
|
||||
Owner: USSR
|
||||
Facing: 63
|
||||
tank5: 3tnk
|
||||
Location: 73,100
|
||||
Owner: USSR
|
||||
Facing: 63
|
||||
tank6: v2rl
|
||||
Location: 80,90
|
||||
Owner: USSR
|
||||
Facing: 223
|
||||
tank7: v2rl
|
||||
Location: 70,91
|
||||
Owner: USSR
|
||||
Facing: 95
|
||||
tank8: v2rl
|
||||
Location: 74,101
|
||||
Owner: USSR
|
||||
Facing: 63
|
||||
SubPatrol3_1: waypoint
|
||||
Location: 48,114
|
||||
Owner: Neutral
|
||||
SubPatrol3_2: waypoint
|
||||
Location: 48,98
|
||||
Owner: Neutral
|
||||
SubPatrol3_3: waypoint
|
||||
Location: 79,71
|
||||
Owner: Neutral
|
||||
Patrol3Sub1: ss
|
||||
Location: 46,105
|
||||
Owner: USSR
|
||||
Facing: 63
|
||||
Patrol3Sub2: ss
|
||||
Location: 77,71
|
||||
Owner: USSR
|
||||
Facing: 63
|
||||
Patrol1Sub: ss
|
||||
Location: 46,71
|
||||
Owner: USSR
|
||||
Facing: 127
|
||||
Patrol2Sub: ss
|
||||
Location: 52,85
|
||||
Owner: USSR
|
||||
Facing: 63
|
||||
SubPatrol1_1: waypoint
|
||||
Location: 42,71
|
||||
Owner: Neutral
|
||||
SubPatrol1_2: waypoint
|
||||
Location: 58,84
|
||||
Owner: Neutral
|
||||
SubPatrol2_1: waypoint
|
||||
Location: 56,87
|
||||
Owner: Neutral
|
||||
SubPatrol2_2: waypoint
|
||||
Location: 40,74
|
||||
Owner: Neutral
|
||||
SubMeetPoint: waypoint
|
||||
Location: 48,105
|
||||
Owner: Neutral
|
||||
SovietBaseAttack: waypoint
|
||||
Location: 18,68
|
||||
Owner: Neutral
|
||||
Patrol1: waypoint
|
||||
Location: 92,108
|
||||
Owner: Neutral
|
||||
Patrol2: waypoint
|
||||
Location: 76,103
|
||||
Owner: Neutral
|
||||
Patrol3: waypoint
|
||||
Location: 65,110
|
||||
Owner: Neutral
|
||||
Patrol4: waypoint
|
||||
Location: 68,101
|
||||
Owner: Neutral
|
||||
Patrol5: waypoint
|
||||
Location: 68,93
|
||||
Owner: Neutral
|
||||
Patrol6: waypoint
|
||||
Location: 72,84
|
||||
Owner: Neutral
|
||||
Patrol7: waypoint
|
||||
Location: 79,88
|
||||
Owner: Neutral
|
||||
Patrol8: waypoint
|
||||
Location: 90,94
|
||||
Owner: Neutral
|
||||
TnkPatrol1: waypoint
|
||||
Location: 52,100
|
||||
Owner: Neutral
|
||||
TnkPatrol2: waypoint
|
||||
Location: 65,94
|
||||
Owner: Neutral
|
||||
TnkPatrol3: waypoint
|
||||
Location: 65,78
|
||||
Owner: Neutral
|
||||
TnkPatrol4: waypoint
|
||||
Location: 84,82
|
||||
Owner: Neutral
|
||||
TnkPatrol5: waypoint
|
||||
Location: 79,92
|
||||
Owner: Neutral
|
||||
TnkPatrol6: waypoint
|
||||
Location: 77,106
|
||||
Owner: Neutral
|
||||
TnkPatrol7: waypoint
|
||||
Location: 61,107
|
||||
Owner: Neutral
|
||||
TnkPatrol8: waypoint
|
||||
Location: 70,100
|
||||
Owner: Neutral
|
||||
Mammoth1: 4tnk
|
||||
Location: 63,94
|
||||
Owner: USSR
|
||||
Facing: 63
|
||||
Mammoth2: 4tnk
|
||||
Location: 82,87
|
||||
Owner: USSR
|
||||
Facing: 223
|
||||
Mammoth3: 4tnk
|
||||
Location: 76,105
|
||||
Owner: USSR
|
||||
Facing: 31
|
||||
AttackTnk1: 3tnk
|
||||
Location: 18,85
|
||||
Owner: USSR
|
||||
Facing: 31
|
||||
AttackTnk2: 3tnk
|
||||
Location: 17,82
|
||||
Owner: USSR
|
||||
Facing: 223
|
||||
BadGuy1: e1
|
||||
Location: 20,69
|
||||
Owner: USSR
|
||||
SubCell: 3
|
||||
BadGuy2: e1
|
||||
Location: 19,70
|
||||
Owner: USSR
|
||||
SubCell: 0
|
||||
BadGuy3: e1
|
||||
Location: 24,67
|
||||
Owner: USSR
|
||||
Facing: 63
|
||||
SubCell: 3
|
||||
Patrol_1_e1: e1
|
||||
Location: 71,84
|
||||
Owner: USSR
|
||||
SubCell: 4
|
||||
Patrol_1_dog: dog
|
||||
Location: 72,84
|
||||
Owner: USSR
|
||||
Facing: 63
|
||||
SubCell: 1
|
||||
Patrol_2_e1: e1
|
||||
Location: 89,94
|
||||
Owner: USSR
|
||||
SubCell: 0
|
||||
Patrol_2_dog: dog
|
||||
Location: 89,93
|
||||
Owner: USSR
|
||||
Facing: 95
|
||||
SubCell: 4
|
||||
Patrol_3_e1: e1
|
||||
Location: 92,108
|
||||
Owner: USSR
|
||||
SubCell: 1
|
||||
Patrol_3_dog: dog
|
||||
Location: 92,108
|
||||
Owner: USSR
|
||||
SubCell: 3
|
||||
Patrol_4_e1: e1
|
||||
Location: 76,102
|
||||
Owner: USSR
|
||||
SubCell: 4
|
||||
Patrol_4_dog: dog
|
||||
Location: 77,102
|
||||
Owner: USSR
|
||||
Facing: 95
|
||||
SubCell: 4
|
||||
WaterUnloadEntry1: waypoint
|
||||
Location: 22,114
|
||||
Owner: Neutral
|
||||
WaterUnloadEntry2: waypoint
|
||||
Location: 43,114
|
||||
Owner: Neutral
|
||||
WaterUnload1: waypoint
|
||||
Location: 15,108
|
||||
Owner: Neutral
|
||||
WaterUnload2: waypoint
|
||||
Location: 30,93
|
||||
Owner: Neutral
|
||||
SovietOreAttackStart: waypoint
|
||||
Location: 5,73
|
||||
Owner: Neutral
|
||||
SovietOreAttack1: waypoint
|
||||
Location: 3,65
|
||||
Owner: Neutral
|
||||
SovietOreAttack2: waypoint
|
||||
Location: 36,67
|
||||
Owner: Neutral
|
||||
Harbor: waypoint
|
||||
Location: 19,92
|
||||
Owner: Neutral
|
||||
UnitAStopLocation: waypoint
|
||||
Location: 16,64
|
||||
Owner: Neutral
|
||||
MCVStopLocation: waypoint
|
||||
Location: 23,64
|
||||
Owner: Neutral
|
||||
UnitBStopLocation: waypoint
|
||||
Location: 19,63
|
||||
Owner: Neutral
|
||||
DefaultCameraPosition: waypoint
|
||||
Location: 19,64
|
||||
Owner: Neutral
|
||||
SovietMiniBaseCam: waypoint
|
||||
Location: 18,83
|
||||
Owner: Neutral
|
||||
Weapcam: waypoint
|
||||
Location: 76,94
|
||||
Owner: Neutral
|
||||
TechCam1: waypoint
|
||||
Location: 69,83
|
||||
Owner: Neutral
|
||||
TechCam2: waypoint
|
||||
Location: 94,94
|
||||
Owner: Neutral
|
||||
TechCam3: waypoint
|
||||
Owner: Neutral
|
||||
Location: 94,109
|
||||
AlliedEntry1: waypoint
|
||||
Location: 19,61
|
||||
Owner: Neutral
|
||||
AlliedEntry2: waypoint
|
||||
Location: 14,61
|
||||
Owner: Neutral
|
||||
AlliedEntry3: waypoint
|
||||
Location: 23,61
|
||||
Owner: Neutral
|
||||
SubPen: spen
|
||||
Location: 63,99
|
||||
Owner: USSR
|
||||
TechLab1: stek
|
||||
Location: 93,93
|
||||
Owner: USSR
|
||||
TechLab2: stek
|
||||
Location: 68,82
|
||||
Owner: USSR
|
||||
TechLab3: stek
|
||||
Location: 93,108
|
||||
Owner: USSR
|
||||
SovietBarracks: barr
|
||||
Location: 15,83
|
||||
Owner: USSR
|
||||
WeaponsFactory: weap
|
||||
Location: 75,93
|
||||
Owner: USSR
|
||||
Airfield: afld
|
||||
Location: 74,86
|
||||
Owner: USSR
|
||||
Refinery: proc
|
||||
Location: 81,90
|
||||
Owner: USSR
|
||||
Radar: dome
|
||||
Location: 20,83
|
||||
Owner: USSR
|
||||
WeaponMeetPoint: waypoint
|
||||
Owner: Neutral
|
||||
Location: 73,90
|
||||
|
||||
Rules: ra|rules/campaign-rules.yaml, ra|rules/campaign-tooltips.yaml, rules.yaml
|
||||
|
||||
Weapons: weapons.yaml
|
||||
98
mods/ra/maps/allies-06a/rules.yaml
Normal file
98
mods/ra/maps/allies-06a/rules.yaml
Normal file
@@ -0,0 +1,98 @@
|
||||
Player:
|
||||
PlayerResources:
|
||||
DefaultCash: 5000
|
||||
|
||||
World:
|
||||
LuaScript:
|
||||
Scripts: allies06a.lua, allies06a-AI.lua
|
||||
MissionData:
|
||||
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.
|
||||
BriefingVideo: ally6.vqa
|
||||
WinVideo: allymorf.vqa
|
||||
LossVideo: overrun.vqa
|
||||
StartVideo: mcv.vqa
|
||||
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
|
||||
|
||||
TSLA:
|
||||
Power:
|
||||
Amount: -150
|
||||
|
||||
3TNK:
|
||||
Buildable:
|
||||
Prerequisites: ~vehicles.soviet
|
||||
|
||||
ARTY:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
MCV:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
TRUK:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
STEK:
|
||||
Targetable:
|
||||
TargetTypes: Ground, Water, Structure, C4, DetonateAttack, SpyInfiltrate
|
||||
|
||||
TECH.CAM:
|
||||
Inherits: CAMERA
|
||||
RevealsShroud:
|
||||
Range: 4c0
|
||||
Type: CenterPosition
|
||||
|
||||
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
|
||||
|
||||
7
mods/ra/maps/allies-06a/weapons.yaml
Normal file
7
mods/ra/maps/allies-06a/weapons.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
M60mg:
|
||||
Range: 5c0
|
||||
ReloadDelay: 20
|
||||
Burst: 1
|
||||
Warhead: SpreadDamage
|
||||
Damage: 20
|
||||
DamageTypes: Prone50Percent, TriggerProne, BulletDeath
|
||||
@@ -5,6 +5,7 @@ Allied Campaign:
|
||||
./mods/ra/maps/allies-03b
|
||||
./mods/ra/maps/allies-04
|
||||
./mods/ra/maps/allies-05a
|
||||
./mods/ra/maps/allies-06a
|
||||
Soviet Campaign:
|
||||
./mods/ra/maps/soviet-01
|
||||
./mods/ra/maps/soviet-02a
|
||||
|
||||
Reference in New Issue
Block a user