function Trig_Diabolic_Edict_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A003'
endfunction
function Diabolic_Edict_Group takes nothing returns boolean
return GetBooleanAnd( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(GetTriggerUnit())) == true, IsUnitAliveBJ(GetFilterUnit()) == true )
endfunction
function Trig_Diabolic_Edict_Actions takes nothing returns nothing
local unit u = GetTriggerUnit()
local integer i = GetUnitAbilityLevelSwapped('A003', u)
local location l
local timer t = CreateTimer()
local unit v
call StartTimerBJ(t,false, 8)
loop
exitwhen TimerGetRemaining(t) <= 0.00
set l = GetUnitLoc(u)
set v = GroupPickRandomUnit(GetUnitsInRangeOfLocMatching(500.00, l, Condition(function Diabolic_Edict_Group)))
call DestroyEffect( AddSpecialEffectTarget( "Abilities\\Weapons\\SteamTank\\SteamTankImpact.mdl", v, "chest" ))
call UnitDamageTarget( u, v, 12.5*i, false, true, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_AXE_MEDIUM_CHOP )
call RemoveLocation(l)
call TriggerSleepAction(.2)
endloop
call DestroyTimer(t)
set t = null
set u = null
set l = null
set v = null
endfunction
//===========================================================================
function InitTrig_Diabolic_Edict takes nothing returns nothing
set gg_trg_Diabolic_Edict = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Diabolic_Edict, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Diabolic_Edict, Condition( function Trig_Diabolic_Edict_Conditions ) )
call TriggerAddAction( gg_trg_Diabolic_Edict, function Trig_Diabolic_Edict_Actions )
endfunction