Spare Part Heap v3
165
|
ID: 460
Family ID:
Author: geX
Rarity: common
Element: iron
Attack Type: Physical
Attack Range: 1000
Attack CD: 2.5
Damage: 398-458
Status: Approved
|
Specials:
+10% dmg to bosses (+0.6%/lvl) +20% item chance (+0.6%/lvl) -20% item quality (-0.6%/lvl) |
Download
|
Circle of Wind v1
170
|
ID: 313
Family ID:
Author: SternBogen / Natac & girlfriend
Rarity: uncommon
Element: storm
Attack Type: Physical
Attack Range: 1100
Attack CD: 1.4
Damage: 184-184
Status: Approved
|
Description: Strong gusts of wind often linger around these ruins.
Specials:
+70% dmg to air (+2%/lvl)
Wind of Death
On attack this tower has a 22% chance to catch a ground, non-boss unit in a cyclone for 0.6 seconds, dealing 68 physical damage to all units in 300 AoE when it falls back down. Falling champions deal 25% more damage. Level Bonus: +7 damage +0.4% chance to catch |
Download
Toggle Triggers Header globals
//@import
BuffType sternbogen_broken_wind
endglobals
private function init takes nothing returns nothing
endfunction
On Attack
ONATTACK_chance: 1.0
ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
local Creep target = Event.getTarget()
local real damage = 68 + 7 * tower.getLevel()
local Buff b
if (target.getSize() == SIZE_MASS or target.getSize() == SIZE_NORMAL or target.getSize() == SIZE_CHAMPION) then
if(tower.calcChance(0.22 + (0.004 * tower.getLevel()))) then
set b = target.getBuffOfType(sternbogen_broken_wind)
if b != 0 then
set damage = RMaxBJ(b.userReal3, damage)
endif
set b = sternbogen_broken_wind.applyCustomTimed(tower, target, tower.getLevel(), 0.6)
if b != 0 then
set b.userReal3 = damage
endif
endif
endif
endfunction
|
Pocket Rocket v1
170
|
ID: 545
Family ID:
Author: Boekie
Rarity: common
Element: iron
Attack Type: Decay
Attack Range: 700
Attack CD: 1.65
Damage: 249-270
Status: Approved
|
Description: This tower attacks with rockets that deal splash damage and deal extra damage to mass.
Specials:
Splash attack: 125 AoE: 55% damage +25% dmg to masses (+2%/lvl) |
Download
|
Tundra Stalker v1
175
|
ID: 98
Family ID:
Author: drol
Rarity: uncommon
Element: ice
Attack Type: Magic
Attack Range: 850
Attack CD: 1.3
Damage: 136-155
Mana: 12
Mana regen: 1
Status: Approved
|
Description: These giant creatures wander the dry tundras of the world.
Specials:
+4% mana regen/lvl
Ice Claw
Ravages a target creep in 850 range, causing it to suffer 50 spell damage per second and be slowed by 20%. Effect lasts 5 seconds. Level Bonus: +2 spell damage per second +0.2 second duration AC_TYPE_OFFENSIVE_UNIT 10, 850 range, 2s cooldown
Frenzy
Each time Ice Claw is cast, attackspeed is increased by 0.5% permanently. This has a maximum of 100% attack speed increase. |
Download
Toggle Triggers Autocast
caster_art:
AUTOCAST_cooldown: 2
AUTOCAST_numBuffsBeforeIdle: 1
AUTOCAST_isExtended: false
AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_UNIT
AUTOCAST_manacost: 10
AUTOCAST_range: 850
AUTOCAST_buffType: drol_tundraStalker
AUTOCAST_targetSelf: false
AUTOCAST_targetType: TARGET_TYPE_CREEPS
target_art:
AUTOCAST_autoRange: 850
private function onAutocast takes Tower tower returns nothing
if tower.userReal < 1. then
set tower.userReal = tower.userReal + 0.005
call tower.modifyProperty(MOD_ATTACKSPEED, 0.005)
endif
call SFXAtUnit("Abilities\\Spells\\Other\\FrostBolt\\FrostBoltMissile.mdl", Event.getTarget().getUnit())
call SetUnitVertexColor( Event.getTarget().getUnit(), 100, 100, 255, 255 )
set drol_tundraStalker.applyCustomTimed(tower, Event.getTarget(), 0, 5. + 0.2 * tower.getLevel()).userReal = 50. + 2. * tower.getLevel()
endfunction
Header globals
//@export
BuffType drol_tundraStalker
//@export
MultiboardValues drol_tundraStalkerValues
endglobals
//Debuff damage function
function drol_f_tundraStalker takes Buff b returns nothing
call b.getCaster().doSpellDamage(b.getBuffedUnit(), b.userReal, b.getCaster().calcSpellCritNoBonus())
endfunction
//Color fade function
function drol_fade_tundraStalker takes Buff b returns nothing
call SetUnitVertexColor(b.getBuffedUnit().getUnit(), 255, 255, 255, 255)
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_MOVESPEED, -0.2, -0.05 )
set drol_tundraStalker = BuffType.create( 5., 0.2, false )
call drol_tundraStalker.setBuffModifier(m)
call drol_tundraStalker.setBuffIcon('@@0@@')
call drol_tundraStalker.addPeriodicEvent( drol_f_tundraStalker, 1.)
call drol_tundraStalker.addEventOnCleanup( drol_fade_tundraStalker )
set drol_tundraStalkerValues = MultiboardValues.create(1)
call drol_tundraStalkerValues.setKey(0, "Speed Bonus")
endfunction
On Tower Creation function onCreate takes Tower tower returns nothing
local Tower preceding = Event.getPrecedingTower()
if preceding.getFamily() == tower.getFamily() then
set tower.userReal = preceding.userReal
call tower.modifyProperty(MOD_ATTACKSPEED, preceding.userReal)
else
set tower.userReal = 0.
endif
endfunction
On Tower Details
goldcost: 0
function onTowerDetails takes Tower tower returns MultiboardValues
call drol_tundraStalkerValues.setValue(0, I2S(R2I(tower.userReal * 100)) + "%")
return drol_tundraStalkerValues
endfunction
|
Medium Fire Sprayer v1
180
|
ID: 18
Family ID:
Author: Cyony
Rarity: common
Element: fire
Attack Type: Elemental
Attack Range: 750
Attack CD: 0.5
Damage: 109-109
Status: Approved
|
Description: A medium sized, high rate of fire tower
Specials:
+3% attackspeed/lvl
Spray and Pray
Each attack of this tower has a 33% chance to miss the target. Level Bonus: -0.9% miss chance |
Download
Toggle Triggers On Damage
ONDAMAGE_chance: 1.0
ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
if tower.calcBadChance(0.33-0.009*tower.getLevel()) then
set Event.damage = 0
call tower.getOwner().displayFloatingTextX("Miss",tower,255, 0, 0,255,0.05,0.0,2.0)
endif
endfunction
|
Lesser Elemental Ghost v1
180
|
ID: 134
Family ID:
Author: Der_kleine_Tomy
Rarity: uncommon
Element: fire
Attack Type: Essence
Attack Range: 950
Attack CD: 2
Damage: 329-329
Status: Approved
|
Description: A mysterious Ghost, which deals different damage types.
Specials:
+0.5% trigger chances/lvl
Elemental Wrath
The Elemental Ghost has a 15% chance to unleash it's wrath on attack, increasing its trigger chance by 15% for 5 seconds. Cannot retrigger during Elemental Wrath. Level Bonus: +0.1 seconds duration +0.5% trigger chance increase
Mimic
The Ghost's attacks are varied, and its damage type will either be good or bad against its target. Trigger chance adjusts the good/bad attacks to be better. |
Download
Toggle Triggers Header globals
//@export
BuffType tomy_ElementalWrath
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 modifier = Modifier.create()
call modifier.addModification(MOD_TRIGGER_CHANCES, 0.00, 0.001)
set tomy_ElementalWrath = BuffType.create(5.0, 0.00, true)
call tomy_ElementalWrath.setBuffIcon('@@0@@')
call tomy_ElementalWrath.setBuffModifier(modifier)
endfunction
On Attack
ONATTACK_chance: 0.15
ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
if tower.getBuffOfType(tomy_ElementalWrath) == 0 then
call tomy_ElementalWrath.applyCustomTimed(tower, tower, 150 + tower.getLevel() * 5, 5.0 + 0.1 * tower.getLevel())
endif
endfunction
On Damage
ONDAMAGE_chance: 1.0
ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
local Creep target = Event.getTarget()
local boolean immune = target.isImmune()
local boolean sif = target.getArmorType() == ARMOR_SIF
local boolean zod = target.getArmorType() == ARMOR_ZOD
local integer level = tower.getLevel()
local real damageadd
local real posDamageTypes = 3
if immune then
set posDamageTypes = 2
endif
if GetRandomInt(1, 100) > 50 then
if sif or zod then
set damageadd = 1.00
elseif tower.calcChance(1.00/posDamageTypes) then
set damageadd = 1.80
elseif not immune and tower.calcChance(1.00/(posDamageTypes - 1)) then
set damageadd = 1.50
else
set damageadd = 1.20
endif
else
if zod then
set damageadd = 0.90
elseif sif then
if not immune or (immune and tower.calcChance(0.50)) then
set damageadd = 0.40
else
set damageadd = 0.00
endif
elseif tower.calcChance(1.00/(6.00-posDamageTypes)) then
set damageadd = 1.00
elseif tower.calcChance(1.00/(6.00-(posDamageTypes + 1))) then
set damageadd = 0.90
elseif not immune or (immune and tower.calcChance(1.00/(6.00-(posDamageTypes + 2)))) then
set damageadd = 0.60
else
set damageadd = 0.00
endif
endif
set Event.damage = Event.damage * damageadd
if damageadd > 1.00 then
call tower.getOwner().displaySmallFloatingText(formatFloat(damageadd,2), tower, 0, 255, 0, 40)
elseif damageadd < 1.00 then
call tower.getOwner().displaySmallFloatingText(formatFloat(damageadd,2), tower, 255, 0, 0, 40)
else
call tower.getOwner().displaySmallFloatingText(formatFloat(damageadd,2), tower, 255, 255, 255, 40)
endif
endfunction
|
Clever Teacher v1
180
|
ID: 428
Family ID:
Author: Deikorim / Limfa
Rarity: uncommon
Element: astral
Attack Type: Elemental
Attack Range: 900
Attack CD: 1.5
Damage: 225-229
Status: Approved
|
Description: Teacher teaches you to attack!
Specials:
+35% exp gain
Knowledge
When the teacher attacks there's a 10% chance a random tower in 600 range will learn from her, gaining 1.3 experience. Level Bonus: +0.6% chance |
Download
Toggle Triggers Header globals
//@import
ProjectileType knowledge_green
//@import
ProjectileType knowledge_blue
//@import
ProjectileType knowledge_red
//@import
MultiboardValues limfa_teacherboard
endglobals
//@import
function teacher_attack takes Tower t, real xp returns nothing
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
endfunction
On Attack
ONATTACK_chance: 1.0
ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
call teacher_attack(tower,1.3)
call SetUnitAnimationByIndex(tower.getUnit(), 3)
endfunction
On Tower Creation function onCreate takes Tower tower returns nothing
local Tower preceding = Event.getPrecedingTower()
if (preceding.getFamily() == tower.getFamily()) then
set tower.userReal2 = preceding.userReal2
else
set tower.userReal2 = 0
endif
endfunction
On Tower Details
goldcost: 0
function onTowerDetails takes Tower tower returns MultiboardValues
call limfa_teacherboard.setValue(0, formatFloat(tower.userReal2,1))
return limfa_teacherboard
endfunction
|
Description: