Soul Vault v1
2800
ID:
453
Family ID:
Author:
SirCoqaLot.
Rarity:
unique
Element:
darkness
Attack Type:
Decay
Attack Range:
775
Attack CD:
3
Damage:
6155-9155
Status:
Approved

Description:

Advanced tower that has a chance to reduce target's armor and make it suffer from immense pain. The Vault's presence frightens nearby units that they loose their defense strategies and attacked units will suffer more spell damage.
Acid Skull
This tower has a 25% chance to throw an Acid Skull onto the target, dealing 1800 damage to the main target and 1440 damage to targets in 225 range and reducing their armor by 5 over 4.5 seconds. 

Level Bonus:
 +5% damage
 +0.4% chance
Soulsteal
This tower has a 12.5% chance to lock its target's soul. A unit without a soul will recieve 50% more spell damage. 

Level Bonus:
 +0.1% chance
 +2% more spell damage taken
Vault's Presence - Aura
Unit's in 775 range have their armor reduced by 25%. 

Level Bonus:
 +0.2% armor reduction
Download

Toggle Triggers

Header

    globals

        BuffType sir_armor_aura
        BuffType sir_soul_devour
        BuffType sir_acid_skull
        Cast AcidSkull
        
    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 armor = Modifier.create()
        local Modifier devour = Modifier.create()
        local Modifier acid = Modifier.create()

        set sir_armor_aura = BuffType.createAuraEffectType(false)  // Aura
        call armor.addModification(MOD_ARMOR_PERC,0.0,-0.001)
        call sir_armor_aura.setBuffModifier(armor)    
        call sir_armor_aura.setStackingGroup("armor_reduction_aura")
        call sir_armor_aura.setBuffIcon('@@1@@')
        
        set sir_acid_skull = BuffType.create(0,0,false)  // Acid Skull
        call acid.addModification(MOD_ARMOR,0.0,-1)
        call sir_acid_skull.setBuffModifier(acid)   
        call sir_acid_skull.setStackingGroup("acid_skull")
        
        set sir_soul_devour = BuffType.create(1000,0,false)   // Devour
        call devour.addModification(MOD_SPELL_DAMAGE_RECEIVED,0.0,0.001)
        call sir_soul_devour.setBuffModifier(devour)
        call sir_soul_devour.setBuffIcon('@@2@@')
        
        set AcidSkull = Cast.create('@@0@@',"acidbomb",10.0)
        endfunction

On Attack

ONATTACK_chance: 0.25 ONATTACK_chanceLevelAdd: 0.004
function onAttack takes Tower tower returns nothing
      local integer lvl = tower.getLevel()
      local Creep target = Event.getTarget()
      local Unit u
      local Iterate iterator = Iterate.overUnitsInRangeOfUnit(tower,TARGET_TYPE_CREEPS,target,225) 
    loop  
      set u = iterator.next() 
      exitwhen u == 0 
      call sir_acid_skull.applyCustomTimed(tower,u,5,4.5)
    endloop 
    
    call sir_acid_skull.applyCustomTimed(tower,target,5,4.5)
    call AcidSkull.targetCastFromCaster(tower,target,1.0+lvl*0.05,tower.calcSpellCritNoBonus())
endfunction

On Damage

ONDAMAGE_chance: 0.125 ONDAMAGE_chanceLevelAdd: 0.001
function onDamage takes Tower tower returns nothing
      local integer lvl = tower.getLevel()
      local integer devour = R2I((0.5 + lvl * 0.02)*1000)
    call sir_soul_devour.apply(tower,Event.getTarget(),devour)
endfunction

Tower Aura

AURA_auraEffect: sir_armor_aura AURA_power: 250 AURA_level: 250 AURA_auraRange: 775 AURA_targetType: TARGET_TYPE_CREEPS AURA_levelAdd: 2 AURA_powerAdd: 2 AURA_targetSelf: false