Array
(
    [scriptVersion] => 7
    [oeValues] => Array
        (
            [RngBuff1] => 250
            [scaleBull] => 0
            [MissileHoming] => 1
            [Upgrade] => Array
                (
                )

            [targs1] => Array
                (
                )

            [goldcost] => 1984
            [weapsOn] => 1
            [dice1] => 1
            [Missilespeed] => 1500
            [moveHeight] => -11
            [file] => buildings\orc\Beastiary\Beastiary.mdl
            [atkType1] => siege
            [modelScale] => 0.4
            [weapTp1] => missile
            [acquire] => 1200
            [rangeN1] => 1200
            [upgrades] => Array
                (
                )

            [cool1] => 1.8
            [Ubertip] => Empowers you against the alien menace. Model credits: SirCoqaLot plus mOck and MasterCassim.
            [abilList] => Array
                (
                )

            [Name] => Xeno Research Facility
            [Missileart] => Abilities\Spells\Orc\Ensnare\EnsnareMissile.mdl
            [Art] => ReplaceableTextures\CommandButtons\BTNBeastiary.blp
            [buildingShadow] => Array
                (
                )

            [sides1] => 1
            [auto] => Array
                (
                )

            [dmgplus1] => 1811
            [bldtm] => 1
        )

    [settings] => Array
        (
            [author] => Palandu
            [element] => iron
            [authorDisplay] => |cffbdb76bPalandu|r
            [alpha] => 255
            [balanceTip] => Array
                (
                )

            [rarity] => unique
            [version] => 1.0
            [abil_factor] => 0.5
        )

    [effects] => Array
        (
            [0] => Array
                (
                    [x] => 27.8724
                    [y] => 5.1421
                    [z] => 0
                    [scale] => 0.138
                    [rot] => 0.429381
                    [file] => Doodads\Ruins\Props\DalaranRuinTower2\DalaranRuinTower2.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => true
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [1] => Array
                (
                    [x] => 21.8273
                    [y] => -23.0744
                    [z] => 19.2
                    [scale] => 0.36
                    [rot] => 5.54543
                    [file] => Doodads\Dungeon\Props\SewerVent\SewerVent3.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [2] => Array
                (
                    [x] => 26.7202
                    [y] => 4.6366
                    [z] => 76.8
                    [scale] => 0.135
                    [rot] => 3.10669
                    [file] => Doodads\LordaeronSummer\Props\SmokeSmudge\SmokeSmudge2.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [3] => Array
                (
                    [x] => 34.5105
                    [y] => -16.2183
                    [z] => 32
                    [scale] => 0.28
                    [rot] => 5.12541
                    [file] => Doodads\Dungeon\Props\SewerVent\SewerVent3.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [4] => Array
                (
                    [x] => 41.8778
                    [y] => -43.173
                    [z] => 0
                    [scale] => 0.1495
                    [rot] => 2.84419
                    [file] => Doodads\Ruins\Props\DalaranRuinTowerBase\DalaranRuinTowerBase.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => true
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [5] => Array
                (
                    [x] => -17.8918
                    [y] => -27.3525
                    [z] => 19.2
                    [scale] => 0.1725
                    [rot] => 1.91523
                    [file] => Abilities\Spells\NightElf\MoonWell\MoonWellTarget.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 1
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [6] => Array
                (
                    [x] => 4.42688
                    [y] => -23.1842
                    [z] => 0
                    [scale] => 0.28
                    [rot] => 4.89986
                    [file] => Doodads\LordaeronSummer\Props\CageEmpty\CageEmpty.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [7] => Array
                (
                    [x] => -45.0839
                    [y] => 2.19916
                    [z] => 0
                    [scale] => 0.138
                    [rot] => 6.04216
                    [file] => Doodads\Ruins\Props\DalaranRuinTower2\DalaranRuinTower2.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => true
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [8] => Array
                (
                    [x] => 45.0221
                    [y] => -3.15212
                    [z] => 0
                    [scale] => 0.138
                    [rot] => 4.99776
                    [file] => Doodads\Ruins\Props\DalaranRuinTower2\DalaranRuinTower2.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => true
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [9] => Array
                (
                    [x] => -23.69
                    [y] => 0.584216
                    [z] => 6.4
                    [scale] => 0.375
                    [rot] => 3.09918
                    [file] => Doodads\Dungeon\Props\SewerVent\SewerVent0.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [10] => Array
                (
                    [x] => -42.5388
                    [y] => -36.5634
                    [z] => 0
                    [scale] => 0.28
                    [rot] => 3.73235
                    [file] => Doodads\LordaeronSummer\Props\CageEmpty\CageEmpty.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [11] => Array
                (
                    [x] => -17.8517
                    [y] => -28.2215
                    [z] => 19.2
                    [scale] => 0.1725
                    [rot] => 1.91523
                    [file] => Abilities\Spells\NightElf\MoonWell\MoonWellTarget.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 1
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [12] => Array
                (
                    [x] => 42.8308
                    [y] => -40.3684
                    [z] => 19.2
                    [scale] => 0.2
                    [rot] => 4.69494
                    [file] => Abilities\Spells\NightElf\MoonWell\MoonWellTarget.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 1
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [13] => Array
                (
                    [x] => -7.93119
                    [y] => -19.3766
                    [z] => 0
                    [scale] => 0.0675
                    [rot] => 3.45575
                    [file] => Abilities\Spells\NightElf\MoonWell\MoonWellTarget.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 1
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [14] => Array
                (
                    [x] => -7.93119
                    [y] => -19.3766
                    [z] => 0
                    [scale] => 0.0675
                    [rot] => 3.45575
                    [file] => Abilities\Spells\NightElf\MoonWell\MoonWellTarget.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 1
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [15] => Array
                (
                    [x] => 43.0507
                    [y] => -40.3666
                    [z] => 19.2
                    [scale] => 0.2
                    [rot] => 4.69494
                    [file] => Abilities\Spells\NightElf\MoonWell\MoonWellTarget.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 1
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [16] => Array
                (
                    [x] => -31.1252
                    [y] => -0.323646
                    [z] => 25.6
                    [scale] => 0.44
                    [rot] => 5.22122
                    [file] => Doodads\Dungeon\Props\SewerVent\SewerVent1.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [17] => Array
                (
                    [x] => -45.5316
                    [y] => -0.378107
                    [z] => 96
                    [scale] => 0.135
                    [rot] => 4.15388
                    [file] => Doodads\LordaeronSummer\Props\SmokeSmudge\SmokeSmudge2.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [18] => Array
                (
                    [x] => 39.0257
                    [y] => -14.6265
                    [z] => 0
                    [scale] => 0.0585
                    [rot] => 0.616627
                    [file] => Doodads\Ruins\Props\DalaranRuinTowerBase\DalaranRuinTowerBase.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => true
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [19] => Array
                (
                    [x] => -18.1057
                    [y] => -25.5405
                    [z] => 0
                    [scale] => 0.1495
                    [rot] => 6.27272
                    [file] => Doodads\Ruins\Props\DalaranRuinTowerBase\DalaranRuinTowerBase.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => true
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

        )

    [dmgTable] => Array
        (
        )

    [triggers] => Array
        (
            [0] => Array
                (
                    [name] => On Tower Creation
                    [code] => local integer uid = tower.getUID()
    set tower.userInt = CATEGORY_OTHERS               //which creep type i attacked - that's the type i'll buff next
    set tower.userInt2 = CATEGORY_OTHERS              //memory of prev. attacked creep type
    set tower.userInt3 = 250                          //bonus limit
    set tower.userReal = 101                          //on-off switch. Tower should not work in bonus level. +ve = tower is on
    set tower.userReal3 = -101                        //flag to show the research message. +ve = message is on.
    call SaveInteger(xeno_raceBonusTable, uid, CATEGORY_UNDEAD, 0)  //undead
    call SaveInteger(xeno_raceBonusTable, uid, CATEGORY_MAGIC, 0)  //magic
    call SaveInteger(xeno_raceBonusTable, uid, CATEGORY_NATURE, 0)  //nature
    call SaveInteger(xeno_raceBonusTable, uid, CATEGORY_ORC, 0)  //orc
    call SaveInteger(xeno_raceBonusTable, uid, CATEGORY_HUMANOID, 0)  //humanoid
    call SaveInteger(xeno_raceBonusTable, uid, CATEGORY_OTHERS, 0) //just to prevent a hashkey error
                    [values] => Array
                        (
                            [icon] => 
                            [visible] => false
                            [name] => 
                            [short_explain] => 
                            [long_explain] => 
                        )

                )

            [1] => Array
                (
                    [name] => On Damage
                    [code] => local Creep enemy
    local integer i
    local integer index
    local integer uid
    
    if tower.userReal < 0 then
        return
    endif

    if not Event.isMainTarget() or Event.isSpellDamage() then
        return
    endif
    
    set uid = tower.getUID()
    set enemy = Event.getTarget()
    
    set index = enemy.getCategory()     //can technically use the onattack userInt....

    set i = LoadInteger(xeno_raceBonusTable, uid, index)
    
    if i < tower.userInt3 then
        call tower.getOwner().displaySmallFloatingText("Sample Collected", enemy, 200, 200, 200, 40.0)
        set i = IMinBJ(tower.userInt3, i + 50)
        call SaveInteger(xeno_raceBonusTable, uid, index, i)
        set tower.userReal3 = 101                        //flag to show the research message
    endif
                    [values] => Array
                        (
                            [ONDAMAGE_chance] => 0.25
                            [icon] => ReplaceableTextures\CommandButtons\BTNEnsnare.blp
                            [visible] => true
                            [name] => Sample Collection
                            [short_explain] => Has a chance to collect a tissue sample whenever it damages a creep.
                            [ONDAMAGE_chanceLevelAdd] => 0.01
                            [long_explain] => Has a |cffFFFF8025%|r chance to collect a tissue sample from a damaged creep. Once researched, it will provide a |cffFFFF805%|r bonus vs the race of that creep, through the Xeno Vulnerability Research aura. Maximum bonus per race is |cffFFFF8025%|r. Whenever a different race is attacked, half of the research bonuses against all other races are lost.|n|n|cffFF8000Level Bonus:|r|n|cffFFFF80+1%|r chance to collect sample|n|cffFFFF80+1%|r maximum bonus per race
                        )

                )

            [2] => Array
                (
                    [name] => Header
                    [code] => globals
        BuffType xeno_dummyAura
        BuffType xeno_undead
        BuffType xeno_magic
        BuffType xeno_nature
        BuffType xeno_orc
        BuffType xeno_humanoid
        
        hashtable xeno_raceBonusTable = InitHashtable()
    endglobals
    
    //halving and setting of all modifiers on base tower
    function xeno_ManageBonuses takes Tower tower, boolean isTypeChange, integer uid, integer currentCategory, integer currentBonus returns nothing
        local real currentRaceBonus
        local real idealBonus
        if isTypeChange then
            call SaveInteger(xeno_raceBonusTable, uid, CATEGORY_UNDEAD, LoadInteger(xeno_raceBonusTable, uid, CATEGORY_UNDEAD)/2)
            call SaveInteger(xeno_raceBonusTable, uid, CATEGORY_MAGIC, LoadInteger(xeno_raceBonusTable, uid, CATEGORY_MAGIC)/2)
            call SaveInteger(xeno_raceBonusTable, uid, CATEGORY_NATURE, LoadInteger(xeno_raceBonusTable, uid, CATEGORY_NATURE)/2)
            call SaveInteger(xeno_raceBonusTable, uid, CATEGORY_ORC, LoadInteger(xeno_raceBonusTable, uid, CATEGORY_ORC)/2)
            call SaveInteger(xeno_raceBonusTable, uid, CATEGORY_HUMANOID, LoadInteger(xeno_raceBonusTable, uid, CATEGORY_HUMANOID)/2)
            //now restore the correct one :P
            call SaveInteger(xeno_raceBonusTable, uid, currentCategory, currentBonus)
        endif
        
        //now set the correct race bonuses for this tower
        set idealBonus = 1.0 + (I2R(LoadInteger(xeno_raceBonusTable, uid, CATEGORY_UNDEAD))/1000)
        set currentRaceBonus = tower.getDamageToCategory(CATEGORY_UNDEAD)
        if idealBonus != currentRaceBonus then
            call tower.modifyProperty(MOD_DMG_TO_UNDEAD, idealBonus - currentRaceBonus) //add the delta
        endif
        
        set idealBonus = 1.0 + (I2R(LoadInteger(xeno_raceBonusTable, uid, CATEGORY_MAGIC))/1000)
        set currentRaceBonus = tower.getDamageToCategory(CATEGORY_MAGIC)
        if idealBonus != currentRaceBonus then
            call tower.modifyProperty(MOD_DMG_TO_MAGIC, idealBonus - currentRaceBonus) //add the delta
        endif
        
        set idealBonus = 1.0 + (I2R(LoadInteger(xeno_raceBonusTable, uid, CATEGORY_NATURE))/1000)
        set currentRaceBonus = tower.getDamageToCategory(CATEGORY_NATURE)
        if idealBonus != currentRaceBonus then
            call tower.modifyProperty(MOD_DMG_TO_NATURE, idealBonus - currentRaceBonus) //add the delta
        endif
        
        set idealBonus = 1.0 + (I2R(LoadInteger(xeno_raceBonusTable, uid, CATEGORY_ORC))/1000)
        set currentRaceBonus = tower.getDamageToCategory(CATEGORY_ORC)
        if idealBonus != currentRaceBonus then
            call tower.modifyProperty(MOD_DMG_TO_ORC, idealBonus - currentRaceBonus) //add the delta
        endif
        
        set idealBonus = 1.0 + (I2R(LoadInteger(xeno_raceBonusTable, uid, CATEGORY_HUMANOID))/1000)
        set currentRaceBonus = tower.getDamageToCategory(CATEGORY_HUMANOID)
        if idealBonus != currentRaceBonus then
            call tower.modifyProperty(MOD_DMG_TO_HUMANOID, idealBonus - currentRaceBonus) //add the delta
        endif
    endfunction
    
    //this is where all the magic or rather research happens :P
    function xeno_BuffTowers takes Tower tower, boolean isTypeChange returns nothing
        local BuffType selectedBuff
        local integer powerLevel
        local integer uid = tower.getUID()
        local Iterate towersInAura
        local Unit nextTower
        
        set powerLevel = LoadInteger(xeno_raceBonusTable, uid, tower.userInt)
        set tower.userInt2 = tower.userInt  //save the race type of new buff
        
        if tower.userInt == CATEGORY_UNDEAD then
            set selectedBuff = xeno_undead
            if (isTypeChange and powerLevel > 0) or tower.userReal3 > 0 then
                call tower.getOwner().displaySmallFloatingText("Undead Research Published", tower, 50, 50, 50, 0)
            endif
        elseif tower.userInt == CATEGORY_MAGIC then
            set selectedBuff = xeno_magic
            if (isTypeChange and powerLevel > 0) or tower.userReal3 > 0 then
                call tower.getOwner().displaySmallFloatingText("Magic Research Published", tower, 0, 155, 0, 0)
            endif
        elseif tower.userInt == CATEGORY_NATURE then
            set selectedBuff = xeno_nature
            if (isTypeChange and powerLevel > 0) or tower.userReal3 > 0 then
                call tower.getOwner().displaySmallFloatingText("Nature Research Published", tower, 0, 155, 0, 0)
            endif
        elseif tower.userInt == CATEGORY_ORC then
            set selectedBuff = xeno_orc
            if (isTypeChange and powerLevel > 0) or tower.userReal3 > 0 then
                call tower.getOwner().displaySmallFloatingText("Orc Research Published", tower, 155, 0, 155, 0)
            endif
        elseif tower.userInt == CATEGORY_HUMANOID then
            set selectedBuff = xeno_humanoid
            if (isTypeChange and powerLevel > 0) or tower.userReal3 > 0 then
                call tower.getOwner().displaySmallFloatingText("Humanoid Research Published", tower, 0, 155, 155, 0)
            endif
        else
            //Probs a champ wave. Exit early.
            return
        endif
        
        set tower.userReal3 = -101           //reset the message display flag
        
        call xeno_ManageBonuses(tower, isTypeChange, uid, tower.userInt, powerLevel)
        
        //re-apply buffs / refresh aura
        if powerLevel > 0 then
            set towersInAura = Iterate.overUnitsInRangeOfCaster(tower, TARGET_TOWERS, 315.0) //larger AoE needed as aura centre seems to be diff + collision problems
            loop
                set nextTower = towersInAura.next()
                exitwhen nextTower == 0
                if nextTower.getBuffOfType(xeno_dummyAura) != 0 and nextTower.getUID() != uid then //do not buff self
                    call selectedBuff.applyAdvanced(tower, nextTower, powerLevel, powerLevel, (6.5 / tower.getProp_BuffDuration())) //always 8.5 secs
                endif
            endloop
        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
        local Modifier m
        
        set xeno_undead = BuffType.create(1, 0, true)
        set m = Modifier.create()
        call m.addModification(MOD_DMG_TO_UNDEAD, 0.0, 0.001)
        call xeno_undead.setBuffModifier(m)
        
        set xeno_magic = BuffType.create(1, 0, true)
        set m = Modifier.create()
        call m.addModification(MOD_DMG_TO_MAGIC, 0.0, 0.001)
        call xeno_magic.setBuffModifier(m)
        
        set xeno_nature = BuffType.create(1, 0, true)
        set m = Modifier.create()
        call m.addModification(MOD_DMG_TO_NATURE, 0.0, 0.001)
        call xeno_nature.setBuffModifier(m)
        
        set xeno_orc = BuffType.create(1, 0, true)
        set m = Modifier.create()
        call m.addModification(MOD_DMG_TO_ORC, 0.0, 0.001)
        call xeno_orc.setBuffModifier(m)
        
        set xeno_humanoid = BuffType.create(1, 0, true)
        set m = Modifier.create()
        call m.addModification(MOD_DMG_TO_HUMANOID, 0.0, 0.001)
        call xeno_humanoid.setBuffModifier(m)
        
        set xeno_dummyAura = BuffType.createAuraEffectType(true)
        call xeno_dummyAura.setBuffIcon('@@0@@')
	endfunction
                    [values] => Array
                        (
                            [icon] => 
                            [visible] => false
                            [name] => 
                            [short_explain] => 
                            [long_explain] => 
                        )

                )

            [3] => Array
                (
                    [name] => Periodic
                    [code] => if tower.userReal > 0 then
        call xeno_BuffTowers(tower, tower.userInt != tower.userInt2)
    endif
                    [values] => Array
                        (
                            [icon] => 
                            [visible] => false
                            [PERIODIC_period] => 6
                            [name] => 
                            [short_explain] => 
                            [long_explain] => 
                        )

                )

            [4] => Array
                (
                    [name] => On Tower Destruction
                    [code] => call FlushChildHashtable(xeno_raceBonusTable, tower.getUID())
                    [values] => Array
                        (
                            [icon] => 
                            [visible] => false
                            [name] => 
                            [short_explain] => 
                            [long_explain] => 
                        )

                )

            [5] => Array
                (
                    [name] => On Attack
                    [code] => local Creep enemy

    if tower.userReal < 0 then
        return
    endif
    
    set enemy = Event.getTarget()
    
    if enemy.getSpawnLevel() > Game.getMaxLevel() then
        set tower.userReal = -101 //off switch
        set tower.userInt3 = 0
    endif

    set tower.userInt = enemy.getCategory()    //setting the last attacked type
    
    if tower.userInt != tower.userInt2 then    //last attacked is diff from the prev. last attacked, halve bonuses and change buffs
        call xeno_BuffTowers(tower, true)
    endif
                    [values] => Array
                        (
                            [icon] => 
                            [visible] => false
                            [name] => 
                            [short_explain] => 
                            [ONATTACK_chance] => 1.0
                            [ONATTACK_chanceLevelAdd] => 0.0
                            [long_explain] => 
                        )

                )

            [6] => Array
                (
                    [name] => Tower Aura
                    [code] => Array
                        (
                        )

                    [values] => Array
                        (
                            [icon] => ReplaceableTextures\CommandButtons\BTNDoom.blp
                            [visible] => true
                            [AURA_auraEffect] => xeno_dummyAura
                            [AURA_power] => 1
                            [long_explain] => Improves damage vs various creep races for all towers in |cffFFFF80280|r range. Improvement amount depends on the Sample Collection. Research results are published every |cffFFFF806|r seconds and whenever a different race is attacked. Stops working in the Bonus Level.|n|n|cffffff80Note:|r For this tower, research overrides any and all other race modifications. So the race bonuses of this tower reflect the bonuses given by this aura.
                            [AURA_level] => 1
                            [AURA_auraRange] => 280.0
                            [AURA_targetType] => TARGET_TYPE_TOWERS
                            [AURA_levelAdd] => 1
                            [AURA_powerAdd] => 1
                            [name] => Xeno Vulnerability Research
                            [AURA_targetSelf] => true
                            [short_explain] => Gives a damage bonus vs different races.
                        )

                )

            [7] => Array
                (
                    [name] => On Level Up
                    [code] => set tower.userInt3 = 250 + tower.getLevel()*10   //bonus limit
                    [values] => Array
                        (
                            [icon] => 
                            [visible] => false
                            [name] => 
                            [short_explain] => 
                            [long_explain] => 
                        )

                )

        )

    [abilities] => Array
        (
        )

    [buffs] => Array
        (
            [0] => Array
                (
                    [id] => @@0@@
                    [derivedFrom] => BEar
                    [oeValues] => Array
                        (
                            [Bufftip] => Xeno Vulnerability Research
                            [Buffubertip] => This tower is privy to the weaknesses of its alien enemies.
                            [Buffart] => ReplaceableTextures\CommandButtons\BTNDoom.blp
                            [EditorName] => Xeno Vulnerability Research
                        )

                )

        )

    [units] => Array
        (
        )

    [references] => Array
        (
        )

)