Array
(
    [scriptVersion] => 7
    [oeValues] => Array
        (
            [Ubertip] => Array
                (
                )

            [Art] => ReplaceableTextures\CommandButtons\BTNBlackMarket.blp
            [abilList] => Array
                (
                )

            [Name] => Pocket Emporium
        )

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

            [goldcost] => 777
            [author] => ShyGnome
            [authorDisplay] => ShyGnome
            [version] => 1.0
            [rarity] => unique
        )

    [dmgTable] => Array
        (
        )

    [triggers] => Array
        (
            [0] => Array
                (
                    [name] => On Item Drop
                    [code] => call checkLevel(itm)
                    [values] => Array
                        (
                            [explain] => 
                            [visible] => false
                            [goldcost] => 0
                            [name] => 
                        )

                )

            [1] => Array
                (
                    [name] => On Item Creation
                    [code] => call itm.setCharges(1)
    set itm.userInt = 0
    set itm.userInt2 = 1
    set itm.userInt3 = itm.getOwner().getTeam().getLevel()
                    [values] => Array
                        (
                            [explain] => 
                            [visible] => false
                            [goldcost] => 0
                            [name] => 
                        )

                )

            [2] => Array
                (
                    [name] => Header
                    [code] => globals
    endglobals
    
    function checkLevel takes Item itm returns nothing
        local integer curLevel = itm.getOwner().getTeam().getLevel()
        if curLevel > itm.userInt3 then 
            set itm.userInt = itm.userInt + (curLevel-itm.userInt3) 
            set itm.userInt3 = curLevel 
        endif
        loop
            exitwhen itm.userInt < 5 or itm.userInt2 >= 5
            set itm.userInt = itm.userInt - 5
            set itm.userInt2 = itm.userInt2 + 1
        endloop
        call itm.setCharges(itm.userInt2)
    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
	endfunction
                    [values] => Array
                        (
                            [explain] => 
                            [visible] => false
                            [goldcost] => 0
                            [name] => 
                        )

                )

            [3] => Array
                (
                    [name] => On Item Pickup
                    [code] => call checkLevel(itm)
                    [values] => Array
                        (
                            [explain] => 
                            [visible] => false
                            [goldcost] => 0
                            [name] => 
                        )

                )

            [4] => Array
                (
                    [name] => Periodic
                    [code] => call checkLevel(itm)
                    [values] => Array
                        (
                            [explain] => 
                            [visible] => false
                            [goldcost] => 0
                            [PERIODIC_period] => 10
                            [name] => 
                        )

                )

            [5] => Array
                (
                    [name] => Autocast
                    [code] => local integer i = itm.getCharges()
    local Tower tower = itm.getCarrier()
    local Playor p = itm.getOwner()
    local Item new
    local real rnd = GetRandomInt(0,24) //25 cases total
    local integer rarity = 1            //0-1 unique, 2-5 rare, 6-24 uncommon
    if rnd < 2 then
        set rarity = 3
    elseif rnd < 6 then
        set rarity = 2
    endif
    if i > 0 and GetPlayerState(p.getThePlayer(), PLAYER_STATE_RESOURCE_GOLD) >= 500 then
        set itm.userInt2 = itm.userInt2-1
        call p.giveGold(-500,tower.getUnit(),false,true)
        set new = Item.create(p,RandomItemSet.permanent.getRandomItemAtRarityBounded(rarity,14,25),tower.getX(),tower.getY())
        call new.flyToStash(0.0)
    endif
    call checkLevel(itm)
                    [values] => Array
                        (
                            [explain] => Spend a charge to buy a random item for |cffFFFF80500|r gold. The item will be of level |cffFFFF8014-25|r and |cff0080FFuncommon|r or higher rarity.|n|nGains a charge every |cffFFFF805th|r wave, up to a maximum of |cffFFFF805|r charges.|nThis ability is not affected by item quality.
                            [AUTOCAST_cooldown] => 1
                            [AUTOCAST_autoRange] => 0
                            [AUTOCAST_manacost] => 0
                            [goldcost] => 777
                            [AUTOCAST_range] => 0
                            [AUTOCAST_targetType] => 0
                            [AUTOCAST_numBuffsBeforeIdle] => 0
                            [caster_art] => 
                            [target_art] => 
                            [AUTOCAST_autocastType] => AC_TYPE_NOAC_IMMEDIATE
                            [AUTOCAST_buffType] => 0
                            [AUTOCAST_isExtended] => false
                            [name] => Purchase an Item
                            [AUTOCAST_targetSelf] => true
                        )

                )

        )

    [abilities] => Array
        (
        )

    [buffs] => Array
        (
        )

    [units] => Array
        (
        )

    [references] => Array
        (
        )

)