Cute Small Spider v1
120
|
ID: 102
Family ID:
Author: D1000
Rarity: uncommon
Element: nature
Attack Type: Essence
Attack Range: 825
Attack CD: 1.2
Damage: 57-66
Status: Unapproved
|
Specials:
-30% dmg to nature +10% dmg to orcs +20% dmg to humanoids
Poisonous Spittle
Units damaged by the spider become infected and receive 30 spell damage per second for 5 seconds. Further attacks on the same unit will increase the potency of the infection, stacking the damage and refreshing duration. Limit of 5 stacks. The highest stack amount of any spider that has infected a unit will be used. Level Bonus: +1.5 damage per second +0.05 second duration +1 stack every 5 levels |
Download
Toggle Triggers Header globals
//@export
BuffType D1000_Spider_Poison
//@export
EventTypeList D1000_Spider_Apply
endglobals
function D1000_Spider_Damage takes Buff b returns nothing
local Unit caster = b.getCaster()
call caster.doSpellDamage(b.getBuffedUnit(),b.userReal,caster.calcSpellCritNoBonus())
endfunction
function hit takes Tower tower returns nothing
local Unit target = Event.getTarget()
local Buff b = target.getBuffOfType(D1000_Spider_Poison)
local integer level = tower.getLevel()
local real addDam = tower.userInt+tower.userReal*level
local real maxDam = tower.userInt2 + tower.userReal2 * level + addDam * (R2I(level / 5))
if b <= 0 then
set b = D1000_Spider_Poison.apply(tower, target, level)
set b.userReal = addDam
set b.userReal2 = maxDam
set b.userReal3 = tower.getProp_SpellDmgDealt()
else
if b.userReal2 >= maxDam then
set maxDam = b.userReal2
endif
if b.userReal+addDam >= maxDam then
set addDam = maxDam
else
set addDam = b.userReal+addDam
endif
if b.userReal3 < tower.getProp_SpellDmgDealt() then
call b.removeBuff()
set b = D1000_Spider_Poison.apply(tower, target, level)
set b.userReal3 = tower.getProp_SpellDmgDealt()
else
call b.setRemainingDuration(tower.userInt3 + tower.userReal3 * level)
endif
set b.userReal = addDam
set b.userReal2 = maxDam
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
set D1000_Spider_Poison = BuffType.create(5,0.05,false)
call D1000_Spider_Poison.setBuffIcon('@@0@@')
call D1000_Spider_Poison.addPeriodicEvent(EventHandler.D1000_Spider_Damage,1)
set D1000_Spider_Apply = EventTypeList.create()
call D1000_Spider_Apply.addEventOnDamage(hit, 1, 0)
endfunction
On Tower Creation function onCreate takes Tower tower returns nothing
call tower.addEventList(D1000_Spider_Apply)
set tower.userInt = 30
set tower.userReal = 1.5
set tower.userInt2 = 150
set tower.userReal2 = 7.5
set tower.userInt3 = 5
set tower.userReal3 = 0.05
endfunction
|
Ash Geyser v1
120
|
ID: 571
Family ID:
Author: drol
Rarity: uncommon
Element: fire
Attack Type: Elemental
Attack Range: 1100
Attack CD: 1.8
Damage: 106-115
Status: Approved
|
Description: A sleeping geyser that only sprouts fire now and then.
Specials:
Splash attack: 175 AoE: 30% damage +20% dmg to normals (+0.4%/lvl)
Ignite
The geyser has a 30% chance on damaging a creep to ignite the target, dealing 15% of the tower's attack damage as spell damage per second and reducing the target's health regeneration by 5% for 8 seconds. Level Bonus: +0.6% attack damage +0.1% health regeneration reduction |
Download
Toggle Triggers Header globals
//@export
BuffType drol_fireDot
endglobals
function drol_fireDot_Damage takes Buff b returns nothing
call b.getCaster().doSpellDamage(b.getBuffedUnit(),b.userReal,b.getCaster().calcSpellCritNoBonus())
endfunction
private function init takes nothing returns nothing
local Modifier drol_fireMod = Modifier.create()
set drol_fireDot = BuffType.create(8,0,false)
call drol_fireDot.setBuffIcon('@@0@@')
call drol_fireMod.addModification(MOD_HP_REGEN_PERC, -0.05, -0.001)
call drol_fireDot.setBuffModifier(drol_fireMod)
call drol_fireDot.addPeriodicEvent(EventHandler.drol_fireDot_Damage,1)
endfunction
On Damage
ONDAMAGE_chance: 0.30
ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
set drol_fireDot.apply(tower,Event.getTarget(),tower.getLevel()).userReal = tower.getCurrentAttackDamageWithBonus() * (0.15 + tower.getLevel() * 0.006)
endfunction
|
Phantom v2
125
|
ID: 83
Family ID:
Author: drol
Rarity: uncommon
Element: storm
Attack Type: Magic
Attack Range: 900
Attack CD: 1.5
Damage: 148-148
Mana: 17
Mana regen: 1
Status: Approved
|
Description: Only seen above the highest clouds, this rare creature sears the sky.
Specials:
+0.1 mana regen/lvl
Wind Shear
Increases the attackspeed of a tower in 300 range by 10% and gives it a 25% attackspeed adjusted chance to cast a chain of lightning which deals 100 initial spelldamage and hits up to 3 targets dealing 25% less damage each bounce. Effect lasts for 5 seconds. Level Bonus: +1% attackspeed +4 spelldamage +1 target at level 20 +0.1 sec duration AC_TYPE_ALWAYS_BUFF 15, 300 range, 3s cooldown |
Download
Toggle Triggers Autocast
AUTOCAST_cooldown: 3
AUTOCAST_numBuffsBeforeIdle: 1
AUTOCAST_isExtended: false
AUTOCAST_autocastType: AC_TYPE_ALWAYS_BUFF
AUTOCAST_manacost: 15
AUTOCAST_range: 300
AUTOCAST_buffType: drol_phantomBuff
AUTOCAST_targetSelf: true
AUTOCAST_targetType: TARGET_TYPE_TOWERS
AUTOCAST_autoRange: 300
caster_art:
target_art: Abilities\Spells\Items\AIlm\AIlmTarget.mdl
private function onAutocast takes Tower tower returns nothing
set drol_phantomBuff.apply(tower, Event.getTarget(), tower.getLevel()).userReal = tower.getLevel()
endfunction
Header globals
//@export
BuffType drol_phantomBuff
//@export
Cast drol_phantomCast
//@export
Cast drol_phantomCast2
endglobals
//Casts chain lightning on attack
function phantomAttack takes Buff b returns nothing
local Tower twr = b.getBuffedUnit()
if b.getCaster().getLevel() < 20 then
if twr.calcChance( 0.25 * twr.getBaseAttackspeed()) then
call drol_phantomCast.targetCastFromCaster(twr, Event.getTarget(), 1. + b.userReal * 0.04, twr.calcSpellCritNoBonus())
endif
else
if twr.calcChance( 0.25 * twr.getBaseAttackspeed()) then
call drol_phantomCast2.targetCastFromCaster(twr, Event.getTarget(), 1. + b.userReal * 0.04, twr.calcSpellCritNoBonus())
endif
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 = Modifier.create()
call m.addModification(MOD_ATTACKSPEED, 0.1, 0.01)
set drol_phantomBuff = BuffType.create( 5.0, 0.1, true)
call drol_phantomBuff.setBuffModifier(m)
call drol_phantomBuff.setBuffIcon('@@2@@')
call drol_phantomBuff.addEventOnAttack( phantomAttack, 1., 0.)
set drol_phantomCast = Cast.create('@@0@@', "chainlightning", 5.0)
call drol_phantomCast.setSourceHeight(40.0)
set drol_phantomCast2 = Cast.create('@@1@@', "chainlightning", 5.0)
call drol_phantomCast2.setSourceHeight(40.0)
endfunction
|
Ruined Sun Pillar v1
130
|
ID: 404
Family ID:
Author: geX
Rarity: common
Element: astral
Attack Type: Energy
Attack Range: 1200
Attack CD: 2
Damage: 154-171
Status: Approved
|
Description: Basic Tower with a weak bouncing attack and bonus damage to undead enemies.
Specials:
Bounce attack:
3 targets
-48% damage per bounce
+21% dmg to undead (+2.1%/lvl)
|
Download
|
Small Plant v1
135
|
ID: 674
Family ID:
Author: Boekie
Rarity: common
Element: nature
Attack Type: Decay
Attack Range: 825
Attack CD: 1.75
Damage: 215-215
Status: Approved
|
Description: This plant is small but it grows very fast!
Specials:
+42% exp gain (-2.5%/lvl) +5.5% damage/lvl |
Download
|
Altar of Fortuity v1
140
|
ID: 206
Family ID:
Author: Neotopia
Rarity: common
Element: iron
Attack Type: Physical
Attack Range: 800
Attack CD: 1.5
Damage: 337-347
Status: Approved
|
Description: A very old Altar of an ancient religion. Still imbued with the power of the gods, maybe you should wake them up.
Warming Up
Each attack of this tower has a 40% chance to miss the target. Level Bonus: -0.6% miss chance |
Download
Toggle Triggers On Damage
ONDAMAGE_chance: 1
ONDAMAGE_chanceLevelAdd: 0
function onDamage takes Tower tower returns nothing
if tower.calcBadChance( 0.4 - tower.getLevel() * 0.006 ) then
set Event.damage = 0
call tower.getOwner().displayFloatingTextX("Miss",tower,255, 0, 0,255,0.05,0.0,2.0)
endif
endfunction
|
Creepy Tombstone v1
140
|
ID: 318
Family ID:
Author: geX
Rarity: common
Element: darkness
Attack Type: Decay
Attack Range: 1050
Attack CD: 1.95
Damage: 164-204
Status: Approved
|
Description: Basic tower with a small chance on attack to kill lesser targets immediately.
Tomb's Curse
This tower has a 1% chance on attack to kill a non boss, non champion target immediately. Level Bonus: +0.17% chance |
Download
Toggle Triggers On Damage
ONDAMAGE_chance: 0.01
ONDAMAGE_chanceLevelAdd: 0.0017
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
|
Description: