function Trig_UD_loop_Func005A takes nothing returns boolean
if ( not ( udg_Temp_Boolean == true ) ) then
return false
endif
return true
endfunction
function Trig_UD_loop_Func001A takes nothing returns boolean
if ( not ( udg_Temp_Unit1[udg_Temp_Int] != null ) ) then
return false
endif
return true
endfunction
function Trig_UD_loop_Func002A takes nothing returns boolean
if ( not ( udg_Temp_IndexSize == 0 ) ) then
return false
endif
return true
endfunction
function Trig_UD_loop_Func003A takes nothing returns boolean
if ( not ( IsUnitInGroup( udg_Temp_Unit3[udg_Temp_Int], GetUnitsInRangeOfLocAll( 70.00, udg_Temp_Targetloc[udg_Temp_Int] ) ) == true ) ) then
return false
endif
return true
endfunction
function Trig_UD_loop_Func004A takes nothing returns boolean
if ( not ( IsUnitInGroup( udg_Temp_Unit2[udg_Temp_Int], GetUnitsInRangeOfLocAll( 70.00, udg_Temp_Targetloc1[udg_Temp_Int] ) ) == true ) ) then
return false
endif
return true
endfunction
function Trig_UD_loop_Func006A takes nothing returns nothing
call KillDestructable( GetEnumDestructable() )
endfunction
function Trig_UD_loop_Actions takes nothing returns nothing
set udg_Temp_Loop = 1
loop
exitwhen udg_Temp_Loop > udg_Temp_IndexSize
set udg_Temp_Int = udg_Temp_Index[udg_Temp_Loop]
if ( Trig_UD_loop_Func001A() ) then
set udg_Temp_Targetloc[udg_Temp_Int] = GetUnitLoc( udg_Temp_Unit2[udg_Temp_Int] )
set udg_Temp_Loc2 = GetUnitLoc( udg_Temp_Unit2[udg_Temp_Int] )
set udg_Temp_Loc3 = GetUnitLoc( udg_Temp_Unit3[udg_Temp_Int] )
set udg_Temp_Distance_Between[udg_Temp_Int] = DistanceBetweenPoints( udg_Temp_Loc2, udg_Temp_Loc3 )
call SetUnitPositionLoc( udg_Temp_Unit3[udg_Temp_Int], PolarProjectionBJ( udg_Temp_Loc3, 35.00, AngleBetweenPoints( udg_Temp_Loc3, udg_Temp_Loc2 ) ) )
call RemoveLocation( udg_Temp_Loc2 )
call RemoveLocation( udg_Temp_Loc3 )
else
endif
if ( Trig_UD_loop_Func003A() ) then
if ( Trig_UD_loop_Func005A() ) then
call EnumDestructablesInCircleBJ( 150.00, GetUnitLoc( udg_Temp_Unit2[udg_Temp_Int] ), function Trig_UD_loop_Func006A )
else
endif
call SetUnitVertexColorBJ( udg_Temp_Unit3[udg_Temp_Int], 0.00, 0.00, 0.00, 100.00 )
call AddSpecialEffectTargetUnitBJ( "head", udg_Temp_Unit2[udg_Temp_Int], udg_Temp_Effect1 )
call DestroyEffectBJ( GetLastCreatedEffectBJ() )
call PauseUnitBJ( true, udg_Temp_Unit2[udg_Temp_Int] )
call SetUnitPathing( udg_Temp_Unit2[udg_Temp_Int], false )
set udg_Temp_Loc2 = GetUnitLoc( udg_Temp_Unit2[udg_Temp_Int] )
set udg_Temp_Distance_Between1[udg_Temp_Int] = DistanceBetweenPoints( udg_Temp_Loc2, udg_Temp_Targetloc1[udg_Temp_Int] )
call SetUnitPositionLoc( udg_Temp_Unit2[udg_Temp_Int], PolarProjectionBJ( udg_Temp_Loc2, 25.00, udg_Temp_Facing1[udg_Temp_Int] ) )
call AddSpecialEffectLocBJ( udg_Temp_Loc2, udg_Temp_Effect2 )
call DestroyEffectBJ( GetLastCreatedEffectBJ() )
call RemoveLocation( udg_Temp_Loc2 )
else
endif
if ( Trig_UD_loop_Func004A() ) then
call UnitDamageTargetBJ( udg_Temp_Unit1[udg_Temp_Int], udg_Temp_Unit2[udg_Temp_Int], udg_Temp_Damage, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
call RemoveUnit( udg_Temp_Unit3[udg_Temp_Int] )
call RemoveLocation( udg_Temp_Targetloc1[udg_Temp_Int] )
call PauseUnitBJ( false, udg_Temp_Unit2[udg_Temp_Int] )
call SetUnitPathing( udg_Temp_Unit2[udg_Temp_Int], true )
set udg_Temp_Index[udg_Temp_Loop] = udg_Temp_Index[udg_Temp_IndexSize]
set udg_Temp_Index[udg_Temp_IndexSize] = udg_Temp_Int
set udg_Temp_IndexSize = ( udg_Temp_IndexSize - 1 )
set udg_Temp_Loop = ( udg_Temp_Loop - 1 )
if ( Trig_UD_loop_Func002A() ) then
call DisableTrigger( GetTriggeringTrigger() )
return
else
endif
else
endif
set udg_Temp_Loop = ( udg_Temp_Loop + 1 )
endloop
endfunction
//===========================================================================
function InitTrig_UD_loop takes nothing returns nothing
set gg_trg_UD_loop = CreateTrigger( )
call DisableTrigger( gg_trg_UD_loop )
call TriggerRegisterTimerEventPeriodic( gg_trg_UD_loop, 0.03 )
call TriggerAddAction( gg_trg_UD_loop, function Trig_UD_loop_Actions )
endfunction
[/hidden]