Bomb Turret v1
950
ID:
217
Family ID:
Author:
DaveMatthews
Rarity:
rare
Element:
iron
Attack Type:
Physical
Attack Range:
900
Attack CD:
2.6
Damage:
2429-2429
Status:
Approved

Description:

Can fire different bombs for a great versatility.
Concussive Bombs
Equips the tower with concussive bombs. Each attack slows all the creeps in a 250 area around the target by 15% for 4 seconds. 

Level Bonus:
+0.4% slow

AC_TYPE_NOAC_IMMEDIATE
 0, 0 range, 5s cooldown
Acid Bombs
Equips the tower with acid bombs. Each attack reduces the armor of all the creeps in a 250 area around the target by 10% for 4 seconds. 

Level Bonus:
+0.4% armor reduction

AC_TYPE_NOAC_IMMEDIATE
 0, 0 range, 5s cooldown
Smoke Bombs
Equips the tower with smoke bombs. Each attack silences all the creeps in a 250 area around the target for 1 second. 

Level Bonus:
+0.04 seconds duration

AC_TYPE_NOAC_IMMEDIATE
 0, 0 range, 5s cooldown
Download

Toggle Triggers

Autocast

caster_art: AUTOCAST_cooldown: 5 AUTOCAST_numBuffsBeforeIdle: 1 AUTOCAST_isExtended: false AUTOCAST_autocastType: AC_TYPE_NOAC_IMMEDIATE AUTOCAST_manacost: 0 AUTOCAST_range: 0 AUTOCAST_buffType: dave_concussive AUTOCAST_targetSelf: true AUTOCAST_targetType: TARGET_TYPE_TOWERS target_art: AUTOCAST_autoRange: 0
private function onAutocast takes Tower tower returns nothing
if tower.getBuffOfType(dave_concussive)==0 then
  call dave_concussive.apply(tower, tower, tower.getLevel())
endif

if tower.getBuffOfType(dave_acid)!=0 then
  call tower.getBuffOfType(dave_acid).removeBuff()
endif
  
if tower.getBuffOfType(dave_smoke)!=0 then
  call tower.getBuffOfType(dave_smoke).removeBuff()
endif
endfunction

Autocast

caster_art: AUTOCAST_cooldown: 5 AUTOCAST_numBuffsBeforeIdle: 1 AUTOCAST_isExtended: false AUTOCAST_autocastType: AC_TYPE_NOAC_IMMEDIATE AUTOCAST_manacost: 0 AUTOCAST_range: 0 AUTOCAST_buffType: dave_acid AUTOCAST_targetSelf: true AUTOCAST_targetType: TARGET_TYPE_TOWERS target_art: AUTOCAST_autoRange: 0
private function onAutocast takes Tower tower returns nothing
if tower.getBuffOfType(dave_acid)==0 then
  call dave_acid.apply(tower, tower, tower.getLevel())
endif

if tower.getBuffOfType(dave_concussive)!=0 then
  call tower.getBuffOfType(dave_concussive).removeBuff()
endif
  
if tower.getBuffOfType(dave_smoke)!=0 then
  call tower.getBuffOfType(dave_smoke).removeBuff()
endif
endfunction

Autocast

caster_art: AUTOCAST_cooldown: 5 AUTOCAST_numBuffsBeforeIdle: 1 AUTOCAST_isExtended: false AUTOCAST_autocastType: AC_TYPE_NOAC_IMMEDIATE AUTOCAST_manacost: 0 AUTOCAST_range: 0 AUTOCAST_buffType: dave_smoke AUTOCAST_targetSelf: true AUTOCAST_targetType: TARGET_TYPE_TOWERS target_art: AUTOCAST_autoRange: 0
private function onAutocast takes Tower tower returns nothing
if tower.getBuffOfType(dave_smoke)==0 then
  call dave_smoke.apply(tower, tower, tower.getLevel())
endif

if tower.getBuffOfType(dave_acid)!=0 then
  call tower.getBuffOfType(dave_acid).removeBuff()
endif
  
if tower.getBuffOfType(dave_concussive)!=0 then
  call tower.getBuffOfType(dave_concussive).removeBuff()
endif
endfunction

