Hall of Souls v1
1000
ID:
633
Family ID:
Author:
Natac
Rarity:
rare
Element:
darkness
Attack Type:
Decay
Attack Range:
800
Attack CD:
1.4
Damage:
634-684
Status:
Approved

Description:

The last place of all already fallen souls, seeking for their last revenge.
Revenge of Souls
This tower gains 6 permanent bonus damage and 1 experience every time a creep in 1000 range dies.

Level Bonus:
+0.3 damage per kill
Download

Toggle Triggers

Header

    globals
        //@export
        BuffType natac_revengeOfSouls_Buff
    endglobals
    
    function setFamID takes Buff b returns nothing
        set b.userInt = Tower(b.getCaster()).getFamily()
    endfunction
    
    function increaseDamageAndExp takes Buff b returns nothing
        local Iterate it = Iterate.overUnitsInRangeOfCaster(b.getBuffedUnit(), TARGET_TOWERS, 1000)
        local Tower loopUnit
        local real loopSoulBonus
        
        call SFXAtUnit("Abilities\\Spells\\Items\\AIso\\AIsoTarget.mdl", b.getBuffedUnit().getUnit())
        loop
            set loopUnit = it.next()
            exitwhen loopUnit == 0
            if(loopUnit.getFamily() == b.userInt) then
                set loopSoulBonus = loopUnit.userReal + (loopUnit.getLevel() * loopUnit.userReal2)
                set loopUnit.userReal3 = loopUnit.userReal3 + loopSoulBonus
                call loopUnit.modifyProperty(MOD_DAMAGE_ADD, loopSoulBonus) //Modify damage
                call loopUnit.addExp(loopUnit.userInt) // Add exp
            endif
        endloop
    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  natac_revengeOfSouls_Buff = BuffType.createAuraEffectType(false)
        call natac_revengeOfSouls_Buff.setBuffIcon('@@0@@')
        call natac_revengeOfSouls_Buff.addEventOnCreate(EventHandler.setFamID)
        call natac_revengeOfSouls_Buff.addEventOnDeath(EventHandler.increaseDamageAndExp)
    endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
    local Tower preceding = Event.getPrecedingTower()
    local real  soulBonus
    
    set tower.userInt   = 1
    set tower.userReal  = 6
    set tower.userReal2 = 0.3   
    
    if(preceding != 0 and preceding.getFamily() == tower.getFamily()) then
        set  soulBonus       = preceding.userReal3
        set  tower.userReal3 = soulBonus
        call tower.modifyProperty(MOD_DAMAGE_ADD, soulBonus)
    else
        set   tower.userReal3  = 0.0 //Damage bonus from souls
    endif
    
    
endfunction

Tower Aura

AURA_powerAdd: 0 AURA_auraEffect: natac_revengeOfSouls_Buff AURA_levelAdd: 0 AURA_power: 1 AURA_targetType: TARGET_TYPE_CREEPS AURA_targetSelf: false AURA_level: 1 AURA_auraRange: 1000
Necropolis of Souls v1
2000
ID:
632
Family ID:
Author:
Natac
Rarity:
rare
Element:
darkness
Attack Type:
Decay
Attack Range:
800
Attack CD:
1.4
Damage:
1268-1368
Status:
Approved

Description:

The last place of all already fallen souls, seeking for their last revenge.
Revenge of Souls
This tower gains 12 permanent bonus damage and 2 experience every time a creep in 1000 range dies.

Level Bonus:
+0.6 damage per kill
Download

Toggle Triggers

Header

    globals
        //@import
        BuffType  natac_revengeOfSouls_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 Tower Creation

function onCreate takes Tower tower returns nothing
    local Tower preceding = Event.getPrecedingTower()
    local real  soulBonus
    
    set tower.userInt   = 2
    set tower.userReal  = 12
    set tower.userReal2 = 0.6   
    
    if(preceding != 0 and preceding.getFamily() == tower.getFamily()) then
        set  soulBonus       = preceding.userReal3
        set  tower.userReal3 = soulBonus
        call tower.modifyProperty(MOD_DAMAGE_ADD, soulBonus)
    else
        set   tower.userReal3  = 0.0 //Damage bonus from souls
    endif
    
    
endfunction

Tower Aura

AURA_auraEffect: natac_revengeOfSouls_Buff AURA_power: 1 AURA_level: 1 AURA_auraRange: 1000 AURA_targetType: TARGET_TYPE_CREEPS AURA_levelAdd: 0 AURA_powerAdd: 0 AURA_targetSelf: false
Citadel of Souls v1
3000
ID:
631
Family ID:
Author:
Natac
Rarity:
rare
Element:
darkness
Attack Type:
Decay
Attack Range:
800
Attack CD:
1.4
Damage:
1902-2052
Status:
Approved

Description:

The last place of all already fallen souls, seeking for their last revenge.
Revenge of Souls
This tower gains 18 permanent bonus damage and 3 experience every time a creep in 1000 range dies.

Level Bonus:
+0.9 damage per kill
Download

Toggle Triggers

Header

    globals
        //@import
        BuffType  natac_revengeOfSouls_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 Tower Creation

function onCreate takes Tower tower returns nothing
    local Tower preceding = Event.getPrecedingTower()
    local real  soulBonus
    
    set tower.userInt   = 3
    set tower.userReal  = 18
    set tower.userReal2 = 0.9   
    
    if(preceding != 0 and preceding.getFamily() == tower.getFamily()) then
        set  soulBonus       = preceding.userReal3
        set  tower.userReal3 = soulBonus
        call tower.modifyProperty(MOD_DAMAGE_ADD, soulBonus)
    else
        set   tower.userReal3  = 0.0 //Damage bonus from souls
    endif
    
    
endfunction

Tower Aura

AURA_auraEffect: natac_revengeOfSouls_Buff AURA_power: 1 AURA_level: 1 AURA_auraRange: 1000 AURA_targetType: TARGET_TYPE_CREEPS AURA_levelAdd: 0 AURA_powerAdd: 0 AURA_targetSelf: false