Embershell Turtle Adult v1
1500
ID:
535
Family ID:
Author:
Velex
Rarity:
uncommon
Element:
fire
Attack Type:
Decay
Attack Range:
800
Attack CD:
0.25
Damage:
1045-1044
Mana:
16
Mana regen:
1
Status:
Approved

Description:

Embershell Turtles are volatile creatures who tend to sporadically attack just about everything. Luckily, they tend to run out of steam rather quickly.
Specials:
+0.8 mana/lvl
Overheat
Each attack costs 1 mana, which is regenerated at a rate of 1 mana per second.
Download

Toggle Triggers

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
Battleship v1
1500
ID:
610
Family ID:
Author:
Natac
Rarity:
uncommon
Element:
iron
Attack Type:
Physical
Attack Range:
900
Attack CD:
1.7
Damage:
2342-2342
Status:
Approved

Description:

A big ship for naval battles.
Specials:
Attacks GROUND only
Splash attack:
   25 AoE: 100% damage
   150 AoE: 40% damage
   250 AoE: 10% damage
Pirates
This tower plunders 2.4 gold each attack.
Treasure Seeker - Aura
Increases the bounty gain of towers in 300 range by 15%.

Level Bonus:
+1% bounty
Download

Toggle Triggers

Header

    globals
        //@import
        BuffType         natac_treasureSeeker_Buff
        //@import
        MultiboardValues natac_pirates_MultiboardValue 
    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: 1.0 ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
     local real goldGranted = 2.4// The gold, that will be granted to the player on this attack 
    set  tower.userReal  = tower.userReal + goldGranted // Set the statistics
    call tower.getOwner().giveGold(goldGranted, tower.getUnit(), false, true)
endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
    local Tower parent = Event.getPrecedingTower()
     if parent.getFamily() == tower.getFamily() then
        set tower.userReal = parent.userReal
    else
        set tower.userReal = 0 
    endif   // Total gold, earned by this towers pirates ability
endfunction

On Tower Details

function onTowerDetails takes Tower tower returns MultiboardValues
    // Show total gold, stolen by this tower pirates ability
    call   natac_pirates_MultiboardValue.setValue(0,R2S(tower.userReal)) 
    return natac_pirates_MultiboardValue
endfunction

Tower Aura

AURA_auraEffect: natac_treasureSeeker_Buff AURA_power: 150 AURA_level: 150 AURA_auraRange: 300 AURA_targetType: TARGET_TYPE_TOWERS AURA_levelAdd: 10 AURA_powerAdd: 10 AURA_targetSelf: true
Advanced Iron Trap v1
1500
ID:
625
Family ID:
Author:
Boekie
Rarity:
uncommon
Element:
iron
Attack Type:
Physical
Attack Range:
950
Attack CD:
1.3
Damage:
942-942
Status:
Approved

Description:

This trap is used to capture beasts but it works on other stuff too.
Activate Trap
Every 12 seconds this tower traps 4 creeps in 950 range, dealing 1500 spelldamage and stunning them for 1.25 seconds.

Level Bonus:
+75 spelldamage 
-0.2 seconds cooldown
Download

Toggle Triggers

Header

    globals
    endglobals
    
    //@import
    function trap takes Tower tower, real cooldown, real baseDamage, real damageAdd, real stunDuration, integer maxTargets 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

Periodic

PERIODIC_period: 2
function periodic takes Tower tower returns nothing
    call trap(tower, 12, 1500, 75, 1.25, 4)
endfunction
Shiny Sun Orb v1
1550
ID:
387
Family ID:
Author:
MasterCassim
Rarity:
common
Element:
astral
Attack Type:
Energy
Attack Range:
850
Attack CD:
1.3
Damage:
1420-1420
Status:
Approved

Description:

The blazing light of the sun makes its targets glow, especially undead ones.
Specials:
Splash attack:
   125 AoE: 50% damage
   225 AoE: 30% damage
+15% dmg to undead
Afterglow
The Orb has a 5% chance to reduce armor of units it damages by 7 for 5 seconds. This chance is doubled for bosses.

Level Bonus:
+0.6% chance
+0.25 seconds duration
Download

Toggle Triggers

Header

    globals
      //@import
      BuffType cassimArmor
    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
function onDamage takes Tower tower returns nothing
   local integer lvl = tower.getLevel()
   local Creep creep = Event.getTarget()
   local real sizeFactor = 1.0
   if creep.getSize() == SIZE_BOSS then
      set sizeFactor = 2.0
   endif
   if(tower.calcChance((0.05+lvl*0.006)*sizeFactor)) then
      call cassimArmor.applyCustomTimed(tower,creep,7,5+lvl*0.25)
   endif
endfunction
Storm Turret v1
1550
ID:
450
Family ID:
Author:
geX
Rarity:
common
Element:
storm
Attack Type:
Energy
Attack Range:
1600
Attack CD:
1.15
Damage:
521-2071
Status:
Approved

Description:

