Rancid Felweed v1
510
ID:
407
Family ID:
Author:
SirCoqaLot.
Rarity:
common
Element:
fire
Attack Type:
Decay
Attack Range:
750
Attack CD:
1
Damage:
423-423
Status:
Approved

Description:

Basic Tower that sometimes deals more damage.
Fireblossom
Every 6th attack deals 12.5% bonus damage.
Every 7th attack deals 25% bonus damage.
Every 8th attack deals 37.5% bonus damage.
Every 9th attack deals 50% bonus damage. 

Level Bonus:
+0.25% bonus damage every 6th attack.
+0.5% bonus damage every 7th attack.
+0.75% bonus damage every 8th attack.
+1% bonus damage every 9th attack.
Download

Toggle Triggers

On Damage

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

set tower.userInt = tower.userInt +1
set tower.userInt2 = tower.userInt2 +1
set tower.userInt3 = tower.userInt3 +1
set tower.userReal = tower.userReal +1

if tower.userInt >= 6 then
    set Event.damage = Event.damage * (1.125 + level * 0.0025)
    set tower.userInt = 0
endif
if tower.userInt2 >= 7 then
    set Event.damage = Event.damage * (1.25 + level * 0.005)
    set tower.userInt2 = 0
endif
if tower.userInt3 >= 8 then
    set Event.damage = Event.damage * (1.375 + level * 0.0075)
    set tower.userInt3 = 0
endif
if tower.userReal >= 9 then
    set Event.damage = Event.damage * (1.5 +level * 0.01)
    set tower.userReal = 0
endif
if Event.damage > damage then
    call tower.getOwner().displaySmallFloatingText(I2S(R2I(Event.damage)),tower,255,150,150,0)
endif
endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
set tower.userInt = 0
set tower.userInt2 = 0
set tower.userInt3 = 0
set tower.userReal = 0
endfunction
Frozen Rock v1
520
ID:
685
Family ID:
Author:
SirCoqaLot.
Rarity:
uncommon
Element:
ice
Attack Type:
Energy
Attack Range:
760
Attack CD:
2.3
Damage:
1156-1156
Status:
Approved

Description:

Uncommon tower, which will slow the creeps it attacks. Each attack will increase the chance to stun a target.
Glacial Wrath
Attacks of this tower slow the attacked creep by 10% for 3 seconds. Each attack has a 3% to deal 520 spelldamage and stun the target for 0.9 seconds. The chance to stun the target is increased by 3% per attack and resets after a target is stunned.

Level Bonus:
+10.4 spelldamage 
+0.5% slow
Download

Toggle Triggers

Header

    globals
    //@import
    BuffType sir_frost_glacier
    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
    local Creep creep = Event.getTarget()
            
    call sir_frost_glacier.applyCustomTimed(tower,creep,100*(1+tower.getLevel()/20),3)
    call tower.getOwner().displayFloatingTextX(I2S(R2I(tower.userInt))+"% Chance",tower,50,150,255,255,0.05,2,3) 
   
    
        if tower.calcChance(tower.userInt*0.01) == true and not Event.getTarget().isImmune() then
            call cb_stun.applyOnlyTimed(tower,Event.getTarget(),0.9)
            call tower.doSpellDamage(creep,520*(1+tower.getLevel()*0.02),tower.calcSpellCritNoBonus())
            set tower.userInt = 3
        else 
            set tower.userInt = tower.userInt +3
        endif        
endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
set tower.userInt = 3
endfunction
Cumulus Warrior v1
525
ID:
274
Family ID:
Author:
i_mOck_death
Rarity:
uncommon
Element:
storm
Attack Type:
Energy
Attack Range:
840
Attack CD:
2.1
Damage:
431-955
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 750 Energy damage.

