function ArrowStart takes nothing returns nothing
local unit a = GetTriggerUnit()
local integer b = GetUnitAbilityLevel(a, GetSpellAbilityId())
local real i = 1
local real f = 12//The number of arrows made by the Arrow Storm
local real angle = Atan2(GetSpellTargetY() - GetUnitY(a), GetSpellTargetX() - GetUnitX(a))
if GetSpellAbilityId() == 'A000' then
call Arrow_Create(a, I2R(b)*GetHeroInt(GetTriggerUnit(), true), I2R(b), false, "PIERCE", angle, 100, false)
endif
if GetSpellAbilityId() == 'A001' then
call Arrow_Create(a, I2R(b)*GetHeroInt(a, true), I2R(b), false, "EXPLODE", angle, 100,false)
endif
if GetSpellAbilityId() == 'A003' then
call Arrow_Create(a, I2R(b)*GetHeroInt(a, true), I2R(b), false, "PRISM", angle, 100,false)
endif
if GetSpellAbilityId() == 'A004' then
call Arrow_Create(a, I2R(b)*GetHeroInt(GetTriggerUnit(), true), I2R(b), true, "PIERCE", GetUnitFacing(a), 100, false)
endif
if GetSpellAbilityId() == 'A002' then
loop
exitwhen i > f
call Arrow_Create(a, I2R(b)*GetHeroInt(GetTriggerUnit(), true), I2R(b), false, "PIERCE", bj_DEGTORAD*((360*i)/f), 100, false)
set i = i + 1
endloop
endif
if GetSpellAbilityId() == 'A005' then
call Arrow_Create(a, I2R(b)*GetHeroInt(GetTriggerUnit(), true), I2R(b), false, "SINGLE", angle, 100, true)
endif
set a = null
endfunction
//===========================================================================
function InitTrig_ArrowStart takes nothing returns nothing
set gg_trg_ArrowStart = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_ArrowStart, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddAction( gg_trg_ArrowStart, function ArrowStart )
endfunction