Basic long ranged tower.
Download
Solid Iron Sentry v1
1600
ID:
32
Family ID:
Author:
Glowackos
Rarity:
rare
Element:
iron
Attack Type:
Physical
Attack Range:
925
Attack CD:
1.4
Damage:
1195-1195
Status:
Approved

Description:

A powerful iron tower that will go to great lengths to defend its territory.
Alert
Towers in 500 range get alerted whenever a creep of size air, champion or boss enters the sentry's attack range. They have their base damage increased by 7.5% for 10 seconds. Does not stack.

Level Bonus:
+0.5% base damage bonus
Trespasser Awareness
This tower strengthens its defenses when uninvited units enter its territory. It gains bonus 5%-40% base percent damage with each creep entering its attack range, based on the creep's size. Bonus damage lasts 8 seconds and new stacks of damage do not refresh duration of old ones.
There is also a 50% chance that the trespassing creep will permanently have its armor reduced by 4, which stacks up to 5 times.

Level Bonus:
+0.15 armor reduction
+0.1%-0.8% bonus base percent damage
Download

Toggle Triggers

Header

    globals
        //@import
        BuffType glow_damage_buff
        //@import
        BuffType glow_armor_shred
    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 Unit Comes In Range

UNITINRANGE_targetType: TARGET_TYPE_CREEPS UNITINRANGE_range: 925
function onUnitInRange takes Tower tower returns nothing
    local Unit creep = Event.getTarget()
    local integer size = creep.getSize()
    local integer level = tower.getLevel()
    local Iterate it
    local Unit next
    local integer uid = tower.getUID()
    local Buff b = creep.getBuffOfType(glow_armor_shred)
    local integer buffLevel = 400 + 15 * level
    if b != 0 then
        set buffLevel = IMinBJ(buffLevel + b.getLevel(), buffLevel * 5)
    endif
    
    if tower.calcChance(0.5) then
        call glow_armor_shred.apply(tower,creep,buffLevel)
    endif
    call tower.modifyProperty(MOD_DAMAGE_BASE_PERC,(0.05 + 0.001*level)*(size+1))
    if size > SIZE_NORMAL then
        set it = Iterate.overUnitsInRangeOfCaster(tower, TARGET_TOWERS, 500)
        loop
            set next = it.next()
            exitwhen next == 0
            call glow_damage_buff.apply(tower,next,1)
        endloop
    endif
    call TriggerSleepAction(8)
    if tower.getUID() == uid then
        call tower.modifyProperty(MOD_DAMAGE_BASE_PERC,-(0.05 + 0.001*level)*(size+1))
    endif
endfunction
Bronze Dragon Roost v1
1600
ID:
63
Family ID:
Author:
cedi
Rarity:
unique
Element:
iron
Attack Type:
Essence
Attack Range:
800
Attack CD:
2
Damage:
1186-1190
Status:
Approved

Description:

The mechanical version of the other two dragon roosts.
Specials:
Bounce attack:
   6 targets
   -10% damage per bounce
Bronzefication
Each time this tower damages a unit it has a 10% chance to turn the target's flesh into bronze for 5 seconds. The unit is slowed by 50%, loses 50% of its health regeneration, has a 25% higher item quality and has 50% more armor.

Level Bonus:
-1% hp regen
-0.8% armor
+1% item quality
+0.4% chance
Download

Toggle Triggers

Header

    globals
        BuffType BT
    endglobals
    
    function startA takes Buff B returns nothing
        local Unit U = B.getBuffedUnit()
        local unit u = U.getUnit()
        
        call SetUnitVertexColor( u, 255, 255, 125, 255 )
        call SetUnitTimeScale( u, 0.5 )
        set u = null
    endfunction
    
    function end takes Buff B returns nothing
        local Unit U = B.getBuffedUnit()
        local unit u = U.getUnit()
        
        call SetUnitVertexColor( u, 255, 255, 255, 255 ) 
        call SetUnitTimeScale( u, 1 )
        set u = null
    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 mod = Modifier.create()
        call mod.addModification( MOD_MOVESPEED, -0.5, 0 )
        call mod.addModification( MOD_HP_REGEN_PERC, -0.5, -0.01 )
        call mod.addModification( MOD_ARMOR_PERC, 0.5, -0.008 )
        //call mod.addModification( MOD_HP_PERC, 0.15, -0.003 )
        call mod.addModification( MOD_ITEM_QUALITY_ON_DEATH, 0.25, 0.01 )
        
        set BT = BuffType.create( 5.0, 0.1, false )
        call BT.setBuffIcon( '@@0@@' )
        call BT.setBuffModifier( mod )
        call BT.addEventOnCreate( startA )
        call BT.addEventOnCleanup( end )
    endfunction

On Damage

ONDAMAGE_chance: 0.1 ONDAMAGE_chanceLevelAdd: 0.004
function onDamage takes Tower tower returns nothing
    call BT.apply( tower, Event.getTarget(), tower.getLevel() )
endfunction