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
|
Description: