Array
(
    [scriptVersion] => 8
    [oeValues] => Array
        (
            [Ubertip] => Very spooky.
            [Art] => ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
            [abilList] => Array
                (
                )

            [Name] => Orb of Harrowing Despair
        )

    [settings] => Array
        (
            [balanceTip] => Array
                (
                )

            [goldcost] => 1900
            [author] => Ashbringer
            [authorDisplay] => |cffff6600Ashbringer|r
            [version] => 1.0
            [rarity] => unique
        )

    [dmgTable] => Array
        (
        )

    [triggers] => Array
        (
            [0] => Array
                (
                    [name] => Header
                    [code] => globals
        ProjectileType ashbringer_soulvortex_missile
    endglobals
    
    public function ashbringer_soulvortex_hit takes Projectile p, Creep creep returns nothing 
        local Tower tower = p.getCaster()
        
        call tower.doCustomAttackDamage(creep, tower.getCurrentAttackDamageWithBonus()*2, 1.0, AttackType.DECAY)
        call Effect.createSimpleOnUnit("Abilities\\Weapons\\ZigguratMissile\\ZigguratMissile.mdl", creep, "chest").destroy()
    endfunction
    
    public function ashbringer_soulvortex_update takes Projectile p returns nothing
        local real radius = SquareRoot((p.userReal - p.x) * (p.userReal - p.x) + (p.userReal2 - p.y) * (p.userReal2 - p.y))
        local real circumference = bj_PI * radius * 2
        local real seconds = circumference / (p.speed)
        local real turning = (360 / seconds / 25) * 1.3
        local real angle = bj_RADTODEG * Atan2(p.y - p.userReal2, p.x - p.userReal) + (p.userInt2 * 93)
        
        if radius>140 then
            if angle < 0 then
                set angle = angle + 360
            elseif angle > 360 then
                set angle = angle - 360
            endif
            set p.rotation = p.userInt2 * RMinBJ(19.4 * 1.3, turning)
            set p.direction = angle
        else
            call p.destroy()
        endif
    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 ashbringer_soulvortex_missile = ProjectileType.create("Abilities\\Weapons\\ZigguratMissile\\ZigguratMissile.mdl", 15, 1300)
        call ashbringer_soulvortex_missile.enablePeriodic(ProjectileEvent.ashbringer_soulvortex_update, 0.2)
        call ashbringer_soulvortex_missile.enableCollision(ProjectileTargetEvent.ashbringer_soulvortex_hit, 75, TARGET_TYPE_CREEPS, false)
	endfunction
                    [values] => Array
                        (
                            [explain] => 
                            [visible] => false
                            [goldcost] => 0
                            [name] => 
                        )

                )

            [1] => Array
                (
                    [name] => On Kill
                    [code] => local Tower tower = itm.getCarrier()
    local Unit target = Event.getTarget()
    local Projectile p
    local real angle
    local real tower_x = tower.getX()
    local real tower_y = tower.getY()
    local real target_x = target.getX()
    local real target_y = target.getY()
    local integer random = GetRandomInt(0, 1)
    
    set angle = bj_RADTODEG * Atan2(tower_y - target_y, tower_x - target_x)
    if random == 0 then
        set random = -1
        call ashbringer_soulvortex_missile.setStartRotation(2)
    else
        call ashbringer_soulvortex_missile.setStartRotation(-2)
    endif
    
    set angle = angle - (random * 85)
    if angle < 0 then
        set angle = angle + 360
    elseif angle > 360 then
        set angle = angle - 360
    endif
    
    set p = Projectile.create(ashbringer_soulvortex_missile, tower, 0, 0, target_x, target_y, 40, angle)
    set p.userReal = tower_x
    set p.userReal2 = tower_y
    set p.userInt = 0
    set p.userInt2 = random
    set p.explode = false
                    [values] => Array
                        (
                            [explain] => Enemies killed by the holder have their souls ripped out, which then spiral inward towards the tower. Souls deals |cffffff80200%|r of attack damage as |cff808000Decay|r damage to enemies in their path.
                            [visible] => true
                            [goldcost] => 1900
                            [name] => Despair in Death
                        )

                )

        )

    [abilities] => Array
        (
        )

    [buffs] => Array
        (
        )

    [units] => Array
        (
        )

    [references] => Array
        (
        )

)