Prince of Lightning v1
1200
ID:
415
Family ID:
Author:
Boekie
Rarity:
rare
Element:
storm
Attack Type:
Energy
Attack Range:
1300
Attack CD:
1.5
Damage:
213-217
Status:
Approved

Description:

A lightning prince with a bouncing attack and a chance to control energy and lightning.
Specials:
Bounce attack:
   5 targets
   -30% damage per bounce
5% spell crit chance (+0.25%/lvl)
Lightning Strike
When this tower damages a target there is a 15% chance that a lightning bolt strikes the target for 2000 damage. 

Level Bonus:
+100 damage
+0.4% chance
Realm of Thunder - Aura
Increases the vulnerability  of enemies in 1300 range to damage from Storm towers by 10%. 

Level Bonus:
+0.2% vulnerability
Download

Toggle Triggers

Header

    globals
      //@export
        BuffType gexLightningAura
    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 gexLightningAura = BuffType.createAuraEffectType(false)
        call m.addModification(MOD_DMG_FROM_STORM,0.0,0.001)
        call gexLightningAura.setBuffModifier(m)
        call gexLightningAura.setBuffIcon('@@0@@')

    endfunction

On Damage

ONDAMAGE_chance: 0.15 ONDAMAGE_chanceLevelAdd: 0.004
function onDamage takes Tower tower returns nothing
 
local Unit creep = Event.getTarget()  
call tower.doSpellDamage(creep,2000.0+(tower.getLevel()*100.0),tower.calcSpellCritNoBonus())  
call SFXOnUnit("Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl",creep.getUnit(),"origin") 
endfunction

Tower Aura

AURA_powerAdd: 2 AURA_auraEffect: gexLightningAura AURA_levelAdd: 2 AURA_power: 100 AURA_targetType: TARGET_TYPE_CREEPS AURA_targetSelf: false AURA_level: 100 AURA_auraRange: 1300
Frozen Troll v1
1200
ID:
478
Family ID:
Author:
cedi
Rarity:
uncommon
Element:
ice
Attack Type:
Elemental
Attack Range:
900
Attack CD:
1.5
Damage:
738-738
Mana:
100
Mana regen:
2.5
Status:
Approved

Description:

His father said to him: Stay cool.
Specials:
-50% dmg to undead
+25% dmg to orcs
+25% dmg to humanoids
Blizzard
Summons 7 waves of icy spikes which fall down to earth. Each wave deals 572 damage in an AoE of 400. Each time a unit is damaged by this spell there is a chance of 40% to slow the unit by 11% for 5 seconds and a chance of 20% to stun the unit for 0.75 seconds.

Level Bonus:
+25 damage
+0.01% slow
+1% chance for slow
+0.1% chance for stun

AC_TYPE_OFFENSIVE_UNIT
 95, 900 range, 10s cooldown
Download

Toggle Triggers

Autocast

caster_art: AUTOCAST_cooldown: 10 AUTOCAST_numBuffsBeforeIdle: 0 AUTOCAST_isExtended: false AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_UNIT AUTOCAST_manacost: 95 AUTOCAST_range: 900 AUTOCAST_buffType: 0 AUTOCAST_targetSelf: true AUTOCAST_targetType: 0 target_art: AUTOCAST_autoRange: 900
private function onAutocast takes Tower tower returns nothing
    local unit u = Event.getTarget().getUnit() 
    call Troll_blizzard.pointCastFromCasterOnPoint( tower, GetUnitX( u ), GetUnitY( u ), 1.00 + I2R( tower.getLevel() ) * 0.033, tower.calcSpellCritNoBonus() )
    set u = null
endfunction

Header

    globals
        BuffType Troll_blizzardslow
        Cast Troll_blizzard
    endglobals
    
    function OnBlizzard takes DummyUnit U returns nothing
        if U.getCaster().calcChance( 0.40 + I2R( U.getCaster().getLevel() ) * 0.01 ) then
            call Troll_blizzardslow.applyOnlyTimed( U.getCaster(), Event.getTarget(), 5.00 )
        endif
        if U.getCaster().calcChance( 0.20 + I2R( U.getCaster().getLevel() ) * 0.001 ) then
            call cb_stun.applyOnlyTimed( U.getCaster(), Event.getTarget(), 0.75 )
        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
        local Modifier mod2 = Modifier.create()
        set Troll_blizzardslow = BuffType.create(0.0,0.0,false)
        call mod2.addModification(MOD_MOVESPEED,-0.11,-0.001)
        call Troll_blizzardslow.setBuffModifier(mod2)
        call Troll_blizzardslow.setBuffIcon('@@4@@')
        set Troll_blizzard = Cast.create( '@@0@@', "blizzard", 9.00 )
        call Troll_blizzard.setDamageEvent( EventHandler.OnBlizzard )
        call Troll_blizzardslow.setStackingGroup("cedi_troll_blizzard")
    endfunction
Icy Obelisk v1
1200
ID:
540
Family ID:
Author:
Boekie
Rarity:
uncommon
Element:
ice
Attack Type:
Elemental
Attack Range:
600
Attack CD:
2.1
Damage:
1989-1989
Status:
Approved

Description:

A frightfully blue column of solid ice, worshipped by cold blooded folk.
Specials:
Splash attack:
   180 AoE: 35% damage
+45% dmg to masses (+2%/lvl)
Absolute Zero
The Obelisk slows creeps it damages by 24% for 4 seconds.

Level Bonus:
+0.45% slow
Download

Toggle Triggers

Header

    globals
        //@import
        BuffType mcSlow
    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 integer s = R2I((24+tower.getLevel()*0.45)*10)
    
    call mcSlow.applyCustomTimed(tower,Event.getTarget(), s, 4) 
endfunction
Regenerating Well v1
1200
ID:
577
Family ID:
Author:
drol
Rarity:
rare
Element:
nature
Attack Type:
Essence
Attack Range:
1000
Attack CD:
1.1
Damage:
738-817
Mana:
400
Mana regen:
5
Status:
Approved

Description:

This well contains healing powers.
Specials:
+20% dmg to orcs (+0.8%/lvl)
Replenish
Restores 10% (only half on towers of this family) of each towers maximum mana for towers in 500 range.

Level Bonus:
+0.4% maximum mana

AC_TYPE_ALWAYS_BUFF
 200, 500 range, 5s cooldown
Cleansing Water - Aura
Increases the spell damage dealt by all towers in 200 range by 15%.

Level Bonus:
+0.6% spell damage
Download

Toggle Triggers

Autocast

caster_art: Abilities\Spells\Undead\ReplenishMana\ReplenishManaCasterOverhead.mdl AUTOCAST_cooldown: 5 AUTOCAST_numBuffsBeforeIdle: 0 AUTOCAST_isExtended: false AUTOCAST_autocastType: AC_TYPE_ALWAYS_BUFF AUTOCAST_manacost: 200 AUTOCAST_range: 500 AUTOCAST_buffType: 0 AUTOCAST_targetSelf: true AUTOCAST_targetType: 0 target_art: Abilities\Spells\Items\AIma\AImaTarget.mdl AUTOCAST_autoRange: 500
private function onAutocast takes Tower tower returns nothing
local Iterate towers = Iterate.overUnitsInRangeOfCaster(tower,TARGET_TYPE_TOWERS,500)
local Tower u
local real mana
local real currentmana
    
loop  
    set u = towers.next() 
    exitwhen u == 0
    if u != tower then
    set mana = GetUnitState(u.getUnit(), UNIT_STATE_MAX_MANA)
    set currentmana = GetUnitState(u.getUnit(), UNIT_STATE_MANA)
    if u.getFamily() == tower.getFamily() then
    call SetUnitState(u.getUnit(), UNIT_STATE_MANA, currentmana + mana * (0.05 + 0.002*tower.getLevel()))
    else
    call SetUnitState(u.getUnit(), UNIT_STATE_MANA, currentmana + mana * (0.1 + 0.004*tower.getLevel()))
    endif
    endif
