Rinpun
Ex TH Member
- Reaction score
- 105
This problem confuses me, but it's crucial to what I'm working on. At the moment, the dummyunit does NOT cast stormbolt on the target. I know I'm doing something wrong here...but I can't figure it out.
Code:
function Trig_Direct_Assault_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A00T' or GetSpellAbilityId() == 'A00U'
endfunction
function Trig_Direct_Assault_Actions takes nothing returns nothing
local unit carrier = GetTriggerUnit()
local unit target = GetSpellTargetUnit()
local player owner = GetOwningPlayer(carrier)
local integer level_of_DA = GetUnitAbilityLevel(carrier, GetSpellAbilityId())
local integer caster_ship_id
local integer increment = 0
local integer second_increment = 0
local unit array dummyunit
call RemoveUnit(udg_Carrier_Full[GetPlayerId(owner)])
if (GetSpellAbilityId() == 'A00T') then
set caster_ship_id = 'n003'
else
set caster_ship_id = 'n008'
endif
//debugging call DisplayTextToForce(GetPlayersAll(), something)
call AddUnitAnimationProperties(carrier, "alternate", true)
loop
exitwhen (second_increment == level_of_DA or GetUnitState(carrier, UNIT_STATE_LIFE) <= 0 or GetUnitState(target, UNIT_STATE_LIFE) <= 0)
call SetHandleInt(carrier, "inside_ships", 0)
set increment = 0
loop
exitwhen (increment > 7)
set dummyunit[increment] = CreateUnit(owner, caster_ship_id, GetUnitX(carrier), GetUnitY(carrier), GetUnitFacing(carrier))
call SetHandleHandle(dummyunit[increment], "carrier", carrier)
call IssueTargetOrder(dummyunit[increment], "thunderbolt", target)
call TriggerSleepAction(.30)
set dummyunit[increment] = null
set increment = increment + 1
endloop
loop
exitwhen (GetHandleInt(carrier, "inside_ships") > 7 or GetUnitState(carrier, UNIT_STATE_LIFE) <= 0 or GetUnitState(target, UNIT_STATE_LIFE) <= 0)
call TriggerSleepAction(.30)
endloop
set second_increment = second_increment + 1
endloop
call FlushHandleLocals(carrier)
set udg_Carrier_Full[GetPlayerId(owner)] = CreateUnit(owner, 'u00H', 9999, 9999, 0)
call AddUnitAnimationProperties(carrier, "alternate", false)
set carrier = null
set target = null
endfunction
//===========================================================================
function InitTrig_Direct_Assault takes nothing returns nothing
set gg_trg_Direct_Assault = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Direct_Assault, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_Direct_Assault, Condition( function Trig_Direct_Assault_Conditions ) )
call TriggerAddAction( gg_trg_Direct_Assault, function Trig_Direct_Assault_Actions )
endfunction