Hell Bat v1
900
ID:
259
Family ID:
Author:
DaveMatthews
Rarity:
rare
Element:
darkness
Attack Type:
Decay
Attack Range:
900
Attack CD:
1.2
Damage:
910-910
Abil. Factor:
0.8
Status:
Approved

Description:

Like a bat out of hell I'll be gone when the morning comes!

Latest Upload Comment:

Restored from 1.10
Engulfing Darkness
This tower engulfs itself in darkness, gaining power as if it's night for 5 seconds.
Bat Swarm
This tower has a 15% chance on attack to release a swarm of bats, dealing 600 spell damage at nighttime or 200 spell damage at daytime to all enemies in a cone. The cone grows from a 100 AoE radius at the start to a 300 AoE radius at the end. 

Level Bonus:
+0.2% chance 
+15 damage during night 
+5 damage during day
Creature of the Night
This tower deals 150% damage during nighttime and 50% damage during daytime. 

Level Bonus:
+0.4% damage during night 
+0.2% damage during day
Download

Toggle Triggers

Autocast

caster_art: Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl AUTOCAST_cooldown: 6 AUTOCAST_numBuffsBeforeIdle: 1 AUTOCAST_isExtended: false AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_BUFF AUTOCAST_manacost: 45 AUTOCAST_range: 0 AUTOCAST_buffType: dave_darkness AUTOCAST_targetSelf: true AUTOCAST_targetType: TARGET_TYPE_TOWERS target_art: AUTOCAST_autoRange: 0
private function onAutocast takes Tower tower returns nothing
call dave_darkness.apply(tower,tower,tower.getLevel())
endfunction

Header

    globals
    //@export
    BuffType dave_darkness
    //@export
    Cast dave_bats
    endglobals
    
    //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_darkness = BuffType.create(5,0,true)
    call dave_darkness.setBuffIcon( '@@2@@' )
    
    set dave_bats = Cast.create( '@@0@@', "carrionswarm", 3.0 )
    endfunction

On Attack

ONATTACK_chance: 0.15 ONATTACK_chanceLevelAdd: 0.002
function onAttack takes Tower tower returns nothing
local real time = GetFloatGameState(GAME_STATE_TIME_OF_DAY)
local integer level = tower.getLevel()

if time >= 18.00 or time < 6.00 or tower.getBuffOfType(dave_darkness)!=0 then
   call dave_bats.targetCastFromCaster(tower, Event.getTarget(), 600+(15*level), tower.calcSpellCritNoBonus())
else
   call dave_bats.targetCastFromCaster(tower, Event.getTarget(), 200+(5*level), tower.calcSpellCritNoBonus())
endif
endfunction

On Damage

ONDAMAGE_chance: 1.0 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
local real time = GetFloatGameState(GAME_STATE_TIME_OF_DAY)
local integer level = tower.getLevel()

if time >= 18.00 or time < 6.00 or tower.getBuffOfType(dave_darkness)!=0 then
   set Event.damage = Event.damage*(1.5+0.004*level)
else
   set Event.damage = Event.damage*(0.5+0.002*level)
endif
endfunction

On Tower Creation

function onCreate takes Tower tower returns nothing
call AddUnitAnimationProperties(tower.getUnit(), "stand alternate", false)
endfunction