Added soviet04a and soviet04b
This commit is contained in:
111
mods/ra/maps/soviet-04a/AI.lua
Normal file
111
mods/ra/maps/soviet-04a/AI.lua
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end
|
||||||
|
|
||||||
|
IdlingUnits = function()
|
||||||
|
local lazyUnits = Greece.GetGroundAttackers()
|
||||||
|
|
||||||
|
Utils.Do(lazyUnits, function(unit)
|
||||||
|
Trigger.OnDamaged(unit, function()
|
||||||
|
Trigger.ClearAll(unit)
|
||||||
|
Trigger.AfterDelay(0, function() IdleHunt(unit) end)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
BaseBuildings =
|
||||||
|
{
|
||||||
|
{ "powr", CVec.New(0, 4), 300 },
|
||||||
|
{ "tent", CVec.New(-9, 6), 400, true },
|
||||||
|
{ "proc", CVec.New(4, 7), 1400, true },
|
||||||
|
{ "weap", CVec.New(8, -1), 2000, true }
|
||||||
|
}
|
||||||
|
|
||||||
|
BuildBase = function()
|
||||||
|
if CYard.IsDead or CYard.Owner ~= Greece then
|
||||||
|
return
|
||||||
|
elseif Harvester.IsDead and Greece.Resources <= 299 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
for i,v in ipairs(BaseBuildings) do
|
||||||
|
if not v[4] then
|
||||||
|
BuildBuilding(v)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(10), BuildBase)
|
||||||
|
end
|
||||||
|
|
||||||
|
BuildBuilding = function(building)
|
||||||
|
Trigger.AfterDelay(Actor.BuildTime(building[1]), function()
|
||||||
|
local actor = Actor.Create(building[1], true, { Owner = Greece, Location = GreeceCYard.Location + building[2] })
|
||||||
|
Greece.Cash = Greece.Cash - building[3]
|
||||||
|
|
||||||
|
building[4] = true
|
||||||
|
Trigger.OnKilled(actor, function() building[4] = true end)
|
||||||
|
Trigger.OnDamaged(actor, function(building)
|
||||||
|
if building.Owner == Greece and building.Health < building.MaxHealth * 3/4 then
|
||||||
|
building.StartBuildingRepairs()
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(10), BuildBase)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
ProduceInfantry = function()
|
||||||
|
if not BaseBuildings[2][4] then
|
||||||
|
return
|
||||||
|
elseif Harvester.IsDead and Greece.Resources <= 299 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local delay = Utils.RandomInteger(DateTime.Seconds(3), DateTime.Seconds(9))
|
||||||
|
local toBuild = { Utils.Random(AlliedInfantryTypes) }
|
||||||
|
local Path = Utils.Random(AttackPaths)
|
||||||
|
Greece.Build(toBuild, function(unit)
|
||||||
|
InfAttack[#InfAttack + 1] = unit[1]
|
||||||
|
|
||||||
|
if #InfAttack >= 10 then
|
||||||
|
SendUnits(InfAttack, Path)
|
||||||
|
InfAttack = { }
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(2), ProduceInfantry)
|
||||||
|
else
|
||||||
|
Trigger.AfterDelay(delay, ProduceInfantry)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
ProduceArmor = function()
|
||||||
|
if not BaseBuildings[4][4] then
|
||||||
|
return
|
||||||
|
elseif Harvester.IsDead and Greece.Resources <= 599 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local delay = Utils.RandomInteger(DateTime.Seconds(12), DateTime.Seconds(17))
|
||||||
|
local toBuild = { Utils.Random(AlliedArmorTypes) }
|
||||||
|
local Path = Utils.Random(AttackPaths)
|
||||||
|
Greece.Build(toBuild, function(unit)
|
||||||
|
ArmorAttack[#ArmorAttack + 1] = unit[1]
|
||||||
|
|
||||||
|
if #ArmorAttack >= 6 then
|
||||||
|
SendUnits(ArmorAttack, Path)
|
||||||
|
ArmorAttack = { }
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(3), ProduceArmor)
|
||||||
|
else
|
||||||
|
Trigger.AfterDelay(delay, ProduceArmor)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
SendUnits = function(units, waypoints)
|
||||||
|
Utils.Do(units, function(unit)
|
||||||
|
if not unit.IsDead then
|
||||||
|
Utils.Do(waypoints, function(waypoint)
|
||||||
|
unit.AttackMove(waypoint.Location)
|
||||||
|
end)
|
||||||
|
unit.Hunt()
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
148
mods/ra/maps/soviet-04a/main.lua
Normal file
148
mods/ra/maps/soviet-04a/main.lua
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
|
||||||
|
RunInitialActivities = function()
|
||||||
|
Harvester.FindResources()
|
||||||
|
IdlingUnits()
|
||||||
|
Trigger.AfterDelay(10, function()
|
||||||
|
BringPatrol1()
|
||||||
|
BringPatrol2()
|
||||||
|
BuildBase()
|
||||||
|
end)
|
||||||
|
|
||||||
|
Utils.Do(Map.NamedActors, function(actor)
|
||||||
|
if actor.Owner == Greece and actor.HasProperty("StartBuildingRepairs") then
|
||||||
|
Trigger.OnDamaged(actor, function(building)
|
||||||
|
if building.Owner == Greece and building.Health < 3/4 * building.MaxHealth then
|
||||||
|
building.StartBuildingRepairs()
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Reinforcements.Reinforce(player, SovietMCV, SovietStartToBasePath, 0, function(mcv)
|
||||||
|
mcv.Move(StartCamPoint.Location)
|
||||||
|
end)
|
||||||
|
Media.PlaySpeechNotification(player, "ReinforcementsArrived")
|
||||||
|
|
||||||
|
Trigger.OnKilled(Barr, function(building)
|
||||||
|
BaseBuildings[2][4] = false
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(Proc, function(building)
|
||||||
|
BaseBuildings[3][4] = false
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(Weap, function(building)
|
||||||
|
BaseBuildings[4][4] = false
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnEnteredFootprint(VillageCamArea, function(actor, id)
|
||||||
|
if actor.Owner == player then
|
||||||
|
local camera = Actor.Create("camera", true, { Owner = player, Location = VillagePoint.Location })
|
||||||
|
Trigger.RemoveFootprintTrigger(id)
|
||||||
|
Trigger.OnAllKilled(Village, function()
|
||||||
|
camera.Destroy()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnAnyKilled(Civs, function()
|
||||||
|
Trigger.ClearAll(civ1)
|
||||||
|
Trigger.ClearAll(civ2)
|
||||||
|
Trigger.ClearAll(civ3)
|
||||||
|
local units = Reinforcements.Reinforce(Greece, Avengers, { SWRoadPoint.Location }, 0)
|
||||||
|
Utils.Do(units, function(unit)
|
||||||
|
unit.Hunt()
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Runner1.Move(CrossroadsEastPoint.Location)
|
||||||
|
Runner2.Move(InVillagePoint.Location)
|
||||||
|
Tank5.Move(V2MovePoint.Location)
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
||||||
|
Tank1.Stop()
|
||||||
|
Tank2.Stop()
|
||||||
|
Tank3.Stop()
|
||||||
|
Tank4.Stop()
|
||||||
|
Tank5.Stop()
|
||||||
|
Trigger.AfterDelay(1, function()
|
||||||
|
Tank1.Move(SovietBaseEntryPointNE.Location)
|
||||||
|
Tank2.Move(SovietBaseEntryPointW.Location)
|
||||||
|
Tank3.Move(SovietBaseEntryPointNE.Location)
|
||||||
|
Tank4.Move(SovietBaseEntryPointW.Location)
|
||||||
|
Tank5.Move(V2MovePoint.Location)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(1), ProduceInfantry)
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(2), ProduceArmor)
|
||||||
|
|
||||||
|
if Map.Difficulty == "Hard" or Map.Difficulty == "Medium" then
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(15), ReinfInf)
|
||||||
|
end
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(1), ReinfInf)
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(3), ReinfInf)
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(2), ReinfArmor)
|
||||||
|
end
|
||||||
|
|
||||||
|
Tick = function()
|
||||||
|
if Greece.HasNoRequiredUnits() then
|
||||||
|
player.MarkCompletedObjective(KillAll)
|
||||||
|
player.MarkCompletedObjective(KillRadar)
|
||||||
|
end
|
||||||
|
|
||||||
|
if player.HasNoRequiredUnits() then
|
||||||
|
Greece.MarkCompletedObjective(BeatUSSR)
|
||||||
|
end
|
||||||
|
|
||||||
|
if Greece.Resources >= Greece.ResourceCapacity * 0.75 then
|
||||||
|
Greece.Cash = Greece.Cash + Greece.Resources - Greece.ResourceCapacity * 0.25
|
||||||
|
Greece.Resources = Greece.ResourceCapacity * 0.25
|
||||||
|
end
|
||||||
|
|
||||||
|
if RCheck then
|
||||||
|
RCheck = false
|
||||||
|
if Map.Difficulty == "Hard" then
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(150), ReinfArmor)
|
||||||
|
elseif Map.Difficulty == "Medium" then
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(5), ReinfArmor)
|
||||||
|
else
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(8), ReinfArmor)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
WorldLoaded = function()
|
||||||
|
player = Player.GetPlayer("USSR")
|
||||||
|
Greece = Player.GetPlayer("Greece")
|
||||||
|
|
||||||
|
RunInitialActivities()
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
KillAll = player.AddPrimaryObjective("Defeat the Allied forces.")
|
||||||
|
BeatUSSR = Greece.AddPrimaryObjective("Defeat the Soviet forces.")
|
||||||
|
KillRadar = player.AddSecondaryObjective("Destroy Allied Radar Dome to stop enemy\nreinforcements.")
|
||||||
|
|
||||||
|
Trigger.OnPlayerLost(player, function()
|
||||||
|
Media.PlaySpeechNotification(player, "Lose")
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnPlayerWon(player, function()
|
||||||
|
Media.PlaySpeechNotification(player, "Win")
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(Radar, function()
|
||||||
|
player.MarkCompletedObjective(KillRadar)
|
||||||
|
Media.PlaySpeechNotification(player, "ObjectiveMet")
|
||||||
|
end)
|
||||||
|
|
||||||
|
Camera.Position = StartCamPoint.CenterPosition
|
||||||
|
end
|
||||||
BIN
mods/ra/maps/soviet-04a/map.bin
Normal file
BIN
mods/ra/maps/soviet-04a/map.bin
Normal file
Binary file not shown.
BIN
mods/ra/maps/soviet-04a/map.png
Normal file
BIN
mods/ra/maps/soviet-04a/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
760
mods/ra/maps/soviet-04a/map.yaml
Normal file
760
mods/ra/maps/soviet-04a/map.yaml
Normal file
@@ -0,0 +1,760 @@
|
|||||||
|
MapFormat: 7
|
||||||
|
|
||||||
|
RequiresMod: ra
|
||||||
|
|
||||||
|
Title: Soviet 04a: Behind the lines
|
||||||
|
|
||||||
|
Description: The Allied base in this region is proving to be problematic.\n\nYour mission is to take it out so that we can begin to move forces through this area.\n\nAs long as they have communications they will be able to call upon heavy reinforcements.\n\nCrush their communications, and they should be easier to remove.
|
||||||
|
|
||||||
|
Author: Westwood Studios
|
||||||
|
|
||||||
|
Tileset: SNOW
|
||||||
|
|
||||||
|
MapSize: 128,128
|
||||||
|
|
||||||
|
Bounds: 38,45,72,46
|
||||||
|
|
||||||
|
Visibility: MissionSelector
|
||||||
|
|
||||||
|
Type: Campaign
|
||||||
|
|
||||||
|
Videos:
|
||||||
|
Briefing: soviet4.vqa
|
||||||
|
GameStart: sovmcv.vqa
|
||||||
|
GameWon: radrraid.vqa
|
||||||
|
GameLost: allymorf.vqa
|
||||||
|
|
||||||
|
Options:
|
||||||
|
Crates: False
|
||||||
|
Fog: True
|
||||||
|
Shroud: True
|
||||||
|
AllyBuildRadius: False
|
||||||
|
FragileAlliances: False
|
||||||
|
StartingCash: 5000
|
||||||
|
TechLevel: Medium
|
||||||
|
ConfigurableStartingUnits: False
|
||||||
|
Difficulties: Easy, Normal, Hard
|
||||||
|
ShortGame: False
|
||||||
|
|
||||||
|
Players:
|
||||||
|
PlayerReference@Neutral:
|
||||||
|
Name: Neutral
|
||||||
|
OwnsWorld: True
|
||||||
|
NonCombatant: True
|
||||||
|
Faction: england
|
||||||
|
PlayerReference@Spain:
|
||||||
|
Name: Spain
|
||||||
|
Faction: england
|
||||||
|
Allies: Greece
|
||||||
|
Enemies: USSR
|
||||||
|
PlayerReference@Creeps:
|
||||||
|
Name: Creeps
|
||||||
|
NonCombatant: True
|
||||||
|
Faction: england
|
||||||
|
PlayerReference@Greece:
|
||||||
|
Name: Greece
|
||||||
|
Faction: allies
|
||||||
|
ColorRamp: 161,134,236
|
||||||
|
Allies: Spain
|
||||||
|
Enemies: USSR
|
||||||
|
PlayerReference@USSR:
|
||||||
|
Name: USSR
|
||||||
|
Playable: True
|
||||||
|
AllowBots: False
|
||||||
|
Required: True
|
||||||
|
LockFaction: True
|
||||||
|
Faction: soviet
|
||||||
|
LockColor: True
|
||||||
|
ColorRamp: 3,255,127
|
||||||
|
LockSpawn: True
|
||||||
|
LockTeam: True
|
||||||
|
Enemies: Greece, Spain
|
||||||
|
|
||||||
|
Actors:
|
||||||
|
Actor0: sbag
|
||||||
|
Location: 71,43
|
||||||
|
Owner: Neutral
|
||||||
|
Actor1: sbag
|
||||||
|
Location: 72,43
|
||||||
|
Owner: Neutral
|
||||||
|
Actor2: sbag
|
||||||
|
Location: 72,44
|
||||||
|
Owner: Neutral
|
||||||
|
Actor3: cycl
|
||||||
|
Location: 47,45
|
||||||
|
Owner: Neutral
|
||||||
|
Actor4: cycl
|
||||||
|
Location: 48,45
|
||||||
|
Owner: Neutral
|
||||||
|
Actor5: cycl
|
||||||
|
Location: 49,45
|
||||||
|
Owner: Neutral
|
||||||
|
Actor6: cycl
|
||||||
|
Location: 50,45
|
||||||
|
Owner: Neutral
|
||||||
|
Actor7: cycl
|
||||||
|
Location: 53,45
|
||||||
|
Owner: Neutral
|
||||||
|
Actor8: sbag
|
||||||
|
Location: 72,45
|
||||||
|
Owner: Neutral
|
||||||
|
Actor9: sbag
|
||||||
|
Location: 72,46
|
||||||
|
Owner: Neutral
|
||||||
|
Actor10: sbag
|
||||||
|
Location: 73,46
|
||||||
|
Owner: Neutral
|
||||||
|
Actor11: sbag
|
||||||
|
Location: 74,46
|
||||||
|
Owner: Neutral
|
||||||
|
Actor12: cycl
|
||||||
|
Location: 46,47
|
||||||
|
Owner: Neutral
|
||||||
|
Actor13: sbag
|
||||||
|
Location: 72,47
|
||||||
|
Owner: Neutral
|
||||||
|
Actor14: cycl
|
||||||
|
Location: 46,48
|
||||||
|
Owner: Neutral
|
||||||
|
Actor15: sbag
|
||||||
|
Location: 71,48
|
||||||
|
Owner: Neutral
|
||||||
|
Actor16: sbag
|
||||||
|
Location: 72,48
|
||||||
|
Owner: Neutral
|
||||||
|
Actor17: cycl
|
||||||
|
Location: 46,49
|
||||||
|
Owner: Neutral
|
||||||
|
Actor18: sbag
|
||||||
|
Location: 71,52
|
||||||
|
Owner: Neutral
|
||||||
|
Actor19: sbag
|
||||||
|
Location: 72,52
|
||||||
|
Owner: Neutral
|
||||||
|
Actor20: sbag
|
||||||
|
Location: 72,53
|
||||||
|
Owner: Neutral
|
||||||
|
Actor21: sbag
|
||||||
|
Location: 72,54
|
||||||
|
Owner: Neutral
|
||||||
|
Actor22: sbag
|
||||||
|
Location: 72,55
|
||||||
|
Owner: Neutral
|
||||||
|
Actor23: sbag
|
||||||
|
Location: 73,55
|
||||||
|
Owner: Neutral
|
||||||
|
Actor24: sbag
|
||||||
|
Location: 74,55
|
||||||
|
Owner: Neutral
|
||||||
|
Actor25: sbag
|
||||||
|
Location: 72,56
|
||||||
|
Owner: Neutral
|
||||||
|
Actor26: sbag
|
||||||
|
Location: 86,56
|
||||||
|
Owner: Neutral
|
||||||
|
Actor27: sbag
|
||||||
|
Location: 88,56
|
||||||
|
Owner: Neutral
|
||||||
|
Actor28: sbag
|
||||||
|
Location: 89,56
|
||||||
|
Owner: Neutral
|
||||||
|
Actor29: sbag
|
||||||
|
Location: 90,56
|
||||||
|
Owner: Neutral
|
||||||
|
Actor30: sbag
|
||||||
|
Location: 91,56
|
||||||
|
Owner: Neutral
|
||||||
|
Actor31: sbag
|
||||||
|
Location: 92,56
|
||||||
|
Owner: Neutral
|
||||||
|
Actor32: sbag
|
||||||
|
Location: 67,57
|
||||||
|
Owner: Neutral
|
||||||
|
Actor33: sbag
|
||||||
|
Location: 68,57
|
||||||
|
Owner: Neutral
|
||||||
|
Actor34: sbag
|
||||||
|
Location: 69,57
|
||||||
|
Owner: Neutral
|
||||||
|
Actor35: sbag
|
||||||
|
Location: 70,57
|
||||||
|
Owner: Neutral
|
||||||
|
Actor36: sbag
|
||||||
|
Location: 71,57
|
||||||
|
Owner: Neutral
|
||||||
|
Actor37: sbag
|
||||||
|
Location: 72,57
|
||||||
|
Owner: Neutral
|
||||||
|
Actor38: sbag
|
||||||
|
Location: 78,58
|
||||||
|
Owner: Neutral
|
||||||
|
Actor39: sbag
|
||||||
|
Location: 79,58
|
||||||
|
Owner: Neutral
|
||||||
|
Actor40: sbag
|
||||||
|
Location: 80,58
|
||||||
|
Owner: Neutral
|
||||||
|
Actor41: sbag
|
||||||
|
Location: 81,58
|
||||||
|
Owner: Neutral
|
||||||
|
Actor42: sbag
|
||||||
|
Location: 82,58
|
||||||
|
Owner: Neutral
|
||||||
|
Actor43: sbag
|
||||||
|
Location: 83,58
|
||||||
|
Owner: Neutral
|
||||||
|
Actor44: sbag
|
||||||
|
Location: 57,69
|
||||||
|
Owner: Neutral
|
||||||
|
Actor45: sbag
|
||||||
|
Location: 61,69
|
||||||
|
Owner: Neutral
|
||||||
|
Actor46: sbag
|
||||||
|
Location: 44,72
|
||||||
|
Owner: Neutral
|
||||||
|
Actor47: sbag
|
||||||
|
Location: 48,72
|
||||||
|
Owner: Neutral
|
||||||
|
Actor48: tc04
|
||||||
|
Location: 97,67
|
||||||
|
Owner: Neutral
|
||||||
|
Actor49: tc05
|
||||||
|
Location: 71,79
|
||||||
|
Owner: Neutral
|
||||||
|
Actor50: t10
|
||||||
|
Location: 100,59
|
||||||
|
Owner: Neutral
|
||||||
|
Actor51: t13
|
||||||
|
Location: 78,50
|
||||||
|
Owner: Neutral
|
||||||
|
Actor52: tc01
|
||||||
|
Location: 68,55
|
||||||
|
Owner: Neutral
|
||||||
|
Actor53: t08
|
||||||
|
Location: 73,47
|
||||||
|
Owner: Neutral
|
||||||
|
Actor54: tc01
|
||||||
|
Location: 29,86
|
||||||
|
Owner: Neutral
|
||||||
|
Actor55: t08
|
||||||
|
Location: 36,84
|
||||||
|
Owner: Neutral
|
||||||
|
Actor56: t06
|
||||||
|
Location: 36,87
|
||||||
|
Owner: Neutral
|
||||||
|
Actor57: t11
|
||||||
|
Location: 38,74
|
||||||
|
Owner: Neutral
|
||||||
|
Actor58: tc02
|
||||||
|
Location: 42,75
|
||||||
|
Owner: Neutral
|
||||||
|
Actor59: tc03
|
||||||
|
Location: 60,80
|
||||||
|
Owner: Neutral
|
||||||
|
Actor60: tc05
|
||||||
|
Location: 54,73
|
||||||
|
Owner: Neutral
|
||||||
|
Actor61: tc01
|
||||||
|
Location: 47,87
|
||||||
|
Owner: Neutral
|
||||||
|
Actor62: t16
|
||||||
|
Location: 56,79
|
||||||
|
Owner: Neutral
|
||||||
|
Actor63: tc04
|
||||||
|
Location: 79,70
|
||||||
|
Owner: Neutral
|
||||||
|
Actor64: tc01
|
||||||
|
Location: 108,73
|
||||||
|
Owner: Neutral
|
||||||
|
Actor65: t07
|
||||||
|
Location: 94,60
|
||||||
|
Owner: Neutral
|
||||||
|
Actor66: tc05
|
||||||
|
Location: 91,66
|
||||||
|
Owner: Neutral
|
||||||
|
Actor67: t17
|
||||||
|
Location: 82,64
|
||||||
|
Owner: Neutral
|
||||||
|
Actor68: tc04
|
||||||
|
Location: 28,80
|
||||||
|
Owner: Neutral
|
||||||
|
Actor69: tc05
|
||||||
|
Location: 29,75
|
||||||
|
Owner: Neutral
|
||||||
|
Actor70: tc02
|
||||||
|
Location: 27,76
|
||||||
|
Owner: Neutral
|
||||||
|
Actor71: t17
|
||||||
|
Location: 42,52
|
||||||
|
Owner: Neutral
|
||||||
|
Actor72: t01
|
||||||
|
Location: 53,81
|
||||||
|
Owner: Neutral
|
||||||
|
Actor73: tc01
|
||||||
|
Location: 99,77
|
||||||
|
Owner: Neutral
|
||||||
|
Actor74: mine
|
||||||
|
Location: 106,86
|
||||||
|
Owner: Neutral
|
||||||
|
Actor75: mine
|
||||||
|
Location: 70,87
|
||||||
|
Owner: Neutral
|
||||||
|
Actor76: tc04
|
||||||
|
Location: 39,46
|
||||||
|
Owner: Neutral
|
||||||
|
Actor77: tc05
|
||||||
|
Location: 45,61
|
||||||
|
Owner: Neutral
|
||||||
|
Actor78: tc02
|
||||||
|
Location: 41,48
|
||||||
|
Owner: Neutral
|
||||||
|
Actor79: tc04
|
||||||
|
Location: 98,45
|
||||||
|
Owner: Neutral
|
||||||
|
Actor80: t15
|
||||||
|
Location: 95,48
|
||||||
|
Owner: Neutral
|
||||||
|
Actor81: tc03
|
||||||
|
Location: 38,68
|
||||||
|
Owner: Neutral
|
||||||
|
Actor82: t08
|
||||||
|
Location: 38,67
|
||||||
|
Owner: Neutral
|
||||||
|
Actor83: t08
|
||||||
|
Location: 40,69
|
||||||
|
Owner: Neutral
|
||||||
|
Actor84: tc05
|
||||||
|
Location: 38,79
|
||||||
|
Owner: Neutral
|
||||||
|
Actor104: brl3
|
||||||
|
Location: 95,50
|
||||||
|
Owner: Greece
|
||||||
|
Actor105: barl
|
||||||
|
Location: 93,49
|
||||||
|
Owner: Greece
|
||||||
|
Actor106: brl3
|
||||||
|
Location: 94,50
|
||||||
|
Owner: Greece
|
||||||
|
Actor107: barl
|
||||||
|
Location: 93,50
|
||||||
|
Owner: Greece
|
||||||
|
Actor108: v19
|
||||||
|
Location: 92,48
|
||||||
|
Owner: Greece
|
||||||
|
Actor110: brl3
|
||||||
|
Location: 83,57
|
||||||
|
Owner: Greece
|
||||||
|
Actor111: barl
|
||||||
|
Location: 82,57
|
||||||
|
Owner: Greece
|
||||||
|
Actor112: barl
|
||||||
|
Location: 81,57
|
||||||
|
Owner: Greece
|
||||||
|
Actor113: brl3
|
||||||
|
Location: 88,55
|
||||||
|
Owner: Greece
|
||||||
|
Actor114: barl
|
||||||
|
Location: 87,55
|
||||||
|
Owner: Greece
|
||||||
|
Actor115: brl3
|
||||||
|
Location: 87,56
|
||||||
|
Owner: Greece
|
||||||
|
Actor116: brl3
|
||||||
|
Location: 57,46
|
||||||
|
Owner: Greece
|
||||||
|
Actor117: barl
|
||||||
|
Location: 57,47
|
||||||
|
Owner: Greece
|
||||||
|
Actor118: brl3
|
||||||
|
Location: 92,50
|
||||||
|
Owner: Greece
|
||||||
|
Actor119: barl
|
||||||
|
Location: 92,49
|
||||||
|
Owner: Greece
|
||||||
|
Actor120: barl
|
||||||
|
Location: 94,49
|
||||||
|
Owner: Greece
|
||||||
|
Actor133: 2tnk
|
||||||
|
Location: 69,54
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 64
|
||||||
|
Actor136: 1tnk
|
||||||
|
Location: 59,68
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 128
|
||||||
|
Actor137: 1tnk
|
||||||
|
Location: 46,71
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 128
|
||||||
|
Actor139: jeep
|
||||||
|
Location: 57,54
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 96
|
||||||
|
Actor140: 1tnk
|
||||||
|
Location: 62,46
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor141: 1tnk
|
||||||
|
Location: 60,57
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 128
|
||||||
|
Actor142: 1tnk
|
||||||
|
Location: 54,57
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 128
|
||||||
|
Actor143: 2tnk
|
||||||
|
Location: 92,53
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 192
|
||||||
|
Actor144: 2tnk
|
||||||
|
Location: 92,55
|
||||||
|
Owner: Greece
|
||||||
|
Health: 99
|
||||||
|
Facing: 192
|
||||||
|
Actor145: 2tnk
|
||||||
|
Location: 86,58
|
||||||
|
Owner: Greece
|
||||||
|
Health: 99
|
||||||
|
Facing: 160
|
||||||
|
Actor146: jeep
|
||||||
|
Location: 89,60
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor151: 2tnk
|
||||||
|
Location: 40,55
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 128
|
||||||
|
Actor152: 2tnk
|
||||||
|
Location: 44,55
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 128
|
||||||
|
Actor154: 2tnk
|
||||||
|
Location: 67,64
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor155: 2tnk
|
||||||
|
Location: 69,63
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor159: mine
|
||||||
|
Location: 77,46
|
||||||
|
Owner: Neutral
|
||||||
|
Radar: dome
|
||||||
|
Location: 49,46
|
||||||
|
Owner: Greece
|
||||||
|
CYard: fact
|
||||||
|
Location: 58,45
|
||||||
|
Owner: Greece
|
||||||
|
Proc: proc
|
||||||
|
Location: 63,53
|
||||||
|
Owner: Greece
|
||||||
|
FreeActor: False
|
||||||
|
Silo1: silo
|
||||||
|
Location: 62,52
|
||||||
|
Owner: Greece
|
||||||
|
Silo2: silo
|
||||||
|
Location: 63,53
|
||||||
|
Owner: Greece
|
||||||
|
Silo3: silo
|
||||||
|
Location: 65,52
|
||||||
|
Owner: Greece
|
||||||
|
Silo4: silo
|
||||||
|
Location: 66,53
|
||||||
|
Owner: Greece
|
||||||
|
Barr: tent
|
||||||
|
Location: 50,52
|
||||||
|
Owner: Greece
|
||||||
|
Gun1: gun
|
||||||
|
Location: 87,57
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 96
|
||||||
|
Gun2: gun
|
||||||
|
Location: 84,58
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 96
|
||||||
|
Gun3: gun
|
||||||
|
Location: 53,48
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 96
|
||||||
|
Gun4: gun
|
||||||
|
Location: 67,65
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 96
|
||||||
|
Gun5: gun
|
||||||
|
Location: 70,63
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 96
|
||||||
|
Pbox1: pbox
|
||||||
|
Location: 57,70
|
||||||
|
Owner: Greece
|
||||||
|
Pbox2: powr
|
||||||
|
Location: 51,45
|
||||||
|
Owner: Greece
|
||||||
|
Pbox3: pbox
|
||||||
|
Location: 61,70
|
||||||
|
Owner: Greece
|
||||||
|
Pbox4: pbox
|
||||||
|
Location: 67,63
|
||||||
|
Owner: Greece
|
||||||
|
Pbox5: pbox
|
||||||
|
Location: 44,73
|
||||||
|
Owner: Greece
|
||||||
|
Pbox6: pbox
|
||||||
|
Location: 48,73
|
||||||
|
Owner: Greece
|
||||||
|
village1: v11
|
||||||
|
Location: 57,80
|
||||||
|
Owner: Spain
|
||||||
|
village2: v03
|
||||||
|
Location: 49,77
|
||||||
|
Owner: Spain
|
||||||
|
Health: 75
|
||||||
|
village3: v02
|
||||||
|
Location: 43,77
|
||||||
|
Owner: Spain
|
||||||
|
village4: v01
|
||||||
|
Location: 40,75
|
||||||
|
Owner: Spain
|
||||||
|
village5: v05
|
||||||
|
Location: 55,76
|
||||||
|
Owner: Spain
|
||||||
|
Health: 39
|
||||||
|
Weap: weap
|
||||||
|
Location: 67,45
|
||||||
|
Owner: Greece
|
||||||
|
Gap1: gap
|
||||||
|
Location: 83,51
|
||||||
|
Owner: Greece
|
||||||
|
Gap2: gap
|
||||||
|
Location: 59,65
|
||||||
|
Owner: Greece
|
||||||
|
Powr1: powr
|
||||||
|
Location: 47,47
|
||||||
|
Owner: Greece
|
||||||
|
Powr2: powr
|
||||||
|
Location: 93,46
|
||||||
|
Owner: Greece
|
||||||
|
Powr3: powr
|
||||||
|
Location: 96,45
|
||||||
|
Owner: Greece
|
||||||
|
APwr: apwr
|
||||||
|
Location: 49,56
|
||||||
|
Owner: Greece
|
||||||
|
Fix1: fix
|
||||||
|
Location: 56,55
|
||||||
|
Owner: Greece
|
||||||
|
Tank1: 3tnk
|
||||||
|
Location: 88,87
|
||||||
|
Owner: USSR
|
||||||
|
Tank2: 3tnk
|
||||||
|
Location: 84,87
|
||||||
|
Owner: USSR
|
||||||
|
Tank3: 3tnk
|
||||||
|
Location: 87,86
|
||||||
|
Owner: USSR
|
||||||
|
Health: 99
|
||||||
|
Tank4: 3tnk
|
||||||
|
Location: 85,86
|
||||||
|
Owner: USSR
|
||||||
|
Tank5: v2rl
|
||||||
|
Location: 86,87
|
||||||
|
Owner: USSR
|
||||||
|
civ1: c6
|
||||||
|
Location: 53,80
|
||||||
|
Owner: Spain
|
||||||
|
Facing: 64
|
||||||
|
SubCell: 2
|
||||||
|
civ2: c7
|
||||||
|
Location: 58,79
|
||||||
|
Owner: Spain
|
||||||
|
SubCell: 3
|
||||||
|
civ3: c5
|
||||||
|
Location: 57,81
|
||||||
|
Owner: Spain
|
||||||
|
Facing: 64
|
||||||
|
SubCell: 3
|
||||||
|
Harvester: harv
|
||||||
|
Location: 76,47
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Runner1: jeep
|
||||||
|
Location: 88,83
|
||||||
|
Owner: Greece
|
||||||
|
Runner2: jeep
|
||||||
|
Location: 84,83
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 64
|
||||||
|
GreeceCYard: waypoint
|
||||||
|
Location: 59,47
|
||||||
|
Owner: Neutral
|
||||||
|
BridgeEntrancePoint: waypoint
|
||||||
|
Location: 83,55
|
||||||
|
Owner: Neutral
|
||||||
|
SovietBasePoint: waypoint
|
||||||
|
Location: 86,88
|
||||||
|
Owner: Neutral
|
||||||
|
ToRadarPoint: waypoint
|
||||||
|
Location: 42,60
|
||||||
|
Owner: Neutral
|
||||||
|
InVillagePoint: waypoint
|
||||||
|
Location: 56,82
|
||||||
|
Owner: Neutral
|
||||||
|
NRoadPoint: waypoint
|
||||||
|
Location: 80,45
|
||||||
|
Owner: Neutral
|
||||||
|
SWRoadPoint: waypoint
|
||||||
|
Location: 38,90
|
||||||
|
Owner: Neutral
|
||||||
|
VillagePoint: waypoint
|
||||||
|
Location: 57,80
|
||||||
|
Owner: Neutral
|
||||||
|
CrossroadsNorthPoint: waypoint
|
||||||
|
Location: 80,49
|
||||||
|
Owner: Neutral
|
||||||
|
StartPoint: waypoint
|
||||||
|
Location: 86,90
|
||||||
|
Owner: Neutral
|
||||||
|
SovietBaseEntryPointW: waypoint
|
||||||
|
Location: 69,79
|
||||||
|
Owner: Neutral
|
||||||
|
NearRadarPoint: waypoint
|
||||||
|
Location: 43,47
|
||||||
|
Owner: Neutral
|
||||||
|
NERoadTurnPoint: waypoint
|
||||||
|
Location: 106,54
|
||||||
|
Owner: Neutral
|
||||||
|
CrossroadsEastPoint: waypoint
|
||||||
|
Location: 106,64
|
||||||
|
Owner: Neutral
|
||||||
|
VillageEntrancePoint: waypoint
|
||||||
|
Location: 59,75
|
||||||
|
Owner: Neutral
|
||||||
|
StartCamPoint: waypoint
|
||||||
|
Location: 86,87
|
||||||
|
Owner: Neutral
|
||||||
|
SovietBaseEntryPointNE: waypoint
|
||||||
|
Location: 96,77
|
||||||
|
Owner: Neutral
|
||||||
|
V2MovePoint: waypoint
|
||||||
|
Location: 84,83
|
||||||
|
Owner: Neutral
|
||||||
|
|
||||||
|
Smudges:
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
Player:
|
||||||
|
-ConquestVictoryConditions:
|
||||||
|
-EnemyWatcher:
|
||||||
|
MissionObjectives:
|
||||||
|
EarlyGameOver: true
|
||||||
|
World:
|
||||||
|
-CrateSpawner:
|
||||||
|
-SpawnMPUnits:
|
||||||
|
-MPStartLocations:
|
||||||
|
LuaScript:
|
||||||
|
Scripts: main.lua, AI.lua, reinforcements_teams.lua
|
||||||
|
ObjectivesPanel:
|
||||||
|
PanelName: MISSION_OBJECTIVES
|
||||||
|
^Infantry:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Tank:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
Demolishable:
|
||||||
|
^Vehicle:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
Demolishable:
|
||||||
|
^Building:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Wall:
|
||||||
|
Tooltip:
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Ship:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Plane:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Husk:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy, Ally, Neutral
|
||||||
|
GenericStancePrefix: false
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Crate:
|
||||||
|
Tooltip:
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^CivBuilding:
|
||||||
|
Tooltip:
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^TechBuilding:
|
||||||
|
Tooltip:
|
||||||
|
ShowOwnerRow: false
|
||||||
|
AFLD:
|
||||||
|
ParatroopersPower@paratroopers:
|
||||||
|
DropItems: E1,E1,E1,E2,E2
|
||||||
|
TSLA:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
SAM:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
HPAD:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
APWR:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
BRIK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
E3:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~tent
|
||||||
|
E4:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
HIJACKER:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
SPY:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
MECH:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
MCV:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
FTRK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
TRUK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
APC:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
AGUN:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
Sequences:
|
||||||
|
|
||||||
|
VoxelSequences:
|
||||||
|
|
||||||
|
Weapons:
|
||||||
|
|
||||||
|
Voices:
|
||||||
|
|
||||||
|
Notifications:
|
||||||
|
|
||||||
|
Translations:
|
||||||
80
mods/ra/maps/soviet-04a/reinforcements_teams.lua
Normal file
80
mods/ra/maps/soviet-04a/reinforcements_teams.lua
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
Civs = { civ1, civ2, civ3 }
|
||||||
|
Village = { civ1, civ2, civ3, village1, village2, village5 }
|
||||||
|
SovietMCV = { "mcv" }
|
||||||
|
InfantryReinfGreece = { "e1", "e1", "e1", "e1", "e1" }
|
||||||
|
Avengers = { "jeep", "1tnk", "2tnk", "2tnk", "1tnk" }
|
||||||
|
Patrol1Group = { "jeep", "jeep", "2tnk", "2tnk" }
|
||||||
|
Patrol2Group = { "jeep", "1tnk", "1tnk", "1tnk" }
|
||||||
|
AlliedInfantryTypes = { "e1", "e3" }
|
||||||
|
AlliedArmorTypes = { "jeep", "jeep", "1tnk", "1tnk", "1tnk" }
|
||||||
|
InfAttack = { }
|
||||||
|
ArmorAttack = { }
|
||||||
|
|
||||||
|
SovietStartToBasePath = { StartPoint.Location, SovietBasePoint.Location }
|
||||||
|
InfReinfPath = { SWRoadPoint.Location, InVillagePoint.Location }
|
||||||
|
ArmorReinfPath = { NRoadPoint.Location, CrossroadsNorthPoint.Location }
|
||||||
|
Patrol1Path = { NearRadarPoint.Location, ToRadarPoint.Location, InVillagePoint.Location, ToRadarPoint.Location }
|
||||||
|
Patrol2Path = { BridgeEntrancePoint.Location, NERoadTurnPoint.Location, CrossroadsEastPoint.Location, BridgeEntrancePoint.Location }
|
||||||
|
|
||||||
|
VillageCamArea = { CPos.New(68, 75),CPos.New(68, 76),CPos.New(68, 77),CPos.New(68, 78),CPos.New(68, 79), CPos.New(68, 80), CPos.New(68, 81), CPos.New(68, 82) }
|
||||||
|
|
||||||
|
if Map.Difficulty == "Easy" then
|
||||||
|
ArmorReinfGreece = { "jeep", "1tnk", "1tnk" }
|
||||||
|
else
|
||||||
|
ArmorReinfGreece = { "jeep", "jeep", "1tnk", "1tnk", "1tnk" }
|
||||||
|
end
|
||||||
|
|
||||||
|
AttackPaths =
|
||||||
|
{
|
||||||
|
{ VillageEntrancePoint },
|
||||||
|
{ BridgeEntrancePoint, NERoadTurnPoint, CrossroadsEastPoint }
|
||||||
|
}
|
||||||
|
|
||||||
|
ReinfInf = function()
|
||||||
|
Reinforcements.Reinforce(Greece, InfantryReinfGreece, InfReinfPath, 0, function(soldier)
|
||||||
|
soldier.Hunt()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
ReinfArmor = function()
|
||||||
|
if not Radar.IsDead and Radar.Owner == Greece then
|
||||||
|
RCheck = true
|
||||||
|
Reinforcements.Reinforce(Greece, ArmorReinfGreece, ArmorReinfPath, 0, function(soldier)
|
||||||
|
soldier.Hunt()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
BringPatrol1 = function()
|
||||||
|
local units = Reinforcements.Reinforce(Greece, Patrol1Group, { SWRoadPoint.Location }, 0)
|
||||||
|
Utils.Do(units, function(patrols)
|
||||||
|
patrols.Patrol(Patrol1Path, true, 250)
|
||||||
|
end)
|
||||||
|
|
||||||
|
if not Radar.IsDead and Radar.Owner == Greece then
|
||||||
|
Trigger.OnAllKilled(units, function()
|
||||||
|
if Map.Difficulty == "Hard" then
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(4), BringPatrol1)
|
||||||
|
else
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(7), BringPatrol1)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
BringPatrol2 = function()
|
||||||
|
local units = Reinforcements.Reinforce(Greece, Patrol2Group, { NRoadPoint.Location }, 0)
|
||||||
|
Utils.Do(units, function(patrols)
|
||||||
|
patrols.Patrol(Patrol2Path, true, 250)
|
||||||
|
end)
|
||||||
|
|
||||||
|
if not Radar.IsDead and Radar.Owner == Greece then
|
||||||
|
Trigger.OnAllKilled(units, function()
|
||||||
|
if Map.Difficulty == "Hard" then
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(4), BringPatrol2)
|
||||||
|
else
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(7), BringPatrol2)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
111
mods/ra/maps/soviet-04b/AI.lua
Normal file
111
mods/ra/maps/soviet-04b/AI.lua
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end
|
||||||
|
|
||||||
|
IdlingUnits = function()
|
||||||
|
local lazyUnits = Greece.GetGroundAttackers()
|
||||||
|
|
||||||
|
Utils.Do(lazyUnits, function(unit)
|
||||||
|
Trigger.OnDamaged(unit, function()
|
||||||
|
Trigger.ClearAll(unit)
|
||||||
|
Trigger.AfterDelay(0, function() IdleHunt(unit) end)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
BaseBuildings =
|
||||||
|
{
|
||||||
|
{ "powr", CVec.New(-4, -2), 300, true },
|
||||||
|
{ "tent", CVec.New(-8, 1), 400, true },
|
||||||
|
{ "proc", CVec.New(-5, 1), 1400, true },
|
||||||
|
{ "weap", CVec.New(-12, -1), 2000, true }
|
||||||
|
}
|
||||||
|
|
||||||
|
BuildBase = function()
|
||||||
|
if CYard.IsDead or CYard.Owner ~= Greece then
|
||||||
|
return
|
||||||
|
elseif Harvester.IsDead and Greece.Resources <= 299 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
for i,v in ipairs(BaseBuildings) do
|
||||||
|
if not v[4] then
|
||||||
|
BuildBuilding(v)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(10), BuildBase)
|
||||||
|
end
|
||||||
|
|
||||||
|
BuildBuilding = function(building)
|
||||||
|
Trigger.AfterDelay(Actor.BuildTime(building[1]), function()
|
||||||
|
local actor = Actor.Create(building[1], true, { Owner = Greece, Location = GreeceCYard.Location + building[2] })
|
||||||
|
Greece.Cash = Greece.Cash - building[3]
|
||||||
|
|
||||||
|
building[4] = true
|
||||||
|
Trigger.OnKilled(actor, function() building[4] = true end)
|
||||||
|
Trigger.OnDamaged(actor, function(building)
|
||||||
|
if building.Owner == Greece and building.Health < building.MaxHealth * 3/4 then
|
||||||
|
building.StartBuildingRepairs()
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(10), BuildBase)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
ProduceInfantry = function()
|
||||||
|
if not BaseBuildings[2][4] then
|
||||||
|
return
|
||||||
|
elseif Harvester.IsDead and Greece.Resources <= 299 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local delay = Utils.RandomInteger(DateTime.Seconds(3), DateTime.Seconds(9))
|
||||||
|
local toBuild = { Utils.Random(AlliedInfantryTypes) }
|
||||||
|
local Path = Utils.Random(AttackPaths)
|
||||||
|
Greece.Build(toBuild, function(unit)
|
||||||
|
InfAttack[#InfAttack + 1] = unit[1]
|
||||||
|
|
||||||
|
if #InfAttack >= 10 then
|
||||||
|
SendUnits(InfAttack, Path)
|
||||||
|
InfAttack = { }
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(2), ProduceInfantry)
|
||||||
|
else
|
||||||
|
Trigger.AfterDelay(delay, ProduceInfantry)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
ProduceArmor = function()
|
||||||
|
if not BaseBuildings[4][4] then
|
||||||
|
return
|
||||||
|
elseif Harvester.IsDead and Greece.Resources <= 599 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local delay = Utils.RandomInteger(DateTime.Seconds(12), DateTime.Seconds(17))
|
||||||
|
local toBuild = { Utils.Random(AlliedArmorTypes) }
|
||||||
|
local Path = Utils.Random(AttackPaths)
|
||||||
|
Greece.Build(toBuild, function(unit)
|
||||||
|
ArmorAttack[#ArmorAttack + 1] = unit[1]
|
||||||
|
|
||||||
|
if #ArmorAttack >= 6 then
|
||||||
|
SendUnits(ArmorAttack, Path)
|
||||||
|
ArmorAttack = { }
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(3), ProduceArmor)
|
||||||
|
else
|
||||||
|
Trigger.AfterDelay(delay, ProduceArmor)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
SendUnits = function(units, waypoints)
|
||||||
|
Utils.Do(units, function(unit)
|
||||||
|
if not unit.IsDead then
|
||||||
|
Utils.Do(waypoints, function(waypoint)
|
||||||
|
unit.AttackMove(waypoint.Location)
|
||||||
|
end)
|
||||||
|
unit.Hunt()
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
141
mods/ra/maps/soviet-04b/main.lua
Normal file
141
mods/ra/maps/soviet-04b/main.lua
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
|
||||||
|
RunInitialActivities = function()
|
||||||
|
Harvester.FindResources()
|
||||||
|
Helper.Destroy()
|
||||||
|
IdlingUnits()
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
||||||
|
BringPatrol1()
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
||||||
|
BringPatrol2()
|
||||||
|
end)
|
||||||
|
BuildBase()
|
||||||
|
end)
|
||||||
|
|
||||||
|
Utils.Do(Map.NamedActors, function(actor)
|
||||||
|
if actor.Owner == Greece and actor.HasProperty("StartBuildingRepairs") then
|
||||||
|
Trigger.OnDamaged(actor, function(building)
|
||||||
|
if building.Owner == Greece and building.Health < 3/4 * building.MaxHealth then
|
||||||
|
building.StartBuildingRepairs()
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(Powr, function(building)
|
||||||
|
BaseBuildings[1][4] = false
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(Barr, function(building)
|
||||||
|
BaseBuildings[2][4] = false
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(Proc, function(building)
|
||||||
|
BaseBuildings[3][4] = false
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(Weap, function(building)
|
||||||
|
BaseBuildings[4][4] = false
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnEnteredFootprint(VillageCamArea, function(actor, id)
|
||||||
|
if actor.Owner == player then
|
||||||
|
local camera = Actor.Create("camera", true, { Owner = player, Location = VillagePoint.Location })
|
||||||
|
Trigger.RemoveFootprintTrigger(id)
|
||||||
|
Trigger.OnAllKilled(Village, function()
|
||||||
|
camera.Destroy()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnAnyKilled(Civs, function()
|
||||||
|
Trigger.ClearAll(civ1)
|
||||||
|
Trigger.ClearAll(civ2)
|
||||||
|
Trigger.ClearAll(civ3)
|
||||||
|
Trigger.ClearAll(civ4)
|
||||||
|
local units = Reinforcements.Reinforce(Greece, Avengers, { NRoadPoint.Location }, 0)
|
||||||
|
Utils.Do(units, function(unit)
|
||||||
|
unit.Hunt()
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(1), ProduceInfantry)
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(2), ProduceArmor)
|
||||||
|
|
||||||
|
if Map.Difficulty == "Hard" or Map.Difficulty == "Medium" then
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(5), ReinfInf)
|
||||||
|
end
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(1), ReinfInf)
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(3), ReinfInf)
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(2), ReinfArmor)
|
||||||
|
end
|
||||||
|
|
||||||
|
Tick = function()
|
||||||
|
if Greece.HasNoRequiredUnits() then
|
||||||
|
player.MarkCompletedObjective(KillAll)
|
||||||
|
player.MarkCompletedObjective(KillRadar)
|
||||||
|
end
|
||||||
|
|
||||||
|
if player.HasNoRequiredUnits() then
|
||||||
|
Greece.MarkCompletedObjective(BeatUSSR)
|
||||||
|
end
|
||||||
|
|
||||||
|
if Greece.Resources >= Greece.ResourceCapacity * 0.75 then
|
||||||
|
Greece.Cash = Greece.Cash + Greece.Resources - Greece.ResourceCapacity * 0.25
|
||||||
|
Greece.Resources = Greece.ResourceCapacity * 0.25
|
||||||
|
end
|
||||||
|
|
||||||
|
if RCheck then
|
||||||
|
RCheck = false
|
||||||
|
if Map.Difficulty == "Hard" then
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(150), ReinfArmor)
|
||||||
|
elseif Map.Difficulty == "Medium" then
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(5), ReinfArmor)
|
||||||
|
else
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(8), ReinfArmor)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
WorldLoaded = function()
|
||||||
|
player = Player.GetPlayer("USSR")
|
||||||
|
Greece = Player.GetPlayer("Greece")
|
||||||
|
|
||||||
|
RunInitialActivities()
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
KillAll = player.AddPrimaryObjective("Defeat the Allied forces.")
|
||||||
|
BeatUSSR = Greece.AddPrimaryObjective("Defeat the Soviet forces.")
|
||||||
|
KillRadar = player.AddSecondaryObjective("Destroy Allied Radar Dome to stop enemy\nreinforcements.")
|
||||||
|
|
||||||
|
Trigger.OnPlayerLost(player, function()
|
||||||
|
Media.PlaySpeechNotification(player, "Lose")
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnPlayerWon(player, function()
|
||||||
|
Media.PlaySpeechNotification(player, "Win")
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(Radar, function()
|
||||||
|
player.MarkCompletedObjective(KillRadar)
|
||||||
|
Media.PlaySpeechNotification(player, "ObjectiveMet")
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnDamaged(Harvester, function()
|
||||||
|
Utils.Do(Guards, function(unit)
|
||||||
|
if not unit.IsDead and not Harvester.IsDead then
|
||||||
|
unit.AttackMove(Harvester.Location)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Camera.Position = StartCamPoint.CenterPosition
|
||||||
|
end
|
||||||
BIN
mods/ra/maps/soviet-04b/map.bin
Normal file
BIN
mods/ra/maps/soviet-04b/map.bin
Normal file
Binary file not shown.
BIN
mods/ra/maps/soviet-04b/map.png
Normal file
BIN
mods/ra/maps/soviet-04b/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
788
mods/ra/maps/soviet-04b/map.yaml
Normal file
788
mods/ra/maps/soviet-04b/map.yaml
Normal file
@@ -0,0 +1,788 @@
|
|||||||
|
MapFormat: 7
|
||||||
|
|
||||||
|
RequiresMod: ra
|
||||||
|
|
||||||
|
Title: Soviet 04b: Behind the lines
|
||||||
|
|
||||||
|
Description: The Allied base in this region is proving to be problematic.\n\nYour mission is to take it out so that we can begin to move forces through this area.\n\nAs long as they have communications they will be able to call upon heavy reinforcements.\n\nCrush their communications, and they should be easier to remove.
|
||||||
|
|
||||||
|
Author: Westwood Studios
|
||||||
|
|
||||||
|
Tileset: SNOW
|
||||||
|
|
||||||
|
MapSize: 128,128
|
||||||
|
|
||||||
|
Bounds: 28,45,91,49
|
||||||
|
|
||||||
|
Visibility: MissionSelector
|
||||||
|
|
||||||
|
Type: Campaign
|
||||||
|
|
||||||
|
Videos:
|
||||||
|
Briefing: soviet4.vqa
|
||||||
|
GameStart: sovmcv.vqa
|
||||||
|
GameWon: radrraid.vqa
|
||||||
|
GameLost: allymorf.vqa
|
||||||
|
|
||||||
|
Options:
|
||||||
|
Crates: False
|
||||||
|
Fog: True
|
||||||
|
Shroud: True
|
||||||
|
AllyBuildRadius: False
|
||||||
|
FragileAlliances: False
|
||||||
|
StartingCash: 5000
|
||||||
|
TechLevel: Medium
|
||||||
|
ConfigurableStartingUnits: False
|
||||||
|
Difficulties: Easy, Normal, Hard
|
||||||
|
ShortGame: False
|
||||||
|
|
||||||
|
Players:
|
||||||
|
PlayerReference@Neutral:
|
||||||
|
Name: Neutral
|
||||||
|
OwnsWorld: True
|
||||||
|
NonCombatant: True
|
||||||
|
Faction: england
|
||||||
|
PlayerReference@Spain:
|
||||||
|
Name: Spain
|
||||||
|
Faction: england
|
||||||
|
Allies: Greece
|
||||||
|
Enemies: USSR
|
||||||
|
PlayerReference@Creeps:
|
||||||
|
Name: Creeps
|
||||||
|
NonCombatant: True
|
||||||
|
Faction: england
|
||||||
|
PlayerReference@Greece:
|
||||||
|
Name: Greece
|
||||||
|
Faction: allies
|
||||||
|
ColorRamp: 161,134,236
|
||||||
|
Allies: Spain
|
||||||
|
Enemies: USSR
|
||||||
|
PlayerReference@USSR:
|
||||||
|
Name: USSR
|
||||||
|
Playable: True
|
||||||
|
AllowBots: False
|
||||||
|
Required: True
|
||||||
|
LockFaction: True
|
||||||
|
Faction: soviet
|
||||||
|
LockColor: True
|
||||||
|
ColorRamp: 3,255,127
|
||||||
|
LockSpawn: True
|
||||||
|
LockTeam: True
|
||||||
|
Enemies: Greece, Spain
|
||||||
|
|
||||||
|
Actors:
|
||||||
|
Helper: proc
|
||||||
|
Owner: Greece
|
||||||
|
Location: 92,75
|
||||||
|
FreeActor: False
|
||||||
|
Actor0: sbag
|
||||||
|
Location: 85,50
|
||||||
|
Owner: Neutral
|
||||||
|
Actor1: sbag
|
||||||
|
Location: 86,50
|
||||||
|
Owner: Neutral
|
||||||
|
Actor2: sbag
|
||||||
|
Location: 103,50
|
||||||
|
Owner: Neutral
|
||||||
|
Actor3: sbag
|
||||||
|
Location: 104,50
|
||||||
|
Owner: Neutral
|
||||||
|
Actor4: sbag
|
||||||
|
Location: 105,50
|
||||||
|
Owner: Neutral
|
||||||
|
Actor5: sbag
|
||||||
|
Location: 106,50
|
||||||
|
Owner: Neutral
|
||||||
|
Actor6: sbag
|
||||||
|
Location: 109,50
|
||||||
|
Owner: Neutral
|
||||||
|
Actor7: sbag
|
||||||
|
Location: 110,50
|
||||||
|
Owner: Neutral
|
||||||
|
Actor8: sbag
|
||||||
|
Location: 113,50
|
||||||
|
Owner: Neutral
|
||||||
|
Actor9: sbag
|
||||||
|
Location: 114,50
|
||||||
|
Owner: Neutral
|
||||||
|
Actor10: sbag
|
||||||
|
Location: 85,51
|
||||||
|
Owner: Neutral
|
||||||
|
Actor11: sbag
|
||||||
|
Location: 106,51
|
||||||
|
Owner: Neutral
|
||||||
|
Actor12: sbag
|
||||||
|
Location: 109,51
|
||||||
|
Owner: Neutral
|
||||||
|
Actor13: sbag
|
||||||
|
Location: 114,51
|
||||||
|
Owner: Neutral
|
||||||
|
Actor14: sbag
|
||||||
|
Location: 85,52
|
||||||
|
Owner: Neutral
|
||||||
|
Actor15: sbag
|
||||||
|
Location: 106,52
|
||||||
|
Owner: Neutral
|
||||||
|
Actor16: sbag
|
||||||
|
Location: 109,52
|
||||||
|
Owner: Neutral
|
||||||
|
Actor17: sbag
|
||||||
|
Location: 114,52
|
||||||
|
Owner: Neutral
|
||||||
|
Actor18: sbag
|
||||||
|
Location: 85,53
|
||||||
|
Owner: Neutral
|
||||||
|
Actor19: sbag
|
||||||
|
Location: 106,53
|
||||||
|
Owner: Neutral
|
||||||
|
Actor20: sbag
|
||||||
|
Location: 109,53
|
||||||
|
Owner: Neutral
|
||||||
|
Actor21: sbag
|
||||||
|
Location: 110,53
|
||||||
|
Owner: Neutral
|
||||||
|
Actor22: sbag
|
||||||
|
Location: 113,53
|
||||||
|
Owner: Neutral
|
||||||
|
Actor23: sbag
|
||||||
|
Location: 114,53
|
||||||
|
Owner: Neutral
|
||||||
|
Actor24: sbag
|
||||||
|
Location: 85,54
|
||||||
|
Owner: Neutral
|
||||||
|
Actor25: sbag
|
||||||
|
Location: 106,54
|
||||||
|
Owner: Neutral
|
||||||
|
Actor26: sbag
|
||||||
|
Location: 106,55
|
||||||
|
Owner: Neutral
|
||||||
|
Actor27: sbag
|
||||||
|
Location: 106,56
|
||||||
|
Owner: Neutral
|
||||||
|
Actor28: sbag
|
||||||
|
Location: 106,57
|
||||||
|
Owner: Neutral
|
||||||
|
Actor29: sbag
|
||||||
|
Location: 106,58
|
||||||
|
Owner: Neutral
|
||||||
|
Actor30: sbag
|
||||||
|
Location: 85,59
|
||||||
|
Owner: Neutral
|
||||||
|
Actor31: sbag
|
||||||
|
Location: 106,59
|
||||||
|
Owner: Neutral
|
||||||
|
Actor32: sbag
|
||||||
|
Location: 85,60
|
||||||
|
Owner: Neutral
|
||||||
|
Actor33: sbag
|
||||||
|
Location: 106,60
|
||||||
|
Owner: Neutral
|
||||||
|
Actor34: sbag
|
||||||
|
Location: 85,61
|
||||||
|
Owner: Neutral
|
||||||
|
Actor35: sbag
|
||||||
|
Location: 106,61
|
||||||
|
Owner: Neutral
|
||||||
|
Actor36: sbag
|
||||||
|
Location: 85,62
|
||||||
|
Owner: Neutral
|
||||||
|
Actor37: sbag
|
||||||
|
Location: 101,62
|
||||||
|
Owner: Neutral
|
||||||
|
Actor38: sbag
|
||||||
|
Location: 102,62
|
||||||
|
Owner: Neutral
|
||||||
|
Actor39: sbag
|
||||||
|
Location: 103,62
|
||||||
|
Owner: Neutral
|
||||||
|
Actor40: sbag
|
||||||
|
Location: 104,62
|
||||||
|
Owner: Neutral
|
||||||
|
Actor41: sbag
|
||||||
|
Location: 105,62
|
||||||
|
Owner: Neutral
|
||||||
|
Actor42: sbag
|
||||||
|
Location: 106,62
|
||||||
|
Owner: Neutral
|
||||||
|
Actor43: sbag
|
||||||
|
Location: 85,63
|
||||||
|
Owner: Neutral
|
||||||
|
Actor44: sbag
|
||||||
|
Location: 100,63
|
||||||
|
Owner: Neutral
|
||||||
|
Actor45: sbag
|
||||||
|
Location: 101,63
|
||||||
|
Owner: Neutral
|
||||||
|
Actor46: sbag
|
||||||
|
Location: 85,64
|
||||||
|
Owner: Neutral
|
||||||
|
Actor47: sbag
|
||||||
|
Location: 86,64
|
||||||
|
Owner: Neutral
|
||||||
|
Actor48: sbag
|
||||||
|
Location: 87,64
|
||||||
|
Owner: Neutral
|
||||||
|
Actor49: sbag
|
||||||
|
Location: 88,64
|
||||||
|
Owner: Neutral
|
||||||
|
Actor50: sbag
|
||||||
|
Location: 89,64
|
||||||
|
Owner: Neutral
|
||||||
|
Actor51: sbag
|
||||||
|
Location: 90,64
|
||||||
|
Owner: Neutral
|
||||||
|
Actor52: sbag
|
||||||
|
Location: 97,64
|
||||||
|
Owner: Neutral
|
||||||
|
Actor53: sbag
|
||||||
|
Location: 98,64
|
||||||
|
Owner: Neutral
|
||||||
|
Actor54: sbag
|
||||||
|
Location: 99,64
|
||||||
|
Owner: Neutral
|
||||||
|
Actor55: sbag
|
||||||
|
Location: 100,64
|
||||||
|
Owner: Neutral
|
||||||
|
Actor56: t01
|
||||||
|
Location: 112,62
|
||||||
|
Owner: Neutral
|
||||||
|
Actor57: tc01
|
||||||
|
Location: 109,61
|
||||||
|
Owner: Neutral
|
||||||
|
Actor58: tc04
|
||||||
|
Location: 110,45
|
||||||
|
Owner: Neutral
|
||||||
|
Actor59: tc03
|
||||||
|
Location: 114,45
|
||||||
|
Owner: Neutral
|
||||||
|
Actor60: tc05
|
||||||
|
Location: 99,45
|
||||||
|
Owner: Neutral
|
||||||
|
Actor61: tc01
|
||||||
|
Location: 117,79
|
||||||
|
Owner: Neutral
|
||||||
|
Actor62: tc02
|
||||||
|
Location: 109,79
|
||||||
|
Owner: Neutral
|
||||||
|
Actor63: tc01
|
||||||
|
Location: 113,48
|
||||||
|
Owner: Neutral
|
||||||
|
Actor64: tc04
|
||||||
|
Location: 116,51
|
||||||
|
Owner: Neutral
|
||||||
|
Actor65: tc05
|
||||||
|
Location: 113,53
|
||||||
|
Owner: Neutral
|
||||||
|
Actor66: tc02
|
||||||
|
Location: 109,54
|
||||||
|
Owner: Neutral
|
||||||
|
Actor67: tc05
|
||||||
|
Location: 73,60
|
||||||
|
Owner: Neutral
|
||||||
|
Actor68: tc04
|
||||||
|
Location: 82,63
|
||||||
|
Owner: Neutral
|
||||||
|
Actor69: tc01
|
||||||
|
Location: 77,62
|
||||||
|
Owner: Neutral
|
||||||
|
Actor70: tc02
|
||||||
|
Location: 78,60
|
||||||
|
Owner: Neutral
|
||||||
|
Actor71: tc05
|
||||||
|
Location: 95,66
|
||||||
|
Owner: Neutral
|
||||||
|
Actor72: tc03
|
||||||
|
Location: 86,62
|
||||||
|
Owner: Neutral
|
||||||
|
Actor73: tc02
|
||||||
|
Location: 95,69
|
||||||
|
Owner: Neutral
|
||||||
|
Actor74: tc01
|
||||||
|
Location: 102,62
|
||||||
|
Owner: Neutral
|
||||||
|
Actor75: t11
|
||||||
|
Location: 107,61
|
||||||
|
Owner: Neutral
|
||||||
|
Actor76: tc04
|
||||||
|
Location: 82,49
|
||||||
|
Owner: Neutral
|
||||||
|
Actor77: tc04
|
||||||
|
Location: 50,69
|
||||||
|
Owner: Neutral
|
||||||
|
Actor78: tc01
|
||||||
|
Location: 58,70
|
||||||
|
Owner: Neutral
|
||||||
|
Actor79: tc01
|
||||||
|
Location: 84,89
|
||||||
|
Owner: Neutral
|
||||||
|
Actor80: tc04
|
||||||
|
Location: 94,80
|
||||||
|
Owner: Neutral
|
||||||
|
Actor81: tc05
|
||||||
|
Location: 93,85
|
||||||
|
Owner: Neutral
|
||||||
|
Actor82: tc05
|
||||||
|
Location: 29,55
|
||||||
|
Owner: Neutral
|
||||||
|
Actor83: tc03
|
||||||
|
Location: 39,48
|
||||||
|
Owner: Neutral
|
||||||
|
Actor84: tc02
|
||||||
|
Location: 29,51
|
||||||
|
Owner: Neutral
|
||||||
|
Actor85: tc01
|
||||||
|
Location: 36,56
|
||||||
|
Owner: Neutral
|
||||||
|
Actor86: tc04
|
||||||
|
Location: 42,48
|
||||||
|
Owner: Neutral
|
||||||
|
Actor87: t15
|
||||||
|
Location: 36,50
|
||||||
|
Owner: Neutral
|
||||||
|
Actor88: tc05
|
||||||
|
Location: 48,49
|
||||||
|
Owner: Neutral
|
||||||
|
Actor89: tc04
|
||||||
|
Location: 67,49
|
||||||
|
Owner: Neutral
|
||||||
|
Actor90: t17
|
||||||
|
Location: 71,71
|
||||||
|
Owner: Neutral
|
||||||
|
Actor91: tc04
|
||||||
|
Location: 50,78
|
||||||
|
Owner: Neutral
|
||||||
|
Actor92: tc04
|
||||||
|
Location: 34,65
|
||||||
|
Owner: Neutral
|
||||||
|
Actor93: tc04
|
||||||
|
Location: 57,91
|
||||||
|
Owner: Neutral
|
||||||
|
Actor94: tc05
|
||||||
|
Location: 60,91
|
||||||
|
Owner: Neutral
|
||||||
|
Actor95: tc02
|
||||||
|
Location: 72,90
|
||||||
|
Owner: Neutral
|
||||||
|
Actor114: pbox
|
||||||
|
Location: 89,65
|
||||||
|
Owner: Greece
|
||||||
|
Actor115: pbox
|
||||||
|
Location: 97,65
|
||||||
|
Owner: Greece
|
||||||
|
Actor116: pbox
|
||||||
|
Location: 84,60
|
||||||
|
Owner: Greece
|
||||||
|
Actor117: pbox
|
||||||
|
Location: 84,53
|
||||||
|
Owner: Greece
|
||||||
|
Actor118: pbox
|
||||||
|
Location: 51,71
|
||||||
|
Owner: Greece
|
||||||
|
Actor119: pbox
|
||||||
|
Location: 57,71
|
||||||
|
Owner: Greece
|
||||||
|
Actor125: gun
|
||||||
|
Location: 84,61
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 192
|
||||||
|
Actor126: gun
|
||||||
|
Location: 97,63
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 128
|
||||||
|
Actor129: 1tnk
|
||||||
|
Location: 56,71
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 96
|
||||||
|
Actor130: 1tnk
|
||||||
|
Location: 53,71
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 96
|
||||||
|
Actor135: mcv
|
||||||
|
Location: 33,90
|
||||||
|
Owner: USSR
|
||||||
|
Actor136: 1tnk
|
||||||
|
Location: 117,62
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 96
|
||||||
|
Actor137: 1tnk
|
||||||
|
Location: 114,62
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 96
|
||||||
|
Actor138: 2tnk
|
||||||
|
Location: 111,53
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 128
|
||||||
|
Actor139: 2tnk
|
||||||
|
Location: 112,53
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 128
|
||||||
|
Actor142: jeep
|
||||||
|
Location: 74,91
|
||||||
|
Owner: Greece
|
||||||
|
Actor143: jeep
|
||||||
|
Location: 48,49
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor144: 1tnk
|
||||||
|
Location: 86,90
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 32
|
||||||
|
Actor145: 1tnk
|
||||||
|
Location: 96,86
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 96
|
||||||
|
Actor146: 2tnk
|
||||||
|
Location: 96,47
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 160
|
||||||
|
Actor148: e1
|
||||||
|
Location: 76,57
|
||||||
|
Owner: Greece
|
||||||
|
SubCell: 0
|
||||||
|
Actor149: e1
|
||||||
|
Location: 77,58
|
||||||
|
Owner: Greece
|
||||||
|
SubCell: 2
|
||||||
|
Actor150: e1
|
||||||
|
Location: 76,58
|
||||||
|
Owner: Greece
|
||||||
|
SubCell: 0
|
||||||
|
Actor151: e3
|
||||||
|
Location: 73,58
|
||||||
|
Owner: Greece
|
||||||
|
SubCell: 0
|
||||||
|
Actor152: e3
|
||||||
|
Location: 72,57
|
||||||
|
Owner: Greece
|
||||||
|
SubCell: 4
|
||||||
|
Actor153: e3
|
||||||
|
Location: 72,58
|
||||||
|
Owner: Greece
|
||||||
|
SubCell: 2
|
||||||
|
Actor154: e3
|
||||||
|
Location: 95,80
|
||||||
|
Owner: Greece
|
||||||
|
SubCell: 3
|
||||||
|
Actor155: e3
|
||||||
|
Location: 96,80
|
||||||
|
Owner: Greece
|
||||||
|
SubCell: 0
|
||||||
|
Actor160: dog
|
||||||
|
Location: 33,86
|
||||||
|
Owner: USSR
|
||||||
|
SubCell: 1
|
||||||
|
Actor161: dog
|
||||||
|
Location: 34,86
|
||||||
|
Owner: USSR
|
||||||
|
SubCell: 1
|
||||||
|
Actor162: dog
|
||||||
|
Location: 33,85
|
||||||
|
Owner: USSR
|
||||||
|
SubCell: 1
|
||||||
|
Actor163: dog
|
||||||
|
Location: 34,85
|
||||||
|
Owner: USSR
|
||||||
|
SubCell: 1
|
||||||
|
Actor164: e3
|
||||||
|
Location: 102,53
|
||||||
|
Owner: Greece
|
||||||
|
SubCell: 1
|
||||||
|
Actor165: e3
|
||||||
|
Location: 95,52
|
||||||
|
Owner: Greece
|
||||||
|
SubCell: 0
|
||||||
|
Actor166: e3
|
||||||
|
Location: 102,57
|
||||||
|
Owner: Greece
|
||||||
|
SubCell: 0
|
||||||
|
Actor167: mine
|
||||||
|
Location: 37,55
|
||||||
|
Owner: Neutral
|
||||||
|
Actor168: mine
|
||||||
|
Location: 52,88
|
||||||
|
Owner: Neutral
|
||||||
|
Actor169: mine
|
||||||
|
Location: 91,87
|
||||||
|
Owner: Neutral
|
||||||
|
Radar: dome
|
||||||
|
Location: 111,50
|
||||||
|
Owner: Greece
|
||||||
|
Pbox1: pbox
|
||||||
|
Location: 111,80
|
||||||
|
Owner: Greece
|
||||||
|
Pbox2: pbox
|
||||||
|
Location: 116,80
|
||||||
|
Owner: Greece
|
||||||
|
NavyYard: syrd
|
||||||
|
Location: 78,65
|
||||||
|
Owner: Greece
|
||||||
|
CYard: fact
|
||||||
|
Location: 103,51
|
||||||
|
Owner: Greece
|
||||||
|
Proc: proc
|
||||||
|
Location: 99,54
|
||||||
|
Owner: Greece
|
||||||
|
FreeActor: False
|
||||||
|
Silo1: silo
|
||||||
|
Location: 104,55
|
||||||
|
Owner: Greece
|
||||||
|
Silo2: silo
|
||||||
|
Location: 104,56
|
||||||
|
Owner: Greece
|
||||||
|
Silo3: silo
|
||||||
|
Location: 105,56
|
||||||
|
Owner: Greece
|
||||||
|
Silo4: silo
|
||||||
|
Location: 105,55
|
||||||
|
Owner: Greece
|
||||||
|
Powr: powr
|
||||||
|
Location: 100,50
|
||||||
|
Owner: Greece
|
||||||
|
Powr2: powr
|
||||||
|
Location: 88,61
|
||||||
|
Owner: Greece
|
||||||
|
Powr3: powr
|
||||||
|
Location: 96,50
|
||||||
|
Owner: Greece
|
||||||
|
Powr4: powr
|
||||||
|
Location: 86,52
|
||||||
|
Owner: Greece
|
||||||
|
Powr5: powr
|
||||||
|
Location: 89,51
|
||||||
|
Owner: Greece
|
||||||
|
Powr6: powr
|
||||||
|
Location: 98,50
|
||||||
|
Owner: Greece
|
||||||
|
Barr: tent
|
||||||
|
Location: 96,54
|
||||||
|
Owner: Greece
|
||||||
|
Gap1: gap
|
||||||
|
Location: 86,50
|
||||||
|
Owner: Greece
|
||||||
|
Gap2: gap
|
||||||
|
Location: 90,62
|
||||||
|
Owner: Greece
|
||||||
|
Weap: weap
|
||||||
|
Location: 92,50
|
||||||
|
Owner: Greece
|
||||||
|
village1: v01
|
||||||
|
Location: 37,48
|
||||||
|
Owner: Spain
|
||||||
|
village2: v03
|
||||||
|
Location: 42,47
|
||||||
|
Owner: Spain
|
||||||
|
village3: v05
|
||||||
|
Location: 44,50
|
||||||
|
Owner: Spain
|
||||||
|
village4: v06
|
||||||
|
Location: 40,50
|
||||||
|
Owner: Spain
|
||||||
|
village5: v07
|
||||||
|
Location: 36,52
|
||||||
|
Owner: Spain
|
||||||
|
Harvester: harv
|
||||||
|
Location: 93,78
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 128
|
||||||
|
Tank1: 3tnk
|
||||||
|
Location: 32,87
|
||||||
|
Owner: USSR
|
||||||
|
Tank2: 3tnk
|
||||||
|
Location: 34,87
|
||||||
|
Owner: USSR
|
||||||
|
Tank3: v2rl
|
||||||
|
Location: 32,88
|
||||||
|
Owner: USSR
|
||||||
|
Tank4: v2rl
|
||||||
|
Location: 34,88
|
||||||
|
Owner: USSR
|
||||||
|
civ1: c1
|
||||||
|
Location: 41,53
|
||||||
|
Owner: Spain
|
||||||
|
Facing: 160
|
||||||
|
SubCell: 0
|
||||||
|
civ2: c2
|
||||||
|
Location: 47,49
|
||||||
|
Owner: Spain
|
||||||
|
Facing: 224
|
||||||
|
SubCell: 1
|
||||||
|
civ3: c3
|
||||||
|
Location: 39,51
|
||||||
|
Owner: Spain
|
||||||
|
SubCell: 2
|
||||||
|
civ4: c4
|
||||||
|
Location: 46,52
|
||||||
|
Owner: Spain
|
||||||
|
Facing: 96
|
||||||
|
SubCell: 4
|
||||||
|
Guard1: 1tnk
|
||||||
|
Location: 105,59
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 64
|
||||||
|
Guard2: 1tnk
|
||||||
|
Location: 105,60
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 64
|
||||||
|
Guard3: 2tnk
|
||||||
|
Location: 105,61
|
||||||
|
Owner: Greece
|
||||||
|
Facing: 64
|
||||||
|
NRoadPoint: waypoint
|
||||||
|
Location: 75,45
|
||||||
|
Owner: Neutral
|
||||||
|
CrossroadsPoint: waypoint
|
||||||
|
Location: 74,57
|
||||||
|
Owner: Neutral
|
||||||
|
VillagePoint: waypoint
|
||||||
|
Location: 40,58
|
||||||
|
Owner: Neutral
|
||||||
|
ToVillageRoadPoint: waypoint
|
||||||
|
Location: 52,57
|
||||||
|
Owner: Neutral
|
||||||
|
InBasePoint: waypoint
|
||||||
|
Location: 94,57
|
||||||
|
Owner: Neutral
|
||||||
|
OrefieldSouthPoint: waypoint
|
||||||
|
Location: 91,84
|
||||||
|
Owner: Neutral
|
||||||
|
ToBridgePoint: waypoint
|
||||||
|
Location: 66,66
|
||||||
|
Owner: Neutral
|
||||||
|
ToRadarBridgePoint: waypoint
|
||||||
|
Location: 107,88
|
||||||
|
Owner: Neutral
|
||||||
|
IslandPoint: waypoint
|
||||||
|
Location: 113,75
|
||||||
|
Owner: Neutral
|
||||||
|
EntranceSouthPoint: waypoint
|
||||||
|
Location: 93,67
|
||||||
|
Owner: Neutral
|
||||||
|
GreeceCYard: waypoint
|
||||||
|
Location: 104,52
|
||||||
|
Owner: Neutral
|
||||||
|
VillageCamPoint: waypoint
|
||||||
|
Location: 43,52
|
||||||
|
Owner: Neutral
|
||||||
|
StartCamPoint: waypoint
|
||||||
|
Location: 33,88
|
||||||
|
Owner: Neutral
|
||||||
|
|
||||||
|
Smudges:
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
Player:
|
||||||
|
-ConquestVictoryConditions:
|
||||||
|
-EnemyWatcher:
|
||||||
|
MissionObjectives:
|
||||||
|
EarlyGameOver: true
|
||||||
|
World:
|
||||||
|
-CrateSpawner:
|
||||||
|
-SpawnMPUnits:
|
||||||
|
-MPStartLocations:
|
||||||
|
LuaScript:
|
||||||
|
Scripts: main.lua, AI.lua, reinforcements_teams.lua
|
||||||
|
ObjectivesPanel:
|
||||||
|
PanelName: MISSION_OBJECTIVES
|
||||||
|
^Infantry:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Tank:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
Demolishable:
|
||||||
|
^Vehicle:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
Demolishable:
|
||||||
|
^Building:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Wall:
|
||||||
|
Tooltip:
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Ship:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Plane:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Husk:
|
||||||
|
Tooltip:
|
||||||
|
GenericVisibility: Enemy, Ally, Neutral
|
||||||
|
GenericStancePrefix: false
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^Crate:
|
||||||
|
Tooltip:
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^CivBuilding:
|
||||||
|
Tooltip:
|
||||||
|
ShowOwnerRow: false
|
||||||
|
^TechBuilding:
|
||||||
|
Tooltip:
|
||||||
|
ShowOwnerRow: false
|
||||||
|
AFLD:
|
||||||
|
ParatroopersPower@paratroopers:
|
||||||
|
DropItems: E1,E1,E1,E2,E2
|
||||||
|
TSLA:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
SAM:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
HPAD:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
APWR:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
BRIK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
E3:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~tent
|
||||||
|
E4:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
HIJACKER:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
SPY:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
MECH:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
MCV:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
FTRK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
TRUK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
APC:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
AGUN:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
Sequences:
|
||||||
|
|
||||||
|
VoxelSequences:
|
||||||
|
|
||||||
|
Weapons:
|
||||||
|
|
||||||
|
Voices:
|
||||||
|
|
||||||
|
Notifications:
|
||||||
|
|
||||||
|
Translations:
|
||||||
80
mods/ra/maps/soviet-04b/reinforcements_teams.lua
Normal file
80
mods/ra/maps/soviet-04b/reinforcements_teams.lua
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
Civs = { civ1, civ2, civ3, civ4 }
|
||||||
|
Village = { civ1, civ3, civ4, village1, village3 }
|
||||||
|
Guards = { Guard1, Guard2, Guard3 }
|
||||||
|
SovietMCV = { "mcv" }
|
||||||
|
InfantryReinfGreece = { "e1", "e1", "e1", "e1", "e1" }
|
||||||
|
Avengers = { "jeep", "1tnk", "2tnk", "2tnk", "1tnk" }
|
||||||
|
Patrol1Group = { "jeep", "jeep", "2tnk", "2tnk" }
|
||||||
|
Patrol2Group = { "jeep", "1tnk", "1tnk", "1tnk" }
|
||||||
|
AlliedInfantryTypes = { "e1", "e3" }
|
||||||
|
AlliedArmorTypes = { "jeep", "jeep", "1tnk", "1tnk", "1tnk" }
|
||||||
|
InfAttack = { }
|
||||||
|
ArmorAttack = { }
|
||||||
|
|
||||||
|
InfReinfPath = { NRoadPoint.Location, CrossroadsPoint.Location, ToVillageRoadPoint.Location, VillagePoint.Location }
|
||||||
|
Patrol1Path = { ToVillageRoadPoint.Location, ToBridgePoint.Location, InBasePoint.Location }
|
||||||
|
Patrol2Path = { EntranceSouthPoint.Location, ToRadarBridgePoint.Location, IslandPoint.Location, ToRadarBridgePoint.Location }
|
||||||
|
|
||||||
|
VillageCamArea = { CPos.New(37, 58),CPos.New(37, 59),CPos.New(37, 60),CPos.New(38, 60),CPos.New(39, 60), CPos.New(40, 60), CPos.New(41, 60), CPos.New(35, 57), CPos.New(34, 57), CPos.New(33, 57), CPos.New(32, 57) }
|
||||||
|
|
||||||
|
if Map.Difficulty == "Easy" then
|
||||||
|
ArmorReinfGreece = { "jeep", "1tnk", "1tnk" }
|
||||||
|
else
|
||||||
|
ArmorReinfGreece = { "jeep", "jeep", "1tnk", "1tnk", "1tnk" }
|
||||||
|
end
|
||||||
|
|
||||||
|
AttackPaths =
|
||||||
|
{
|
||||||
|
{ CrossroadsPoint, ToVillageRoadPoint, VillagePoint },
|
||||||
|
{ EntranceSouthPoint, OrefieldSouthPoint },
|
||||||
|
{ CrossroadsPoint, ToBridgePoint }
|
||||||
|
}
|
||||||
|
|
||||||
|
ReinfInf = function()
|
||||||
|
Reinforcements.Reinforce(Greece, InfantryReinfGreece, InfReinfPath, 0, function(soldier)
|
||||||
|
soldier.Hunt()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
ReinfArmor = function()
|
||||||
|
if not Radar.IsDead and Radar.Owner == Greece then
|
||||||
|
RCheck = true
|
||||||
|
Reinforcements.Reinforce(Greece, ArmorReinfGreece, InfReinfPath, 0, function(soldier)
|
||||||
|
soldier.Hunt()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
BringPatrol1 = function()
|
||||||
|
local units = Reinforcements.Reinforce(Greece, Patrol1Group, { NRoadPoint.Location }, 0)
|
||||||
|
Utils.Do(units, function(patrols)
|
||||||
|
patrols.Patrol(Patrol1Path, true, 250)
|
||||||
|
end)
|
||||||
|
|
||||||
|
if not Radar.IsDead and Radar.Owner == Greece then
|
||||||
|
Trigger.OnAllKilled(units, function()
|
||||||
|
if Map.Difficulty == "Hard" then
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(4), BringPatrol1)
|
||||||
|
else
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(7), BringPatrol1)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
BringPatrol2 = function()
|
||||||
|
local units = Reinforcements.Reinforce(Greece, Patrol2Group, { NRoadPoint.Location }, 0)
|
||||||
|
Utils.Do(units, function(patrols)
|
||||||
|
patrols.Patrol(Patrol2Path, true, 250)
|
||||||
|
end)
|
||||||
|
|
||||||
|
if not Radar.IsDead and Radar.Owner == Greece then
|
||||||
|
Trigger.OnAllKilled(units, function()
|
||||||
|
if Map.Difficulty == "Hard" then
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(4), BringPatrol2)
|
||||||
|
else
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(7), BringPatrol2)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -652,14 +652,9 @@ Rules:
|
|||||||
ShowOwnerRow: false
|
ShowOwnerRow: false
|
||||||
Demolishable:
|
Demolishable:
|
||||||
^Building:
|
^Building:
|
||||||
Capturable:
|
|
||||||
CaptureThreshold: 0.25
|
|
||||||
Tooltip:
|
Tooltip:
|
||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
ShowOwnerRow: false
|
ShowOwnerRow: false
|
||||||
^TechBuilding:
|
|
||||||
Capturable:
|
|
||||||
Type: ~disabled
|
|
||||||
^Wall:
|
^Wall:
|
||||||
Tooltip:
|
Tooltip:
|
||||||
ShowOwnerRow: false
|
ShowOwnerRow: false
|
||||||
@@ -679,6 +674,9 @@ Rules:
|
|||||||
^Crate:
|
^Crate:
|
||||||
Tooltip:
|
Tooltip:
|
||||||
ShowOwnerRow: false
|
ShowOwnerRow: false
|
||||||
|
AFLD:
|
||||||
|
ParatroopersPower@paratroopers:
|
||||||
|
DropItems: E1,E1,E1,E2,E2
|
||||||
TSLA:
|
TSLA:
|
||||||
Buildable:
|
Buildable:
|
||||||
Prerequisites: ~disabled
|
Prerequisites: ~disabled
|
||||||
@@ -731,6 +729,9 @@ Rules:
|
|||||||
powerproxy.paratroopers:
|
powerproxy.paratroopers:
|
||||||
ParatroopersPower:
|
ParatroopersPower:
|
||||||
DropItems: E1,E1,E1,E1,E1
|
DropItems: E1,E1,E1,E1,E1
|
||||||
|
AGUN:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
Sequences:
|
Sequences:
|
||||||
|
|
||||||
|
|||||||
@@ -7,4 +7,6 @@ Allied Campaign:
|
|||||||
Soviet Campaign:
|
Soviet Campaign:
|
||||||
./mods/ra/maps/soviet-01
|
./mods/ra/maps/soviet-01
|
||||||
./mods/ra/maps/soviet-02a
|
./mods/ra/maps/soviet-02a
|
||||||
|
./mods/ra/maps/soviet-04a
|
||||||
|
./mods/ra/maps/soviet-04b
|
||||||
./mods/ra/maps/soviet-05
|
./mods/ra/maps/soviet-05
|
||||||
|
|||||||
Reference in New Issue
Block a user