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

            [Art] => ReplaceableTextures\CommandButtons\BTNWisp.blp
            [dmgplus1] => 337
            [bldtm] => 1
            [goldcost] => 400
            [sides1] => 1
            [manaN] => 50
            [acquire] => 900
            [upgrades] => Array
                (
                )

            [Upgrade] => Array
                (
                )

            [Name] => Nature Sprites
            [red] => 50
            [weapTp1] => missile
            [MissileHoming] => 1
            [file] => Abilities\Weapons\KeeperGroveMissile\KeeperGroveMissile.mdl
            [uberSplat] => ESMB
            [Missileart] => Abilities\Spells\Items\OrbVenom\OrbVenomMissile.mdl
            [Missilespeed] => 1100
            [dice1] => 1
            [RngBuff1] => 250
            [regenMana] => 2.5
            [modelScale] => 0.75
            [rangeN1] => 900
            [atkType1] => chaos
            [cool1] => 1.2
            [Ubertip] => Friendly spirits that live in the trees.
            [blue] => 50
            [abilList] => Array
                (
                )

            [moveHeight] => 100
            [buildingShadow] => Array
                (
                )

            [targs1] => Array
                (
                )

            [weapsOn] => 1
        )

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

            [abil_factor] => 0.7
            [author] => DaveMatthews
            [alpha] => 255
            [authorDisplay] => DaveMatthews
            [version] => 1.0
            [element] => nature
            [rarity] => uncommon
        )

    [effects] => Array
        (
            [0] => Array
                (
                    [x] => 2.05586
                    [y] => 37.4154
                    [z] => 0
                    [scale] => 0.45
                    [rot] => 2.61799
                    [file] => Doodads\Felwood\Plants\FelwoodBush\FelwoodBush1.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [1] => Array
                (
                    [x] => -36.9855
                    [y] => -19.1171
                    [z] => 0
                    [scale] => 0.45
                    [rot] => 3.31613
                    [file] => Doodads\Felwood\Plants\FelwoodBush\FelwoodBush1.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [2] => Array
                (
                    [x] => 32.5132
                    [y] => -23.8192
                    [z] => 0
                    [scale] => 0.45
                    [rot] => 3.31613
                    [file] => Doodads\Felwood\Plants\FelwoodBush\FelwoodBush1.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [3] => Array
                (
                    [x] => -19.9966
                    [y] => 17.0159
                    [z] => 0
                    [scale] => 0.55
                    [rot] => 1.65806
                    [file] => Doodads\Ruins\Plants\Ruins_Flower\Ruins_Flower1.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [4] => Array
                (
                    [x] => 13.5195
                    [y] => -13.6904
                    [z] => 0
                    [scale] => 0.55
                    [rot] => 4.62512
                    [file] => Doodads\Ruins\Plants\Ruins_Flower\Ruins_Flower1.mdl
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [5] => Array
                (
                    [x] => -12.8767
                    [y] => -37.275
                    [z] => 44.8
                    [scale] => 0.6
                    [rot] => 3.52557
                    [file] => Abilities\Spells\Human\ManaFlare\ManaFlareTarget.mdl
                    [red] => 50
                    [green] => 255
                    [blue] => 50
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [6] => Array
                (
                    [x] => -24.5618
                    [y] => 28.4121
                    [z] => 51.2
                    [scale] => 0.6
                    [rot] => 3.52557
                    [file] => Abilities\Spells\Human\ManaFlare\ManaFlareTarget.mdl
                    [red] => 50
                    [green] => 255
                    [blue] => 50
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [7] => Array
                (
                    [x] => 20.3915
                    [y] => 20.7577
                    [z] => 76.8
                    [scale] => 0.6
                    [rot] => 3.52557
                    [file] => Abilities\Spells\Human\ManaFlare\ManaFlareTarget.mdl
                    [red] => 50
                    [green] => 255
                    [blue] => 50
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

            [8] => Array
                (
                    [x] => 47.4873
                    [y] => -39.6712
                    [z] => 70.4
                    [scale] => 0.6
                    [rot] => 3.52557
                    [file] => Abilities\Spells\Human\ManaFlare\ManaFlareTarget.mdl
                    [red] => 50
                    [green] => 255
                    [blue] => 50
                    [alpha] => 255
                    [pitch] => 0
                    [advanced] => false
                    [animation] => Array
                        (
                        )

                    [aniSpeed] => 50
                )

        )

    [dmgTable] => Array
        (
        )

    [triggers] => Array
        (
            [0] => Array
                (
                    [name] => Header
                    [code] => globals
        BuffType dave_gift
        //@export
        ProjectileType dave_sprite
    endglobals
    
function gift_create takes Buff B returns nothing
    local Tower target = B.getBuffedUnit()
    local Tower tower = B.getCaster()
    local integer elem = target.getCategory()
    local integer relem
    local integer level = B.getLevel()
    local real memberModifier = tower.userReal // scale factor based on family member
    
    // Ensure caster is still alive.
    if tower == 0 then
        return
    endif

    if elem == Element.ASTRAL then
        set B.userInt = MOD_EXP_RECEIVED
        set B.userReal = (0.28 + level * 0.008) * memberModifier
    elseif elem == Element.DARKNESS then
        set B.userInt = MOD_SPELL_DAMAGE_DEALT
        set B.userReal = (0.16 + level * 0.004) * memberModifier
    elseif elem == Element.NATURE then
        set B.userInt = MOD_ATK_CRIT_CHANCE
        set B.userReal = (0.04 + level * 0.001) * memberModifier
    elseif elem == Element.FIRE then
        set B.userInt = MOD_DAMAGE_ADD_PERC
        set B.userReal = (0.16 + level * 0.004) * memberModifier
    elseif elem == Element.ICE  then
        set B.userInt = MOD_BUFF_DURATION
        set B.userReal = (0.2 + level * 0.006) * memberModifier
    elseif elem == Element.STORM  then
        set B.userInt = MOD_ATTACKSPEED
        set B.userReal = (0.08 + level * 0.002) * memberModifier
    elseif elem == Element.IRON  then
        set B.userInt = MOD_ITEM_CHANCE_ON_KILL
        set B.userReal = (0.06 + level * 0.0016) * memberModifier
    endif
    // Apply the modification
    call target.modifyProperty(B.userInt, B.userReal)

    if tower.calcChance(0.25) then
        set relem = GetRandomInt(0,5)
        // Relem cannot be 6 (IRON), so we apply iron buff if elem == relem.
        if elem == relem  then
            set B.userInt2 = MOD_ITEM_CHANCE_ON_KILL
            set B.userReal2 = (0.06 + level * 0.0016) * memberModifier
        elseif relem == Element.ASTRAL then
            set B.userInt2 = MOD_EXP_RECEIVED
            set B.userReal2 = (0.28 + level * 0.008) * memberModifier
        elseif relem == Element.DARKNESS then
            set B.userInt2 = MOD_SPELL_DAMAGE_DEALT
            set B.userReal2 = (0.16 + level * 0.004) * memberModifier
        elseif relem == Element.NATURE then
            set B.userInt2 = MOD_ATK_CRIT_CHANCE
            set B.userReal2 = (0.04 + level * 0.001) * memberModifier
        elseif relem == Element.FIRE then
            set B.userInt2 = MOD_DAMAGE_ADD_PERC
            set B.userReal2 = (0.16 + level * 0.004) * memberModifier
        elseif relem == Element.ICE  then
            set B.userInt2 = MOD_BUFF_DURATION
            set B.userReal2 = (0.2 + level * 0.006) * memberModifier
        elseif relem == Element.STORM  then
            set B.userInt2 = MOD_ATTACKSPEED
            set B.userReal2 = (0.08 + level * 0.002) * memberModifier
        endif
        // Apply the bonus modification
        call target.modifyProperty(B.userInt2, B.userReal2)
        set B.userInt3 = Effect.createColored("Abilities\\Weapons\\KeeperGroveMissile\\KeeperGroveMissile.mdl", target.getX(), target.getY(), 150, 0, 0.9, 255, 180, 180, 255)
    else
        set B.userInt2 = 0
        set B.userInt3 = Effect.createScaled("Abilities\\Weapons\\KeeperGroveMissile\\KeeperGroveMissile.mdl", target.getX(), target.getY(), 150, 0, 0.75)
    endif
    
endfunction

function effect_clean takes Buff B returns nothing
    local Tower target = B.getBuffedUnit()
    // Remove the modification
    call target.modifyProperty(B.userInt, -B.userReal)
    if B.userInt2 != 0 then
        // Remove the bonus modification
        call target.modifyProperty(B.userInt2, -B.userReal2)
    endif
    if B.userInt3 != 0 then
      call Effect(B.userInt3).destroy()
    endif
endfunction

function spritehit takes Projectile P, Unit target returns nothing
    local Tower tower = P.getCaster()
    call dave_gift.apply(tower, target, tower.getLevel())
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 dave_gift = BuffType.create(5,0,true)
     call dave_gift.setBuffIcon('@@0@@')
     call dave_gift.addEventOnCreate(gift_create)
     call dave_gift.addEventOnCleanup(effect_clean)
     
     set dave_sprite = ProjectileType.create("Abilities\\Weapons\\KeeperGroveMissile\\KeeperGroveMissile.mdl",4,400)
     call dave_sprite.enableHoming(ProjectileTargetEvent.spritehit,0)
endfunction
                    [values] => Array
                        (
                            [visible] => false
                            [icon] => 
                            [name] => 
                            [short_explain] => 
                            [long_explain] => 
                        )

                )

            [1] => Array
                (
                    [name] => Autocast
                    [code] => local Projectile p
    set p = Projectile.createFromUnitToUnit(dave_sprite, tower, 0, 0, tower, Event.getTarget(), true, false, false)
    call p.setScale(0.75)
    call p.color(50,255,50,255)
                    [values] => Array
                        (
                            [AUTOCAST_cooldown] => 2
                            [AUTOCAST_autoRange] => 500
                            [AUTOCAST_manacost] => 45
                            [icon] => ReplaceableTextures\CommandButtons\BTNRejuvenation.blp
                            [AUTOCAST_range] => 500
                            [AUTOCAST_targetType] => TARGET_TYPE_TOWERS
                            [AUTOCAST_numBuffsBeforeIdle] => 5
                            [caster_art] => 
                            [long_explain] => One of the spirits flies towards a tower in |cffffff80500|r range and buffs it for |cffffff805|r seconds. The buff has a different effect depending on the tower's element:|n|cffFFFF80+28%|r experience for Astral|n|cffFFFF80+16%|r spell damage for Darkness|n|cffFFFF80+4%|r crit chance for Nature|n|cffFFFF80+16%|r damage for Fire|n|cffFFFF80+20%|r buff duration for Ice|n|cffFFFF80+8%|r attack speed for Storm|n|cffFFFF80+6%|r item chance for Iron|nThe buffed tower has a |cffFFFF8025%|r chance to receive another random effect in addition to the first one.|n|n|cffFF8000Level Bonus:|r|n|cffFFFF80+0.8%|r experience|n|cffFFFF80+0.4%|r spell damage|n|cffFFFF80+0.1%|r crit chance|n|cffFFFF80+0.4%|r damage|n|cffFFFF80+0.6%|r buff duration|n|cffFFFF80+0.2%|r attack speed|n|cffFFFF80+0.14%|r item chance
                            [target_art] => 
                            [AUTOCAST_autocastType] => AC_TYPE_OFFENSIVE_BUFF
                            [AUTOCAST_buffType] => 0
                            [AUTOCAST_isExtended] => false
                            [name] => Nature's Gift
                            [AUTOCAST_targetSelf] => false
                            [short_explain] => Buffs a tower, increasing stats depending on its element.
                        )

                )

            [2] => Array
                (
                    [name] => On Tower Creation
                    [code] => set tower.userReal = 1.0 //Member buff strength modifier
                    [values] => Array
                        (
                            [visible] => false
                            [icon] => 
                            [name] => 
                            [short_explain] => 
                            [long_explain] => 
                        )

                )

        )

    [abilities] => Array
        (
        )

    [buffs] => Array
        (
            [0] => Array
                (
                    [id] => @@0@@
                    [derivedFrom] => Bslo
                    [oeValues] => Array
                        (
                            [Buffubertip] => This unit has increased stats depending on its element.
                            [TargetArt] => Array
                                (
                                )

                            [Bufftip] => Nature's Gift
                            [Buffart] => ReplaceableTextures\CommandButtons\BTNRejuvenation.blp
                        )

                )

        )

    [units] => Array
        (
        )

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

        )

)