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

            [targs1] => Array
                (
                )

            [goldcost] => 1500
            [weapsOn] => 1
            [dice1] => 1
            [Missilespeed] => 2000
            [moveHeight] => 40
            [file] => Units\Critters\Marine\Marine.mdl
            [manaN] => 30
            [atkType1] => hero
            [modelScale] => 0.6
            [weapTp1] => missile
            [acquire] => 1200
            [rangeN1] => 1200
            [upgrades] => Array
                (
                )

            [cool1] => 0.6
            [Ubertip] => A highly esteemed footsoldier with low self esteem.
            [regenMana] => 1.2
            [abilList] => Array
                (
                )

            [mana0] => 5
            [Name] => Marine
            [Missileart] => Abilities\Weapons\CannonTowerMissile\CannonTowerMissile.mdl
            [Art] => ReplaceableTextures\CommandButtons\BTNMarine.blp
            [buildingShadow] => Array
                (
                )

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

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

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

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

    [effects] => Array
        (
            [0] => Array
                (
                    [x] => -9.29745
                    [y] => -11.5869
                    [z] => -6.4
                    [scale] => 0.5
                    [rot] => 4.86947
                    [file] => Doodads\Ruins\Structures\RuinsBuilding\RuinsBuilding1.mdl
                    [red] => 30
                    [green] => 30
                    [blue] => 30
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [1] => Array
                (
                    [x] => 20.9527
                    [y] => -30.0938
                    [z] => 12.8
                    [scale] => 0.3
                    [rot] => 5.60855
                    [file] => Doodads\Outland\Props\Grate\Grate1.mdl
                    [red] => 100
                    [green] => 100
                    [blue] => 100
                    [alpha] => 255
                    [pitch] => -1.2
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [2] => Array
                (
                    [x] => -28.3827
                    [y] => 18.3228
                    [z] => 19.2
                    [scale] => 0.3
                    [rot] => 2.50713
                    [file] => Doodads\Outland\Props\Grate\Grate1.mdl
                    [red] => 100
                    [green] => 100
                    [blue] => 100
                    [alpha] => 255
                    [pitch] => -1.2
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [3] => Array
                (
                    [x] => 14.3053
                    [y] => 22.3037
                    [z] => 12.8
                    [scale] => 0.3
                    [rot] => 0.965019
                    [file] => Doodads\Outland\Props\Grate\Grate1.mdl
                    [red] => 100
                    [green] => 100
                    [blue] => 100
                    [alpha] => 255
                    [pitch] => -1.2
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

        )

    [dmgTable] => Array
        (
        )

    [triggers] => Array
        (
            [0] => Array
                (
                    [name] => On Damage
                    [code] => set Projectile.createFromUnitToUnit(shard, tower, 1.00, tower.calcSpellCritNoBonus(), tower, Event.getTarget(), false, true, false).userInt = 6 //six projectiles
                    [values] => Array
                        (
                            [ONDAMAGE_chance] => 0.20
                            [icon] => 
                            [visible] => false
                            [name] => 
                            [short_explain] => 
                            [ONDAMAGE_chanceLevelAdd] => 0.003
                            [long_explain] => 
                        )

                )

            [1] => Array
                (
                    [name] => Header
                    [code] => globals
        //@export
        ProjectileType shard
        //@export
        BuffType boekie_stim_buff
        //Don't need to export this one, as the second member doesn't need to refer to it.
        BuffType boekie_grenade_buff
    endglobals
    
    function Expiration takes Projectile p returns nothing
        local Tower tower = p.getCaster()
        local real CONE_WIDTH = 120.0 //degrees
        local real NUM_PROJECTILES = p.userInt
        
        local real angle = p.direction - CONE_WIDTH / 2
        local real dmgRatio = p.getDmgRatio()
        
        loop
            exitwhen p.userInt <= 0
            set Projectile.create(shard, tower, dmgRatio, tower.calcSpellCritNoBonus(), p.x, p.y, p.z, angle + GetRandomReal(-8.0, 8.0)).userInt = 0
            set angle = angle + CONE_WIDTH / (NUM_PROJECTILES - 1)
            set p.userInt = p.userInt - 1
        endloop
    endfunction  
    
    function Impact takes Projectile p, Unit target returns nothing
        local Tower tower = p.getCaster()
        local integer level = tower.getLevel()
        local Buff b = target.getBuffOfType(boekie_grenade_buff)
        call p.doSpellDamage(target, 1200 + 100 * level)
        call SFXAtUnit("Objects\\Spawnmodels\\Human\\FragmentationShards\\FragBoomSpawn.mdl", target.getUnit())
        if b != 0 then
            call boekie_grenade_buff.apply(tower, target, IMinBJ(480, b.getLevel()+20+level))
        else
            call boekie_grenade_buff.apply(tower, target, level)
        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 = Modifier.create()
        call m.addModification(MOD_ATTACKSPEED,1.5,0.0) 
        call m.addModification(MOD_DAMAGE_ADD_PERC,-0.5,0.0) 
        set boekie_stim_buff = BuffType.create(0.0,0.0,true) //0.0 time since I will apply it custom timed 
        call boekie_stim_buff.setBuffModifier(m)
        call boekie_stim_buff.setBuffIcon('@@0@@')
        
        set m = Modifier.create()
        call m.addModification(MOD_ATK_DAMAGE_RECEIVED,0.02,0.001)
        set boekie_grenade_buff = BuffType.create(-1.0,0.0,false) //Lasts indefinitely
        call boekie_grenade_buff.setBuffModifier(m)
        call boekie_grenade_buff.setBuffIcon('@@1@@')
        
        set shard = ProjectileType.createRanged( "Abilities\\Weapons\\GyroCopter\\GyroCopterMissile.mdl", 400.00, 500.00 )  
        call shard.setEventOnExpiration(Expiration)  
        call shard.enableCollision(Impact, 75.00, TARGET_CREEPS, true)  
	endfunction
                    [values] => Array
                        (
                            [icon] => ReplaceableTextures\CommandButtons\BTNHumanArtilleryUpOne.blp
                            [visible] => true
                            [name] => Frag Grenade
                            [short_explain] => Has a chance to fire a frag grenade on attack.
                            [long_explain] => When this tower damages a creep it has a |cffFFFF8020%|r chance to fire a frag grenade that will split into |cffFFFF806|r smaller grenades after a short delay. When a grenade collides with a creep it deals |cffFFFF801200|r spelldamage and increases the damage the target takes from attacks by |cffFFFF802%|r, stacking up to a maximum of |cffFFFF8050%|r.|n|n|cffFF8000Level Bonus:|r|n|cffFFFF80+0.3%|r chance|r|n|cffFFFF80+100|r damage|r|n|cffFFFF80+0.1%|r damage increase
                        )

                )

            [2] => Array
                (
                    [name] => Autocast
                    [code] => local integer level = tower.getLevel()
    call boekie_stim_buff.applyCustomTimed(tower,tower,level,5.0+0.08*level)
                    [values] => Array
                        (
                            [caster_art] => Abilities\Spells\Human\Avatar\AvatarCaster.mdl
                            [icon] => ReplaceableTextures\CommandButtons\BTNStatUp.blp
                            [AUTOCAST_cooldown] => 8
                            [AUTOCAST_numBuffsBeforeIdle] => 0
                            [AUTOCAST_isExtended] => false
                            [long_explain] => This marine uses a stimpack, increasing its attackspeed by |cffFFFF80150%|r and decreasing its attackdamage by |cffFFFF8050%|r. This buff lasts |cffFFFF805|r seconds. |n|n|cffFF8000Level Bonus:|r|n|cffFFFF80+0.08|r seconds duration
                            [AUTOCAST_autocastType] => AC_TYPE_OFFENSIVE_IMMEDIATE
                            [AUTOCAST_manacost] => 25
                            [AUTOCAST_range] => 1200
                            [AUTOCAST_buffType] => 0
                            [name] => Stim
                            [AUTOCAST_targetSelf] => true
                            [short_explain] => This unit uses a stimpack.
                            [AUTOCAST_targetType] => 0
                            [target_art] => 
                            [AUTOCAST_autoRange] => 1200
                        )

                )

        )

    [abilities] => Array
        (
        )

    [buffs] => Array
        (
            [0] => Array
                (
                    [id] => @@0@@
                    [derivedFrom] => Bbsk
                    [oeValues] => Array
                        (
                            [Bufftip] => Stim
                            [Buffubertip] => This unit has stimmed and has increased attackspeed.
                            [Buffart] => ReplaceableTextures\CommandButtons\BTNStatUp.blp
                            [TargetArt] => Abilities\Spells\Orc\TrollBerserk\HeadhunterWEAPONSLeft.mdl,Abilities\Spells\Orc\TrollBerserk\HeadhunterWEAPONSRight.mdl
                            [EditorName] => Stim
                        )

                )

            [1] => Array
                (
                    [id] => @@1@@
                    [derivedFrom] => Bbsk
                    [oeValues] => Array
                        (
                            [Targetattach1] => Array
                                (
                                )

                            [Bufftip] => Grenade Shrapnel
                            [Targetattach] => origin
                            [Buffubertip] => This unit has been hit by grenade shrapnel; any attack damage it receives is amplified.
                            [Buffart] => ReplaceableTextures\CommandButtons\BTNHumanArtilleryUpOne.blp
                            [TargetArt] => Abilities\Spells\Other\Volcano\VolcanoDeath.mdl
                            [EditorName] => Grenade Shrapnel
                        )

                )

        )

    [units] => Array
        (
        )

    [references] => Array
        (
            [0] => Array
                (
                    [export] => true
                    [category] => global
                    [typ] => ProjectileType
                    [name] => shard
                )

            [1] => Array
                (
                    [export] => true
                    [category] => global
                    [typ] => BuffType
                    [name] => boekie_stim_buff
                )

        )

)