Tentacle v1 
                180
                     
             
                 | 
    
    
              ID:              612 
             Family ID:       
             Author:          drol 
             Rarity:          common 
             Element:         darkness 
            
                 Attack Type:     Physical 
                 Attack Range:    850 
                 Attack CD:       1.5 
                 Damage:  176-235 
            
            
             Status:          Approved 
     | 
    
    
    
             
                            Rend
                        The tentacle has a 25% chance to rend a target, making it suffer 4% increased spell damage and dealing 60 spell damage per second for 6 seconds. Does not stack. Level Bonus: +1% chance +2.4 spell damage per second  | 
    
    
    
            Download
            
            
            
            
             Toggle Triggers Header     globals
        //@import
        BuffType drol_tentacleDot
    endglobals
    
    private function init takes nothing returns nothing
    endfunction
                        
                    On Damage 
                            
                                ONDAMAGE_chance: 0.25
                            
                                ONDAMAGE_chanceLevelAdd: 0.01
                            
                             
                        
                        
                            function onDamage takes Tower tower returns nothing
    set drol_tentacleDot.apply(tower, Event.getTarget(), 2).userReal = 60. + tower.getLevel() * 2.4
endfunction
                        
                     | 
            
             
                Thief Novice v1 
                195
                     
             
                 | 
    
    
              ID:              109 
             Family ID:       
             Author:          i_mOck_death 
             Rarity:          uncommon 
             Element:         darkness 
            
                 Attack Type:     Physical 
                 Attack Range:    800 
                 Attack CD:       1.5 
                 Damage:  305-305 
            
            
             Status:          Approved 
     | 
    
    
    
             Description: Trained in the shadows, the thief is an expert in finding gold.  
                            Specials:
                        -10% dmg to undead (+0.4%/lvl) +0.75% bounty collected/lvl +6% item chance (+0.24%/lvl) +6% item quality (+0.24%/lvl)  
                            Steal
                        Every time the thief damages a creep there is a 10% chance he steals 0.9 gold. Level Bonus: +0.036 gold +0.4% chance  | 
    
    
    
            Download
            
            
            
            
             Toggle Triggers Header     globals
        //@import
        ProjectileType mOck_steal
        //@import
        MultiboardValues mOck_thief_multiboard
    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
    endfunction
                        
                    On Damage 
                            
                                ONDAMAGE_chance: .1
                            
                                ONDAMAGE_chanceLevelAdd: 0.004
                            
                             
                        
                        
                            function onDamage takes Tower tower returns nothing
    call Projectile.createLinearInterpolationFromUnitToUnit(mOck_steal,tower,0,0,Event.getTarget(),tower,0,true)
endfunction
                        
                    On Tower Creation function onCreate takes Tower tower returns nothing
    local Tower super = Event.getPrecedingTower()
    call AddUnitAnimationProperties(tower.getUnit(), "stand alternate", false)
    if super.getFamily() == tower.getFamily() then
        set tower.userReal = super.userReal
    else
        set tower.userReal = 0.0 
    endif
    set tower.userInt = 9
endfunction
                        
                    On Tower Details function onTowerDetails takes Tower tower returns MultiboardValues
    call mOck_thief_multiboard.setValue(0,I2S(R2I(tower.userReal)))
    return mOck_thief_multiboard