endloop
endfunction

Header

    globals
        //@export
        BuffType drol_wellAura
    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 wellMod = Modifier.create()
        set   drol_wellAura = BuffType.createAuraEffectType(true)
        call  wellMod.addModification(MOD_SPELL_DAMAGE_DEALT, 0.0 , 0.001 ) // Set by aura
        call  drol_wellAura.setBuffModifier(wellMod)
        call  drol_wellAura.setBuffIcon('@@0@@')
    endfunction

Tower Aura

AURA_auraEffect: drol_wellAura AURA_power: 150 AURA_level: 150 AURA_auraRange: 200 AURA_targetType: TARGET_TYPE_TOWERS AURA_levelAdd: 6 AURA_powerAdd: 6 AURA_targetSelf: true
Monolith of Thunder v1
1200
ID:
642
Family ID:
Author:
drol
Rarity:
common
Element:
storm
Attack Type:
Physical
Attack Range:
1050
Attack CD:
1.5
Damage:
992-1111
Status:
Approved

Description:

Covered with ancient runes from rituals practiced ages ago.
Specials:
Bounce attack:
   3 targets
   -34% damage per bounce
+10% dmg to air (+1%/lvl)
Download
Chemical Center v1
1200
ID:
656
Family ID:
Author:
D1000
Rarity:
uncommon
Element:
iron
Attack Type:
Essence
Attack Range:
800
Attack CD:
1.2
Damage:
979-979
Status:
Approved

Description:

An assembly point for a lot of pipelines. Not less leaky spots were formed during the years. Everthing is contaminated by toxic substances.
Specials:
-60% dmg to undead
+60% dmg to nature (+2%/lvl)
Toxic Vapor
On attack, has a 30% chance to apply a buff that deals 1200 spell damage per second that lasts for 10 seconds.

Level Bonus:
+48 damage per second.
Download

Toggle Triggers

Header

    globals
        //@import
        BuffType D1000_Toxic_vapor
    endglobals

    private function init takes nothing returns nothing
    endfunction

On Attack

ONATTACK_chance: 0.30 ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
    call D1000_Toxic_vapor.apply(tower,Event.getTarget(),R2I(tower.getLevel()*480+12000))
endfunction
Forgotten Soul v1
1240
ID:
384
Family ID:
Author:
SirCoqaLot.
Rarity:
uncommon
Element:
darkness
Attack Type:
Magic
Attack Range:
1200
Attack CD:
1
Damage:
528-589
Status:
Approved

Description:

A tricky tower that may weaken its target temporarily but also itself
Soul Scattering
10% chance on attack to reduce its own attackspeed by 60% and making its target receive 80% more spell damage. Both effects last 3.5 seconds.

Level Bonus:
+1% attackspeed 
+0.64% spell damage received
Shadowstrike
This tower has a 25% chance on attack to deal 1240 spell damage. 

Level Bonus:
+62 bonusdamage 
+0.5% chance
Download

Toggle Triggers

Header

    globals
        //@import
        BuffType sir_cripple
        //@import
        BuffType sir_banish
    endglobals
    
    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
    local integer lvl = tower.getLevel()
    local Creep creep = Event.getTarget()
    if tower.calcChance(0.1) then
        call sir_banish.applyCustomTimed(tower,creep,R2I(80+0.64*lvl)*100,3.5)
        call sir_cripple.applyCustomTimed(tower,tower,lvl,3.5)
    endif
    if tower.calcChance(.25 + 0.005 * lvl) then
        call tower.doSpellDamage(creep,1240+tower.getLevel()*62,tower.calcSpellCritNoBonus())
        call SFXOnUnit("Abilities\\Spells\\Undead\\DeathPact\\DeathPactTarget.mdl",creep.getUnit(),"origin")
    endif
endfunction

On Damage

ONDAMAGE_chance: 0.0 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing

endfunction