Larcenist
REP: Respect, Envy, Prosperity?
- Reaction score
- 211
JASS:
// Increased damage check = [DTYPE_ELEMENT + 1]
// Decreased damage check = [DTYPE_ELEMENT + 3]
library DType initializer Init
private keyword DTypes
globals
public DTypes array Buffs
//Primary circle
public constant integer FIRE = 0
public constant integer EARTH = 1
public constant integer LIGHTNING = 2
public constant integer WATER = 3
//Secondary Circle
//HOLY
//DARKNESS
//POISON
//KINETIC
private constant real Increasement = .15
private constant real Decreasement = .10
//Used for defining the DTypes Array.
private constant integer MaxBuffCount = 1
endglobals
type DTypes extends integer array [MaxBuffCount]
function UnitDamageTargetEx takes unit source, unit target, real damage, integer dtype returns nothing
local integer i = 0
local integer i2 = dtype + 1
local integer i3 = dtype + 3
local real Inc = 1.
local real Dec = 1.
local real Tot
local integer B
if i2 > 3 then
set i2 = i2 - 4
endif
if i3 > 3 then
set i3 = i3 - 4
endif
loop
exitwhen i >= MaxBuffCount
set B = Buffs[i2]<i>
if GetUnitAbilityLevel(target, B) == true then
set Inc = Inc + Increasement
endif
set B = Buffs[i3]<i>
if GetUnitAbilityLevel(target, B) == true then
set Dec = Dec + Decreasement
endif
set i = i + 1
endloop
set Tot = 1 - (Dec - Inc)
call UnitDamageTarget(source, target, damage * Tot, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
endfunction
private function Init takes nothing returns nothing
endfunction
endlibrary</i></i>
Basically what I need to know is how to use this:
JASS:
set B = Buffs[i2]
As an argument here:
JASS:
if GetUnitAbilityLevel(target, B) == true then