Name | Type | is_array | initial_value |
cloaking_system_ability | abilcode | No | A000 |
cloaking_system_ability_codes | abilcode | Yes | |
cloaking_system_base_values | real | Yes | |
cloaking_system_cltriggers | trigger | Yes | |
cloaking_system_decltriggers | trigger | Yes | |
cloaking_system_enumunit | unit | No | |
cloaking_system_increments | real | Yes | |
cloaking_system_timers | timer | Yes | |
cloaking_system_unitgroup | group | No | |
IsUnitPreplaced | boolean | Yes | |
u | unit | No | |
UDex | integer | No | |
UDexGen | integer | No | |
UDexNext | integer | Yes | |
UDexPrev | integer | Yes | |
UDexRecycle | integer | No | |
UDexUnits | unit | Yes | |
UDexWasted | integer | No | |
UnitIndexerEnabled | boolean | No | |
UnitIndexEvent | real | No |
function CloakingSystemAddUnit takes unit u, integer abilcode, real base, real increment, trigger oncloak, trigger ondecloak, real delay returns nothing
local integer udata = GetUnitUserData(u)
if udg_cloaking_system_timers[udata] == null then
set udg_cloaking_system_timers[udata] = CreateTimer()
endif
call TimerStart(udg_cloaking_system_timers[udata],delay,false,null)
set udg_cloaking_system_ability_codes[udata]=abilcode
set udg_cloaking_system_base_values[udata]=base
set udg_cloaking_system_increments[udata]=increment
set udg_cloaking_system_cltriggers[udata]=oncloak
set udg_cloaking_system_decltriggers[udata]=ondecloak
call GroupAddUnit(udg_cloaking_system_unitgroup,u)
call EnableTrigger(gg_trg_Cloaking_System_Periodic)
endfunction
function CloakingSystemRemoveUnit takes unit u returns nothing
call PauseTimer(udg_cloaking_system_timers[GetUnitUserData(u)])
call DestroyTimer(udg_cloaking_system_timers[GetUnitUserData(u)])
set udg_cloaking_system_timers[GetUnitUserData(u)]=null
call UnitRemoveAbility(u,udg_cloaking_system_ability)
call GroupRemoveUnit(udg_cloaking_system_unitgroup,u)
if BlzGroupGetSize(udg_cloaking_system_unitgroup) == 0 then
call DisableTrigger(gg_trg_Cloaking_System_Periodic)
endif
endfunction