Level Bonus:
+37.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,750+(37.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
Baby Tuskar v1
535
ID:
142
Family ID:
Author:
Palandu
Rarity:
uncommon
Element:
ice
Attack Type:
Elemental
Attack Range:
900
Attack CD:
1.9
Damage:
1008-1008
Status:
Approved

Description:

Loves to brain unsuspecting units with his snowballs.
Specials:
+8% dmg to champions (+0.6%/lvl)
+10% dmg to bosses (+1%/lvl)
-20% dmg to air
Vicious Snow Ball
Throws a fast snowball on attack at the target's head when it's not facing this tower. But the snowball only has a 20% chance to hit, where it hits is decided by the angle of attack.

Temple Crusher : If it hits side-on, does 120% of its attack damage as spell damage and a 0.6 second stun.

Knockdown : If it hits the back of the head, does 40% of its attack damage as spell damage and a 0.4 second stun.

Level Bonus:
+1% chance to hit.
Download

Toggle Triggers

Header

    globals
        //@export
        ProjectileType billy_SnowBall
    endglobals
    
    private function billy_SnowBallHit takes Projectile p, Unit target returns nothing
        local Unit t = p.getCaster()
        if p.userInt == 0 then //miss
            call t.getOwner().displayFloatingTextX2("missed", target, 150, 50, 0, 155, 0.07, 1, 2, 0.018, 0)
        else
            call t.doSpellDamage(target, p.userReal, t.calcSpellCritNoBonus())
            call cb_stun.applyOnlyTimed(t, target, p.userReal2)
            call SFXAtUnit("Abilities\\Spells\\Other\\FrostBolt\\FrostBoltMissile.mdl", target.getUnit())
            if p.userInt2 == 1 then //temple shot
                call t.getOwner().displayFloatingTextX2("Temple Crusher!", target, 150, 50, 255, 200, 0.07, 2, 3, 0.026, 0)
            else
                call t.getOwner().displayFloatingTextX2("Knockdown!", target, 0, 0, 255, 155, 0.07, 1.5, 3, 0.022, 0)
            endif
        endif
    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 billy_SnowBall = ProjectileType.createInterpolate("Abilities\\Spells\\Items\\AIob\\AIobTarget.mdl", 2000)
        call billy_SnowBall.enableHoming(billy_SnowBallHit,0)
    endfunction

On Attack

ONATTACK_chance: 1.0 ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
        local Unit u = Event.getTarget()
        local real facingDelta
        local real unitToTowerVector = Atan2(tower.getY() - u.getY(), tower.getX() - u.getX())*bj_RADTODEG
        local Projectile p
        
        if (unitToTowerVector < 0) then
           set unitToTowerVector = unitToTowerVector + 360
        endif
        
        set facingDelta = unitToTowerVector - GetUnitFacing(u.getUnit()) 
        
        if (facingDelta < 0) then               
            set facingDelta = facingDelta + 360
        endif
        
        if (facingDelta > 180) then
            set facingDelta = 360 - facingDelta
        endif
        
        if facingDelta >=80 then   //launch
            set p = Projectile.createFromUnitToUnit(billy_SnowBall, tower, 100, 0, tower, Event.getTarget(), true, false, true)
            call p.setScale(0.8)
            if facingDelta <=100 then   //temple shot
                set p.userInt2=1
                set p.userReal=tower.getCurrentAttackDamageWithBonus()*1.2
                set p.userReal2=0.6
            else                        //back of the head
                set p.userInt2=2
                set p.userReal=tower.getCurrentAttackDamageWithBonus()*0.4
                set p.userReal2=0.4
            endif
            
            //decide hit/miss
            if tower.calcChance(0.20+I2R(tower.getLevel())/100) then
                set p.userInt = 1 //hit
            else
                set p.userInt = 0 //miss
            endif
        endif
endfunction
Cruel Fire v1
550
ID:
461
Family ID:
Author:
Boekie
Rarity:
rare
Element:
fire
Attack Type:
Decay
Attack Range:
900
Attack CD:
1.5
Damage:
642-642
Status:
Approved

Description:

An aura tower which gives towers a bonus crit chance.
Fire of Fury - Aura
Increases crit chance of towers in 300 range by 5%. 

Level Bonus:
+0.2% chance
Download

Toggle Triggers

Header

    globals     
    //@export
    BuffType boekie_crit_aura  
    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()
        set boekie_crit_aura = BuffType.createAuraEffectType(true)
        call m.addModification(MOD_ATK_CRIT_CHANCE,0.05,0.002)
        call boekie_crit_aura.setBuffModifier(m)
        call boekie_crit_aura.setStackingGroup("crit_aura")
        call boekie_crit_aura.setBuffIcon('@@0@@')
    endfunction

Tower Aura

AURA_auraEffect: boekie_crit_aura AURA_power: 0 AURA_level: 0 AURA_auraRange: 300 AURA_targetType: TARGET_TYPE_TOWERS AURA_levelAdd: 1 AURA_powerAdd: 1 AURA_targetSelf: true
Flashing Cenotaph v1
560
ID:
672
Family ID:
Author:
Natac
Rarity:
common
Element:
storm
Attack Type:
Energy
Attack Range:
2000
Attack CD:
1
Damage:
301-303
Status:
Approved

Description:

A common cenotaph of a honorable fallen storm warrior, whose wrath outlasts its death and still seeks for revenge.
Specials:
+10% dmg to magical (+1%/lvl)
Wrath of the Storm - Aura
The enormous wrath of the dead warrior flows out of this tower undirected. So the tower only hits a random target in range each attack.
Download

Toggle Triggers

Header

    globals
        //@import
        BuffType natac_flashingGraveRandomTarget_BuffType
    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

Tower Aura

AURA_auraEffect: natac_flashingGraveRandomTarget_BuffType AURA_power: 1 AURA_level: 1 AURA_auraRange: 0 AURA_targetType: TARGET_TYPE_PLAYER_TOWERS + TARGET_TYPE_ELEMENT_STORM AURA_levelAdd: 0 AURA_powerAdd: 0 AURA_targetSelf: true
Haunted Ruins v1
566
ID:
270
Family ID:
Author:
Velex
Rarity:
common
Element:
darkness
Attack Type:
Essence
Attack Range:
900
Attack CD:
2
Damage:
1020-1021
Status:
Approved

Description:

Tower with a chance to slow the movement speed of a unit on attacks.
Atrophy
When this tower attacks a creep it has a 14% (9.33% for bosses) chance to slow it by  21% for 5 seconds.

Level Bonus:
+0.14% (0.09% for bosses) chance
Download

Toggle Triggers

Header

  globals 
  //@import
  BuffType velex_slow
  endglobals
//The init function
private function init takes nothing returns nothing
endfunction

On Attack

ONATTACK_chance: 1 ONATTACK_chanceLevelAdd: 0
function onAttack takes Tower tower returns nothing
        local Unit creep = Event.getTarget() 
        local integer size = creep.getSize()
        local boolean calc
        
        if size == SIZE_BOSS then 
            set calc=tower.calcChance((.14+tower.getLevel()*0.0014)*2/3)
        else
            set calc=tower.calcChance(.14+tower.getLevel()*0.0014)
        endif
        if(calc==true) then
                call velex_slow.applyCustomTimed(tower,Event.getTarget(),R2I(0.21*1000),5)
        endif
        
    
endfunction