Lunar Protector v1
1800
|
ID: 50
Family ID:
Author: SirCoqaLot.
Rarity: uncommon
Element: astral
Attack Type: Energy
Attack Range: 1200
Attack CD: 2
Damage: 806-826
Status: Approved
|
Lunar Grace
Smites a target creep dealing 1500 spelldamage to it. There is a 12.5% chance to empower the smite with lunar energy dealing 1500 additional spell damage, stunning the target for 0.3 seconds and making it receive 20% more damage from spells for 2.5 seconds. Level Bonus: +60 inital and chanced spell damage +0.5% chance +600 initial damage at level 15 +5% spell damage received at level 15 +0.1 seconds stun at level 25 AC_TYPE_OFFENSIVE_UNIT 0, 1200 range, 2s cooldown |
Download
Toggle Triggers Autocast
caster_art:
AUTOCAST_cooldown: 2
AUTOCAST_numBuffsBeforeIdle: 0
AUTOCAST_isExtended: true
AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_UNIT
AUTOCAST_manacost: 0
AUTOCAST_range: 1200
AUTOCAST_buffType: 0
AUTOCAST_targetSelf: false
AUTOCAST_targetType: 0
target_art: Abilities\Spells\Items\AIil\AIilTarget.mdl
AUTOCAST_autoRange: 1200
private function onAutocast takes Tower tower returns nothing
local integer level = tower.getLevel()
local Unit target = Event.getTarget()
if level < 15 then
call tower.doSpellDamage(target,1500+level*60,tower.calcSpellCritNoBonus())
else
call tower.doSpellDamage(target,2100+level*60,tower.calcSpellCritNoBonus())
endif
if tower.calcChance(0.125 + level * 0.005) == true then
call tower.doSpellDamage(target,1500 + level * 60,tower.calcSpellCritNoBonus())
if level < 25 then
call cb_stun.applyOnlyTimed(tower,target,0.3)
else
call cb_stun.applyOnlyTimed(tower,target,0.4)
endif
if level < 15 then
call sir_moonp_buff.applyAdvanced(tower,target,0,200,2.5)
else
call sir_moonp_buff.applyAdvanced(tower,target,0,250,2.5)
endif
endif
endfunction
Header globals
//@import
BuffType sir_moonp_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
|
Viviparous Skink v1
1800
|
ID: 257
Family ID:
Author: cedi
Rarity: uncommon
Element: nature
Attack Type: Decay
Attack Range: 800
Attack CD: 1
Damage: 743-770
Status: Approved
|
Description: It likes to hug people.
Poisonous Skin - Aura
This and any towers in 200 range gain a poisonous attack. The poison deals 76.5 spell damage per second for 5 seconds. The effect stacks and is attack speed and range adjusted. Level Bonus: +3.06 spell damage per second |
Download
Toggle Triggers Header globals
//@import
BuffType cedi_skinkA //Aura
//@import
BuffType cedi_skinkB //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 Tower Creation function onCreate takes Tower tower returns nothing
set tower.userReal = 76.5
set tower.userReal2 = 3.06
endfunction
Tower Aura
AURA_auraEffect: cedi_skinkA
AURA_power: 0
AURA_level: 0
AURA_auraRange: 200
AURA_targetType: TARGET_TYPE_TOWERS
AURA_levelAdd: 1
AURA_powerAdd: 1
AURA_targetSelf: true
|
Elder Felweed v1
1800
|
ID: 409
Family ID:
Author: SirCoqaLot.
Rarity: common
Element: fire
Attack Type: Decay
Attack Range: 750
Attack CD: 1
Damage: 1360-1360
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
|
Dragon Sorcerer v1
1800
|
ID: 524
Family ID:
Author: Boekie
Rarity: unique
Element: fire
Attack Type: Decay
Attack Range: 900
Attack CD: 1
Damage: 1505-1514
Mana: 30
Mana regen: 2
Status: Approved
|
Description: Buffs nearby towers to increase their attack strenght.
Specials:
+5 mana/lvl +0.1 mana regen/lvl
Burning Mark
This tower adds a buff to a tower in 500 range that lasts 10 seconds. The buff increases the multicrit count by 1, the crit chance by 7.5% and the attack speed by 25%. Level Bonus: +0.4 seconds duration +0.6% attackspeed +0.2% crit chance AC_TYPE_OFFENSIVE_BUFF 20, 500 range, 2.00s cooldown |
Download
Toggle Triggers Autocast
caster_art:
AUTOCAST_cooldown: 2.00
AUTOCAST_numBuffsBeforeIdle: 3
AUTOCAST_isExtended: false
AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_BUFF
AUTOCAST_manacost: 20
AUTOCAST_range: 500
AUTOCAST_buffType: boekie_markBuff
AUTOCAST_targetSelf: true
AUTOCAST_targetType: TARGET_TYPE_TOWERS
target_art: Abilities\Spells\Other\Doom\DoomDeath.mdl
AUTOCAST_autoRange: 500
private function onAutocast takes Tower tower returns nothing
endfunction
Header globals
BuffType boekie_markBuff
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()
set boekie_markBuff = BuffType.create( 10.00, 0.4, true )
call boekie_markBuff.setBuffIcon( '@@0@@' )
call m.addModification( MOD_MULTICRIT_COUNT, 1.00, 0.00 )
call m.addModification( MOD_ATK_CRIT_CHANCE, 0.075, 0.002 )
call m.addModification( MOD_ATTACKSPEED, 0.25, 0.006 )
call boekie_markBuff.setBuffModifier( m )
endfunction
|
Nerubian Queen v1
1800
|
ID: 570
Family ID:
Author: Boekie
Rarity: unique
Element: darkness
Attack Type: Physical
Attack Range: 950
Attack CD: 1.25
Damage: 987-1026
Status: Approved
|
Description: The mother of all Nerubian spiders. She is very poisonous!
Inject Parasite
When the Queen damages a creep she has a 30% chance to inject a parasite that lives for 10 seconds. Each second the creep will suffer 500 spelldamage and will permanently lose 2% armor. When an infected creep dies, the Nerubian Queen will gain 0.75% permanent bonus attackdamage and the parasite will attempt to jump to another host in 500 range. Level Bonus: +0.4% chance +100 spelldamage +0.08% armor reduction |
Download
Toggle Triggers Header globals
BuffType boekie_injectParasite_buff
ProjectileType boekie_parasite_jump
MultiboardValues boekie_queen_damage
endglobals
function boekie_poison takes Buff b returns nothing
local Unit target = b.getBuffedUnit()
local Tower tower = b.getCaster()
call tower.doSpellDamage(target,500+b.getLevel()*100,tower.calcSpellCritNoBonus())
call target.modifyProperty(MOD_ARMOR_PERC, -(0.02 + (b.getLevel()*0.0008)))
endfunction
function boekie_parasite_onDeath takes Buff b returns nothing
local Creep creep = b.getBuffedUnit()
local Tower tower = b.getCaster()
local Iterate it = Iterate.overUnitsInRangeOfUnit(tower, TARGET_CREEPS, creep, 500)
local Creep newHost = it.next()
local Creep temp = 0
local Projectile p
call Effect.createSimple("Objects\\Spawnmodels\\Undead\\UndeadBlood\\UndeadBloodCryptFiend.mdl", creep.getX(), creep.getY()).destroy()
if tower != 0 then
call tower.modifyProperty(MOD_DAMAGE_ADD_PERC, 0.0075)
set tower.userReal = tower.userReal + 0.0075
endif
//Find a new host! Prefers targets that aren't carrying parasites already.
loop
exitwhen newHost == 0 or newHost.getBuffOfType(boekie_injectParasite_buff) == 0
if newHost != creep then
set temp = newHost
endif
set newHost = it.next()
endloop
if newHost == 0 then
if temp == 0 then
//noone to jump to! parasite dies :(
call Effect.createScaled("units\\creeps\\Spider\\Spider.mdl", creep.getX(), creep.getY(), 0.0, 0.0, 0.2).destroy()
return
else
//can only jump to a target that already has a parasite. Do it anyway, to refresh the buff duration.
set newHost = temp
endif
else
call it.destroy()
endif
set p = Projectile.createLinearInterpolationFromUnitToUnit(boekie_parasite_jump, tower, 0.0, 0.0, creep, newHost, 0.5, true)
call p.setScale(0.2)
set p.userInt = newHost.getUID()
endfunction
function boekie_parasite_inject takes Tower tower, Creep newHost returns nothing
local integer level = tower.getLevel()
call boekie_injectParasite_buff.applyCustomTimed(tower,newHost,level,10)
endfunction
function boekie_parasite_jump_onCleanup takes Projectile p returns nothing
local Creep creep = p.getHomingTarget()
if creep.getUID() == p.userInt then
call boekie_parasite_inject(p.getCaster(), creep)
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 boekie_injectParasite_buff = BuffType.create(0,0,false)
call boekie_injectParasite_buff.setBuffIcon('@@0@@')
call boekie_injectParasite_buff.addPeriodicEvent(EventHandler.boekie_poison,1)
call boekie_injectParasite_buff.addEventOnDeath(EventHandler.boekie_parasite_onDeath)
set boekie_parasite_jump = ProjectileType.createInterpolate("units\\creeps\\Spider\\Spider.mdl",500)
call boekie_parasite_jump.setEventOnCleanup(boekie_parasite_jump_onCleanup)
call boekie_parasite_jump.disableExplodeOnHit()
set boekie_queen_damage = MultiboardValues.create(1)
call boekie_queen_damage.setKey(0,"Damage Gained")
endfunction
On Damage
ONDAMAGE_chance: 0.30
ONDAMAGE_chanceLevelAdd: 0.004
function onDamage takes Tower tower returns nothing
call boekie_parasite_inject(tower, Event.getTarget())
endfunction
On Tower Creation function onCreate takes Tower tower returns nothing
set tower.userReal = 0
endfunction
On Tower Details function onTowerDetails takes Tower tower returns MultiboardValues
call boekie_queen_damage.setValue(0, formatPercent(tower.userReal,0))
return boekie_queen_damage
endfunction
|
Sniper Nest v1
1800
|
ID: 664
Family ID:
Author: cedi
Rarity: uncommon
Element: iron
Attack Type: Physical
Attack Range: 1400
Attack CD: 2.5
Damage: 2551-2551
Status: Approved
|
Description: A long ranged tower which is good against bosses, but weak against mass creeps.
Specials:
-70% dmg to masses -30% dmg to normals +20% dmg to champions (+1.6%/lvl) +50% dmg to bosses (+4%/lvl) +20% dmg to air (+1.6%/lvl)
Rocket Strike
30% chance to fire a rocket towards the attacked unit. On impact it deals 2400 damage in a 170 AoE. Deals 125% damage to mass creeps. Level Bonus: +0.6% chance +60 damage |
Download
Toggle Triggers Header globals
//@import
ProjectileType cedi_sniper_rocket
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 Attack
ONATTACK_chance: 0.30
ONATTACK_chanceLevelAdd: 0.006
function onAttack takes Tower tower returns nothing
set Projectile.createLinearInterpolationFromUnitToUnit(cedi_sniper_rocket,tower,24.0+tower.getLevel()*0.6, tower.calcSpellCritNoBonus(),tower,Event.getTarget(),0.25,true).userReal = 170.0
endfunction
|
Ruined Tempest Tower v1
1850
|
ID: 342
Family ID:
Author: SirCoqaLot.
Rarity: uncommon
Element: storm
Attack Type: Physical
Attack Range: 1000
Attack CD: 2.8
Damage: 6683-6733
Status: Approved
|
Description: Strange tower that rejects some items.
Rejection
This tower drops all except Rare items on attack.
|
Download
Toggle Triggers On Attack
ONATTACK_chance: 1.0
ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
local Item itm
local integer i = 1
loop
exitwhen i > 6
set itm = tower.getHeldItem(i)
if itm != 0 and itm.getRarity() != Rarity.RARE then
call itm.drop()
endif
set i = i + 1
endloop
endfunction
|
Description: