Forest Archer v1
660
ID:
601
Family ID:
Author:
Boekie
Rarity:
rare
Element:
nature
Attack Type:
Essence
Attack Range:
850
Attack CD:
2.2
Damage:
715-720
Abil. Factor:
0.4
Status:
Approved

Description:

An archer that has been granted a gift from the forest.

Latest Upload Comment:

Restored from 1.10
Gift of the Forest
The magical powers of the forest grant this archer enchanted arrows. These arrows have a 5% chance to stun for 1.75 seconds. If they don't stun there is a 10% chance to slow by 15% for 7.5 seconds. 

Level Bonus
+0.1% chance to stun
+0.05 seconds stun duration
+0.1% chance to slow
+0.2 seconds slow duration
Download

Toggle Triggers

Header

    globals   
    //@export
    BuffType CyonyPoison
    endglobals 
    
    //Do not remove or rename this function! 
    //Put your initialization tasks here, this function will be called on map init 
    private function init takes nothing returns nothing 
    local Modifier slow=Modifier.create()
    set CyonyPoison=BuffType.create(7.5,0.1,false)
    call slow.addModification(MOD_MOVESPEED,-0.15,0)
    call CyonyPoison.setBuffIcon('@@2@@') 
    call CyonyPoison.setBuffModifier(slow) 
    call CyonyPoison.setStackingGroup("ForestArcherStacks") 
    endfunction

On Damage

ONDAMAGE_chance: 1.0 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
local integer level = tower.getLevel()
local Unit creep = Event.getTarget()

if tower.calcChance(0.05 + level*0.001) then
    call cb_stun.applyOnlyTimed(tower, creep, 1.75 + level*0.05)
  elseif tower.calcChance(0.1 + level*0.001) then
    call CyonyPoison.apply(tower,creep,level*2) 
  endif
endfunction

On Level Up

function onLevelUp takes Tower tower returns nothing
    if tower.getLevel() == 15 then
        call UnitRemoveAbility(tower.getUnit(),'@@1@@')
        call UnitAddAbility(tower.getUnit(),'@@0@@')
    endif
endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
    if tower.getLevel() >= 15 then
        call UnitRemoveAbility(tower.getUnit(),'@@1@@')
        call UnitAddAbility(tower.getUnit(),'@@0@@')
    endif
endfunction