Big Lightning Rod v1
2500
|
ID: 230
Family ID:
Author: Boekie
Rarity: common
Element: storm
Attack Type: Energy
Attack Range: 1200
Attack CD: 1.2
Damage: 1979-1998
Mana: 45
Mana regen: 2
Status: Approved
|
Release Lightning
This tower releases a lightning bolt that strikes the target for 2500 damage. Level Bonus: +125 damage. AC_TYPE_OFFENSIVE_UNIT 20, 1200 range, 1s cooldown |
Download
Toggle Triggers Autocast
caster_art:
AUTOCAST_cooldown: 1
AUTOCAST_numBuffsBeforeIdle: 0
AUTOCAST_isExtended: false
AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_UNIT
AUTOCAST_manacost: 20
AUTOCAST_range: 1200
AUTOCAST_buffType: 0
AUTOCAST_targetSelf: false
AUTOCAST_targetType: 0
target_art:
AUTOCAST_autoRange: 1200
private function onAutocast takes Tower tower returns nothing
local Unit creep = Event.getTarget()
call tower.doSpellDamage(creep,2500.0+(tower.getLevel()*125.0),tower.calcSpellCritNoBonus())
call SFXOnUnit("Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl",creep.getUnit(),"origin")
endfunction
|
Core of Dark Emotions v1
2500
|
ID: 293
Family ID:
Author: Killamasta
Rarity: uncommon
Element: darkness
Attack Type: Decay
Attack Range: 800
Attack CD: 2
Damage: 185-185
Status: Approved
|
Description: The Master of Hate, Anger and Rage corrupts all the innocent hearts to make them rot.
Specials:
Bounce attack:
8 targets
-0% damage per bounce
Rotting Heart
This tower corrupts the creep's heart and makes it rot on damage. The affected creep takes 625 Spelldamage every second for 6 seconds. Level Bonus: +25 poison damage +0.5 seconds poison duration |
Download
Toggle Triggers Header globals
//@import
BuffType Poisoned_heart // this is used to declare the 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 Unit creep = Event.getTarget()
set Poisoned_heart.applyCustomTimed(tower,creep,tower.getLevel(),6+tower.getLevel()*.5).userReal = 625. + 25 * tower.getLevel()
endfunction
|
Experienced Marine v1
2500
|
ID: 294
Family ID:
Author: Boekie
Rarity: rare
Element: iron
Attack Type: Decay
Attack Range: 1200
Attack CD: 0.6
Damage: 560-560
Mana: 35
Mana regen: 1.3
Status: Approved
|
Description: A highly esteemed footsoldier with moderate self esteem.
Stim
This marine uses a stimpack, increasing its attackspeed by 150% and decreasing its attackdamage by 50%. This buff lasts 5 seconds. Level Bonus: +0.08 seconds duration AC_TYPE_OFFENSIVE_IMMEDIATE 25, 1200 range, 7s cooldown
Frag Grenade
When this tower damages a creep it has a 25% chance to fire a frag grenade that will split into 8 smaller grenades after a short delay. When a grenade collides with a creep it deals 1800 spelldamage and increases the damage the target takes from attacks by 2%, stacking up to a maximum of 50%. Level Bonus: +0.4% chance +150 damage +0.1% damage increase |
Download
Toggle Triggers Autocast
caster_art: Abilities\Spells\Human\Avatar\AvatarCaster.mdl
AUTOCAST_cooldown: 7
AUTOCAST_numBuffsBeforeIdle: 0
AUTOCAST_isExtended: false
AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_IMMEDIATE
AUTOCAST_manacost: 25
AUTOCAST_range: 1200
AUTOCAST_buffType: 0
AUTOCAST_targetSelf: true
AUTOCAST_targetType: 0
target_art:
AUTOCAST_autoRange: 1200
private function onAutocast takes Tower tower returns nothing
local integer level = tower.getLevel()
call boekie_stim_buff.applyCustomTimed(tower,tower,level,5.0+0.08*level)
endfunction
Header globals
//@import
ProjectileType shard
//@import
BuffType boekie_stim_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: 0.25
ONDAMAGE_chanceLevelAdd: 0.004
function onDamage takes Tower tower returns nothing
set Projectile.createFromUnitToUnit(shard, tower, 1.50, tower.calcSpellCritNoBonus(), tower, Event.getTarget(), false, true, false).userInt = 8 //eight projectiles
endfunction
|
Monument of Death v1
2500
|
ID: 344
Family ID:
Author: geX
Rarity: common
Element: darkness
Attack Type: Decay
Attack Range: 1050
Attack CD: 1.75
Damage: 2296-2896
Status: Approved
|
Description: Basic tower with a small chance on attack to kill lesser targets immediately.
Tomb's Curse
This tower has a 2% chance on attack to kill a non boss, non champion target immediately. Level Bonus: +0.25% chance |
Download
Toggle Triggers On Damage
ONDAMAGE_chance: 0.02
ONDAMAGE_chanceLevelAdd: 0.0025
function onDamage takes Tower tower returns nothing
local Unit creep = Event.getTarget()
local integer size = creep.getSize()
if size < SIZE_CHAMPION then // removed or size == SIZE_AIR
call tower.killInstantly(creep)
call SFXAtUnit("Abilities\\Spells\\Undead\\DeathCoil\\DeathCoilSpecialArt.mdl",creep.getUnit())
endif
endfunction
|
Frozen Inferno v1
2500
|
ID: 368
Family ID:
Author: IamanEvilMan
Rarity: common
Element: darkness
Attack Type: Essence
Attack Range: 900
Attack CD: 0.9
Damage: 1627-1627
Mana: 45
Mana regen: 2
Status: Approved
|
Description: This tower uses mana to summon coldfire from the Frozen Heart of Hell for minor AoE damage and slowing effect. Stolen souls improve this ability with each tower level.
Specials:
-25% dmg to undead (+1%/lvl)
Soul Chill
Chills the souls of all creeps in 250 AoE of the target, dealing 1800 spelldamage and slowing them by 12% for 4 seconds. Level Bonus: +96 damage +1% slow +0.1 seconds duration AC_TYPE_OFFENSIVE_UNIT 20, 900 range, 1s cooldown |
Download
Toggle Triggers Autocast
AUTOCAST_cooldown: 1
AUTOCAST_autoRange: 900
AUTOCAST_manacost: 20
AUTOCAST_range: 900
AUTOCAST_targetType: 0
AUTOCAST_numBuffsBeforeIdle: 2
caster_art:
target_art: Abilities\Spells\Undead\RaiseSkeletonWarrior\RaiseSkeleton.mdl
AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_UNIT
AUTOCAST_buffType: soul_chill
AUTOCAST_isExtended: false
AUTOCAST_targetSelf: false
private function onAutocast takes Tower tower returns nothing
local Unit targ = Event.getTarget()
local Iterate it = Iterate.overUnitsInRangeOfUnit(tower,TARGET_CREEPS,targ,250)
local Unit next
local real calculated_slow = 120 + tower.getLevel() * 10
local real duration = 4.0 + tower.getLevel() * 0.1
local real spelldmg = 1800 + tower.getLevel() * 96
loop
set next = it.next()
exitwhen next == 0
call soul_chill.applyCustomTimed(tower, next, R2I(calculated_slow), duration)
call tower.doSpellDamage(next, spelldmg, tower.calcSpellCritNoBonus())
endloop
call SFXAtUnit("Abilities\\Spells\\Undead\\RaiseSkeletonWarrior\\RaiseSkeleton.mdl", targ.getUnit())
endfunction
Header globals
//@import
BuffType soul_chill
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
|
Goblin Stronghold v1
2500
|
ID: 373
Family ID:
Author: cedi
Rarity: unique
Element: iron
Attack Type: Physical
Attack Range: 800
Attack CD: 2.5
Damage: 897-906
Status: Approved
|
Description: You should always consider goblin-made items to be a nuclear weapon with a faulty trigger, you just might live to see another day.
Reimbursement:
Whenever this tower attacks and not a single one of the other abilities trigger the player is reimbursed 5 gold.
Probability Field Emitter:
Whenever this tower attacks it has a 20% chance to launch a probability field emitter at a random tower within 500 range, increasing trigger chances by 30% - 60% for 5 seconds. Level Bonus: +0.6% chance +0.6% trigger chances
Clockwork Engineer
Whenever this tower attacks it has a 20% chance to launch a clockwork engineer at a random tower within 500 range, increasing attack speed and damage by 10% - 40% for 5 seconds. Level Bonus: +0.6% chance +0.6% attack speed and damage
Goblin Sapper
Whenever this tower attacks it has a 20% chance to launch a sapper team at the attacked creep. On contact the sappers deal 1350 - 7650 spell damage to the target and all creeps within 250 range. Also slows all affected creeps by 25% - 45% for 3 seconds. Level Bonus: +0.4% chance +180 spell damage +0.6% slow |
Download
Toggle Triggers Header globals
ProjectileType cedi_gob_sapper
ProjectileType cedi_gob_robot //Both robot and emitter
BuffType cedi_gob_sapperB
BuffType cedi_gob_robotB
BuffType cedi_gob_emitterB
endglobals
function Sapper_Hit takes Projectile P, Unit U returns nothing
local Tower T = P.getCaster()
local Iterate I = Iterate.overUnitsInRangeOfUnit( T, TARGET_CREEPS, U, 250.00 )
if T == 0 then
//We got no caster, abbadon ship.
call I.destroy()
return
endif
call T.getOwner().displaySmallFloatingText( I2S( P.userInt / 10 ) + "% slow", U, 100, 100, 255, 40.0 )
call DestroyEffect( AddSpecialEffect( "Objects\\Spawnmodels\\Other\\NeutralBuildingExplosion\\NeutralBuildingExplosion.mdl", P.x, P.y ) )
loop
set U = I.next()
exitwhen U == 0
call T.doSpellDamage( U, P.userReal, T.calcSpellCritNoBonus() )
call cedi_gob_sapperB.apply( T, U, P.userInt )
endloop
endfunction
//Both robot and emitter
function Robot_Hit takes Projectile P, Unit U returns nothing
set P.explode = false
if P.getCaster() == 0 then
//We got no caster, abbadon ship.
return
endif
if P.userInt == 1 then
//robot
call cedi_gob_robotB.apply( P.getCaster(), U, P.userInt2 )
call P.getCaster().getOwner().displaySmallFloatingText( I2S( P.userInt2 / 10 ) + "% AS and DMG", U, 100, 255, 100, 40.0 )
else
//emitter
call cedi_gob_emitterB.apply( P.getCaster(), U, P.userInt2 )
call P.getCaster().getOwner().displaySmallFloatingText( I2S( P.userInt2 / 10 ) + "% Trigger Chance", U, 100, 255, 100, 40.0 )
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
//sapper
set cedi_gob_sapper = ProjectileType.create( "units\\creeps\\GoblinSapper\\GoblinSapper.mdl", 20.0, 700.00 )
call cedi_gob_sapper.enableHoming( Sapper_Hit, 0 )
//sapper buff
set cedi_gob_sapperB = BuffType.create( 3.0, 0.0, false )
call cedi_gob_sapperB.setBuffIcon( '@@2@@' )
set m = Modifier.create()
call m.addModification( MOD_MOVESPEED, 0.00, -0.001 )
call cedi_gob_sapperB.setBuffModifier( m )
//robot / emitter
set cedi_gob_robot = ProjectileType.createInterpolate( "", 200.0 )
call cedi_gob_robot.setEventOnInterpolationFinished( Robot_Hit )
//robot buff
set cedi_gob_robotB = BuffType.create( 5.0, 0.0, true )
call cedi_gob_robotB.setBuffIcon( '@@3@@' )
set m = Modifier.create()
call m.addModification( MOD_DAMAGE_ADD_PERC, 0.00, 0.001 )
call m.addModification( MOD_ATTACKSPEED, 0.00, 0.001 )
call cedi_gob_robotB.setBuffModifier( m )
call cedi_gob_robotB.setSpecialEffect( "Units\\Creeps\\HeroTinkerRobot\\HeroTinkerRobot.mdl", 120.0, 0.7 )
//emitter buff
set cedi_gob_emitterB = BuffType.create( 5.0, 0.0, true )
call cedi_gob_emitterB.setBuffIcon( '@@4@@' )
set m = Modifier.create()
call m.addModification( MOD_TRIGGER_CHANCES, 0.00, 0.001 )
call cedi_gob_emitterB.setBuffModifier( m )
call cedi_gob_emitterB.setSpecialEffect( "units\\creeps\\GoblinLandMine\\GoblinLandMine.mdl", 120.0, 1.0 )
endfunction
On Attack
ONATTACK_chance: 1.0
ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
local Unit U = Event.getTarget()
local Projectile P
local integer lvl = tower.getLevel()
local boolean b = false
local Iterate I
//sapper
if tower.calcChance( 0.2 + 0.004 * lvl ) then
set b = true
set P = Projectile.createFromUnitToUnit( cedi_gob_sapper, tower, 1.0, 1.0, tower, U, true, false, false )
//set damage 4500 (0.3/1.7) + 180
set P.userReal = GetRandomReal( 1350.0, 7650.0 ) + 180.00 * lvl
//set slow / 15% + 10% / 0.001
set P.userInt = GetRandomInt( 250, 450 ) + 6 * lvl
endif
//robot
if tower.calcChance( 0.2 + 0.004 * lvl ) then
set I = Iterate.overUnitsInRangeOfCaster( tower, TARGET_TOWERS, 500.00 )
set U = I.nextRandom()
//Don't target self
if U == tower then
set U = I.nextRandom()
endif
if U != 0 then
call I.destroy()
else
//no sense doing anything more.
return
endif
set b = true
set P = Projectile.createLinearInterpolationFromUnitToUnit( cedi_gob_robot, tower, 1.0, 1.0, tower, U, 0.35, true )
//set model
call P.setModel( "Units\\Creeps\\HeroTinkerRobot\\HeroTinkerRobot.mdl" )
//set type
set P.userInt = 1
//set effect / 10% - 40%
set P.userInt2 = GetRandomInt( 100, 400 ) + 6 * lvl
endif
//emitter
if tower.calcChance( 0.2 + 0.004 * lvl ) then
set I = Iterate.overUnitsInRangeOfCaster( tower, TARGET_TOWERS, 500.00 )
set U = I.nextRandom()
//Don't target self
if U == tower then
set U = I.nextRandom()
endif
if U != 0 then
call I.destroy()
else
//no sense doing anything more.
return
endif
set b = true
set P = Projectile.createLinearInterpolationFromUnitToUnit( cedi_gob_robot, tower, 1.0, 1.0, tower, U, 0.33, true )
//set model
call P.setModel( "units\\creeps\\GoblinLandMine\\GoblinLandMine.mdl" )
//set type
set P.userInt = 0
//set effect / 30% - 60% +15%
set P.userInt2 = GetRandomInt( 300, 600 ) + 6 * lvl
endif
//Economy
if not b then
//Nothing happened, add gold
call tower.getOwner().giveGold( 5.0, tower.getUnit(), true, true )
endif
endfunction
|
Ancient Felweed v1
2500
|
ID: 410
Family ID:
Author: SirCoqaLot.
Rarity: common
Element: fire
Attack Type: Decay
Attack Range: 750
Attack CD: 1
Damage: 1889-1889
Status: Approved
|
Description: Basic Tower that sometimes deals more damage.
Fireblossom
Every 5th attack deals 15% bonus damage. Every 6th attack deals 30% bonus damage. Every 7th attack deals 45% bonus damage. Every 8th attack deals 60% bonus damage. Level Bonus: +0.3% bonus damage every 5th attack. +0.6% bonus damage every 6th attack. +0.9% bonus damage every 7th attack. +1.2% bonus damage every 8th attack. |
Download
Toggle Triggers On Damage
ONDAMAGE_chance: 1.0
ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
local real damage = Event.damage
local integer level = tower.getLevel()
set tower.userInt = tower.userInt +1
set tower.userInt2 = tower.userInt2 +1
set tower.userInt3 = tower.userInt3 +1
set tower.userReal = tower.userReal +1
if tower.userInt >= 5 then
set Event.damage = Event.damage * (1.15 + level * 0.003)
set tower.userInt = 0
endif
if tower.userInt2 >= 6 then
set Event.damage = Event.damage * (1.3 + level * 0.006)
set tower.userInt2 = 0
endif
if tower.userInt3 >= 7 then
set Event.damage = Event.damage * (1.45 + level * 0.009)
set tower.userInt3 = 0
endif
if tower.userReal >= 8 then
set Event.damage = Event.damage * (1.6 +level * 0.012)
set tower.userReal = 0
endif
if Event.damage > damage then
call tower.getOwner().displaySmallFloatingText(I2S(R2I(Event.damage)),tower,255,150,150,0)
endif
endfunction
On Tower Creation function onCreate takes Tower tower returns nothing
set tower.userInt = 0
set tower.userInt2 = 0
set tower.userInt3 = 0
set tower.userReal = 0
endfunction
|
Description: