Magnataur Reaver v1
300
ID:
236
Family ID:
Author:
drol/i_mOck_death
Rarity:
uncommon
Element:
ice
Attack Type:
Elemental
Attack Range:
900
Attack CD:
1.7
Damage:
481-492
Status:
Approved

Description:

Roaming on the Frozen Wastes, the Magnataur Reaver seeks new challenges to beat.
Frozen Spears
Has a 11% chance to deal 50% more damage and stun the target for 0.5 seconds.

Level Bonus:
+2% damage
+0.01 seconds
Download

Toggle Triggers

On Damage

ONDAMAGE_chance: .11 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
    local Unit creep = Event.getTarget()
    local real level = tower.getLevel()
    if Event.isMainTarget() == true then
        set Event.damage = Event.damage*(1.5+(.02*level))
        call SFXAtUnit("Objects\\Spawnmodels\\Critters\\Albatross\\CritterBloodAlbatross.mdl", creep.getUnit())
        call cb_stun.applyOnlyTimed(tower, creep, 0.5+tower.getLevel()*0.01)
        call tower.getOwner().displaySmallFloatingText(I2S(R2I(Event.damage)),tower,255,150,150,0)
    endif
endfunction
Essence of Rage v1
300
ID:
290
Family ID:
Author:
Killamasta
Rarity:
uncommon
Element:
darkness
Attack Type:
Decay
Attack Range:
800
Attack CD:
2
Damage:
38-38
Status:
Approved

Description:

A piece of a black heart. Poisons many enemies.
Specials:
Bounce attack:
   3 targets
   -0% damage per bounce
Poisononed Heart
This tower destroys a piece of the creep's heart on damage. The affected creep takes 75  Spelldamage every second for 6 seconds.

Level Bonus:
+3 poison damage
+0.2 seconds poison duration
Download

Toggle Triggers

Header

    globals  
       //@import
       BuffType Poisoned_heart // this is used to declare the buff
    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 Unit creep = Event.getTarget()

 
set Poisoned_heart.applyCustomTimed(tower,creep,tower.getLevel(),6+tower.getLevel()*.2).userReal = 75. + 3 * tower.getLevel()
 
endfunction
Healing Obelisk v1
300
ID:
587
Family ID:
Author:
SirCoqaLot.
Rarity:
uncommon
Element:
astral
Attack Type:
Elemental
Attack Range:
1000
Attack CD:
1.5
Damage:
674-736
Status:
Approved

Description:

Basic tower that can't hold back its holy powers for long.
Grace
50% of the damage done by this tower will be revoked over 3 seconds. Does not affect immune targets.

Level Bonus:
 -0.4% of the damage healed. 
+1 second needed to heal at level 15 and 25
Download

Toggle Triggers

On Damage

ONDAMAGE_chance: 1.0 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
local Unit target = Event.getTarget()
local integer id = target.getUID()
local integer loopnr = tower.userInt
local integer healing = R2I(Event.damage*(0.5-tower.getLevel()*0.004))

if not target.isImmune() then
    set healing = R2I(healing/loopnr)
    loop
        exitwhen loopnr == 0
        call TriggerSleepAction(1.0)
        if target.getUID() == id then
            call SetUnitState(target.getUnit(),UNIT_STATE_LIFE,GetUnitState(target.getUnit(),UNIT_STATE_LIFE)+healing)
            call SFXAtUnit("Abilities\\Spells\\Human\\HolyBolt\\HolyBoltSpecialArt.mdl",target.getUnit())
            call tower.getOwner().displayFloatingTextX("+"+I2S(healing),target,0, 255, 0,255,0.05,0.0,2.0)
        endif
        set loopnr = loopnr - 1
    endloop
endif
endfunction

On Level Up

function onLevelUp takes Tower tower returns nothing
    local integer level = tower.getLevel()
    if level < 15 then
        set tower.userInt = 3
    elseif level < 25 then
        set tower.userInt = 4
    else 
        set tower.userInt = 5
    endif
endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
    local integer level = tower.getLevel()
    if level < 15 then
        set tower.userInt = 3
    elseif level < 25 then
        set tower.userInt = 4
    else 
        set tower.userInt = 5
    endif
endfunction
Rowing Boat v1
300
ID:
608
Family ID:
Author:
Natac
Rarity:
uncommon
Element:
iron
Attack Type:
Physical
Attack Range:
900
Attack CD:
1.7
Damage:
434-434
Status:
Approved

Description:

A small rowing boat with two seamen.
Specials:
Attacks GROUND only
Splash attack:
   25 AoE: 100% damage
   150 AoE: 40% damage
   250 AoE: 10% damage
Pirates
This tower plunders 0.3 gold each attack.
Treasure Seeker - Aura
Increases the bounty gain of towers in 300 range by 10%.

Level Bonus:
+0.5% bounty
Download

Toggle Triggers

Header

    globals
        //@export
        BuffType         natac_treasureSeeker_Buff
        //@export
        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
        local Modifier bountyMod = Modifier.create()
        set   natac_treasureSeeker_Buff = BuffType.createAuraEffectType(true)
        call  bountyMod.addModification(MOD_BOUNTY_RECEIVED, 0.0 , 0.001 ) // Set by aura
        call  natac_treasureSeeker_Buff.setBuffModifier(bountyMod)
        call  natac_treasureSeeker_Buff.setBuffIcon('@@0@@')
        
        set   natac_pirates_MultiboardValue = MultiboardValues.create(1)
        call  natac_pirates_MultiboardValue.setKey(0,"Gold Plundered") 
    endfunction

On Attack

ONATTACK_chance: 1.0 ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
    local real goldGranted = 0.3// 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() == parent.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: 100 AURA_level: 100 AURA_auraRange: 300 AURA_targetType: TARGET_TYPE_TOWERS AURA_levelAdd: 5 AURA_powerAdd: 5 AURA_targetSelf: true
Enchanted Monolith v1
300
ID:
640
Family ID:
Author:
drol
Rarity:
common
Element:
storm
Attack Type:
Physical
Attack Range:
1050
Attack CD:
1.5
Damage:
264-293
Status:
Approved

Description:

Covered with ancient runes from rituals practiced ages ago.
Specials:
Bounce attack:
   3 targets
   -42% damage per bounce
+10% dmg to air (+1%/lvl)
Download
Sniper v1
300
ID:
662
Family ID:
Author:
cedi
Rarity:
uncommon
Element:
iron
Attack Type:
Physical
Attack Range:
1400
Attack CD:
2.5
Damage:
425-425
Status:
Approved

Description:

A long ranged tower which is good against bosses, but weak against mass creeps.
Specials:
-70% dmg to masses
-30% dmg to normals
+20% dmg to champions (+1.6%/lvl)
+50% dmg to bosses (+4%/lvl)
+20% dmg to air (+1.6%/lvl)
Rocket Strike
30% chance to fire a rocket towards the attacked unit. On impact it deals 400 damage in a 150 AoE. Deals 125% damage to mass creeps.

Level Bonus:
+0.6% chance
+10 damage
Download

Toggle Triggers

Header

    globals
        //@export
        ProjectileType cedi_sniper_rocket
    endglobals    
   
    function RocketHit takes Projectile p, Unit t returns nothing
        call p.doSpellDamagePBAoE(p.userReal,100.0,0.0)
        call DestroyEffect( AddSpecialEffect( "Objects\\Spawnmodels\\Other\\NeutralBuildingExplosion\\NeutralBuildingExplosion.mdl", p.x, p.y ) )
    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 DamageTable myDT = DamageTable.create()
        call myDT.setBonusToSize( SIZE_MASS, 0.95 )        
        set cedi_sniper_rocket = ProjectileType.createInterpolate( "Abilities\\Weapons\\RocketMissile\\RocketMissile.mdl", 750.00 )
        call cedi_sniper_rocket.setCustomDamageTable( myDT )
        call cedi_sniper_rocket.setEventOnInterpolationFinished(ProjectileTargetEvent.RocketHit)
    endfunction

On Attack

ONATTACK_chance: 0.30 ONATTACK_chanceLevelAdd: 0.006
function onAttack takes Tower tower returns nothing
    set Projectile.createLinearInterpolationFromUnitToUnit(cedi_sniper_rocket,tower,4.0+tower.getLevel()*0.1, tower.calcSpellCritNoBonus(),tower,Event.getTarget(),0.25,true).userReal = 150.0
endfunction
Plant v1
300
ID:
675
Family ID:
Author:
Boekie
Rarity:
common
Element:
nature
Attack Type:
Decay
Attack Range:
825
Attack CD:
1.75
Damage:
454-454
Status:
Approved

Description:

This plant is small but it grows very fast!
Specials:
+44% exp gain (-2.5%/lvl)
+6% damage/lvl
Download