endfunction
                        
                     | 
            
             
                Firestorm Cell v1 
                200
                     
             
                 | 
    
    
              ID:              421 
             Family ID:       
             Author:          Ashbringer 
             Rarity:          uncommon 
             Element:         fire 
            
                 Attack Type:     Magic 
                 Attack Range:    900 
                 Attack CD:       1.3 
                 Damage:  106-106 
            
            
             Status:          Approved 
     | 
    
    
    
             Description: A device created to unleash fiery explosions.  
                            Firestorm
                        Attacks have a 12% chance to apply 3 charges of Firestorm to the target. Each second, a charge will be spent, dealing 100 spell damage to enemies in 300 range. If the target already has charges, the charges will accumulate and a charge will be consumed instantly. On death all remaining firestorm charges get consumed at once. Level Bonus: +0.4% chance +3 damage  | 
    
    
    
            Download
            
            
            
            
             Toggle Triggers Header     globals
        BuffType ashbringer_firestorm_buff
    endglobals
    
    function ashbringer_firestorm_damage takes Tower tower, Unit creep returns nothing
        call Effect.createScaled("Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl", creep.getX(), creep.getY(), 0, 0, 0.4).destroy()
        call tower.doSpellDamageAoEUnit(creep, 300, 100 + (3 * tower.getLevel()), tower.calcSpellCritNoBonus(), 0.0) 
   endfunction
    
    function ashbringer_firestorm_periodic takes Buff b returns nothing
        local Tower tower = b.getCaster()
        local Unit target = b.getBuffedUnit()
        set b.userInt = b.userInt - 1
        if b.userInt <= 0 then
            call b.removeBuff() //need to do it in this order, because the damage can kill the buff carrier, and removing buff after the carrier is dead causes double free
        endif
        call ashbringer_firestorm_damage(tower, target)
    endfunction 
    
    function ashbringer_firestorm_setint takes Buff b returns nothing        
        set b.userInt = b.getPower()
    endfunction
    
 
    function firestorm takes Buff b returns nothing 
        local Tower tower = b.getCaster() 
        local Creep creep = b.getBuffedUnit() 
        call Effect.createScaled("Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl", creep.getX(), creep.getY(), 0, 0, 0.6).destroy()
        call tower.doSpellDamageAoEUnit(creep, 300, b.getPower()* (100 + (3 * tower.getLevel())), tower.calcSpellCritNoBonus(), 0.0) 
    endfunction
    
    
    //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
        set ashbringer_firestorm_buff = BuffType.create(1000,0,false) 
        call ashbringer_firestorm_buff.setBuffIcon('@@0@@')  
        call ashbringer_firestorm_buff.addEventOnCreate(EventHandler.ashbringer_firestorm_setint)
        call ashbringer_firestorm_buff.addPeriodicEvent(EventHandler.ashbringer_firestorm_periodic,1)
        call ashbringer_firestorm_buff.addEventOnDeath(EventHandler.firestorm)
    endfunction
                        
                    On Attack 
                            
                                ONATTACK_chance: 0.12
                            
                                ONATTACK_chanceLevelAdd: 0.004
                            
                             
                        
                        
                            function onAttack takes Tower tower returns nothing
    local Unit creep = Event.getTarget()
    local Buff b
    local integer i
    set b = creep.getBuffOfType(ashbringer_firestorm_buff)
    if ( b != 0 ) then
        call ashbringer_firestorm_damage(tower, creep)
        set i = b.getPower() + 2
        call b.setPower(i)
        set b.userInt = i
    else
        set i = 3
        call ashbringer_firestorm_buff.applyCustomPower(tower, creep, i, i)
    endif
endfunction
                        
                     | 
            
             
                Annoyed Tree v1 
                200
                     
             
                 | 
    
    
              ID:              520 
             Family ID:       
             Author:          Boekie 
             Rarity:          uncommon 
             Element:         nature 
            
                 Attack Type:     Physical 
                 Attack Range:    950 
                 Attack CD:       1.4 
                 Damage:  142-161 
            
            
             Status:          Approved 
     | 
    
    
    
             Description: An angry tree that has a chance to throw a big rock at its target.  
                            Rock Throw
                        30% chance to throw a rock towards the attacked unit. On impact it deals 150 spell damage in a 300 AoE. Level Bonus: +0.6% chance +5 damage  | 
    
    
    
            Download
            
            
            
            
             Toggle Triggers Header     globals
        //@export
        ProjectileType boekie_tree_rock
    endglobals    
   
    function RockHit takes Projectile p, Unit t returns nothing
        call p.doSpellDamagePBAoE(p.userReal,100.0,0.0)
        call DestroyEffect( AddSpecialEffect("Objects\\Spawnmodels\\Undead\\ImpaleTargetDust\\ImpaleTargetDust.mdl", p.x, p.y ) )
    endfunction
    
    //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
            
        set boekie_tree_rock = ProjectileType.createInterpolate( "Abilities\\Weapons\\RockBoltMissile\\RockBoltMissile.mdl",750.00 )
        call boekie_tree_rock.setEventOnInterpolationFinished(ProjectileTargetEvent.RockHit)
    endfunction
                        
                    On Attack 
                            
                                ONATTACK_chance: 0.30
                            
                                ONATTACK_chanceLevelAdd: 0.006
                            
                             
                        
                        
                            function onAttack takes Tower tower returns nothing
    set Projectile.createLinearInterpolationFromUnitToUnit(boekie_tree_rock,tower,1.5+tower.getLevel()*0.05, tower.calcSpellCritNoBonus(),tower,Event.getTarget(),0.25,true).userReal = 300.0