Header

    globals
    //@export
    BuffType dave_concussive
    //@export
    BuffType dave_acid
    //@export
    BuffType dave_smoke
    //@export
    BuffType dave_concussive_buff
    //@export
    BuffType dave_acid_buff
    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
    local Modifier m = Modifier.create()
    local Modifier n = Modifier.create()
    
     set dave_concussive_buff = BuffType.create(4,0,false)
     call dave_concussive_buff.setBuffModifier(m)
     call m.addModification(MOD_MOVESPEED,-0.15,-0.004)
     call dave_concussive_buff.setBuffIcon( '@@2@@' )
     
     set dave_acid_buff = BuffType.create(4,0,false)
     call dave_acid_buff.setBuffModifier(n)
     call dave_acid_buff.setBuffIcon( '@@4@@' )
     call n.addModification(MOD_ARMOR_PERC,-0.1,-0.004)
    
     set dave_concussive = BuffType.create(-1,0,true)
     call dave_concussive.setBuffIcon( '@@0@@' )
     
     set dave_acid = BuffType.create(-1,0,true)
     call dave_acid.setBuffIcon( '@@1@@' )
     
     set dave_smoke = BuffType.create(-1,0,true)
     call dave_smoke.setBuffIcon( '@@3@@' )

    endfunction

On Damage

ONDAMAGE_chance: 1.0 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
local integer level = tower.getLevel()
local Unit creep = Event.getTarget()
local Unit u
local Iterate it
    
    if tower.getBuffOfType(dave_concussive)!=0 then
        set it = Iterate.overUnitsInRangeOfUnit(tower,TARGET_CREEPS,creep,250)
        loop
           set u = it.next()
           exitwhen u == 0
           call dave_concussive_buff.apply(tower,u,level)
        endloop
       call Effect.createScaled("Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl", GetUnitX(creep.getUnit()), GetUnitY(creep.getUnit()), 0, 0, 1.0).setLifetime(0.2)
    elseif tower.getBuffOfType(dave_acid)!=0 then
        set it = Iterate.overUnitsInRangeOfUnit(tower,TARGET_CREEPS,creep,250)
        loop
           set u = it.next()
           exitwhen u == 0
           call dave_acid_buff.apply(tower, u, level)
        endloop
       call Effect.createScaled("Abilities\\Weapons\\ChimaeraAcidMissile\\ChimaeraAcidMissile.mdl", GetUnitX(creep.getUnit()), GetUnitY(creep.getUnit()), 0, 0, 1.3).setLifetime(0.2)
    elseif tower.getBuffOfType(dave_smoke)!=0 then
        set it = Iterate.overUnitsInRangeOfUnit(tower,TARGET_CREEPS,creep,250)
        loop
           set u = it.next()
           exitwhen u == 0
           call cb_silence.applyOnlyTimed(tower, u, 1+(0.04*level))
        endloop
       call Effect.createScaled("Abilities\\Spells\\Human\\CloudOfFog\\CloudOfFog.mdl", GetUnitX(creep.getUnit()), GetUnitY(creep.getUnit()), 0, 0, 0.8).setLifetime(0.5)
    endif
endfunction
Grand Bomb Turret v1
2000
ID:
218
Family ID:
Author:
DaveMatthews
Rarity:
rare
Element:
iron
Attack Type:
Physical
Attack Range:
900
Attack CD:
2.6
Damage:
5113-5113
Status:
Approved

Description:

Can fire different bombs for a great versatility.
Concussive Bombs
Equips the tower with concussive bombs. Each attack slows all the creeps in a 300 area around the target by 25% for 4 seconds. 

Level Bonus:
+0.6% slow

AC_TYPE_NOAC_IMMEDIATE
 0, 0 range, 5s cooldown
Acid Bombs
Equips the tower with acid bombs. Each attack reduces the armor of all the creeps in a 300 area around the target by 15% for 4 seconds. 

Level Bonus:
+0.6% armor reduction

AC_TYPE_NOAC_IMMEDIATE
 0, 0 range, 5s cooldown
Smoke Bombs
Equips the tower with smoke bombs. Each attack silences all the creeps in a 300 area around the target for 1.5 seconds. 

Level Bonus:
+0.06 seconds duration

AC_TYPE_NOAC_IMMEDIATE
 0, 0 range, 5s cooldown
Download

Toggle Triggers

Autocast

caster_art: AUTOCAST_cooldown: 5 AUTOCAST_numBuffsBeforeIdle: 1 AUTOCAST_isExtended: false AUTOCAST_autocastType: AC_TYPE_NOAC_IMMEDIATE AUTOCAST_manacost: 0 AUTOCAST_range: 0 AUTOCAST_buffType: dave_concussive AUTOCAST_targetSelf: true AUTOCAST_targetType: TARGET_TYPE_TOWERS target_art: AUTOCAST_autoRange: 0
private function onAutocast takes Tower tower returns nothing
if tower.getBuffOfType(dave_concussive)==0 then
  call dave_concussive.apply(tower, tower, tower.getLevel())
