Add Soviet08a
This commit is contained in:
committed by
Oliver Brakmann
parent
67cba65800
commit
32968e4f4b
BIN
mods/ra/maps/soviet-08a/map.bin
Normal file
BIN
mods/ra/maps/soviet-08a/map.bin
Normal file
Binary file not shown.
BIN
mods/ra/maps/soviet-08a/map.png
Normal file
BIN
mods/ra/maps/soviet-08a/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
1065
mods/ra/maps/soviet-08a/map.yaml
Normal file
1065
mods/ra/maps/soviet-08a/map.yaml
Normal file
File diff suppressed because it is too large
Load Diff
134
mods/ra/maps/soviet-08a/rules.yaml
Normal file
134
mods/ra/maps/soviet-08a/rules.yaml
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
World:
|
||||||
|
LuaScript:
|
||||||
|
Scripts: soviet08a.lua, soviet08a-AI.lua
|
||||||
|
MissionData:
|
||||||
|
Briefing: We have detected Allied activity on Elba island. The Allies plan to use this island to stage an attack on the Soviet Empire.\n\nYou must ensure that the island ceases to be under Allied control. Destroy all Allied units on and around the island.\n\nThe local population has been aiding the Allies as well. There is only one punishment for helping the enemy - Death.
|
||||||
|
BriefingVideo: soviet8.vqa
|
||||||
|
StartVideo: slntsrvc.vqa
|
||||||
|
WinVideo: bombrun.vqa
|
||||||
|
LossVideo: allymorf.vqa
|
||||||
|
ScriptLobbyDropdown@difficulty:
|
||||||
|
ID: difficulty
|
||||||
|
Label: Difficulty
|
||||||
|
Values:
|
||||||
|
easy: Easy
|
||||||
|
normal: Normal
|
||||||
|
hard: Hard
|
||||||
|
Default: easy
|
||||||
|
|
||||||
|
Player:
|
||||||
|
PlayerResources:
|
||||||
|
DefaultCash: 5000
|
||||||
|
|
||||||
|
CAMERA:
|
||||||
|
RevealsShroud:
|
||||||
|
Range: 6c0
|
||||||
|
|
||||||
|
LST.Reinforcement:
|
||||||
|
Inherits: LST
|
||||||
|
RejectsOrders:
|
||||||
|
-Buildable:
|
||||||
|
-Selectable:
|
||||||
|
RenderSprites:
|
||||||
|
Image: lst
|
||||||
|
Interactable:
|
||||||
|
|
||||||
|
SCRIPTEDDROP:
|
||||||
|
ParatroopersPower:
|
||||||
|
DisplayBeacon: False
|
||||||
|
DropItems: E1,E1,E4,E4,E4
|
||||||
|
AlwaysVisible:
|
||||||
|
|
||||||
|
AFLD:
|
||||||
|
AirstrikePower@parabombs:
|
||||||
|
Prerequisites: aircraft.soviet
|
||||||
|
ParatroopersPower@paratroopers:
|
||||||
|
DropItems: E1,E1,E1,E2,E2
|
||||||
|
|
||||||
|
MONEYCRATE:
|
||||||
|
GiveCashCrateAction:
|
||||||
|
Amount: 2000
|
||||||
|
|
||||||
|
STEK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
ATEK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
HPAD:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
SAM:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
IRON:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
MSLO:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
TRUK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
FTRK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
4TNK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
QTNK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
MRJ:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
MIG:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
HELI:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
MSUB:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
CA:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
HIJACKER:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
GAP:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
PDOX:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
E7:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
MECH:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
E3:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~tent
|
||||||
176
mods/ra/maps/soviet-08a/soviet08a-AI.lua
Normal file
176
mods/ra/maps/soviet-08a/soviet08a-AI.lua
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
--[[
|
||||||
|
Copyright 2007-2018 The OpenRA Developers (see AUTHORS)
|
||||||
|
This file is part of OpenRA, which is free software. It is made
|
||||||
|
available to you under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation, either version 3 of
|
||||||
|
the License, or (at your option) any later version. For more
|
||||||
|
information, see COPYING.
|
||||||
|
]]
|
||||||
|
IdlingUnits = { }
|
||||||
|
|
||||||
|
DDPatrol1 = { "dd", "dd" }
|
||||||
|
DDPatrol2 = { "dd", "dd" }
|
||||||
|
DDPatrol1Path = { DDPatrol1Point1.Location, DDPatrol1Point2.Location, DDPatrol1Point3.Location, DDPatrol1Point4.Location, DDPatrol1Point5.Location, DDPatrol1Point6.Location }
|
||||||
|
DDPatrol2Path = { DDPatrol2Point1.Location, DDPatrol2Point2.Location, DDPatrol2Point3.Location, DDPatrol2Point4.Location, DDPatrol2Point5.Location, DDPatrol2Point6.Location, DDPatrol2Point7.Location }
|
||||||
|
ShipArrivePath = { DDEntry.Location, DDEntryStop.Location }
|
||||||
|
|
||||||
|
WTransWays =
|
||||||
|
{
|
||||||
|
{ WaterUnloadEntry1.Location, WaterUnload1.Location },
|
||||||
|
{ WaterUnloadEntry2.Location, WaterUnload2.Location },
|
||||||
|
{ WaterUnloadEntry3.Location, WaterUnload3.Location },
|
||||||
|
{ WaterUnloadEntry4.Location, WaterUnload4.Location },
|
||||||
|
{ WaterUnloadEntry5.Location, WaterUnload5.Location },
|
||||||
|
{ WaterUnloadEntry6.Location, WaterUnload6.Location }
|
||||||
|
}
|
||||||
|
|
||||||
|
WTransUnits =
|
||||||
|
{
|
||||||
|
hard = { { "2tnk", "1tnk", "e1", "e3", "e3" }, { "2tnk", "2tnk", "2tnk" } },
|
||||||
|
normal = { { "1tnk", "1tnk", "e3", "e3", "jeep" }, { "2tnk", "e3", "e3", "jeep" } },
|
||||||
|
easy = { { "1tnk", "e1", "e1", "e3", "e3" }, { "e3", "e3", "jeep", "jeep" } }
|
||||||
|
}
|
||||||
|
|
||||||
|
WTransDelays =
|
||||||
|
{
|
||||||
|
easy = 5,
|
||||||
|
normal = 3,
|
||||||
|
hard = 2
|
||||||
|
}
|
||||||
|
|
||||||
|
AttackGroup = { }
|
||||||
|
AttackGroupSize = 8
|
||||||
|
|
||||||
|
ProductionInterval =
|
||||||
|
{
|
||||||
|
easy = DateTime.Seconds(30),
|
||||||
|
normal = DateTime.Seconds(20),
|
||||||
|
hard = DateTime.Seconds(10)
|
||||||
|
}
|
||||||
|
|
||||||
|
AlliedInfantry = { "e1", "e3" }
|
||||||
|
AlliedVehiclesUpgradeDelay = DateTime.Minutes(15)
|
||||||
|
AlliedVehicleType = "Normal"
|
||||||
|
AlliedVehicles =
|
||||||
|
{
|
||||||
|
Normal = { "jeep", "1tnk", "1tnk" },
|
||||||
|
Upgraded = { "2tnk", "arty" }
|
||||||
|
}
|
||||||
|
|
||||||
|
IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end
|
||||||
|
|
||||||
|
WTransWaves = function()
|
||||||
|
local way = Utils.Random(WTransWays)
|
||||||
|
local units = Utils.Random(WTransUnits)
|
||||||
|
local attackUnits = Reinforcements.ReinforceWithTransport(greece, "lst", units , way, { way[2], way[1] })[2]
|
||||||
|
Utils.Do(attackUnits, function(a)
|
||||||
|
Trigger.OnAddedToWorld(a, function()
|
||||||
|
a.AttackMove(SovietStart.Location)
|
||||||
|
IdleHunt(a)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(WTransDelays), WTransWaves)
|
||||||
|
end
|
||||||
|
|
||||||
|
SendAttackGroup = function()
|
||||||
|
if #AttackGroup < AttackGroupSize then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
Utils.Do(AttackGroup, function(unit)
|
||||||
|
if not unit.IsDead then
|
||||||
|
Trigger.OnIdle(unit, unit.Hunt)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
AttackGroup = { }
|
||||||
|
end
|
||||||
|
|
||||||
|
ProduceInfantry = function()
|
||||||
|
if (GreeceTent1.IsDead or GreeceTent1.Owner ~= greece) and (GreeceTent2.IsDead or GreeceTent2.Owner ~= greece) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
greece.Build({ Utils.Random(AlliedInfantry) }, function(units)
|
||||||
|
table.insert(AttackGroup, units[1])
|
||||||
|
SendAttackGroup()
|
||||||
|
Trigger.AfterDelay(ProductionInterval[Map.LobbyOption("difficulty")], ProduceInfantry)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
ProduceVehicles = function()
|
||||||
|
if GreeceWarFactory.IsDead or GreeceWarFactory.Owner ~= greece then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
greece.Build({ Utils.Random(AlliedVehicles[AlliedVehicleType]) }, function(units)
|
||||||
|
table.insert(AttackGroup, units[1])
|
||||||
|
SendAttackGroup()
|
||||||
|
Trigger.AfterDelay(ProductionInterval[Map.LobbyOption("difficulty")], ProduceVehicles)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
BringDDPatrol1 = function()
|
||||||
|
local units = Reinforcements.Reinforce(greece, DDPatrol1, ShipArrivePath, 0)
|
||||||
|
Utils.Do(units, function(unit)
|
||||||
|
Trigger.OnIdle(unit, function(patrols)
|
||||||
|
patrols.Patrol(DDPatrol1Path, true, 200)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
if GreeceNavalYard.IsDead then
|
||||||
|
return
|
||||||
|
else
|
||||||
|
Trigger.OnAllKilled(units, function()
|
||||||
|
if Map.LobbyOption("difficulty") == "easy" then
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(7), BringDDPatrol1)
|
||||||
|
else
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(4), BringDDPatrol1)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
BringDDPatrol2 = function()
|
||||||
|
local units = Reinforcements.Reinforce(greece, DDPatrol2, ShipArrivePath, 0)
|
||||||
|
Utils.Do(units, function(unit)
|
||||||
|
Trigger.OnIdle(unit, function(patrols)
|
||||||
|
patrols.Patrol(DDPatrol2Path, true, 200)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
if GreeceNavalYard.IsDead then
|
||||||
|
return
|
||||||
|
else
|
||||||
|
Trigger.OnAllKilled(units, function()
|
||||||
|
if Map.LobbyOption("difficulty") == "easy" then
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(7), BringDDPatrol2)
|
||||||
|
else
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(4), BringDDPatrol2)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
ActivateAI = function()
|
||||||
|
local difficulty = Map.LobbyOption("difficulty")
|
||||||
|
WTransUnits = WTransUnits[difficulty]
|
||||||
|
WTransDelays = WTransDelays[difficulty]
|
||||||
|
|
||||||
|
local buildings = Utils.Where(Map.ActorsInWorld, function(self) return self.Owner == greece and self.HasProperty("StartBuildingRepairs") end)
|
||||||
|
Utils.Do(buildings, function(actor)
|
||||||
|
Trigger.OnDamaged(actor, function(building)
|
||||||
|
if building.Owner == greece and building.Health < building.MaxHealth * 3/4 then
|
||||||
|
building.StartBuildingRepairs()
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(3), WTransWaves)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(AlliedVehiclesUpgradeDelay, function() AlliedVehicleType = "Upgraded" end)
|
||||||
|
|
||||||
|
ProduceInfantry()
|
||||||
|
ProduceVehicles()
|
||||||
|
BringDDPatrol1()
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(1), BringDDPatrol2)
|
||||||
|
end
|
||||||
166
mods/ra/maps/soviet-08a/soviet08a.lua
Normal file
166
mods/ra/maps/soviet-08a/soviet08a.lua
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
--[[
|
||||||
|
Copyright 2007-2018 The OpenRA Developers (see AUTHORS)
|
||||||
|
This file is part of OpenRA, which is free software. It is made
|
||||||
|
available to you under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation, either version 3 of
|
||||||
|
the License, or (at your option) any later version. For more
|
||||||
|
information, see COPYING.
|
||||||
|
]]
|
||||||
|
alliedScouts = { Actor189, Actor216, Actor217, Actor218, Actor219 }
|
||||||
|
|
||||||
|
ussrReinforcements =
|
||||||
|
{
|
||||||
|
east =
|
||||||
|
{
|
||||||
|
actors = { "e1", "e1", "e1", "e1", "e1" },
|
||||||
|
entryPath = { EastEntry.Location, EastUnload.Location + CVec.New(1, 0) },
|
||||||
|
exitPath = { EastEntry.Location },
|
||||||
|
},
|
||||||
|
south =
|
||||||
|
{
|
||||||
|
actors = { "e4", "e4", "e1", "e1", "e1" },
|
||||||
|
entryPath = { SouthEntry.Location, SouthUnload.Location + CVec.New(0, 1) },
|
||||||
|
exitPath = { SouthEntry.Location }
|
||||||
|
},
|
||||||
|
mammoth =
|
||||||
|
{
|
||||||
|
actors = { "4tnk" },
|
||||||
|
entryPath = { SouthEntry.Location, SouthUnload.Location + CVec.New(0, 1) },
|
||||||
|
exitPath = { SouthEntry.Location }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Obj2ActorTriggerActivator = { Church, Actor147, Actor148, Actor149, Actor150, Actor151, Actor152, Actor153 }
|
||||||
|
|
||||||
|
ActivateAIDelay = DateTime.Seconds(45)
|
||||||
|
|
||||||
|
AddEastReinforcementTrigger = function()
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(30), function()
|
||||||
|
Media.PlaySpeechNotification(ussr, "ReinforcementsArrived")
|
||||||
|
local reinforcement = ussrReinforcements.east
|
||||||
|
Reinforcements.ReinforceWithTransport(ussr, "lst.reinforcement", reinforcement.actors, reinforcement.entryPath, reinforcement.exitPath)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
AddSouthReinforcementTrigger = function()
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(60), function()
|
||||||
|
Media.PlaySpeechNotification(ussr, "ReinforcementsArrived")
|
||||||
|
local reinforcement = ussrReinforcements.south
|
||||||
|
Reinforcements.ReinforceWithTransport(ussr, "lst.reinforcement", reinforcement.actors, reinforcement.entryPath, reinforcement.exitPath)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
AddParadropReinforcementTrigger = function()
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(90), function()
|
||||||
|
Media.PlaySpeechNotification(ussr, "ReinforcementsArrived")
|
||||||
|
scripteddrop.SendParatroopers(ScriptedParadrop.CenterPosition, false, 10)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
ChurchAmbushTrigger = function()
|
||||||
|
if not AmbushSwitch then
|
||||||
|
local hiding = Reinforcements.Reinforce(germany, { 'e1', 'e1', 'e1', 'e1', 'e1', 'e1', 'e1', 'e3', 'e3', 'e3' }, { ChurchAmbush.Location, AmbushMove.Location })
|
||||||
|
Utils.Do(hiding, function(actor)
|
||||||
|
IdleHunt(actor)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
AmbushSwitch = true
|
||||||
|
end
|
||||||
|
|
||||||
|
Trigger.OnKilled(Church, function()
|
||||||
|
Actor.Create("moneycrate", true, { Owner = ussr, Location = ChurchAmbush.Location })
|
||||||
|
end)
|
||||||
|
|
||||||
|
Obj2TriggerFunction = function()
|
||||||
|
ussr.MarkCompletedObjective(DestroyVillageObjective)
|
||||||
|
Media.PlaySpeechNotification(ussr, "ReinforcementsArrived")
|
||||||
|
local reinforcement = ussrReinforcements.mammoth
|
||||||
|
Reinforcements.ReinforceWithTransport(ussr, "lst.reinforcement", reinforcement.actors, reinforcement.entryPath, reinforcement.exitPath)
|
||||||
|
end
|
||||||
|
|
||||||
|
AddReinforcmentTriggers = function()
|
||||||
|
AddEastReinforcementTrigger()
|
||||||
|
AddSouthReinforcementTrigger()
|
||||||
|
AddParadropReinforcementTrigger()
|
||||||
|
end
|
||||||
|
|
||||||
|
AddRetreatTrigger = function()
|
||||||
|
Trigger.OnEnteredProximityTrigger(Actor222.CenterPosition, WDist.FromCells(12), function(actor, id)
|
||||||
|
if actor.Owner == ussr and actor.Type == "barr" then
|
||||||
|
alliedScouts = Utils.Where(alliedScouts, function(scout) return not scout.IsDead end)
|
||||||
|
local removed
|
||||||
|
Utils.Do(alliedScouts, function(scout)
|
||||||
|
if scout.Type == "e1" and not removed then
|
||||||
|
removed = true
|
||||||
|
else
|
||||||
|
scout.Stop()
|
||||||
|
scout.Move(ScoutRetreat.Location, 1)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
Trigger.RemoveProximityTrigger(id)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
Tick = function()
|
||||||
|
greece.Cash = 1000
|
||||||
|
|
||||||
|
if greece.HasNoRequiredUnits() and germany.HasNoRequiredUnits() then
|
||||||
|
ussr.MarkCompletedObjective(KillAll)
|
||||||
|
end
|
||||||
|
|
||||||
|
if ussr.HasNoRequiredUnits() then
|
||||||
|
greece.MarkCompletedObjective(BeatUSSR)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
WorldLoaded = function()
|
||||||
|
ussr = Player.GetPlayer("USSR")
|
||||||
|
germany = Player.GetPlayer("Germany")
|
||||||
|
greece = Player.GetPlayer("Greece")
|
||||||
|
|
||||||
|
Trigger.OnObjectiveAdded(ussr, function(p, id)
|
||||||
|
Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective")
|
||||||
|
end)
|
||||||
|
|
||||||
|
KillAll = ussr.AddPrimaryObjective("Destroy all Allied units and structures.")
|
||||||
|
DestroyVillageObjective = ussr.AddSecondaryObjective("Destroy the village of Allied sympathizers.")
|
||||||
|
BeatUSSR = greece.AddPrimaryObjective("Defeat the Soviet forces.")
|
||||||
|
|
||||||
|
Trigger.OnObjectiveCompleted(ussr, function(p, id)
|
||||||
|
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed")
|
||||||
|
end)
|
||||||
|
Trigger.OnObjectiveFailed(ussr, function(p, id)
|
||||||
|
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed")
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnPlayerLost(ussr, function()
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
||||||
|
Media.PlaySpeechNotification(ussr, "MissionFailed")
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
Trigger.OnPlayerWon(ussr, function()
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
||||||
|
Media.PlaySpeechNotification(ussr, "MissionAccomplished")
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
AddReinforcmentTriggers()
|
||||||
|
AddRetreatTrigger()
|
||||||
|
|
||||||
|
scripteddrop = Actor.Create("scripteddrop", false, { Owner = ussr })
|
||||||
|
|
||||||
|
OnAnyDamaged(Obj2ActorTriggerActivator, ChurchAmbushTrigger)
|
||||||
|
|
||||||
|
Trigger.OnAllRemovedFromWorld(Obj2ActorTriggerActivator, Obj2TriggerFunction)
|
||||||
|
|
||||||
|
Camera.Position = SovietBase.CenterPosition
|
||||||
|
|
||||||
|
Trigger.AfterDelay(ActivateAIDelay, ActivateAI)
|
||||||
|
end
|
||||||
|
|
||||||
|
OnAnyDamaged = function(actors, func)
|
||||||
|
Utils.Do(actors, function(actor)
|
||||||
|
Trigger.OnDamaged(actor, func)
|
||||||
|
end)
|
||||||
|
end
|
||||||
@@ -20,6 +20,7 @@ Soviet Campaign:
|
|||||||
./mods/ra/maps/soviet-06a
|
./mods/ra/maps/soviet-06a
|
||||||
./mods/ra/maps/soviet-06b
|
./mods/ra/maps/soviet-06b
|
||||||
./mods/ra/maps/soviet-07
|
./mods/ra/maps/soviet-07
|
||||||
|
./mods/ra/maps/soviet-08a
|
||||||
Counterstrike:
|
Counterstrike:
|
||||||
./mods/ra/maps/soviet-soldier-volkov-n-chitzkoi
|
./mods/ra/maps/soviet-soldier-volkov-n-chitzkoi
|
||||||
Aftermath:
|
Aftermath:
|
||||||
|
|||||||
Reference in New Issue
Block a user