endfunction
                        
                     | 
            
             
                Burning Fire Pit v1 
                200
                     
             
                 | 
    
    
              ID:              558 
             Family ID:       
             Author:          Boekie 
             Rarity:          common 
             Element:         fire 
            
                 Attack Type:     Decay 
                 Attack Range:    800 
                 Attack CD:       0.9 
                 Damage:  157-157 
            
            
             Status:          Approved 
     | 
    
    
    
             Description: A fire pit that has the ability to unleash some powerful flames.  
                            Specials:
                        2x multicrit
                     
                            Hot Coals
                        Whenever this tower kills a creep it gains 20% bonus crit chance for 8.5 seconds. Level Bonus: +0.05 sec duration +0.3% crit chance  | 
    
    
    
            Download
            
            
            
            
             Toggle Triggers Header     globals
    //@import 
    BuffType boekie_coals_buff 
    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
    endfunction
                        
                    On Kill function onKill takes Tower tower returns nothing
local integer lvl = tower.getLevel() 
call boekie_coals_buff.applyCustomTimed(tower,tower,50+(lvl*3),8.5+0.05*lvl) 
endfunction
                        
                     | 
            
             
                Basic Knowledge v1 
                200
                     
             
                 | 
    
    
              ID:              617 
             Family ID:       
             Author:          SirCoqaLot. 
             Rarity:          uncommon 
             Element:         astral 
            
                 Attack Type:     Energy 
                 Attack Range:    960 
                 Attack CD:       2.6 
                 Damage:  415-415 
            
            
             Status:          Approved 
     | 
    
    
    
             Description: Basic astral tower that strengthens itself by acummulating knowledge from its books.  
                            High Knowledge
                        Grants 0.4 experience on attack.
                        
                     | 
    
    
    
            Download
            
            
            
            
             Toggle Triggers On Attack 
                            
                                ONATTACK_chance: 1.0
                            
                                ONATTACK_chanceLevelAdd: 0.0
                            
                             
                        
                        
                            function onAttack takes Tower tower returns nothing
    call tower.addExp(0.4)
endfunction
                        
                     | 
            
             
                Advanced Wooden Trap v1 
                200
                     
             
                 | 
    
    
              ID:              623 
             Family ID:       
             Author:          Boekie 
             Rarity:          uncommon 
             Element:         iron 
            
                 Attack Type:     Physical 
                 Attack Range:    950 
                 Attack CD:       1.3 
                 Damage:  141-141 
            
            
             Status:          Approved 
     | 
    
    
    
             Description: This trap is used to capture beasts but it works on other stuff too.  
                            Activate Trap
                        Every 14 seconds this tower traps 3 creeps in 950 range, dealing 270 spelldamage and stunning them for 0.75 seconds. Level Bonus: +15 spelldamage -0.2 seconds cooldown  | 
    
    
    
            Download
            
            
            
            
             Toggle Triggers Header     globals
    endglobals
    
    //@import
    function trap takes Tower tower, real cooldown, real baseDamage, real damageAdd, real stunDuration, integer maxTargets returns nothing
    endfunction
    
    //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
    endfunction
                        
                    Periodic 
                            
                                PERIODIC_period: 2
                            
                             
                        
                        
                            function periodic takes Tower tower returns nothing
    call trap(tower, 14, 270, 15, 0.75, 3)
endfunction
                        
                     | 
Description: