constant function AddDamageItemID takes nothing returns integer return 'I000' endfunction constant function MinusDamageItemID takes nothing returns integer return 'I001' endfunction function AddOneDamage takes unit whichUnit returns nothing call UnitAddItemByIdSwapped(AddDamageItemID(), whichUnit) endfunction function MinusOneDamage takes unit whichUnit returns nothing call UnitAddItemByIdSwapped(MinusDamageItemID(), whichUnit) endfunction function AddFiveDamage takes unit whichUnit returns nothing local integer i = 0 loop exitwhen (i == 5) call AddOneDamage(whichUnit) set i = i + 1 endloop set i = 0 endfunction function MinusFiveDamage takes unit whichUnit returns nothing local integer i = 0 loop exitwhen (i == 5) call MinusOneDamage(whichUnit) set i = i + 1 endloop set i = 0 endfunction function AddTenDamage takes unit whichUnit returns nothing local integer i = 0 loop exitwhen (i == 2) call AddFiveDamage(whichUnit) set i = i + 1 endloop set i = 0 endfunction function MinusTenDamage takes unit whichUnit returns nothing local integer i = 0 loop exitwhen (i == 2) call MinusFiveDamage(whichUnit) set i = i + 1 endloop set i = 0 endfunction function AddFiftyDamage takes unit whichUnit returns nothing local integer i = 0 loop exitwhen (i == 5) call AddTenDamage(whichUnit) set i = i + 1 endloop set i = 0 endfunction function MinusFiftyDamage takes unit whichUnit returns nothing local integer i = 0 loop exitwhen (i == 5) call MinusTenDamage(whichUnit) set i = i + 1 endloop set i = 0 endfunction function AddHundredDamage takes unit whichUnit returns nothing local integer i = 0 loop exitwhen (i == 2) call AddFiftyDamage(whichUnit) set i = i + 1 endloop set i = 0 endfunction function MinusHundredDamage takes unit whichUnit returns nothing local integer i = 0 loop exitwhen (i == 2) call MinusFiftyDamage(whichUnit) set i = i + 1 endloop set i = 0 endfunction function AddUnitDamage takes unit whichUnit, integer Amount returns nothing local real AddAmount = I2R(Amount) if(AddAmount <= 0.00) then set AddAmount = 0.00 return endif loop exitwhen (AddAmount <= 0.00) if(AddAmount > 100.00) then call AddHundredDamage(whichUnit) call AddOneDamage(whichUnit) set AddAmount = AddAmount - 101.00 elseif(AddAmount == 100.00) then call AddHundredDamage(whichUnit) set AddAmount = AddAmount - 100.00 elseif(AddAmount > 50.00) then call AddFiftyDamage(whichUnit) call AddOneDamage(whichUnit) set AddAmount = AddAmount - 51.00 elseif(AddAmount == 50.00) then call AddFiftyDamage(whichUnit) set AddAmount = AddAmount - 50.00 elseif(AddAmount > 10.00) then call AddTenDamage(whichUnit) call AddOneDamage(whichUnit) set AddAmount = AddAmount - 11.00 elseif(AddAmount == 10.00) then call AddTenDamage(whichUnit) set AddAmount = AddAmount - 10.00 elseif(AddAmount > 5.00) then call AddFiveDamage(whichUnit) call AddOneDamage(whichUnit) set AddAmount = AddAmount - 6.00 elseif(AddAmount == 5.00) then call AddFiveDamage(whichUnit) set AddAmount = AddAmount - 5.00 elseif(AddAmount < 5) then call AddOneDamage(whichUnit) set AddAmount = AddAmount - 1 endif endloop endfunction function MinusUnitDamage takes unit whichUnit, integer Amount returns nothing local real MinusAmount = I2R(Amount) if(MinusAmount <= 0.00) then set MinusAmount = 0.00 return endif loop exitwhen (MinusAmount <= 0.00) if(MinusAmount > 100.00) then call MinusHundredDamage(whichUnit) call MinusOneDamage(whichUnit) set MinusAmount = MinusAmount - 101.00 elseif(MinusAmount == 100.00) then call MinusHundredDamage(whichUnit) set MinusAmount = MinusAmount - 100.00 elseif(MinusAmount > 50.00) then call MinusFiftyDamage(whichUnit) call MinusOneDamage(whichUnit) set MinusAmount = MinusAmount - 51.00 elseif(MinusAmount == 50.00) then call MinusFiftyDamage(whichUnit) set MinusAmount = MinusAmount - 50.00 elseif(MinusAmount > 10.00) then call MinusTenDamage(whichUnit) call MinusOneDamage(whichUnit) set MinusAmount = MinusAmount - 11.00 elseif(MinusAmount == 10.00) then call MinusTenDamage(whichUnit) set MinusAmount = MinusAmount - 10.00 elseif(MinusAmount > 5.00) then call MinusFiveDamage(whichUnit) call MinusOneDamage(whichUnit) set MinusAmount = MinusAmount - 6.00 elseif(MinusAmount == 5.00) then call MinusFiveDamage(whichUnit) set MinusAmount = MinusAmount - 5.00 elseif(MinusAmount < 5) then call MinusOneDamage(whichUnit) set MinusAmount = MinusAmount - 1 endif endloop endfunction