Shadow v1
3330
ID:
266
Family ID:
Author:
i_mOck_death
Rarity:
unique
Element:
darkness
Attack Type:
Decay
Attack Range:
830
Attack CD:
1.6
Damage:
1023-8022
Abil. Factor:
.66
Status:
Approved

Description:

The closer you are to the light, the bigger your shadow is.

Latest Upload Comment:

Restored from 1.10
Dark Orbs
Each attack has a 20% chance to spawn 3 orbs that travel outwards in all directions from Shadow. Orbs travel for 8 seconds, firing off dark rays at enemies within 450 range, which deal 15% of this tower's attack damage as spell damage per second.

Level Bonus:
+1 orb every 5 levels
+0.6% damage per second
Soul Conversion
On kill a lesser orb is spawned where the creep died. Lesser orbs last for 3 seconds, firing off lesser dark rays at enemies within 450 range, which deal 9% of this tower's attack damage as spell damage per second.

Level Bonus:
+0.36% damage per second
Dark Shroud
Towers within 300 range have 10% of their damage output stolen by Shadow. This tower then deals that damage back at its original targets in the form of Decay damage. This damage cannot crit.

Level Bonus:
+0.5% damage dealt
Download

Toggle Triggers

Header

   globals
        BuffType mOck_darkShroud
        ProjectileType mOck_darkOrb
        ProjectileType mOck_lesserDarkOrb
    endglobals
    
    function darkS takes Buff b returns nothing
        local Tower  tower = b.getCaster()  
        local Unit target = Event.getTarget()
        local real dmg = Event.damage*(.1+.005*tower.getLevel())
        
        set Event.damage = Event.damage*.9
        call tower.doCustomAttackDamage(target, dmg, 1, AttackType.DECAY)
    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
        set mOck_darkShroud = BuffType.createAuraEffectType(true)
        call mOck_darkShroud.setBuffIcon('@@1@@') 
        call mOck_darkShroud.addEventOnDamage(darkS,1.0, 0.0)
        
        set mOck_darkOrb = ProjectileType.create("Abilities\\Spells\\Items\\OrbDarkness\\OrbDarkness.mdl",8,200)
        set mOck_lesserDarkOrb = ProjectileType.create("Abilities\\Spells\\Items\\OrbDarkness\\OrbDarkness.mdl",3,0)
    endfunction

On Attack

ONATTACK_chance: .2 ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
        local integer level = tower.getLevel()
        local integer numProjectiles = 3 + level/5
        local integer i = numProjectiles
        local Projectile p
        local real face = GetUnitFacing(tower.getUnit())
        local real x = tower.getX()
        local real y = tower.getY()
 
        loop
            set i = i - 1
            set p = Projectile.create(mOck_darkOrb,tower,tower.getCurrentAttackDamageWithBonus()*(.05+level*0.002),tower.calcSpellCritNoBonus(),x,y,80.0,face+i*360.0/numProjectiles)
            call p.setScale(1.75)
            call p.addAbility('@@0@@')
            exitwhen i < 1
        endloop
endfunction

On Kill

function onKill takes Tower tower returns nothing
    local integer level = tower.getLevel()
    local Projectile p
    local Creep creep = Event.getTarget()
    local real x = creep.getX()
    local real y = creep.getY()
    
    set p = Projectile.create(mOck_lesserDarkOrb,tower,tower.getCurrentAttackDamageWithBonus()*(.03+level*0.0012),tower.calcSpellCritNoBonus(),x,y,80.0,0)
    call p.setScale(1.25)
    call p.addAbility('@@0@@')
endfunction

Tower Aura

AURA_auraEffect: mOck_darkShroud AURA_power: 0 AURA_level: 0 AURA_auraRange: 300 AURA_targetType: TARGET_TYPE_TOWERS AURA_levelAdd: 1 AURA_powerAdd: 1 AURA_targetSelf: true