Skeletal Sorceror v1
1400
ID:
529
Family ID:
Author:
Boekie
Rarity:
uncommon
Element:
darkness
Attack Type:
Decay
Attack Range:
900
Attack CD:
2
Damage:
2517-2517
Mana:
60
Mana regen:
2
Status:
Approved

Description:

A tower that increases the damage that creeps suffer.
Dark Curse
Increases the attack damage target creep receives by 29%, the curse lasts 5 seconds. 

Level Bonus:
+0.6% bonusdamage 
 +0.1 second duration.

AC_TYPE_OFFENSIVE_BUFF
 30, 900 range, 5s cooldown
Download

Toggle Triggers

Autocast

caster_art: AUTOCAST_cooldown: 5 AUTOCAST_numBuffsBeforeIdle: 3 AUTOCAST_isExtended: false AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_BUFF AUTOCAST_manacost: 30 AUTOCAST_range: 900 AUTOCAST_buffType: Boekie_ampDamage AUTOCAST_targetSelf: false AUTOCAST_targetType: TARGET_TYPE_CREEPS target_art: Abilities\Spells\Human\Banish\BanishTarget.mdl AUTOCAST_autoRange: 900
private function onAutocast takes Tower tower returns nothing
local integer lvl = tower.getLevel()

call Boekie_ampDamage.apply(tower,Event.getTarget(),140+lvl*6) 
endfunction

Header

    globals
    //@import
    BuffType Boekie_ampDamage
    
    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
Greater Shrubfield v1
1400
ID:
542
Family ID:
Author:
gex
Rarity:
common
Element:
nature
Attack Type:
Physical
Attack Range:
960
Attack CD:
0.9
Damage:
901-901
Status:
Approved

Description:

Common nature tower with an increased critical strike chance and damage.
Specials:
8% crit chance (+0.6%/lvl)
x1.8 crit damage (+x0.06/lvl)
Download
Magma Geyser v1
1400
ID:
574
Family ID:
Author:
drol
Rarity:
uncommon
Element:
fire
Attack Type:
Elemental
Attack Range:
1100
Attack CD:
1.8
Damage:
1181-1260
Status:
Approved

Description:

A sleeping geyser that only sprouts fire now and then.
Specials:
Splash attack:
   175 AoE: 30% damage
+20% dmg to normals (+0.4%/lvl)
Ignite
The geyser has a 30% chance on damaging a creep to ignite the target, dealing 15% of the tower's attack damage as spell damage per second and reducing the target's health regeneration by 20% for 8 seconds.

Level Bonus:
+0.6% attack damage
+0.4% health regeneration reduction
Download

Toggle Triggers

Header

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

On Damage

ONDAMAGE_chance: 0.30 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
    set drol_fireDot.apply(tower,Event.getTarget(),tower.getLevel()*4 + 150).userReal = tower.getCurrentAttackDamageWithBonus() * (0.15 + tower.getLevel() * 0.006)
endfunction
Holy Priest v1
1400
ID:
599
Family ID:
Author:
Boekie
Rarity:
uncommon
Element:
astral
Attack Type:
Elemental
Attack Range:
1000
Attack CD:
2
Damage:
1279-1279
Status:
Approved

Description:

This holy priest is able to smite creeps. It's very weak at the start but becomes a lot stronger when it gains experience.
Specials:
+3% attackspeed/lvl
Smite
When this tower damages a creep it has 5% chance to smite it, dealing 190 spelldamage.

Level Bonus:
+2% chance
+342 spelldamage
-1.5 permanent armor reduction (-0.5 on bosses) at level 25
Download

Toggle Triggers

On Damage

ONDAMAGE_chance: 0.05 ONDAMAGE_chanceLevelAdd: 0.02
function onDamage takes Tower tower returns nothing
local Unit creep = Event.getTarget() 
local integer level = tower.getLevel()

call tower.doSpellDamage(creep,190.0+(level*342.0),tower.calcSpellCritNoBonus()) 
call SFXOnUnit("Abilities\\Spells\\Human\\HolyBolt\\HolyBoltSpecialArt.mdl",creep.getUnit(),"origin") 
if level == 25 then

    if creep.getSize() < SIZE_BOSS then  
        call creep.modifyProperty(MOD_ARMOR,  -1.5) 
    else  
        call creep.modifyProperty(MOD_ARMOR,  -0.5) 
    endif 
    
