function Trig_Bombardment_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A000' ) ) then // 'A000' is the spell
return false
endif
return true
endfunction
function Trig_Bombardment_Actions takes nothing returns nothing
local unit a = GetSpellAbilityUnit()
local location s = GetSpellTargetLoc()
local real r = AngleBetweenPoints(GetUnitLoc(a), s)
local real r2 = r - 180
local unit L = null
local unit Bomber = null
local integer m = 0
call CreateNUnitsAtLoc( 1, 'n000', GetOwningPlayer(a), PolarProjectionBJ(GetUnitLoc(a), 100.00, r2), r )
set Bomber = GetLastCreatedUnit()
call IssuePointOrderLocBJ( Bomber, "move", PolarProjectionBJ(GetUnitLoc(a), 1200.00, r) )
call TriggerSleepAction(0.75)
loop
call CreateNUnitsAtLoc( 1, 'n001', GetOwningPlayer(a), PolarProjectionBJ(GetUnitLoc(Bomber), 155.00, r), r )
set L = GetLastCreatedUnit()
call IssuePointOrderLocBJ( L, "attackground", PolarProjectionBJ(GetUnitLoc(Bomber), 245.00, r) )
call UnitApplyTimedLifeBJ( 1.00, 'BTLF', L )
call TriggerSleepAction(.50)
set m = m +1
exitwhen (m==7)
endloop
call TriggerSleepAction(0.60)
call RemoveUnit( Bomber )
endfunction
//===========================================================================
function InitTrig_Bombardment takes nothing returns nothing
set gg_trg_Bombardment = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Bombardment, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Bombardment, Condition( function Trig_Bombardment_Conditions ) )
call TriggerAddAction( gg_trg_Bombardment, function Trig_Bombardment_Actions )
endfunction