The Council of Demons v1
2900
|
ID: 295
Family ID:
Author: DaveMatthews
Rarity: unique
Element: darkness
Attack Type: Magic
Attack Range: 850
Attack CD: 1
Damage: 1335-1335
Mana: 100
Mana regen: 2
Status: Approved
|
Impenetrable Darkness
Shrouds an enemy in darkness, slowing it by 40% for 5 seconds and reducing the damage it takes from attacks by 95%. The affected unit takes 1000 spell damage per second and additional spell damage equal to 75% of the damage it received during the effect when the buff expires. This damage can't be a critical hit. Level Bonus: +40 damage per second +1% damage on expire +0.8% slow AC_TYPE_OFFENSIVE_BUFF 90, 850 range, 8s cooldown
Maledict
Whenever this tower damages a unit, it has a 20% chance to increase the damage that unit receives from spells by 20% for 5 seconds. Every time the buffed unit is targeted by a spell this tower deals additional spell damage equal to 3 times the caster goldcost to it. Level Bonus: +0.4% chance +0.6% spell damage received
Demonic Edict - Aura
Whenever a tower in 400 range casts a spell on a creep, this tower fires a projectile from the casting unit to its current target, dealing [2 x caster goldcost x spell cd] spell damage. The casting tower also has its mana regeneration increased by 100% for 3 seconds. Level Bonus: +2% mana regeneration |
Download
Toggle Triggers Autocast
AUTOCAST_cooldown: 8
AUTOCAST_autoRange: 850
AUTOCAST_manacost: 90
AUTOCAST_range: 850
AUTOCAST_targetType: TARGET_TYPE_CREEPS
AUTOCAST_numBuffsBeforeIdle: 1
caster_art:
target_art: Abilities\Weapons\AvengerMissile\AvengerMissile.mdl
AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_BUFF
AUTOCAST_buffType: dave_cod
AUTOCAST_isExtended: false
AUTOCAST_targetSelf: false
private function onAutocast takes Tower tower returns nothing
set dave_cod.apply(tower,Event.getTarget(),tower.getLevel()).userReal = 0
endfunction
Header globals
BuffType dave_cod
BuffType dave_maledict
BuffType dave_demonic_pray
BuffType dave_demonic_mana
ProjectileType dave_pray_projectile
endglobals
function dot takes Buff b returns nothing
local Tower T = b.getCaster()
local integer level = T.getLevel()
call T.doSpellDamage(b.getBuffedUnit(), 1000+(40*level), T.calcSpellCritNoBonus())
endfunction
function damageStore takes Buff b returns nothing
set b.userReal = b.userReal + Event.damage
endfunction
function damage takes Buff b returns nothing
local Tower T = b.getCaster()
local integer level = T.getLevel()
local Unit target = b.getBuffedUnit()
local real final = b.userReal*(0.75+(0.01*level))
call T.doSpellDamage(target, final, 1)
call SFXAtUnit("Abilities\\Spells\\Undead\\DeathCoil\\DeathCoilSpecialArt.mdl", target.getUnit())
call T.getTeam().displayFloatingText(I2S(R2I(final)), target,50,50,50)
endfunction
function maledicted takes Buff b returns nothing
local Tower tower = b.getCaster()
local Tower caster = Event.getTarget()
local Unit target = b.getBuffedUnit()
local integer gold = caster.getGoldcost()
if not target.isImmune() then
call tower.doSpellDamage(target,3*gold,tower.calcSpellCritNoBonus())
call SFXAtUnit("Abilities\\Spells\\Undead\\DeathandDecay\\DeathandDecayTarget.mdl", target.getUnit())
endif
endfunction
function pray takes Buff b returns nothing
local Tower tower = b.getCaster()
local Tower caster = b.getBuffedUnit()
local Unit target = Event.getTarget()
local Projectile p
local integer gold = caster.getGoldcost()
local real cd = Event.getAutocastType().getCooldown()
if target.isACreep() then
call SFXAtUnit("Abilities\\Spells\\Undead\\Sleep\\SleepSpecialArt.mdl", caster.getUnit())
set p = Projectile.createFromUnitToUnit(dave_pray_projectile, tower, cd*gold, 1, caster, target, true, false, true)
call dave_demonic_mana.apply(tower, caster, tower.getLevel())
endif
endfunction
function prayHit takes Projectile p, Unit creep returns nothing
local Tower tower = p.getCaster()
call tower.doSpellDamage(creep,2,tower.calcSpellCritNoBonus())
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()
local Modifier n = Modifier.create()
local Modifier o = Modifier.create()
set dave_cod = BuffType.create(5,0,false)
call dave_cod.setBuffModifier(n)
call n.addModification(MOD_MOVESPEED,-0.4,-0.006)
call n.addModification(MOD_ATK_DAMAGE_RECEIVED,-0.95,0)
call dave_cod.setBuffIcon( '@@0@@' )
call dave_cod.addPeriodicEvent(dot,1.0)
call dave_cod.addEventOnDamaged(EventHandler.damageStore,1,0)
call dave_cod.setEventOnExpire(EventHandler.damage)
set dave_maledict = BuffType.create(5,0,false)
call dave_maledict.setBuffModifier(m)
call m.addModification(MOD_SPELL_DAMAGE_RECEIVED,0.2,0.006)
call dave_maledict.setBuffIcon('@@1@@')
call dave_maledict.addEventOnSpellTarget(maledicted)
set dave_demonic_mana = BuffType.create(3,0,true)
call dave_demonic_mana.setBuffModifier(o)
call o.addModification(MOD_MANA_REGEN_PERC,1,0.02)
call dave_demonic_mana.setBuffIcon('@@3@@')
set dave_demonic_pray = BuffType.createAuraEffectType(true)
call dave_demonic_pray.setBuffIcon('@@2@@')
call dave_demonic_pray.addEventOnSpellCast(EventHandler.pray)
set dave_pray_projectile = ProjectileType.create("Abilities\\Weapons\\DemonHunterMissile\\DemonHunterMissile.mdl",4,1300)
call dave_pray_projectile.enableHoming(ProjectileTargetEvent.prayHit,0)
endfunction
On Damage
ONDAMAGE_chance: 0.2
ONDAMAGE_chanceLevelAdd: 0.004
function onDamage takes Tower tower returns nothing
local Creep creep = Event.getTarget()
local integer level = tower.getLevel()
call dave_maledict.apply(tower, creep, level)
endfunction
Tower Aura
AURA_powerAdd: 0
AURA_auraEffect: dave_demonic_pray
AURA_levelAdd: 0
AURA_power: 1
AURA_targetType: TARGET_TYPE_TOWERS
AURA_targetSelf: true
AURA_level: 1
AURA_auraRange: 400
|
Description: