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
Adept Witch v1
600
ID:
375
Family ID:
Author:
cedi
Rarity:
uncommon
Element:
darkness
Attack Type:
Essence
Attack Range:
1100
Attack CD:
1.6
Damage:
538-538
Mana:
30
Mana regen:
1.5
Status:
Approved

Description:

Yet she has the knowledge to transform you into a frog.
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 32% and increasing its item drop chance by 25.6%. 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 36% chance to deal 400 spell damage to its target, increasing the witch's attackspeed by 15% and decreasing the chance to trigger this spell by 9%. These effects last 12 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:
+16 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 = 256 + tower.getLevel() * 3
endfunction

Header

    globals
        //@import
        BuffType cedi_LovePotion
        //@import
        BuffType cedi_SoulBuff
        //@import
        ProjectileType cedi_LoveMissile
    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 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(), (400 + 16 * tower.getLevel() ) * multipler, tower.calcSpellCritNoBonus() )
        call cedi_SoulBuff.applyCustomTimed( tower, tower, 1, 12 * multipler )
        set tower.userReal = tower.userReal - 9.00 //* multipler
        call tower.modifyProperty( MOD_ATTACKSPEED, 0.15 * multipler ) 
        
        call TriggerSleepAction( 12.00 * multipler )
        if tower.getUID() == UID then
            call tower.modifyProperty( MOD_ATTACKSPEED, -0.15 * multipler ) 
            set tower.userReal = tower.userReal + 9.00 //* multipler
        endif
    endif
endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
    set tower.userReal = 36.00
endfunction
Skilled Witch v1
1200
ID:
184
Family ID:
Author:
cedi
Rarity:
uncommon
Element:
darkness
Attack Type:
Essence
Attack Range:
1100
Attack CD:
1.6
Damage:
1076-1076
Mana:
30
Mana regen:
1.5
Status:
Approved

Description:

Yes, she is scary.
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 36% and increasing its item drop chance by 28.8%. 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 39% chance to deal 800 spell damage to its target, increasing the witch's attackspeed by 20% and decreasing the chance to trigger this spell by 8.5%. These effects last 13 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:
+32 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 = 288 + tower.getLevel() * 3
endfunction

Header

    globals
        //@import
        BuffType cedi_LovePotion
        //@import
        BuffType cedi_SoulBuff
        //@import
        ProjectileType cedi_LoveMissile
    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 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(), (800 + 32 * tower.getLevel() ) * multipler, tower.calcSpellCritNoBonus() )
        call cedi_SoulBuff.applyCustomTimed( tower, tower, 1, 13 * multipler )
        set tower.userReal = tower.userReal - 8.50 //* multipler
        call tower.modifyProperty( MOD_ATTACKSPEED, 0.20 * multipler ) 
        
        call TriggerSleepAction( 13.00 * multipler )
        if tower.getUID() == UID then
            call tower.modifyProperty( MOD_ATTACKSPEED, -0.20 * multipler ) 
            set tower.userReal = tower.userReal + 8.50 //* multipler
        endif
    endif
endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
    set tower.userReal = 39.00
endfunction
Witch Queen v1
2400
ID:
185
Family ID:
Author:
cedi
Rarity:
uncommon
Element:
darkness
Attack Type:
Essence
Attack Range:
1100
Attack CD:
1.6
Damage:
2153-2153
Mana:
30
Mana regen:
1.5
Status:
Approved

Description:

What's the thing around my ankle? Ohh that, that are the hands of one of my minions.
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 42% and increasing its item drop chance by 33.6%. 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 42% chance to deal 2000 spell damage to its target, increasing the witch's attackspeed by 25% and decreasing the chance to trigger this spell by 8%. These effects last 15 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:
+80 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 = 336 + tower.getLevel() * 3
endfunction

Header

    globals
        //@import
        BuffType cedi_LovePotion
        //@import
        BuffType cedi_SoulBuff
        //@import
        ProjectileType cedi_LoveMissile
    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 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(), (2000 + 80 * tower.getLevel() ) * multipler, tower.calcSpellCritNoBonus() )
        call cedi_SoulBuff.applyCustomTimed( tower, tower, 1, 15 * multipler )
        set tower.userReal = tower.userReal - 8.00 //* multipler
        call tower.modifyProperty( MOD_ATTACKSPEED, 0.25 * multipler ) 
        
        call TriggerSleepAction( 15.00 * multipler )
        if tower.getUID() == UID then
            call tower.modifyProperty( MOD_ATTACKSPEED, -0.25 * multipler ) 
            set tower.userReal = tower.userReal + 8.00 //* multipler
        endif
    endif
endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
    set tower.userReal = 42.00
endfunction