Angry Tree v1
800
ID:
521
Family ID:
Author:
Boekie
Rarity:
uncommon
Element:
nature
Attack Type:
Physical
Attack Range:
950
Attack CD:
1.4
Damage:
574-593
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 600 spell damage in a 350 AoE. 

Level Bonus:
+0.6% chance
+20 damage
Download

Toggle Triggers

Header

    globals
        //@import
        ProjectileType boekie_tree_rock
    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 Attack

ONATTACK_chance: 0.30 ONATTACK_chanceLevelAdd: 0.006
function onAttack takes Tower tower returns nothing
    set Projectile.createLinearInterpolationFromUnitToUnit(boekie_tree_rock,tower,6.0+tower.getLevel()*0.20, tower.calcSpellCritNoBonus(),tower,Event.getTarget(),0.25,true).userReal = 350.0
endfunction
Jungle Stalker v1
800
ID:
537
Family ID:
Author:
Boekie
Rarity:
rare
Element:
nature
Attack Type:
Physical
Attack Range:
850
Attack CD:
1.1
Damage:
613-712
Status:
Approved

Description:

This tower becomes enraged when it kills a unit and also gets stronger with every critical hit.
Specials:
15% crit chance (+0.5%/lvl)
Feral Aggression
On every critical hit this tower gains +0.2% bonus damage. This bonus is permanent and has a maximum of 200% bonus damage.
Bloodthirst
Whenever this tower kills a unit it becomes enraged, gaining +100% attackspeed for 3 seconds. Cannot retrigger while active!

Level Bonus:
+0.05 sec duration
+1% attackspeed
Download

Toggle Triggers

Header

    globals
        //@export
        BuffType boekie_rage_buff
        //@export
        MultiboardValues boekie_jungle_stalker_values
    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 m = Modifier.create()  
        call m.addModification(MOD_ATTACKSPEED,1.0,0.01)  
        set boekie_rage_buff = BuffType.create(0.0,0.0,true) //0.0 time since I will apply it custom timed  
        call boekie_rage_buff.setBuffModifier(m)  
        call boekie_rage_buff.setBuffIcon('@@0@@')
        
        set boekie_jungle_stalker_values = MultiboardValues.create(1)
        call boekie_jungle_stalker_values.setKey(0, "Damage Bonus")
    endfunction

On Damage

ONDAMAGE_chance: 1.0 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
    local real damageBonus

    if Event.isAttackDamageCritical() and tower.userReal <= 2 then 
        set tower.userReal = tower.userReal + 0.002
        call tower.modifyProperty(MOD_DAMAGE_ADD_PERC, 0.002)
    endif
endfunction

On Kill

function onKill takes Tower tower returns nothing
    local integer lvl = tower.getLevel() 
    if tower.getBuffOfType(boekie_rage_buff) == 0 then  
        call boekie_rage_buff.applyCustomTimed(tower, tower, lvl, 3.0+0.05*lvl) 
    endif
endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
    local Tower preceding = Event.getPrecedingTower()  
    local real damageBonus 

    if(preceding.getFamily() == tower.getFamily()) then  
        set damageBonus = preceding.userReal 
        set tower.userReal = damageBonus 
        call tower.modifyProperty(MOD_DAMAGE_ADD_PERC, damageBonus)  
    else  
        set tower.userReal = 0.0 //Damage bonus  
    endif 
endfunction

On Tower Details

function onTowerDetails takes Tower tower returns MultiboardValues
    call boekie_jungle_stalker_values.setValue(0, formatPercent(tower.userReal, 1))
    return boekie_jungle_stalker_values
endfunction
Hellhound v1
840
ID:
74
Family ID:
Author:
cedi
Rarity:
uncommon
Element:
fire
Attack Type:
Decay
Attack Range:
800
Attack CD:
1.2
Damage:
900-900
Status:
Approved

Description:

The hounds of war are howling again.
Specials:
+6% damage/lvl
Roar
Whenever this tower damages a unit it has 30% chance to release a battle cry. The cry increases the attack damage of all towers in 420 range by 5% for 5 seconds. If a tower has allready the roar buff the attack damage is increased by 0.6% and the duration is refreshed. Stacks up to 100 times.

Level Bonus:
+0.6% attack damage
Download

Toggle Triggers

Header

    globals
        //@import
        BuffType cedi_helldog
    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: 0.3 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
    local Iterate I = Iterate.overUnitsInRangeOfCaster( tower, TARGET_TYPE_TOWERS, 420.0 )
    local Unit U 
    local Buff B
    call DestroyEffect( AddSpecialEffectTarget( "Abilities\\Spells\\NightElf\\BattleRoar\\RoarCaster.mdl", tower.getUnit(), "origin" ) )
    loop
        set U = I.next()
        exitwhen U == 0
        set B = U.getBuffOfType( cedi_helldog )
        if B != 0 then
            if B.userInt < 100 then
                call cedi_helldog.apply( tower, U, B.getLevel() + 12 )
                set B.userInt = B.userInt + 1
            else
                call B.refreshDuration()
            endif
        else
            call cedi_helldog.apply( tower, U, tower.getLevel() * 12 )
            set B.userInt = 0
        endif
    endloop
    //0.0005  0.003, 0.0045, 0.006, 0.0075, 0.009
    //0.05    0.05 , 0.05  , 0.05 , 0.05  , 0.05
    //        70   , 210   , 840  , 1680  , 3360
endfunction
Stormhound v1
840
ID:
244
Family ID:
Author:
cedi
Rarity:
uncommon
Element:
storm
Attack Type:
Energy
Attack Range:
900
Attack CD:
1.5
Damage:
1082-1090
Status:
Approved

Description:

Do you hear the howl of the storm?
Specials:
+1.8% attackspeed/lvl
Thunderous Roar
Whenever this tower damages a unit it has 30% chance to release a battle cry. The cry increases the attack speed of all towers in 420 range by 5% for 5 seconds. If a tower already has the thunderous roar buff the attack speed is increased by 0.6% and the duration is refreshed. Stacks up to 100 times.

Level Bonus:
+0.6% attack speed
Download

Toggle Triggers

Header

    globals
        //@import
        BuffType cedi_stormdog
    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: 0.3 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
    local Iterate I = Iterate.overUnitsInRangeOfCaster( tower, TARGET_TYPE_TOWERS, 420.0 )
    local Unit U 
    local Buff B
    call DestroyEffect( AddSpecialEffectTarget( "Abilities\\Spells\\NightElf\\Taunt\\TauntCaster.mdl", tower.getUnit(), "origin" ) )
    loop
        set U = I.next()
        exitwhen U == 0
        set B = U.getBuffOfType( cedi_stormdog )
        if B != 0 then
            if B.userInt < 100 then
                call cedi_stormdog.apply( tower, U, B.getLevel() + 12 )
                set B.userInt = B.userInt + 1
            else
                call B.refreshDuration()
            endif
        else
            set B = cedi_stormdog.apply( tower, U, tower.getLevel() * 12 )
            set B.userInt = 0
        endif
    endloop
endfunction
Solar Collector v1
850
ID:
197
Family ID:
Author:
Boekie / D1000
Rarity:
rare
Element:
iron
Attack Type:
Energy
Attack Range:
800
Attack CD:
1
Damage:
468-468
Mana:
17
Mana regen:
1.5
Status:
Approved

Description:

A tower which transforms solar-energy in to pure force.
Specials:
10% spell crit chance (+0.5%/lvl)
x2 spell crit damage
+1 mana/lvl
+0.02 mana regen/lvl
Release Energy
Deals 4000 damage to the attacked creep and stuns it for 3 seconds (1 seconds on bosses).

Level Bonus:
+150 damage

AC_TYPE_OFFENSIVE_UNIT
 15, 800 range, 5s cooldown
Energetic Attack
Each attack costs 1 mana. Without mana the tower can't attack.
Download

Toggle Triggers

Autocast

caster_art: AUTOCAST_cooldown: 5 AUTOCAST_numBuffsBeforeIdle: 0 AUTOCAST_isExtended: false AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_UNIT AUTOCAST_manacost: 15 AUTOCAST_range: 800 AUTOCAST_buffType: 0 AUTOCAST_targetSelf: true AUTOCAST_targetType: TARGET_TYPE_CREEPS target_art: AUTOCAST_autoRange: 800
private function onAutocast takes Tower tower returns nothing
   local Unit creep = Event.getTarget()
   local integer size = creep.getSize()
   call tower.doSpellDamage(creep,4000+(tower.getLevel()*150),tower.calcSpellCritNoBonus()) 
   call SFXOnUnit("Abilities\\Spells\\Human\\ReviveHuman\\ReviveHuman.mdl",creep.getUnit(),"origin") 
   if size < SIZE_BOSS then 
   call cb_stun.applyOnlyTimed(tower,creep,3) 
   else
   call cb_stun.applyOnlyTimed(tower,creep,1) 
   endif
endfunction

On Attack

ONATTACK_chance: 1.0 ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
  local unit towerUnit = tower.getUnit()
  local real mana = GetUnitState(towerUnit, UNIT_STATE_MANA)
  if (mana < 1) then
    call tower.orderStop()
  else
    call SetUnitState(towerUnit , UNIT_STATE_MANA, mana-1)
  endif
  set towerUnit = null
endfunction
Studied Teacher v1
850
ID:
430
Family ID:
Author:
Deikorim / limfa
Rarity:
uncommon
Element:
astral
Attack Type:
Elemental
Attack Range:
900
Attack CD:
1.5
Damage:
1070-1074
Status:
Approved

Description:

Teacher teaches you to attack!
Specials:
+60% exp gain
Knowledge
When the teacher attacks there's a 10% chance a random tower in 600 range will learn from her, gaining 1.8 experience. 

Level Bonus:
+0.6% chance
Download

Toggle Triggers

Header

    globals
        //@import
        ProjectileType knowledge_green
        //@import
        ProjectileType knowledge_blue
        //@import
        ProjectileType knowledge_red
        //@import
        MultiboardValues limfa_teacherboard
    endglobals
    //@import
    function teacher_attack takes Tower t, real xp 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

On Attack

ONATTACK_chance: 1.0 ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
    call teacher_attack(tower,1.8)
    call SetUnitAnimationByIndex(tower.getUnit(), 3)
endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
    local Tower preceding = Event.getPrecedingTower()
    if (preceding.getFamily() == tower.getFamily()) then
        set tower.userReal2 = preceding.userReal2
    else
        set tower.userReal2 = 0
    endif
endfunction

On Tower Details

goldcost: 0
function onTowerDetails takes Tower tower returns MultiboardValues
    call limfa_teacherboard.setValue(0, formatFloat(tower.userReal2,1))
    return limfa_teacherboard
endfunction
Storm Chamber v1
850
ID:
489
Family ID:
Author:
geX
Rarity:
common
Element:
storm
Attack Type:
Energy
Attack Range:
1600
Attack CD:
1.15
Damage:
286-1136
Status:
Approved

Description:

Basic long ranged tower.
Download