endif

if tower.getBuffOfType(dave_acid)!=0 then
  call tower.getBuffOfType(dave_acid).removeBuff()
endif
  
if tower.getBuffOfType(dave_smoke)!=0 then
  call tower.getBuffOfType(dave_smoke).removeBuff()
endif
endfunction

Autocast

caster_art: AUTOCAST_cooldown: 5 AUTOCAST_numBuffsBeforeIdle: 1 AUTOCAST_isExtended: false AUTOCAST_autocastType: AC_TYPE_NOAC_IMMEDIATE AUTOCAST_manacost: 0 AUTOCAST_range: 0 AUTOCAST_buffType: dave_acid AUTOCAST_targetSelf: true AUTOCAST_targetType: TARGET_TYPE_TOWERS target_art: AUTOCAST_autoRange: 0
private function onAutocast takes Tower tower returns nothing
if tower.getBuffOfType(dave_acid)==0 then
  call dave_acid.apply(tower, tower, tower.getLevel())
endif

if tower.getBuffOfType(dave_concussive)!=0 then
  call tower.getBuffOfType(dave_concussive).removeBuff()
endif
  
if tower.getBuffOfType(dave_smoke)!=0 then
  call tower.getBuffOfType(dave_smoke).removeBuff()
endif
endfunction

Autocast

caster_art: AUTOCAST_cooldown: 5 AUTOCAST_numBuffsBeforeIdle: 1 AUTOCAST_isExtended: false AUTOCAST_autocastType: AC_TYPE_NOAC_IMMEDIATE AUTOCAST_manacost: 0 AUTOCAST_range: 0 AUTOCAST_buffType: dave_smoke AUTOCAST_targetSelf: true AUTOCAST_targetType: TARGET_TYPE_TOWERS target_art: AUTOCAST_autoRange: 0
private function onAutocast takes Tower tower returns nothing
if tower.getBuffOfType(dave_smoke)==0 then
  call dave_smoke.apply(tower, tower, tower.getLevel())
endif

if tower.getBuffOfType(dave_acid)!=0 then
  call tower.getBuffOfType(dave_acid).removeBuff()
endif
  
if tower.getBuffOfType(dave_concussive)!=0 then
  call tower.getBuffOfType(dave_concussive).removeBuff()
endif
endfunction

Header

    globals
    //@import
    BuffType dave_concussive
    //@import
    BuffType dave_acid
    //@import
    BuffType dave_smoke
    //@import
    BuffType dave_concussive_buff
    //@import
    BuffType dave_acid_buff
    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
     
    endfunction

On Damage

ONDAMAGE_chance: 1.0 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
local integer level = tower.getLevel()
local Unit creep = Event.getTarget()
local Unit u
local Iterate it
    
    if tower.getBuffOfType(dave_concussive)!=0 then
        set it = Iterate.overUnitsInRangeOfUnit(tower,TARGET_CREEPS,creep,300)
        loop
           set u = it.next()
           exitwhen u == 0
           call dave_concussive_buff.apply(tower,u,level)
        endloop
       call Effect.createScaled("Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl", GetUnitX(creep.getUnit()), GetUnitY(creep.getUnit()), 0, 0, 1.0).setLifetime(0.2)
    elseif tower.getBuffOfType(dave_acid)!=0 then
        set it = Iterate.overUnitsInRangeOfUnit(tower,TARGET_CREEPS,creep,300)
        loop
           set u = it.next()
           exitwhen u == 0
           call dave_acid_buff.apply(tower, u, level)
        endloop
       call Effect.createScaled("Abilities\\Weapons\\ChimaeraAcidMissile\\ChimaeraAcidMissile.mdl", GetUnitX(creep.getUnit()), GetUnitY(creep.getUnit()), 0, 0, 1.3).setLifetime(0.2)
    elseif tower.getBuffOfType(dave_smoke)!=0 then
        set it = Iterate.overUnitsInRangeOfUnit(tower,TARGET_CREEPS,creep,300)
        loop
           set u = it.next()
           exitwhen u == 0
           call cb_silence.applyOnlyTimed(tower, u, 1.5+(0.06*level))
        endloop
       call Effect.createScaled("Abilities\\Spells\\Human\\CloudOfFog\\CloudOfFog.mdl", GetUnitX(creep.getUnit()), GetUnitY(creep.getUnit()), 0, 0, 0.8).setLifetime(0.5)
    endif
endfunction