- Joined
- Nov 30, 2007
- Messages
- 1,202
JASS:
private function FadeFire takes nothing returns nothing
local unit u = tempFire
call KillUnit(u)
set u = null
endfunction
private function ForGroup_Periodic takes nothing returns nothing
local unit u = GetEnumUnit()
local integer i = GetUnitUserData(u)
local real dmg = 10
set stackTime[i] = stackTime[i] - 1
call BJDebugMsg("Index: " + I2S(i) + " | time " + I2S(stackTime[i]) + " | damage " + R2S(stackDmg[i]))
if GetUnitState(u, UNIT_STATE_LIFE) <= 0 then
set tempFire = fire[i]
call ExecuteFunc("FadeFire")
set tempFire = null
endif
if stackTime[i] == 0 then
set stackDmg[i] = 0
call GroupRemoveUnit(stackGroup, u)
set stackGroupCount = stackGroupCount - 1
if stackGroupCount == 0 then
call DisableTrigger(trgPeriodic)
endif
// Start Fire
// fire[i] == null (temporary)
elseif fire[i] == null then
if stackDmg[i] >= REQ_STACK*GetUnitState(u, UNIT_STATE_MAX_LIFE)*(1 + fireResistance[i]) then
set fire[i] = CreateUnit(Player(PLAYER_NEUTRAL_AGGRESSIVE), FIRE_DUMMY, GetUnitX(u), GetUnitY(u), 0)
endif
else
call UnitDamageTarget(fire[i], u, dmg, true, false, ATTACK_TYPE_SIEGE, DAMAGE_TYPE_FIRE, WEAPON_TYPE_WHOKNOWS)
endif
set u = null
endfunction