endif
endfunction
Fast Growing Plant v1
1400
ID:
677
Family ID:
Author:
Boekie
Rarity:
common
Element:
nature
Attack Type:
Decay
Attack Range:
825
Attack CD:
1.75
Damage:
1933-1933
Status:
Approved

Description:

This plant is small but it grows very fast!
Specials:
+48% exp gain (-2.5%/lvl)
+7% damage/lvl
Download
Lonely Miner v1
1400
ID:
687
Family ID:
Author:
drol
Rarity:
rare
Element:
iron
Attack Type:
Decay
Attack Range:
1000
Attack CD:
1.8
Damage:
1717-1771
Status:
Approved

Description:

This loner has been searching for gold and treasure his entire life.
Specials:
+20% bounty collected (+0.8%/lvl)
Goldrush
The miner has a 20% chance on attack to go into a goldrush, increasing attackspeed by more than 40% depending on the player's gold and making each hit gain 2.8 gold. Goldrush lasts 5 seconds. Cannot retrigger while in goldrush!

Hint: Check multiboard to view exact attack speed bonus

Level Bonus:
+0.1 gold gained
+0.1 seconds duration
Excavation
Every 20 seconds the miner has a 25% chance to find 21 gold.

Level Bonus:
+0.8 gold
Download

Toggle Triggers

Header

    globals
        //@import
        BuffType drol_goldrush
        //@import
        MultiboardValues drol_excavationMulti
    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.2 ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
    if tower.getBuffOfGroup("drol_goldrush") == 0 then
        call drol_goldrush.applyCustomTimed(tower,tower,R2I(20. + Pow(GetPlayerState(tower.getOwner().getThePlayer(), PLAYER_STATE_RESOURCE_GOLD),0.5) / 3), 5. + tower.getLevel() * 0.1)
    endif
    
endfunction

On Damage

ONDAMAGE_chance: 1.0 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
    local real goldBonus = 2.8 + tower.getLevel() * 0.1
     
    if Event.isMainTarget() and tower.getBuffOfGroup("drol_goldrush") > 0 then
        set tower.userReal = tower.userReal + goldBonus
        call tower.getOwner().giveGold(goldBonus, tower.getUnit(), false, true)
    endif
endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
    
    local Tower preceding = Event.getPrecedingTower()  

    if(preceding.getFamily() == tower.getFamily()) then  
        set tower.userReal = preceding.userReal
    else  
        set tower.userReal = 0.0
    endif 
    
endfunction

On Tower Details

function onTowerDetails takes Tower tower returns MultiboardValues
    // Show total gold digged up
    call   drol_excavationMulti.setValue(0,I2S(R2I(tower.userReal)))
    call   drol_excavationMulti.setValue(1,I2S(40 + R2I(Pow(GetPlayerState(tower.getOwner().getThePlayer(), PLAYER_STATE_RESOURCE_GOLD),0.5)/3)) + "%")
    return drol_excavationMulti
endfunction

Periodic

PERIODIC_period: 20
function periodic takes Tower tower returns nothing
    local real goldBonus = 21 + tower.getLevel() * 0.8
    local Effect targetEffect 

    set targetEffect = Effect.createScaled("Abilities\\Weapons\\AncientProtectorMissile\\AncientProtectorMissile.mdl", GetUnitX(tower.getUnit()), GetUnitY(tower.getUnit()), 0, 0, 0.8)
    call targetEffect.setLifetime(0.1) 
        
    if tower.calcChance(0.25) then
        set tower.userReal = tower.userReal + goldBonus
        call tower.getOwner().giveGold(goldBonus, tower.getUnit(), false, true)
    endif
endfunction
Revenging Tentacle v1
1440
ID:
615
Family ID:
Author:
drol
Rarity:
common
Element:
darkness
Attack Type:
Physical
Attack Range:
850
Attack CD:
1.5
Damage:
1334-1813
Status:
Approved

Description:

Sometimes hits its targets in a weak spot, leaving them rended.
Rend
The tentacle has a 25% chance to rend a target, making it suffer 7% increased spell damage and dealing 480 spell damage per second for 6 seconds. Does not stack.

Level Bonus:
+1% chance
+20 spell damage per second
Download

Toggle Triggers

Header

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

On Damage

ONDAMAGE_chance: 0.25 ONDAMAGE_chanceLevelAdd: 0.01
function onDamage takes Tower tower returns nothing
    set drol_tentacleDot.apply(tower,Event.getTarget(), 5).userReal = 480. + 20. * tower.getLevel()
endfunction