diff --git a/mods/ra/maps/survival01/survival01.lua b/mods/ra/maps/survival01/survival01.lua index b38a661be7..22d3b3e6aa 100644 --- a/mods/ra/maps/survival01/survival01.lua +++ b/mods/ra/maps/survival01/survival01.lua @@ -66,45 +66,38 @@ SovietBuildings = { Barrack1, SubPen, RadarDome, AdvancedPowerPlant1, AdvancedPo IdleTrigger = function(units, dest) Utils.Do(units, function(unit) - Trigger.OnIdle(unit, function() - local bool = Utils.All(units, function(unit) return unit.IsIdle end) - if bool then - Utils.Do(units, function(unit) - if not unit.IsDead then - Trigger.ClearAll(unit) - Trigger.AfterDelay(0, function() - if not unit.IsDead then - if dest then unit.AttackMove(dest, 3) end - Trigger.OnIdle(unit, unit.Hunt) - Trigger.OnCapture(unit, function() - Trigger.ClearAll(unit) - end) - end - end) - end - end) - end - end) + if not unit.IsDead then + Trigger.OnIdle(unit, function() + local bool = Utils.All(units, function(unit) return unit.IsIdle end) + if bool then + SetupHuntTrigger(units) + end + end) - Trigger.OnDamaged(unit, function() - Utils.Do(units, function(unit) + Trigger.OnDamaged(unit, function() + SetupHuntTrigger(units) + end) + + Trigger.OnCapture(unit, function() + Trigger.ClearAll(unit) + end) + end + end) +end + +SetupHuntTrigger = function(units) + Utils.Do(units, function(unit) + if not unit.IsDead then + Trigger.ClearAll(unit) + Trigger.AfterDelay(0, function() if not unit.IsDead then - Trigger.ClearAll(unit) - Trigger.AfterDelay(0, function() - if not unit.IsDead then - Trigger.OnIdle(unit, unit.Hunt) - Trigger.OnCapture(unit, function() - Trigger.ClearAll(unit) - end) - end + Trigger.OnIdle(unit, unit.Hunt) + Trigger.OnCapture(unit, function() + Trigger.ClearAll(unit) end) end end) - end) - - Trigger.OnCapture(unit, function() - Trigger.ClearAll(unit) - end) + end end) end