Essence of Anger v1
600
|
ID: 291
Family ID:
Author: Killamasta
Rarity: uncommon
Element: darkness
Attack Type: Decay
Attack Range: 800
Attack CD: 2
Damage: 63-63
Status: Approved
|
Specials:
Bounce attack:
4 targets
-0% damage per bounce
Poisononed Heart
This tower destroys a piece of the creep's heart on damage. The affected creep takes 150 Spelldamage every second for 6 seconds. Level Bonus: +6 poison damage +0.3 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()*.3).userReal = 150. + 6 * tower.getLevel()
endfunction
|
Adept Witch v1
600
|
ID: 375
Family ID:
Author: cedi
Rarity: uncommon
Element: darkness
Attack Type: Essence
Attack Range: 1100
Attack CD: 1.6
Damage: 538-538
Mana: 30
Mana regen: 1.5
Status: Approved
|
Description: Yet she has the knowledge to transform you into a frog.
Specials:
+1 mana/lvl +0.1 mana regen/lvl
Love Potion
The witch throws a bottle of love potion on the target, slowing it by 32% and increasing its item drop chance by 25.6%. The potion lasts 7 seconds. Level Bonus: +0.375% slow +0.3% Item drop chance AC_TYPE_OFFENSIVE_BUFF 25, 1100.00 range, 3.00s cooldown
Soul Split
When the witch attacks, it has a 36% chance to deal 400 spell damage to its target, increasing the witch's attackspeed by 15% and decreasing the chance to trigger this spell by 9%. These effects last 12 seconds and stack. If the target is under the influence of a Love Potion, the attackspeed bonus, the damage and the duration of this spell are doubled. Level Bonus: +16 spell damage |
Download
Toggle Triggers Autocast
caster_art:
AUTOCAST_cooldown: 3.00
AUTOCAST_numBuffsBeforeIdle: 1
AUTOCAST_isExtended: false
AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_BUFF
AUTOCAST_manacost: 25
AUTOCAST_range: 1100.00
AUTOCAST_buffType: cedi_LovePotion
AUTOCAST_targetSelf: false
AUTOCAST_targetType: TARGET_TYPE_CREEPS
target_art:
AUTOCAST_autoRange: 1100.00
private function onAutocast takes Tower tower returns nothing
set Projectile.createFromUnitToUnit( cedi_LoveMissile, tower, 1.00, tower.calcSpellCritNoBonus(), tower, Event.getTarget(), true, false, false ).userInt = 256 + tower.getLevel() * 3
endfunction
Header globals
//@import
BuffType cedi_LovePotion
//@import
BuffType cedi_SoulBuff
//@import
ProjectileType cedi_LoveMissile
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 real multipler = 1.00
local integer UID = tower.getUID()
if tower.calcChance( tower.userReal / 100.00 ) then
if Event.getTarget().getBuffOfType( cedi_LovePotion ) != 0 then
set multipler = 2.00
call tower.getOwner().displayFloatingTextX( "Double", tower, 255, 0, 0, 255, 64.00, 1.00, 2.00 )
endif
call SFXAtUnit("Objects\\Spawnmodels\\Undead\\UndeadDissipate\\UndeadDissipate.mdl", tower.getUnit())
call tower.doSpellDamage( Event.getTarget(), (400 + 16 * tower.getLevel() ) * multipler, tower.calcSpellCritNoBonus() )
call cedi_SoulBuff.applyCustomTimed( tower, tower, 1, 12 * multipler )
set tower.userReal = tower.userReal - 9.00 //* multipler
call tower.modifyProperty( MOD_ATTACKSPEED, 0.15 * multipler )
call TriggerSleepAction( 12.00 * multipler )
if tower.getUID() == UID then
call tower.modifyProperty( MOD_ATTACKSPEED, -0.15 * multipler )
set tower.userReal = tower.userReal + 9.00 //* multipler
endif
endif
endfunction
On Tower Creation function onCreate takes Tower tower returns nothing
set tower.userReal = 36.00
endfunction
|
Glowing Sun Orb v1
600
|
ID: 390
Family ID:
Author: MasterCassim
Rarity: common
Element: astral
Attack Type: Energy
Attack Range: 850
Attack CD: 1.3
Damage: 562-562
Status: Approved
|
Description: The blazing light of the sun makes its targets glow, especially undead ones.
Specials:
Splash attack: 125 AoE: 50% damage 225 AoE: 25% damage +15% dmg to undead
Afterglow
The Orb has a 5% chance to reduce armor of units it damages by 5 for 5 seconds. This chance is doubled for bosses. Level Bonus: +0.6% chance +0.25 seconds duration |
Download
Toggle Triggers Header globals
//@import
BuffType cassimArmor
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
function onDamage takes Tower tower returns nothing
local integer lvl = tower.getLevel()
local Creep creep = Event.getTarget()
local real sizeFactor = 1.0
if creep.getSize() == SIZE_BOSS then
set sizeFactor = 2.0
endif
if(tower.calcChance((0.05+lvl*0.006)*sizeFactor)) then
call cassimArmor.applyCustomTimed(tower,creep,5,5+lvl*0.25)
endif
endfunction
|
Particle Accelerator v1
600
|
ID: 400
Family ID:
Author: the_red_terror
Rarity: rare
Element: iron
Attack Type: Energy
Attack Range: 900
Attack CD: 1
Damage: 426-426
Status: Approved
|
Description: Gains speed and damage on each attack, while losing the bonus on kill.
Energy Acceleration
Every attack increases attack speed and damage by 2%. Level Bonus: +0.1% attack speed and damage
Errant Tachyons
On kill, this tower is stunned for 2 seconds and the bonus from Energy Acceleration is lost.
|
Download
Toggle Triggers Header globals
MultiboardValues Red_Terror_Values
endglobals
//Do not remove or rename this function!
//Put your initialization tasks here, this function will be called on map init
//@export
function redterror_energy_rotation takes Tower tower returns nothing
call Effect(tower.userInt2).setAnimationSpeed(0.5+(tower.userReal/2))
endfunction
private function init takes nothing returns nothing
set Red_Terror_Values = MultiboardValues.create(1)
call Red_Terror_Values.setKey(0, "Acceleration")
endfunction
On Attack
ONATTACK_chance: 1.0
ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
local integer lvl = tower.getLevel()
call tower.modifyProperty(MOD_DAMAGE_ADD_PERC,0.02+(lvl*0.001))
call tower.modifyProperty(MOD_ATTACKSPEED,0.02+(lvl*0.001))
set tower.userReal = tower.userReal+(0.02+(lvl*0.001))
call redterror_energy_rotation(tower)
endfunction
On Kill function onKill takes Tower tower returns nothing
local integer lvl = tower.getLevel()
call SFXAtUnit("Abilities\\Spells\\Orc\\FeralSpirit\\feralspiritdone.mdl",Event.getTarget().getUnit())
call tower.modifyProperty(MOD_DAMAGE_ADD_PERC,-(tower.userReal))
call tower.modifyProperty(MOD_ATTACKSPEED,-(tower.userReal))
call cb_stun.applyOnlyTimed(tower,tower,2)
set tower.userReal = 0
call redterror_energy_rotation(tower)
//different SFX?
endfunction
On Tower Creation function onCreate takes Tower tower returns nothing
local Effect e = Effect.createAnimatedScaled("Abilities\\Spells\\Orc\\SpiritLink\\SpiritLinkTarget.mdl",tower.getX(), tower.getY(), 8.0, 0.0, 1.50)
set tower.userInt2 = e
set tower.userReal = 0
call redterror_energy_rotation(tower)
endfunction
On Tower Destruction function onDestruct takes Tower tower returns nothing
local Effect e = tower.userInt2
call e.destroy()
endfunction
On Tower Details
goldcost: 0
function onTowerDetails takes Tower tower returns MultiboardValues
call Red_Terror_Values.setValue(0, R2SW((tower.userReal*100),1,1))
return Red_Terror_Values
endfunction
|
Firestorm Core v1
600
|
ID: 424
Family ID:
Author: Ashbringer
Rarity: uncommon
Element: fire
Attack Type: Magic
Attack Range: 900
Attack CD: 1.3
Damage: 319-319
Status: Approved
|
Description: A device created to unleash fiery explosions.
Firestorm
Attacks have a 16% chance to apply 3 charges of Firestorm to the target. Each second, a charge will be spent, dealing 300 spell damage to enemies in 300 range. If the target already has charges, the charges will accumulate and a charge will be consumed instantly. On death all remaining firestorm charges get consumed at once. Level Bonus: +0.5% chance +10 damage |
Download
Toggle Triggers Header globals
BuffType ashbringer_firestorm_buff
endglobals
function ashbringer_firestorm_damage takes Tower tower, Unit creep returns nothing
call Effect.createScaled("Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl", creep.getX(), creep.getY(), 0, 0, 0.4).destroy()
call tower.doSpellDamageAoEUnit(creep, 300, 300 + (10 * tower.getLevel()), tower.calcSpellCritNoBonus(), 0.0)
endfunction
function ashbringer_firestorm_periodic takes Buff b returns nothing
local Tower tower = b.getCaster()
local Unit target = b.getBuffedUnit()
set b.userInt = b.userInt - 1
if b.userInt <= 0 then
call b.removeBuff() //need to do it in this order, because the damage can kill the buff carrier, and removing buff after the carrier is dead causes double free
endif
call ashbringer_firestorm_damage(tower, target)
endfunction
function ashbringer_firestorm_setint takes Buff b returns nothing
set b.userInt = b.getPower()
endfunction
function firestorm takes Buff b returns nothing
local Tower tower = b.getCaster()
local Creep creep = b.getBuffedUnit()
call Effect.createScaled("Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl", creep.getX(), creep.getY(), 0, 0, 0.8).destroy()
call tower.doSpellDamageAoEUnit(creep, 300, b.getPower()* (300 + (10 * tower.getLevel())), tower.calcSpellCritNoBonus(), 0.0)
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 ashbringer_firestorm_buff = BuffType.create(1000,0,false)
call ashbringer_firestorm_buff.setBuffIcon('@@0@@')
call ashbringer_firestorm_buff.addEventOnCreate(EventHandler.ashbringer_firestorm_setint)
call ashbringer_firestorm_buff.addPeriodicEvent(EventHandler.ashbringer_firestorm_periodic,1)
call ashbringer_firestorm_buff.addEventOnDeath(EventHandler.firestorm)
endfunction
On Attack
ONATTACK_chance: 0.16
ONATTACK_chanceLevelAdd: 0.005
function onAttack takes Tower tower returns nothing
local Unit creep = Event.getTarget()
local Buff b
local integer i
set b = creep.getBuffOfType(ashbringer_firestorm_buff)
if ( b != 0 ) then
call ashbringer_firestorm_damage(tower, creep)
set i = b.getPower() + 2
call b.setPower(i)
set b.userInt = i
else
set i = 3
call ashbringer_firestorm_buff.applyCustomPower(tower, creep, i, i)
endif
endfunction
|
Really Cold Troll v1
600
|
ID: 477
Family ID:
Author: cedi
Rarity: uncommon
Element: ice
Attack Type: Elemental
Attack Range: 900
Attack CD: 1.5
Damage: 397-397
Mana: 100
Mana regen: 2.5
Status: Approved
|
Description: Now, he reached the next level...
Specials:
-50% dmg to undead +25% dmg to orcs +25% dmg to humanoids
Blizzard
Summons 6 waves of icy spikes which fall down to earth. Each wave deals 333 damage in an AoE of 300. Each time a unit is damaged by this spell there is a chance of 35% to slow the unit by 9% for 4.5 seconds and a chance of 15% to stun the unit for 0.50 seconds. Level Bonus: +12 damage +0.01% slow +1% chance for slow +0.1% chance for stun AC_TYPE_OFFENSIVE_UNIT 95, 900 range, 10s cooldown |
Download
Toggle Triggers Autocast
caster_art:
AUTOCAST_cooldown: 10
AUTOCAST_numBuffsBeforeIdle: 0
AUTOCAST_isExtended: false
AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_UNIT
AUTOCAST_manacost: 95
AUTOCAST_range: 900
AUTOCAST_buffType: 0
AUTOCAST_targetSelf: true
AUTOCAST_targetType: 0
target_art:
AUTOCAST_autoRange: 900
private function onAutocast takes Tower tower returns nothing
local unit u = Event.getTarget().getUnit()
call Troll_blizzard.pointCastFromCasterOnPoint( tower, GetUnitX( u ), GetUnitY( u ), 1.00 + I2R( tower.getLevel() ) * 0.036, tower.calcSpellCritNoBonus() )
set u = null
endfunction
Header globals
BuffType Troll_blizzardslow
Cast Troll_blizzard
endglobals
function OnBlizzard takes DummyUnit U returns nothing
if U.getCaster().calcChance( 0.35 + I2R( U.getCaster().getLevel() ) * 0.01 ) then
call Troll_blizzardslow.applyOnlyTimed( U.getCaster(), Event.getTarget(), 4.5 )
endif
if U.getCaster().calcChance( 0.15 + I2R( U.getCaster().getLevel() ) * 0.001 ) then
call cb_stun.applyOnlyTimed( U.getCaster(), Event.getTarget(), 0.50 )
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 mod2 = Modifier.create()
set Troll_blizzardslow = BuffType.create(0.0,0.0,false)
call mod2.addModification(MOD_MOVESPEED,-0.09,-0.001)
call Troll_blizzardslow.setBuffModifier(mod2)
call Troll_blizzardslow.setBuffIcon('@@4@@')
set Troll_blizzard = Cast.create( '@@0@@', "blizzard", 9.00 )
call Troll_blizzard.setDamageEvent( EventHandler.OnBlizzard )
call Troll_blizzardslow.setStackingGroup("cedi_troll_blizzard")
endfunction
|
Expanded Fire Pit v1
600
|
ID: 559
Family ID:
Author: Boekie
Rarity: common
Element: fire
Attack Type: Decay
Attack Range: 800
Attack CD: 0.9
Damage: 455-455
Status: Approved
|
Description: A fire pit that has the ability to unleash some powerful flames.
Specials:
2x multicrit
Hot Coals
Whenever this tower kills a creep it gains 25% bonus crit chance for 9.5 seconds. Level Bonus: +0.05 sec duration +0.3% crit chance |
Download
Toggle Triggers Header globals
//@import
BuffType boekie_coals_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 Kill function onKill takes Tower tower returns nothing
local integer lvl = tower.getLevel()
call boekie_coals_buff.applyCustomTimed(tower,tower,100+(lvl*3),9.5+0.05*lvl)
endfunction
|
Description: