- Joined
- Oct 9, 2019
- Messages
- 345
For https://www.hiveworkshop.com/threads/improved-mana-shield-spells.371330/
Can someone help me fix this formula so it acts like regular mana shield's inputs? Right now it doesn't work as expected.
Can someone help me fix this formula so it acts like regular mana shield's inputs? Right now it doesn't work as expected.
JASS:
function Trig_Enhanced_Mana_Shield_Conditions takes nothing returns boolean
local integer BUFF_ID = 'B000' //Set this to the buff used by Enhanced Mana Shield
return GetUnitAbilityLevel(udg_DamageEventTarget,BUFF_ID) > 0
endfunction
function Trig_Enhanced_Mana_Shield_Actions takes nothing returns nothing
local integer AID = 'A000' //Set this to the id of the Enhanced Mana Shield Ability
local real basemanacost = 1.0 //Set this to the base mana cost per damage point at level 1 [Increasing this should increase shield efficiency meaning less mana cost per point of damage]
local real manacostperlevel = -0.25 //This is mana cost adjustment for each level beyond 1 [Increasing this should increase shield efficiency meaning less mana cost per point of damage]
local real mana = GetUnitState(udg_DamageEventTarget,UNIT_STATE_MANA)
local real lvl = GetUnitAbilityLevel(udg_DamageEventTarget,AID)
local real shieldefficeny = basemanacost + (manacostperlevel * (lvl -1))
if mana * shieldefficeny > udg_DamageEventAmount then
call SetUnitState(udg_DamageEventTarget,UNIT_STATE_MANA,mana - (udg_DamageEventAmount * shieldefficeny))
set udg_DamageEventAmount = 0.
else
call SetUnitState(udg_DamageEventTarget,UNIT_STATE_MANA,0.)
set udg_DamageEventAmount = udg_DamageEventAmount - (mana * shieldefficeny)
endif
endfunction
//===========================================================================
function InitTrig_Enhanced_Mana_Shield takes nothing returns nothing
set gg_trg_Enhanced_Mana_Shield = CreateTrigger( )
call TriggerRegisterVariableEvent( gg_trg_Enhanced_Mana_Shield, "udg_ArmorDamageEvent", EQUAL, 1.00 )
call TriggerAddCondition( gg_trg_Enhanced_Mana_Shield, Condition( function Trig_Enhanced_Mana_Shield_Conditions ) )
call TriggerAddAction( gg_trg_Enhanced_Mana_Shield, function Trig_Enhanced_Mana_Shield_Actions )
endfunction

.