Necromantic Altar v1 
                300
                     
             
                 | 
    
    
              ID:              4 
             Family ID:       
             Author:          Boekie 
             Rarity:          uncommon 
             Element:         darkness 
            
                 Attack Type:     Decay 
                 Attack Range:    875 
                 Attack CD:       1.6 
                 Damage:  287-287 
            
            
                 Mana:     30 
                
                     Mana regen:     2 
                
            
             Status:          Approved 
     | 
    
    
    
             
                            Soul Revenge
                        Hits 3 random creeps in 875 range, the first one suffers 200 spelldamage, the second one suffers 400 spelldamage and the third one suffers 600 spelldamage. Level Bonus: +12/24/36 spelldamage AC_TYPE_OFFENSIVE_IMMEDIATE  | 
    
    
    
            Download
            
            
            
            
             Toggle Triggers Autocast 
                            
                                caster_art: 
                            
                                AUTOCAST_cooldown: 1
                            
                                AUTOCAST_numBuffsBeforeIdle: 0
                            
                                AUTOCAST_isExtended: false
                            
                                AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_IMMEDIATE
                            
                                AUTOCAST_manacost: 20
                            
                                AUTOCAST_range: 875
                            
                                AUTOCAST_buffType: 0
                            
                                AUTOCAST_targetSelf: false
                            
                                AUTOCAST_targetType: 0
                            
                                target_art: Abilities\Spells\Undead\Curse\CurseTarget.mdl
                            
                                AUTOCAST_autoRange: 875
                            
                             
                        
                        
                            private function onAutocast takes Tower tower returns nothing
    local integer  lvl = tower.getLevel()
    local Iterate inRange = Iterate.overUnitsInRangeOfCaster(tower,TARGET_TYPE_CREEPS,875) //Can set this at the start.
    local Unit next //Used as next during the iterate and the unit to affect during the other loop.
    local integer indexCounter = 0
    local integer loopCounter = 3
    local integer counter = 1
    loop
        set next=inRange.next()
        exitwhen next==0
        set resultArray[indexCounter] = next
        set indexCounter = indexCounter+1
    endloop
   
    if(indexCounter > 0) then //Commented lines here are for setting the period to a low time when no creeps are around,
                              //remove them if you don't want this to happen. Also if these lines are used, the On Level
                              //Up code isn't needed.
        loop
            set loopCounter = loopCounter - 1
            set next = resultArray[GetRandomInt(0,indexCounter-1)]
            call tower.doSpellDamage(next,(200+lvl*12)*counter,tower.calcSpellCritNoBonus())
            call SFXAtUnit("Abilities\\Spells\\Items\\AIre\\AIreTarget.mdl",next.getUnit())
            set counter = counter + 1
            exitwhen loopCounter == 0
        endloop
    
    endif
    
endfunction
                        
                    Header     globals
    Unit array resultArray //Instead of numResults, use a resultArray so you only have to iterate once.
    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
                        
                     | 
            
             
                Necromantic Statue v1 
                600
                     
             
                 | 
    
    
              ID:              6 
             Family ID:       
             Author:          Boekie 
             Rarity:          uncommon 
             Element:         darkness 
            
                 Attack Type:     Decay 
                 Attack Range:    875 
                 Attack CD:       1.6 
                 Damage:  573-573 
            
            
                 Mana:     30 
                
                     Mana regen:     2 
                
            
             Status:          Approved 
     | 
    
    
    
             Description: This statue is haunted by lost souls.  
                            Soul Revenge
                        Hits 3 random creeps in 875 range, the first one suffers 400 spelldamage, the second one suffers 800 spelldamage and the third one suffers 1200 spelldamage. Level Bonus: +24/48/72 spelldamage AC_TYPE_OFFENSIVE_IMMEDIATE  | 
    
    
    
            Download
            
            
            
            
             Toggle Triggers Autocast 
                            
                                caster_art: 
                            
                                AUTOCAST_cooldown: 1
                            
                                AUTOCAST_numBuffsBeforeIdle: 0
                            
                                AUTOCAST_isExtended: false
                            
                                AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_IMMEDIATE
                            
                                AUTOCAST_manacost: 20
                            
                                AUTOCAST_range: 875
                            
                                AUTOCAST_buffType: 0
                            
                                AUTOCAST_targetSelf: false
                            
                                AUTOCAST_targetType: 0
                            
                                target_art: Abilities\Spells\Undead\Curse\CurseTarget.mdl
                            
                                AUTOCAST_autoRange: 875
                            
                             
                        
                        
                            private function onAutocast takes Tower tower returns nothing
    local integer  lvl = tower.getLevel()
    local Iterate inRange = Iterate.overUnitsInRangeOfCaster(tower,TARGET_TYPE_CREEPS,875) //Can set this at the start.
    local Unit next //Used as next during the iterate and the unit to affect during the other loop.
    local integer indexCounter = 0
    local integer loopCounter = 3
    local integer counter = 1
    loop
        set next=inRange.next()
        exitwhen next==0
        set resultArray[indexCounter] = next
        set indexCounter = indexCounter+1
    endloop
   
    if(indexCounter > 0) then //Commented lines here are for setting the period to a low time when no creeps are around,
                              //remove them if you don't want this to happen. Also if these lines are used, the On Level
                              //Up code isn't needed.
        loop
            set loopCounter = loopCounter - 1
            set next = resultArray[GetRandomInt(0,indexCounter-1)]
            call tower.doSpellDamage(next,(400+lvl*24)*counter,tower.calcSpellCritNoBonus())
            call SFXAtUnit("Abilities\\Spells\\Items\\AIre\\AIreTarget.mdl",next.getUnit())
            set counter = counter + 1
            exitwhen loopCounter == 0
        endloop
    
    endif
    
endfunction
                        
                    Header     globals
    Unit array resultArray //Instead of numResults, use a resultArray so you only have to iterate once.
    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
                        
                     | 
            
             
                Necromantic Shrine v1 
                1200
                     
             
                 | 
    
    
              ID:              7 
             Family ID:       
             Author:          Boekie 
             Rarity:          uncommon 
             Element:         darkness 
            
                 Attack Type:     Decay 
                 Attack Range:    875 
                 Attack CD:       1.6 
                 Damage:  1146-1146 
            
            
                 Mana:     30 
                
                     Mana regen:     2 
                
            
             Status:          Approved 
     | 
    
    
    
             Description: This shrine is haunted by lost souls.  
                            Soul Revenge
                        Hits 3 random creeps in 875 range, the first one suffers 800 spelldamage, the second one suffers 1600 spelldamage and the third one suffers 2400 spelldamage. Level Bonus: +48/96/192 spelldamage AC_TYPE_OFFENSIVE_IMMEDIATE  | 
    
    
    
            Download
            
            
            
            
             Toggle Triggers Autocast 
                            
                                caster_art: 
                            
                                AUTOCAST_cooldown: 1
                            
                                AUTOCAST_numBuffsBeforeIdle: 0
                            
                                AUTOCAST_isExtended: false
                            
                                AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_IMMEDIATE
                            
                                AUTOCAST_manacost: 20
                            
                                AUTOCAST_range: 875
                            
                                AUTOCAST_buffType: 0
                            
                                AUTOCAST_targetSelf: false
                            
                                AUTOCAST_targetType: 0
                            
                                target_art: Abilities\Spells\Undead\Curse\CurseTarget.mdl
                            
                                AUTOCAST_autoRange: 875
                            
                             
                        
                        
                            private function onAutocast takes Tower tower returns nothing
    local integer  lvl = tower.getLevel()
    local Iterate inRange = Iterate.overUnitsInRangeOfCaster(tower,TARGET_TYPE_CREEPS,875) //Can set this at the start.
    local Unit next //Used as next during the iterate and the unit to affect during the other loop.
    local integer indexCounter = 0
    local integer loopCounter = 3
    local integer counter = 1
    loop
        set next=inRange.next()
        exitwhen next==0
        set resultArray[indexCounter] = next
        set indexCounter = indexCounter+1
    endloop
   
    if(indexCounter > 0) then //Commented lines here are for setting the period to a low time when no creeps are around,
                              //remove them if you don't want this to happen. Also if these lines are used, the On Level
                              //Up code isn't needed.
        loop
            set loopCounter = loopCounter - 1
            set next = resultArray[GetRandomInt(0,indexCounter-1)]
            call tower.doSpellDamage(next,(800+lvl*48)*counter,tower.calcSpellCritNoBonus())
            call SFXAtUnit("Abilities\\Spells\\Items\\AIre\\AIreTarget.mdl",next.getUnit())
            set counter = counter + 1
            exitwhen loopCounter == 0
        endloop
    
    endif
    
endfunction
                        
                    Header     globals
    Unit array resultArray //Instead of numResults, use a resultArray so you only have to iterate once.
    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
                        
                     | 
            
             
                Necromantic Monument v1 
                2600
                     
             
                 | 
    
    
              ID:              8 
             Family ID:       
             Author:          Boekie 
             Rarity:          uncommon 
             Element:         darkness 
            
                 Attack Type:     Decay 
                 Attack Range:    875 
                 Attack CD:       1.6 
                 Damage:  2484-2484 
            
            
                 Mana:     30 
                
                     Mana regen:     2 
                
            
             Status:          Approved 
     | 
    
    
    
             Description: This monument is haunted by lost souls.  
                            Soul Revenge
                        Hits 3 random creeps in 875 range, the first one suffers 1700 spelldamage, the second one suffers 3400 spelldamage and the third one suffers 5100 spelldamage. Level Bonus: +100/200/300 spelldamage AC_TYPE_OFFENSIVE_IMMEDIATE  | 
    
    
    
            Download
            
            
            
            
             Toggle Triggers Autocast 
                            
                                caster_art: 
                            
                                AUTOCAST_cooldown: 1
                            
                                AUTOCAST_numBuffsBeforeIdle: 0
                            
                                AUTOCAST_isExtended: false
                            
                                AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_IMMEDIATE
                            
                                AUTOCAST_manacost: 20
                            
                                AUTOCAST_range: 875
                            
                                AUTOCAST_buffType: 0
                            
                                AUTOCAST_targetSelf: false
                            
                                AUTOCAST_targetType: 0
                            
                                target_art: Abilities\Spells\Undead\Curse\CurseTarget.mdl
                            
                                AUTOCAST_autoRange: 875
                            
                             
                        
                        
                            private function onAutocast takes Tower tower returns nothing
    local integer  lvl = tower.getLevel()
    local Iterate inRange = Iterate.overUnitsInRangeOfCaster(tower,TARGET_TYPE_CREEPS,875) //Can set this at the start.
    local Unit next //Used as next during the iterate and the unit to affect during the other loop.
    local integer indexCounter = 0
    local integer loopCounter = 3
    local integer counter = 1
    loop
        set next=inRange.next()
        exitwhen next==0
        set resultArray[indexCounter] = next
        set indexCounter = indexCounter+1
    endloop
   
    if(indexCounter > 0) then //Commented lines here are for setting the period to a low time when no creeps are around,
                              //remove them if you don't want this to happen. Also if these lines are used, the On Level
                              //Up code isn't needed.
        loop
            set loopCounter = loopCounter - 1
            set next = resultArray[GetRandomInt(0,indexCounter-1)]
            call tower.doSpellDamage(next,(1700+lvl*100)*counter,tower.calcSpellCritNoBonus())
            call SFXAtUnit("Abilities\\Spells\\Items\\AIre\\AIreTarget.mdl",next.getUnit())
            set counter = counter + 1
            exitwhen loopCounter == 0
        endloop
    
    endif
    
endfunction
                        
                    Header     globals
    Unit array resultArray //Instead of numResults, use a resultArray so you only have to iterate once.
    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
                        
                     | 
Description: