globals
integer udg_Max_Health_Bonus = 'A000'
integer udg_Max_Mana_Bonus = 'A001'
endglobals
library maxstatsmodifier
function AddMaxHealth takes unit whichUnit, integer amount returns nothing
if amount == 0 or GetHandleId(whichUnit) == 0 then
return
endif
loop
exitwhen amount < 10000 and amount > -10000
if amount < 0 then
call UnitAddAbility(whichUnit, udg_Max_Health_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Health_Bonus, 11)
call UnitRemoveAbility(whichUnit, udg_Max_Health_Bonus)
set amount = amount + 10000
else
call UnitAddAbility(whichUnit, udg_Max_Health_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Health_Bonus, 6)
call UnitRemoveAbility(whichUnit, udg_Max_Health_Bonus)
set amount = amount - 10000
endif
endloop
loop
exitwhen amount < 1000 and amount > -1000
if amount < 0 then
call UnitAddAbility(whichUnit, udg_Max_Health_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Health_Bonus, 10)
call UnitRemoveAbility(whichUnit, udg_Max_Health_Bonus)
set amount = amount + 1000
else
call UnitAddAbility(whichUnit, udg_Max_Health_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Health_Bonus, 5)
call UnitRemoveAbility(whichUnit, udg_Max_Health_Bonus)
set amount = amount - 1000
endif
endloop
loop
exitwhen amount < 100 and amount > -100
if amount < 0 then
call UnitAddAbility(whichUnit, udg_Max_Health_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Health_Bonus, 9)
call UnitRemoveAbility(whichUnit, udg_Max_Health_Bonus)
set amount = amount + 100
else
call UnitAddAbility(whichUnit, udg_Max_Health_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Health_Bonus, 4)
call UnitRemoveAbility(whichUnit, udg_Max_Health_Bonus)
set amount = amount - 100
endif
endloop
loop
exitwhen amount < 10 and amount > -10
if amount < 0 then
call UnitAddAbility(whichUnit, udg_Max_Health_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Health_Bonus, 8)
call UnitRemoveAbility(whichUnit, udg_Max_Health_Bonus)
set amount = amount + 10
else
call UnitAddAbility(whichUnit, udg_Max_Health_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Health_Bonus, 3)
call UnitRemoveAbility(whichUnit, udg_Max_Health_Bonus)
set amount = amount - 10
endif
endloop
loop
exitwhen amount == 0
if amount < 0 then
call UnitAddAbility(whichUnit, udg_Max_Health_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Health_Bonus, 7)
call UnitRemoveAbility(whichUnit, udg_Max_Health_Bonus)
set amount = amount + 1
else
call UnitAddAbility(whichUnit, udg_Max_Health_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Health_Bonus, 2)
call UnitRemoveAbility(whichUnit, udg_Max_Health_Bonus)
set amount = amount - 1
endif
endloop
endfunction
function AddMaxMana takes unit whichUnit, integer amount returns nothing
if amount == 0 or GetHandleId(whichUnit) == 0 then
return
endif
loop
exitwhen amount < 10000 and amount > -10000
if amount < 0 then
call UnitAddAbility(whichUnit, udg_Max_Mana_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Mana_Bonus, 11)
call UnitRemoveAbility(whichUnit, udg_Max_Mana_Bonus)
set amount = amount + 10000
else
call UnitAddAbility(whichUnit, udg_Max_Mana_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Mana_Bonus, 6)
call UnitRemoveAbility(whichUnit, udg_Max_Mana_Bonus)
set amount = amount - 10000
endif
endloop
loop
exitwhen amount < 1000 and amount > -1000
if amount < 0 then
call UnitAddAbility(whichUnit, udg_Max_Mana_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Mana_Bonus, 10)
call UnitRemoveAbility(whichUnit, udg_Max_Mana_Bonus)
set amount = amount + 1000
else
call UnitAddAbility(whichUnit, udg_Max_Mana_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Mana_Bonus, 5)
call UnitRemoveAbility(whichUnit, udg_Max_Mana_Bonus)
set amount = amount - 1000
endif
endloop
loop
exitwhen amount < 100 and amount > -100
if amount < 0 then
call UnitAddAbility(whichUnit, udg_Max_Mana_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Mana_Bonus, 9)
call UnitRemoveAbility(whichUnit, udg_Max_Mana_Bonus)
set amount = amount + 100
else
call UnitAddAbility(whichUnit, udg_Max_Mana_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Mana_Bonus, 4)
call UnitRemoveAbility(whichUnit, udg_Max_Mana_Bonus)
set amount = amount - 100
endif
endloop
loop
exitwhen amount < 10 and amount > -10
if amount < 0 then
call UnitAddAbility(whichUnit, udg_Max_Mana_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Mana_Bonus, 8)
call UnitRemoveAbility(whichUnit, udg_Max_Mana_Bonus)
set amount = amount + 10
else
call UnitAddAbility(whichUnit, udg_Max_Mana_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Mana_Bonus, 3)
call UnitRemoveAbility(whichUnit, udg_Max_Mana_Bonus)
set amount = amount - 10
endif
endloop
loop
exitwhen amount == 0
if amount < 0 then
call UnitAddAbility(whichUnit, udg_Max_Mana_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Mana_Bonus, 7)
call UnitRemoveAbility(whichUnit, udg_Max_Mana_Bonus)
set amount = amount + 1
else
call UnitAddAbility(whichUnit, udg_Max_Mana_Bonus)
call SetUnitAbilityLevel(whichUnit, udg_Max_Mana_Bonus, 2)
call UnitRemoveAbility(whichUnit, udg_Max_Mana_Bonus)
set amount = amount - 1
endif
endloop
endfunction
endlibrary