Owl of Wisdom v1
2300
|
ID: 190
Family ID:
Author: Der_kleine_Tomy
Rarity: unique
Element: astral
Attack Type: Energy
Attack Range: 900
Attack CD: 2
Damage: 1756-1756
Status: Approved
|
Specials:
5% spell crit chance (+0.15%/lvl) +1% spell damage/lvl
Weak Spots:
The Owl of Wisdom is able to find weak spots even on magic immune units. It's Energyball deals 10% of its spell damage as energy damage to immune units. Level Bonus: +0.4% damage
Energyball
The Owl of Wisdom has a 25% chance on attack to cast Energyball on the attacked creep. The Energyball deals 4500 + [2.25x Towerexp] spell damage in a 100 AoE around the attacked creep. The experience bonus cannot exceed [150x current wave] damage. Level Bonus: +1 AoE +0.4% chance
Energy Aura
Every 5 seconds, for each creep in 900 range the Owl of Wisdom has a 10% chance to cast Energyball on it. Level Bonus: +0.2% chance |
Download
Toggle Triggers Header globals
//@export
ProjectileType tomy_energyballPT
endglobals
private function Tomy_Energyball_Damage takes Projectile p, Unit target returns nothing
local Tower tower = p.userInt
local real damage
local real immunedamage
// Owl of Wisdom
if tower.userInt == 1 then
set damage = 4500.0 + RMinBJ(tower.getExp() * 2.25, tower.getOwner().getTeam().getLevel() * 150.0)
set immunedamage = (10.0 + 0.4 * tower.getLevel()) / 100
else // Ancient Owl of Wisdom
set damage = 6500.0 + RMinBJ(tower.getExp() * 3.25, tower.getOwner().getTeam().getLevel() * 150.0)
set immunedamage = (15.0 + 0.6 * tower.getLevel()) / 100
endif
if not target.isImmune() then
call tower.doSpellDamageAoEUnit(target, 100 + (1* tower.getLevel()),damage, tower.calcSpellCritNoBonus(),0)
else
call tower.doAttackDamageAoEUnit(target,100 + (1* tower.getLevel()) ,damage * immunedamage * tower.getProp_SpellDmgDealt(), tower.calcSpellCritNoBonus(), 0)
endif
call Effect.createColored("Units\\NightElf\\Wisp\\WispExplode.mdl",p.x,p.y,p.z,0,0.70,0,0,255,255).setLifetime(1.0)
endfunction
function Tomy_Energyball_Start takes Unit target, Tower tower returns nothing
set Projectile.createFromUnitToUnit(tomy_energyballPT, tower, 0, 0, tower, target, true, false, false).userInt = tower
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 tomy_energyballPT = ProjectileType.create("Abilities\\Spells\\Undead\\DarkSummoning\\DarkSummonMissile.mdl", 5.0, 950.0)
call tomy_energyballPT.enableHoming(ProjectileTargetEvent.Tomy_Energyball_Damage, 0.0)
endfunction
On Attack
ONATTACK_chance: 0.25
ONATTACK_chanceLevelAdd: 0.004
function onAttack takes Tower tower returns nothing
call Tomy_Energyball_Start(Event.getTarget(), tower)
endfunction
On Tower Creation function onCreate takes Tower tower returns nothing
set tower.userInt = 1
endfunction
Periodic
PERIODIC_period: 5.0
function periodic takes Tower tower returns nothing
local Unit target
local Iterate it = Iterate.overUnitsInRangeOfCaster(tower,TARGET_CREEPS,900)
loop
set target = it.next()
exitwhen target == 0
if tower.calcChance(0.10+0.002*tower.getLevel()) then
call Tomy_Energyball_Start(target, tower)
endif
endloop
endfunction
|
Xtreme Shrubfield v1
2300
|
ID: 565
Family ID:
Author: gex
Rarity: common
Element: nature
Attack Type: Physical
Attack Range: 1000
Attack CD: 0.9
Damage: 1360-1360
Status: Approved
|
Description: Common nature tower with an increased critical strike chance and damage.
Specials:
10% crit chance (+0.7%/lvl)
x2 crit damage (+x0.07/lvl)
|
Download
|
Hell Rock v1
2350
|
ID: 35
Family ID:
Author: geX
Rarity: common
Element: fire
Attack Type: Elemental
Attack Range: 900
Attack CD: 1.2
Damage: 2247-2637
Status: Approved
|
Description: Basic tower with low splash damage
Specials:
Splash attack:
200 AoE: 25% damage
|
Download
|
Servant of the Twin Flames v1
2350
|
ID: 212
Family ID:
Author: DaveMatthews
Rarity: unique
Element: fire
Attack Type: Physical
Attack Range: 900
Attack CD: 1.1
Damage: 2043-2043
Status: Approved
|
Description: A fighter skilled in both physical and magical attacks.
Twin Pulses
Every time this tower has launched 8 red flames, it releases a green pulse, dealing 55% of its attack damage as spell damage in 900 AoE and every time it has launched 8 green flames, it releases a red pulse, dealing 55% of its attack damage as physical damage in 900 AoE. Level Bonus: +0.5% damage -1 flame needed at level 15 and 25
Twin Flames
On each attack, this tower has a chance equal to its crit chance to launch a green flame, dealing 65% of tower's attack damage as spell damage, and a chance equal to its spell crit chance to launch a red flame, dealing 65% of tower's attack damage as physical damage. Level Bonus: +0.5% damage
Twin Disciplines
Each time it scores a critical hit with an attack, this tower gains 1% bonus critical chance or spell critical chance, both stacking up to 10 times, for 7 seconds. The lower chance will always be prioritized. |
Download
Toggle Triggers Header globals
//@export
BuffType dave_physical_buff
//@export
BuffType dave_spell_buff
//@export
ProjectileType dave_red
//@export
ProjectileType dave_green
endglobals
function redHit takes Projectile p, Unit creep returns nothing
local Tower tower = p.getCaster()
local integer level= tower.getLevel()
call tower.doAttackDamage(creep,tower.getCurrentAttackDamageWithBonus()*p.userReal, tower.calcAttackMulticrit(0,0,0))
endfunction
function greenHit takes Projectile p, Unit creep returns nothing
local Tower tower = p.getCaster()
local integer level= tower.getLevel()
call tower.doSpellDamage(creep,tower.getCurrentAttackDamageWithBonus()*p.userReal, tower.calcSpellCritNoBonus())
endfunction
private function init takes nothing returns nothing
local Modifier m = Modifier.create()
local Modifier n = Modifier.create()
//Physical
set dave_physical_buff = BuffType.create(7,0,true)
call m.addModification(MOD_ATK_CRIT_CHANCE,0,0.01)
call dave_physical_buff.setBuffModifier(m)
call dave_physical_buff.setBuffIcon('@@1@@')
//Spell
set dave_spell_buff = BuffType.create(7,0,true)
call n.addModification(MOD_SPELL_CRIT_CHANCE,0,0.01)
call dave_spell_buff.setBuffModifier(n)
call dave_spell_buff.setBuffIcon('@@0@@')
//Missiles
set dave_red = ProjectileType.create("Abilities\\Weapons\\RedDragonBreath\\RedDragonMissile.mdl",4,1000)
call dave_red.setEventOnInterpolationFinished(ProjectileTargetEvent.redHit)
set dave_green = ProjectileType.create("Abilities\\Weapons\\GreenDragonMissile\\GreenDragonMissile.mdl",4,1000)
call dave_green.setEventOnInterpolationFinished(ProjectileTargetEvent.greenHit)
endfunction
On Attack
ONATTACK_chance: 1
ONATTACK_chanceLevelAdd: 0
function onAttack takes Tower tower returns nothing
local Projectile p
local Iterate it
local Effect e
local Unit u
local integer level = tower.getLevel()
if tower.calcChance( tower.getProp_SpellCritChance() ) then
set Projectile.createBezierInterpolationFromUnitToUnit(dave_red,tower,1,1,tower,Event.getTarget(),0,0.3,0,true).userReal = 0.65+0.005*level
if tower.userInt >= tower.userInt3 then
set tower.userInt = 0
set it = Iterate.overUnitsInRangeOfCaster(tower,TARGET_CREEPS,900)
loop
set u = it.next()
exitwhen u == 0
call tower.doSpellDamage(u,tower.getCurrentAttackDamageWithBonus()*(0.55+0.005*level),tower.calcSpellCritNoBonus())
call SFXOnUnit("Abilities\\Spells\\NightElf\\Immolation\\ImmolationDamage.mdl",u.getUnit(), "chest")
set e = Effect.createColored("Abilities\\Spells\\Demon\\DarkConversion\\ZombifyTarget.mdl",tower.getX()-48,tower.getY()+48, 40, 0.0, 0.42, 0, 255, 0, 255)
call e.setLifetime(0.5)
endloop
else
set tower.userInt = tower.userInt + 1
endif
endif
if tower.calcChance( tower.getProp_AtkCritChance() ) then
set Projectile.createBezierInterpolationFromUnitToUnit(dave_green,tower,1,1,tower,Event.getTarget(),0,-0.3,0,true).userReal = 0.65+0.005*level
if tower.userInt2 >= tower.userInt3 then
set tower.userInt2 = 0
set it = Iterate.overUnitsInRangeOfCaster(tower,TARGET_CREEPS,900)
loop
set u = it.next()
exitwhen u == 0
call tower.doAttackDamage(u,tower.getCurrentAttackDamageWithBonus()*(0.55+0.005*level),tower.calcAttackMulticrit(0,0,0))
call SFXOnUnit("Abilities\\Spells\\Human\\FlameStrike\\FlameStrikeEmbers.mdl",u.getUnit(), "chest")
set e = Effect.createColored("Abilities\\Spells\\Demon\\DarkConversion\\ZombifyTarget.mdl",tower.getX()+48,tower.getY()+48, 40, 0.0, 0.42, 255, 0, 0, 255)
call e.setLifetime(0.5)
endloop
else
set tower.userInt2 = tower.userInt2 + 1
endif
endif
endfunction
On Damage
ONDAMAGE_chance: 1
ONDAMAGE_chanceLevelAdd: 0
function onDamage takes Tower tower returns nothing
local Buff b = tower.getBuffOfType(dave_physical_buff)
local Buff s = tower.getBuffOfType(dave_spell_buff)
local integer levelP
local integer levelS
if b != 0 then
set levelP = b.getLevel()
endif
if s !=0 then
set levelS = s.getLevel()
endif
if Event.isAttackDamageCritical() then
if tower.getProp_AtkCritChance() < tower.getProp_SpellCritChance() or levelS == 10 then
if b==0 then
call dave_physical_buff.apply(tower,tower,1)
else
call dave_physical_buff.apply(tower,tower,IMinBJ(levelP + 1, 10))
endif
elseif tower.getProp_AtkCritChance() > tower.getProp_SpellCritChance() or levelP == 10 then
if s==0 then
call dave_spell_buff.apply(tower,tower, 1)
else
call dave_spell_buff.apply(tower,tower,IMinBJ(levelS + 1, 10))
endif
endif
endif
endfunction
On Level Up function onLevelUp takes Tower tower returns nothing
if tower.getLevel() < 15 then
set tower.userInt3 = 8
elseif tower.getLevel() < 25 then
set tower.userInt3 = 7
elseif tower.getLevel() == 25 then
set tower.userInt3 = 6
endif
endfunction
On Tower Creation function onCreate takes Tower tower returns nothing
set tower.userInt = 0
set tower.userInt2 = 0
if tower.getLevel() < 15 then
set tower.userInt3 = 8
elseif tower.getLevel() < 25 then
set tower.userInt3 = 7
elseif tower.getLevel() == 25 then
set tower.userInt3 = 6
endif
endfunction
|
Devastatingly Frozen Mushroom v1
2350
|
ID: 595
Family ID:
Author: BetrayedKnight
Rarity: common
Element: ice
Attack Type: Elemental
Attack Range: 950
Attack CD: 1.1
Damage: 1878-1925
Status: Approved
|
Description: Gex would release new versions of YouTD every day if you threatened him with this. Deals bonus damage to orcs humanoids and nature, deals lesser damage to undead. Brrr!
Specials:
-50% dmg to undead +40% dmg to nature (+1.5%/lvl) +40% dmg to orcs (+1.5%/lvl) +40% dmg to humanoids (+1.5%/lvl) |
Download
|
Titanic Fire Sprayer v1
2400
|
ID: 22
Family ID:
Author: Cyony
Rarity: common
Element: fire
Attack Type: Elemental
Attack Range: 750
Attack CD: 0.5
Damage: 1370-1370
Status: Approved
|
Description: A titanic, 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: -1.3% 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.013*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
|
Astral Lighthouse v1
2400
|
ID: 120
Family ID:
Author: Velex
Rarity: common
Element: astral
Attack Type: Magic
Attack Range: 750
Attack CD: 2.2
Damage: 5985-6209
Status: Approved
|
Description: Tower that deals additional damage to invisible units.
Light in the Dark
Deals 30% additional damage to invisible creeps. Level Bonus: +1.2% damage |
Download
Toggle Triggers On Damage
ONDAMAGE_chance: 1.0
ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
if Event.getTarget().isInvisible() then
set Event.damage = Event.damage * ( 1.30 + 0.012 * tower.getLevel() )
endif
endfunction
|
Description: