Shaman v1
700
ID:
392
Family ID:
Author:
His_Shadow
Rarity:
rare
Element:
fire
Attack Type:
Essence
Attack Range:
900
Attack CD:
1.5
Damage:
462-462
Abil. Factor:
0.40
Status:
Approved

Description:

A mighty tribal sorcerer.

Latest Upload Comment:

Restored from 1.10
Specials:
15% crit chance
Bloodlust
The Shaman makes a friendly tower lust for blood, increasing its crit damage by x0.45 and attackspeed by 15% for 5 seconds. 

Level Bonus:
+x0.004 crit damage
+0.2% attackspeed
+0.12 seconds duration
Bloody Experience
Every tower below 10 level in 250 range receives 1 experience every time it crits. The amount of experience gained is base attackspeed and range adjusted. Level cap does not affect the Shaman himself.

Level Bonus:
+1 level cap every 5 levels
Download

Toggle Triggers

Autocast

caster_art: AUTOCAST_cooldown: 5.0 AUTOCAST_numBuffsBeforeIdle: 1 AUTOCAST_isExtended: false AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_BUFF AUTOCAST_manacost: 15 AUTOCAST_range: 500.0 AUTOCAST_buffType: HS_bloodlust_buff AUTOCAST_targetSelf: true AUTOCAST_targetType: TARGET_TYPE_TOWERS target_art: Abilities\Spells\Orc\Bloodlust\BloodlustTarget.mdl AUTOCAST_autoRange: 500.0
private function onAutocast takes Tower tower returns nothing
local integer level  = tower.getLevel()
call HS_bloodlust_buff.applyCustomTimed(tower,Event.getTarget(), 150 + level * 2, 5 + 0.12*level)
endfunction

Header

globals
    //@export
    BuffType HS_bloodlust_buff
    //@export
    BuffType HS_bloody_exp_aura
endglobals
    
    //Do not remove or rename this function!
    //Put your initialization tasks here, this function will be called on map init
    
private function crit_exp takes Buff B returns nothing 

local Tower caster = B.getCaster()
local Tower tower = B.getBuffedUnit()
local integer ratio = caster.getLevel()/5+caster.userInt

if tower.getNumberOfCrits() > 0 and (tower.getLevel() < ratio or tower == caster) then 
  call tower.addExp(1*tower.getBaseAttackspeed()*(800.0/tower.getRange()))            
endif 
endfunction
    
private function init takes nothing returns nothing
        local Modifier m = Modifier.create()
        local Modifier n = Modifier.create()
        
        set HS_bloodlust_buff = BuffType.create( 5.00, 0.12, true )
        call HS_bloodlust_buff.setBuffIcon( '@@1@@' )
        call m.addModification(MOD_ATTACKSPEED,0.0,0.001) 
        call m.addModification(MOD_ATK_CRIT_DAMAGE,0.15,0.002)
        call HS_bloodlust_buff.setBuffModifier( m )
        
        set HS_bloody_exp_aura = BuffType.createAuraEffectType(true)
        call HS_bloody_exp_aura.addEventOnDamage(crit_exp, 1.0, 0.0 )
        call HS_bloody_exp_aura.setBuffModifier(n)
        call HS_bloody_exp_aura.setBuffIcon('@@0@@')    
endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
set tower.userInt = 10
endfunction

Tower Aura

AURA_auraEffect: HS_bloody_exp_aura AURA_power: 1 AURA_level: 1 AURA_auraRange: 250 AURA_targetType: TARGET_TYPE_TOWERS AURA_levelAdd: 0 AURA_powerAdd: 0 AURA_targetSelf: true