Village Witch v1
150
ID:
183
Family ID:
Author:
cedi
Rarity:
uncommon
Element:
darkness
Attack Type:
Essence
Attack Range:
1100
Attack CD:
1.6
Damage:
135-135
Mana:
30
Mana regen:
1.5
Status:
Approved

Description:

A Small young witch...
Specials:
+1 mana/lvl
+0.1 mana regen/lvl
Love Potion
The witch throws a bottle of love potion on the target, slowing it by 25% and increasing its item drop chance by 20%. The potion lasts 7 seconds.

Level Bonus:
+0.375% slow
+0.3% Item drop chance

AC_TYPE_OFFENSIVE_BUFF
 25, 1100.00 range, 3.00s cooldown
Soul Split
When the witch attacks, it has a 30% chance to deal 50 spell damage to its target, increasing the witch's attackspeed by 10% and decreasing the chance to trigger this spell by 10%. These effects last 10 seconds and stack. If the target is under the influence of a Love Potion, the attackspeed bonus, the damage and the duration of this spell are doubled.

Level Bonus:
+2 spell damage
Download

Toggle Triggers

Autocast

caster_art: AUTOCAST_cooldown: 3.00 AUTOCAST_numBuffsBeforeIdle: 1 AUTOCAST_isExtended: false AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_BUFF AUTOCAST_manacost: 25 AUTOCAST_range: 1100.00 AUTOCAST_buffType: cedi_LovePotion AUTOCAST_targetSelf: false AUTOCAST_targetType: TARGET_TYPE_CREEPS target_art: AUTOCAST_autoRange: 1100.00
private function onAutocast takes Tower tower returns nothing
    set Projectile.createFromUnitToUnit( cedi_LoveMissile, tower, 1.00, tower.calcSpellCritNoBonus(), tower, Event.getTarget(), true, false, false ).userInt = 200 + tower.getLevel() * 3
endfunction

Header

    globals
        //@export
        BuffType cedi_LovePotion
        //@export
        BuffType cedi_SoulBuff
        //@export
        ProjectileType cedi_LoveMissile
    endglobals
    
    function cedi_Love takes Projectile p, Unit target returns nothing
        local Unit tower = p.getCaster()
        call cedi_LovePotion.apply( tower, target, p.userInt )
    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()  
        
        set cedi_LovePotion = BuffType.create( 7.00, 0.00, false ) 
        call cedi_LovePotion.setBuffModifier(mod) 
        call mod.addModification(MOD_ITEM_CHANCE_ON_DEATH,0.00,0.001)
        call mod.addModification(MOD_MOVESPEED,-0.00,-0.00125)
        call cedi_LovePotion.setBuffIcon( '@@0@@' )
        
        set cedi_SoulBuff = BuffType.create( 10.00, 0.00, true )
        call cedi_SoulBuff.setBuffIcon( '@@1@@' )
        
        set cedi_LoveMissile = ProjectileType.create( "Abilities\\Spells\\Other\\AcidBomb\\BottleMissile.mdl", 999.99, 1100.00 )
        call cedi_LoveMissile.enableHoming( cedi_Love, 0.00 )
    endfunction

On Damage

ONDAMAGE_chance: 1.0 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
    local real multipler = 1.00
    local integer UID = tower.getUID()
    if tower.calcChance( tower.userReal / 100.00 ) then
        if Event.getTarget().getBuffOfType( cedi_LovePotion ) != 0 then
            set multipler = 2.00
            call tower.getOwner().displayFloatingTextX( "Double", tower, 255, 0, 0, 255, 64.00, 1.00, 2.00 )
        endif
        call SFXAtUnit("Objects\\Spawnmodels\\Undead\\UndeadDissipate\\UndeadDissipate.mdl", tower.getUnit())
        call tower.doSpellDamage( Event.getTarget(), (50 + 2 * tower.getLevel() ) * multipler, tower.calcSpellCritNoBonus() )
        call cedi_SoulBuff.applyCustomTimed( tower, tower, 1, 10 * multipler )
        set tower.userReal = tower.userReal - 10.00 //* multipler
        call tower.modifyProperty( MOD_ATTACKSPEED, 0.10 * multipler ) 
        
        call TriggerSleepAction( 10.00 * multipler )
        if tower.getUID() == UID then
            call tower.modifyProperty( MOD_ATTACKSPEED, -0.10 * multipler ) 
            set tower.userReal = tower.userReal + 10.00 //* multipler
        endif
    endif
endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
    set tower.userReal = 30.00
endfunction
Lesser Skeletal Mage v1
150
ID:
527
Family ID:
Author:
Boekie
Rarity:
uncommon
Element:
darkness
Attack Type:
Decay
Attack Range:
900
Attack CD:
2
Damage:
270-270
Mana:
40
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 15%, 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(),6*lvl) 
endfunction

Header

    globals
    //@export
    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
    
    local Modifier m=Modifier.create()    
    call m.addModification(MOD_ATK_DAMAGE_RECEIVED,0.15,0.001) 
    set Boekie_ampDamage=BuffType.create(5,0.1,false)   
    call Boekie_ampDamage.setBuffModifier(m) 
    call Boekie_ampDamage.setStackingGroup("Boekie_ampDamage1") 
    call Boekie_ampDamage.setBuffIcon( '@@0@@' )
    
    
    endfunction
Fiery Stone v1
150
ID:
630
Family ID:
Author:
geX
Rarity:
common
Element:
fire
Attack Type:
Elemental
Attack Range:
900
Attack CD:
1.2
Damage:
147-171
Status:
Approved

Description:

Basic tower with low splash damage
Specials:
Splash attack:
   160 AoE: 25% damage
Download
Monolith v1
150
ID:
639
Family ID:
Author:
drol
Rarity:
common
Element:
storm
Attack Type:
Physical
Attack Range:
1050
Attack CD:
1.5
Damage:
136-150
Status:
Approved

Description:

Covered with ancient runes from rituals practiced ages ago.
Specials:
Bounce attack:
   3 targets
   -46% damage per bounce
+10% dmg to air (+1%/lvl)
Download
Star Gazer v1
160
ID:
53
Family ID:
Author:
i_mOck_death
Rarity:
uncommon
Element:
astral
Attack Type:
Energy
Attack Range:
875
Attack CD:
1.55
Damage:
127-127
Status:
Approved

Description:

Uncommon astral tower that deals spell damage equal to its attack every time the tower attacks.
Magic Split
This tower deals an additional amount of spell damage to its target equal to 100% of its attack damage. If the creep is immune this damage is dealt as energy damage equal to 80% of its attack damage not affected by level bonus. 

Level Bonus:
 +1% damage
Download

Toggle Triggers

On Damage

ONDAMAGE_chance: 1.0 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
    local Unit creep = Event.getTarget()
    if creep.isImmune() then
        call tower.doAttackDamage(creep,tower.getCurrentAttackDamageWithBonus()*(.8),tower.calcAttackMulticrit(0.0,0.0,0))
    else
        call tower.doSpellDamage(creep,tower.getCurrentAttackDamageWithBonus()*(1+.01*tower.getLevel()),tower.calcSpellCritNoBonus())
    endif
endfunction
Toxic Mossy Acid Sprayer v1
160
ID:
162
Family ID:
Author:
cedi
Rarity:
common
Element:
iron
Attack Type:
Decay
Attack Range:
800
Attack CD:
1
Damage:
70-90
Status:
Approved

Description:

Careful, corrosive.
Specials:
Bounce attack:
   3 targets
   -15% damage per bounce
Acid Coating
Decreases the armor of damaged units by 1.2 for 3 seconds.

Level Bonus:
+0.048 armor reduction
+0.12 seconds
Download

Toggle Triggers

Header

    globals
        //@import
        BuffType cedi_acidarmor
    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 cedi_acidarmor.applyCustomTimed( tower, Event.getTarget(), 1200 + tower.getLevel() * 48, 3.0 + 0.12 * tower.getLevel() )
endfunction
Broken Storm Column v1
160
ID:
475
Family ID:
Author:
geX
Rarity:
common
Element:
storm
Attack Type:
Energy
Attack Range:
1600
Attack CD:
1.25
Damage:
68-228
Status:
Approved

Description:

Basic long ranged tower.
Download