Array
(
    [scriptVersion] => 7
    [oeValues] => Array
        (
            [Name] => M.E.F.I.S. Rocket
            [Art] => ReplaceableTextures\CommandButtons\BTNClusterRockets.blp
            [Ubertip] => Now, If only I could remember where I put the manual.
            [abilList] => Array
                (
                )

        )

    [settings] => Array
        (
            [author] => cedi
            [authorDisplay] => DreamStrider
            [balanceTip] => Array
                (
                )

            [rarity] => unique
            [goldcost] => 1500
            [version] => 1.0
        )

    [dmgTable] => Array
        (
        )

    [triggers] => Array
        (
            [0] => Array
                (
                    [name] => On Tower Details
                    [code] => local Tower T = itm.getCarrier()
    local real dmg = T.getCurrentAttackDamageWithBonus() * ( T.getProp_SpellDmgDealt() * ( 0.2 + 0.008 * T.getLevel() ) )
    call MB.setValue( 0, formatFloat( dmg, 0 ) )
    return MB
                    [values] => Array
                        (
                            [0] => Array
                                (
                                    [_value] => 0
                                    [typ] => string
                                )

                        )

                )

            [1] => Array
                (
                    [name] => On Item Pickup
                    [code] => local Tower T = itm.getCarrier()
    
    if T.getAttackType() != AttackType.MAGIC then
        set itm.userInt = T.getAttackType()
    else
        set itm.userInt = AttackType.ESSENCE
    endif
                    [values] => Array
                        (
                            [visible] => false
                            [name] => 
                            [goldcost] => 0
                            [explain] => 
                        )

                )

            [2] => Array
                (
                    [name] => Header
                    [code] => globals
        ProjectileType PT
        MultiboardValues MB
    endglobals
    
    function hitPT takes Projectile P, Unit U returns nothing
        local Tower T = P.getCaster()
        //local AttackType AT = P.userInt
        call T.doCustomAttackDamage( U, P.userReal, T.calcAttackMulticrit( 0, 0, 0 ), P.userInt )
    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 PT = ProjectileType.createInterpolate( "Abilities\\Spells\\Other\\TinkerRocket\\TinkerRocketMissile.mdl", 1000.00 )
        call PT.setEventOnInterpolationFinished( hitPT )
        
        set MB = MultiboardValues.create( 1 )
        call MB.setKey( 0, "Damage" )
	endfunction
                    [values] => Array
                        (
                            [visible] => false
                            [name] => 
                            [goldcost] => 0
                            [explain] => 
                        )

                )

            [3] => Array
                (
                    [name] => Periodic
                    [code] => local Tower T = itm.getCarrier()
    local Iterate I = Iterate.overUnitsInRangeOfCaster( T, TARGET_CREEPS, T.getRange() )
    local Unit U
    local real dmg
    local Projectile P
    
    call Event.getCurrentPeriodicEvent().enableAdvanced( T.getCurrentAttackspeed(), true )
    
    loop
        set U = I.next()
        if U == 0 then
            return //No target
        endif
        
        exitwhen U.isImmune()
    endloop

    //Gotcha
    call I.destroy() //If this point is reached the Iteration still exists and has to be destroyed
    set dmg = T.getCurrentAttackDamageWithBonus() * ( T.getProp_SpellDmgDealt() * ( 0.2 + 0.008 * T.getLevel() ) )
    set P = Projectile.createLinearInterpolationFromUnitToUnit( PT, T, 1.0, 1.0, T, U, 0.35, true )
    set P.userReal = dmg
    set P.userInt = itm.userInt
                    [values] => Array
                        (
                            [visible] => true
                            [PERIODIC_period] => 0.1
                            [name] => Anti-Immunity Missile
                            [goldcost] => 1500
                            [explain] => Fires immune-seeking missiles. The attack range, speed, damage and type is the same as the carrier's, unless the attack type is |cffFF0080Magic|r, which is dealt as |cff80FF00Essence|r damage. Damage is scaled by |cffFFFF8020%|r of the tower's spell damage.|n|n|cffFF8000Level Bonus:|r|n|cffFFFF80+0.8%|r scaling
                        )

                )

        )

    [abilities] => Array
        (
        )

    [buffs] => Array
        (
        )

    [units] => Array
        (
        )

    [references] => Array
        (
        )

)