Sanctuary of Fortuity v1
2450
ID:
209
Family ID:
Author:
Neotopia
Rarity:
common
Element:
iron
Attack Type:
Physical
Attack Range:
800
Attack CD:
1.5
Damage:
10732-10791
Status:
Approved

Description:

The Sanctuary of an old religion. Uncountable prayers led to the power of this. Even more prayers needed to awake the powers!
Warming Up
Each attack of this tower has a 70% chance to miss the target.

Level Bonus:
-0.6% miss chance
Download

Toggle Triggers

On Damage

ONDAMAGE_chance: 1 ONDAMAGE_chanceLevelAdd: 0
function onDamage takes Tower tower returns nothing
    if tower.calcBadChance( 0.7 - tower.getLevel() * 0.006 ) then
        set Event.damage = 0
        call tower.getOwner().displayFloatingTextX("Miss",tower,255, 0, 0,255,0.05,0.0,2.0)
    endif
endfunction
Thunderstorm Generator v1
2450
ID:
383
Family ID:
Author:
SirCoqaLot.
Rarity:
uncommon
Element:
storm
Attack Type:
Magic
Attack Range:
980
Attack CD:
1.35
Damage:
1-1
Status:
Approved

Description:

Simple storm tower that will deal all of its damage through spells. Has a minor chance to cast a chainlightning on attack.
Chainlightning
This tower has a 19.5% chance on attack to release a chainlightning that does 4000 damage and hits up to 3 units.

Level Bonus:
+80 damage
+0.25% chance
Force Attack
This tower deals 1840 spell damage on attack.

Level Bonus:
+36.8 damage
Download

Toggle Triggers

Header

    globals
        Cast Chainlightning
    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
        set Chainlightning = Cast.create('@@0@@',"chainlightning",5.0)
    endfunction

On Attack

ONATTACK_chance: 0.195 ONATTACK_chanceLevelAdd: 0.0025
function onAttack takes Tower tower returns nothing
     call Chainlightning.targetCastFromCaster(tower,Event.getTarget(),1.0+tower.getLevel()*0.02,tower.calcSpellCritNoBonus())
endfunction

On Damage

ONDAMAGE_chance: 1.0 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
    local Unit creep = Event.getTarget()
        call tower.doSpellDamage(creep,1840*(1+tower.getLevel()*0.02),tower.calcSpellCritNoBonus())
        
endfunction
Long Forgotten Soul v1
2450
ID:
395
Family ID:
Author:
SirCoqaLot.
Rarity:
uncommon
Element:
darkness
Attack Type:
Magic
Attack Range:
1200
Attack CD:
1
Damage:
1014-1075
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 100% more spell damage. Both effects last 4 seconds.

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

Level Bonus:
+122.5 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(100+0.8*lvl)*100,4)
        call sir_cripple.applyCustomTimed(tower,tower,lvl,4)
    endif
    if tower.calcChance(.25 + 0.005 * lvl) then
        call tower.doSpellDamage(creep,2450+tower.getLevel()*122.5,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
Storm Destillator v1
2450
ID:
500
Family ID:
Author:
geX
Rarity:
common
Element:
storm
Attack Type:
Energy
Attack Range:
1600
Attack CD:
1.1
Damage:
717-3167
Status:
Approved

Description:

Basic long ranged tower.
Download
Forest Amazon v1
2450
ID:
603
Family ID:
Author:
Boekie
Rarity:
rare
Element:
nature
Attack Type:
Essence
Attack Range:
850
Attack CD:
2.2
Damage:
2661-2666
Status:
Approved

Description:

An archer that has been granted a gift from the forest.
Multishot:
Attacks up to 3 targets at the same time.

Level Bonus:
+1 target at level 15
Gift of the Forest
The magical powers of the forest grant this archer enchanted arrows. These arrows have a 7% chance to stun for 1.75 seconds. If they don't stun there is a 20% chance to slow by 15% for 9.5 seconds. 

Level Bonus
+0.1% chance to stun
+0.05 seconds stun duration
+0.1% chance to slow
+0.2 seconds slow duration
Download

Toggle Triggers

Header

    globals   
    //@import
    BuffType CyonyPoison
    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 level = tower.getLevel()
local Unit creep = Event.getTarget()

if tower.calcChance(0.07 + level*0.001) then
    call cb_stun.applyOnlyTimed(tower, creep, 1.75 + level*0.05)
  elseif tower.calcChance(0.20 + level*0.001) then
    call CyonyPoison.apply(tower,creep,20+level*2) 
  endif
endfunction

On Level Up

function onLevelUp takes Tower tower returns nothing
    if tower.getLevel() == 15 then
        call UnitRemoveAbility(tower.getUnit(),'@@1@@')
        call UnitAddAbility(tower.getUnit(),'@@0@@')
    endif
endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
    if tower.getLevel() >= 15 then
        call UnitRemoveAbility(tower.getUnit(),'@@1@@')
        call UnitAddAbility(tower.getUnit(),'@@0@@')
    endif
endfunction
Collosal Magic Ruin v1
2500
ID:
16
Family ID:
Author:
drol
Rarity:
common
Element:
astral
Attack Type:
Elemental
Attack Range:
700
Attack CD:
1
Damage:
2228-2477
Status:
Approved

Description:

Some magic still sparkles inside these ruins.
Illuminate
Attacks debuff the target, making it grant 30% more experience once killed. This effect last 5 seconds.

Level Bonus:
+1.2% experience
+0.2 seconds
Download

Toggle Triggers

Header

    globals
    //@import
    BuffType drol_magicRuin
    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 drol_magicRuin.applyCustomTimed(tower,Event.getTarget(),tower.getLevel()*6 + 125,5+tower.getLevel()*0.2)
endfunction
Bottomless Ice Mine v1
2500
ID:
58
Family ID:
Author:
Velex
Rarity:
uncommon
Element:
ice
Attack Type:
Elemental
Attack Range:
700
Attack CD:
2
Damage:
4472-4473
Status:
Approved

Description:

Tower with a chance to cast an ice nova.
Ice Nova
Damaged targets have a 20% chance to get blasted by an ice nova, dealing 2500 damage and slowing units in 400 range by 14% for 5 seconds. Has a 30% bonus chance to crit. 

Level Bonus:
+0.4% chance 
+125 damage
Download

Toggle Triggers

Header

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

On Damage

ONDAMAGE_chance: .2 ONDAMAGE_chanceLevelAdd: 0.004
function onDamage takes Tower tower returns nothing
local Unit targ = Event.getTarget()
local Iterate it = Iterate.overUnitsInRangeOfUnit(tower,TARGET_TYPE_CREEPS,targ,400)
local Unit next

loop
    set next = it.next()
    exitwhen next == 0
    call Maj_iceNovaSlow.applyCustomTimed(tower, next, 140, 5.0)
endloop

call tower.doSpellDamageAoEUnit(targ,400,2500+(tower.getLevel()*125),tower.calcSpellCrit(0.3,0.0),0)
call SFXAtUnit("Abilities\\Spells\\Undead\\FrostNova\\FrostNovaTarget.mdl", targ.getUnit())
endfunction