Merge pull request #11666 from abcdefg30/survFix

Add an IsDead check to prevent crashes in survival01
This commit is contained in:
Matthias Mailänder
2016-08-03 07:09:14 +02:00
committed by GitHub

View File

@@ -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