Taita, the Hermit v1 
                4000
                     
             
                 | 
    
    
              ID:              215 
             Family ID:       
             Author:          DaveMatthews 
             Rarity:          unique 
             Element:         ice 
            
                 Attack Type:     Elemental 
                 Attack Range:    1000 
                 Attack CD:       1.3 
                 Damage:  3112-3112 
            
            
             Status:          Approved 
     | 
    
    
    
             
                            Frost Bolt
                        On attack, this tower has a chance, equal to the percentage of movement speed the attacked unit is missing, to launch a frost bolt, dealing 20% of the tower's attack damage as elemental damage in 200 AoE around the target for each stack of icy touch the creep has. This spell deals double damage to stunned targets. Level Bonus: +0.4% damage per stack  
                            Icy Touch
                        Each attack slows the attacked unit by 10% for 5 seconds, stacking up to 6 times. This tower deals additional 10% damage for every stack of icy touch the target has. Level Bonus: +0.2% damage per stack  
                            Cold Blood
                        Every time it kills a unit, this tower gains 50% attack speed for 3 seconds. Level Bonus: +0.5% attack speed  | 
    
    
    
            Download
            
            
            
            
             Toggle Triggers Header     globals
      BuffType dave_blood
      BuffType dave_touch
      ProjectileType dave_frostbolt
    endglobals
    
    
    function boltHit takes Projectile p, Unit creep returns nothing
    local Tower tower = p.getCaster()
    local integer level= tower.getLevel()
    local Buff b = creep.getBuffOfType(dave_touch)
    local real damage = tower.getCurrentAttackDamageWithBonus()
    local integer bufflevel = 0
    
    if b!= 0 then
      set bufflevel = b.getLevel()
    endif
    
    if creep.getBuffOfGroup( "stun" )!=0 then
       call tower.doAttackDamageAoEUnit(creep,200,2*(damage*(bufflevel*(0.2+(0.004*level)))), tower.calcAttackMulticrit(0,0,0),0)
    else
       call tower.doAttackDamageAoEUnit(creep,200,damage*(bufflevel*(0.2+(0.004*level))), tower.calcAttackMulticrit(0,0,0),0)
    endif
    endfunction
    private function init takes nothing returns nothing
    local Modifier m = Modifier.create()
    local Modifier o = Modifier.create()
        
    set dave_blood = BuffType.create(3.0,0.0,true)
    call dave_blood.setBuffModifier(m)
    call dave_blood.setBuffIcon( '@@0@@' )
    call m.addModification(MOD_ATTACKSPEED,0.5,0.005)
    
    set dave_touch = BuffType.create(5.0,0.0,false)
    call dave_touch.setBuffModifier(o)
    call dave_touch.setBuffIcon( '@@1@@' )
    call o.addModification(MOD_MOVESPEED,0.0,-0.1)
    
    set dave_frostbolt = ProjectileType.create("Abilities\\Spells\\Undead\\FreezingBreath\\FreezingBreathMissile.mdl",4,900) 
    call dave_frostbolt.enableHoming(ProjectileTargetEvent.boltHit,0)
    endfunction
                        
                    On Attack 
                            
                                ONATTACK_chance: 1.0
                            
                                ONATTACK_chanceLevelAdd: 0.0
                            
                             
                        
                        
                            function onAttack takes Tower tower returns nothing
local Projectile p
local Unit creep = Event.getTarget()
local unit u = creep.getUnit()
local real speed = GetUnitDefaultMoveSpeed(u)
local real currentSpeed = GetUnitMoveSpeed(u)
local real slow = ((speed - currentSpeed) / speed)
if tower.calcChance(slow) then
   set p = Projectile.createFromUnitToUnit(dave_frostbolt, tower,1,1, tower, creep, true, false, false)
endif
set u = null
endfunction
                        
                    On Damage 
                            
                                ONDAMAGE_chance: 1.0
                            
                                ONDAMAGE_chanceLevelAdd: 0.0
                            
                             
                        
                        
                            function onDamage takes Tower tower returns nothing
local Unit target = Event.getTarget()
local Buff b = target.getBuffOfType(dave_touch)
local integer bufflevel = 0
local real damage = tower.getCurrentAttackDamageWithBonus()
local integer level = tower.getLevel()
if b != 0 then
   set bufflevel = b.getLevel()
   set Event.damage = Event.damage*(1+(bufflevel*(0.1+0.002*level)))
endif
if bufflevel < 6 then
    call dave_touch.apply(tower, target, bufflevel+1)
endif
endfunction
                        
                    On Kill function onKill takes Tower tower returns nothing
local integer level = tower.getLevel()
call dave_blood.apply(tower,tower,level)
endfunction
                        
                     | 
Description: