The Frozen Wyrm v1
2600
ID:
444
Family ID:
Author:
MasterCassim
Rarity:
unique
Element:
ice
Attack Type:
Elemental
Attack Range:
850
Attack CD:
2.75
Damage:
4921-4930
Status:
Approved

Description:

Unique frost tower with strong slowing abilities.
Specials:
Splash attack:
   550 AoE: 20% damage
Freezing Breath
Each creep damaged by this tower's attacks has a 25% chance to get slowed by 27% for 4 seconds and a 5% chance to get stunned for  1.5 seconds.

Level Bonus:
 +1% chance to slow
 +0.2% chance to stun
 +0.2% slow
 +0.24s slow
Download

Toggle Triggers

Header

    globals
      BuffType cassimSlow2 
      BuffType cassimStun
    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() 
        local Modifier mo = Modifier.create()  
  
      set cassimStun=BuffType.create(0,0,false) // apply custom timed  
      call cassimStun.setBuffIcon('@@1@@')    
      
      call slow.addModification(MOD_MOVESPEED,0,-0.001) 
      set cassimSlow2=BuffType.create(0,0,false) // apply custom timed  
      call cassimSlow2.setBuffIcon('@@0@@') 
      call cassimSlow2.setBuffModifier(slow) 
      call cassimSlow2.setStackingGroup("frost_slow2")       
    endfunction

On Damage

ONDAMAGE_chance: 1.0 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
  local integer lvl = tower.getLevel()  
  local Creep target = Event.getTarget()
  local integer slow = R2I((0.27+lvl*0.002)*1000)
  local integer dur = R2I(4+lvl*0.24)  

  if tower.calcChance(0.25+lvl*0.01) then
    call cassimSlow2.applyCustomTimed(tower,target,slow,dur) 
  endif
  
  if tower.calcChance(0.05+lvl*0.002) then
    call cassimStun.applyOnlyTimed(tower,target,1.5)  
    call cb_stun.applyOnlyTimed(tower,target,1.5)
  endif
  
endfunction
Mad Tree v1
2600
ID:
523
Family ID:
Author:
Boekie
Rarity:
uncommon
Element:
nature
Attack Type:
Physical
Attack Range:
950
Attack CD:
1.4
Damage:
1702-1721
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 1950 spell damage in a 450 AoE. 

Level Bonus:
+0.6% chance
+65 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,19.5+tower.getLevel()*0.65, tower.calcSpellCritNoBonus(),tower,Event.getTarget(),0.25,true).userReal = 450
endfunction
Mutating Plant v1
2600
ID:
678
Family ID:
Author:
Boekie
Rarity:
common
Element:
nature
Attack Type:
Decay
Attack Range:
825
Attack CD:
1.75
Damage:
3440-3440
Status:
Approved

Description:

This plant is small but it grows very fast!
Specials:
+50% exp gain (-2.5%/lvl)
+7.5% damage/lvl
Download
Cumulonimbus Warrior v1
2625
ID:
276
Family ID:
Author:
i_mOck_death
Rarity:
uncommon
Element:
storm
Attack Type:
Energy
Attack Range:
840
Attack CD:
2.1
Damage:
2152-4776
Status:
Approved

Description:

A warrior trained high in the sky.
Specials:
Bounce attack:
   2 targets
   -0% damage per bounce
Lightning Strike
Whenever this tower's attack does not bounce it shoots down a delayed lightning bolt onto the target. The lightning bolt deals 3750 Energy damage.

Level Bonus:
+187.5 damage
Download

Toggle Triggers

On Damage

ONDAMAGE_chance: 1.0 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
    local Unit creep = Event.getTarget()
    local integer cid = creep.getUID()
    if Event.isMainTarget()  == true then
        set tower.userInt = 1
    else
        set tower.userInt = 0
    endif
    call TriggerSleepAction(.4)
    if tower.userInt == 1 and creep.getUID() == cid then
         call SFXAtUnit("Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl",creep.getUnit())
         call tower.doAttackDamage(creep,3750+(187.5*tower.getLevel()),tower.calcAttackMulticrit(0.0,0.0,0))
    endif
endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
set tower.userInt = 0
endfunction
Ray Blaster 2.0 v1
3200
ID:
311
Family ID:
Author:
i_mOck_death
Rarity:
uncommon
Element:
iron
Attack Type:
Energy
Attack Range:
850
Attack CD:
1.4
Damage:
2370-2409
Status:
Approved

Description:

Uncommon iron tower that leaves a debuff on the enemy unit that increases item drop quality and chance of an item drop.
Phaze
Whenever this tower damages a creep it increases its item drop chance and item drop quality by 15% for 6 seconds. 

Level Bonus:
 +0.5% item drop quality 
 +0.5% item drop chance 
 +0.1 seconds
Download

Toggle Triggers

Header

            globals
        //@import
        BuffType mOck_rayBlaster
    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.0 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
            
call mOck_rayBlaster.applyCustomTimed(tower,Event.getTarget(),1500 + 50 * tower.getLevel(),6+tower.getLevel()*0.1)
        
endfunction
Ruined Hurricane Tower v1
2650
ID:
343
Family ID:
Author:
SirCoqaLot.
Rarity:
uncommon
Element:
storm
Attack Type:
Physical
Attack Range:
1000
Attack CD:
2.8
Damage:
9859-9909
Status:
Approved

Description:

Strange tower that rejects some items.
Rejection
This tower drops all except Unique items on attack.
Download

Toggle Triggers

On Attack

ONATTACK_chance: 1.0 ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
    local Item itm
    local integer i = 1

    loop 
    exitwhen i > 6
        set itm = tower.getHeldItem(i)
        if  itm != 0 and itm.getRarity() != Rarity.UNIQUE then
            call itm.drop()
        endif
        set i = i + 1
    endloop
  
endfunction
Harpy Queen v1
2700
ID:
146
Family ID:
Author:
drol
Rarity:
rare
Element:
storm
Attack Type:
Energy
Attack Range:
1000
Attack CD:
2.4
Damage:
3107-3269
Mana:
30
Mana regen:
2
Status:
Approved

Description:

Summoner of storms and rain. Harpies are known for their brutality and mercilessness.
Specials:
Bounce attack:
   2 targets
   -25% damage per bounce
Sparks
Increases the spell damage for a tower in 500 range by 20% and it's spell critical strike chance by 12.5%. Lasts 7.5 seconds.

Level Bonus:
+0.4% spell damage
+0.2% spell critical strike chance
+0.3 seconds duration

AC_TYPE_OFFENSIVE_BUFF
 22, 500 range, 2s cooldown
Twister
Attacks have a 12% chance to summon 3 tornados towards two random creeps in attack range of the harpy. Upon hit each tornado deals this tower's attack damage to the target and makes it suffer 18% additional damage from Storm towers for 5 seconds.

Level Bonus:
+0.5% chance
+0.7% additional damage taken
Download

Toggle Triggers

Autocast

caster_art: AUTOCAST_cooldown: 2 AUTOCAST_numBuffsBeforeIdle: 1 AUTOCAST_isExtended: false AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_BUFF AUTOCAST_manacost: 22 AUTOCAST_range: 500 AUTOCAST_buffType: drol_harpy AUTOCAST_targetSelf: false AUTOCAST_targetType: TARGET_TYPE_TOWERS target_art: Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl AUTOCAST_autoRange: 500
private function onAutocast takes Tower tower returns nothing
    call drol_harpy.applyCustomTimed(tower, Event.getTarget(), tower.getLevel() * 2 + 25, 7.5 + 0.3 * tower.getLevel())
endfunction

Header

    globals
    
        //@import
        BuffType drol_harpy
        //@import
        BuffType drol_harpyDebuff
        //@import
        ProjectileType drol_harpyMissile 
    
    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.12 ONATTACK_chanceLevelAdd: 0.005
function onAttack takes Tower tower returns nothing
    local Iterate i = Iterate.overUnitsInRangeOfCaster(tower, TARGET_CREEPS, 1000)  
    local integer k = 3
    local Unit u
    local Projectile p
    
    set tower.userInt = 20 + tower.getLevel() * 7
    
    loop
        set u = i.next()
        exitwhen u == 0 or k == 0
        set p = Projectile.createFromUnitToUnit(drol_harpyMissile, tower, 1, 0, tower, u, true, false, false) 
        call p.setScale(0.70)
        set k = k - 1
    endloop
    if u != 0 then
        call i.destroy()
    endif
    set i = 0
        
endfunction

On Tower Creation

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