diff --git a/mods/ra/lua/reinforcements.lua b/mods/ra/lua/reinforcements.lua index d9eb68b131..7f3046d6e1 100644 --- a/mods/ra/lua/reinforcements.lua +++ b/mods/ra/lua/reinforcements.lua @@ -30,12 +30,7 @@ Reinforcements.PerformHelicopterExtraction = function(owner, helicopterName, pas Actor.Turn(heli, 0) Actor.HeliLand(heli, true) Actor.WaitFor(heli, function() - for i, passenger in ipairs(passengers) do - if not cargo.Passengers:Contains(passenger) then - return false - end - end - return true + return Utils.All(passengers, function(passenger) return cargo.Passengers:Contains(passenger) end) end) Actor.Wait(heli, 125) Actor.HeliFly(heli, exitPosition) @@ -45,10 +40,10 @@ end Reinforcements.Reinforce = function(owner, reinforcementNames, enterLocation, rallyPointLocation, interval, onCreateFunc) local facing = { Map.GetFacing(CPos.op_Subtraction(rallyPointLocation, enterLocation), 0), "Int32" } - local ret = { } - for i = 1, #reinforcementNames do - local reinforcement = Actor.Create(reinforcementNames[i], { AddToWorld = false, Owner = owner, Location = enterLocation, Facing = facing }) - table.insert(ret, reinforcement) + local reinforcements = { } + for i, reinforcementName in ipairs(reinforcementNames) do + local reinforcement = Actor.Create(reinforcementName, { AddToWorld = false, Owner = owner, Location = enterLocation, Facing = facing }) + reinforcements[i] = reinforcement OpenRA.RunAfterDelay((i - 1) * interval, function() World:Add(reinforcement) Actor.MoveNear(reinforcement, rallyPointLocation, 2) @@ -57,5 +52,5 @@ Reinforcements.Reinforce = function(owner, reinforcementNames, enterLocation, ra end end) end - return ret + return reinforcements end \ No newline at end of file diff --git a/mods/ra/lua/supportpowers.lua b/mods/ra/lua/supportpowers.lua index bd6b4d50bc..0dff9c6824 100644 --- a/mods/ra/lua/supportpowers.lua +++ b/mods/ra/lua/supportpowers.lua @@ -8,6 +8,7 @@ SupportPowers.Parabomb = function(owner, planeName, enterLocation, bombLocation) Actor.Fly(plane, bombLocation.CenterPosition) Actor.FlyOffMap(plane) Actor.RemoveSelf(plane) + return plane end SupportPowers.Paradrop = function(owner, planeName, passengerNames, enterLocation, dropLocation) @@ -17,7 +18,11 @@ SupportPowers.Paradrop = function(owner, planeName, passengerNames, enterLocatio Actor.FlyAttackCell(plane, dropLocation) Actor.Trait(plane, "ParaDrop"):SetLZ(dropLocation) local cargo = Actor.Trait(plane, "Cargo") + local passengers = { } for i, passengerName in ipairs(passengerNames) do - cargo:Load(plane, Actor.Create(passengerName, { AddToWorld = false, Owner = owner })) + local passenger = Actor.Create(passengerName, { AddToWorld = false, Owner = owner }) + passengers[i] = passenger + cargo:Load(plane, passenger) end + return plane, passengers end \ No newline at end of file