The Conduit v1
4000
|
ID: 399
Family ID:
Author: Ashbringer
Rarity: unique
Element: storm
Attack Type: Magic
Attack Range: 1200
Attack CD: 2
Damage: 1-1
Mana: 1000
Mana regen: 0
Status: Approved
|
Specials:
5% spell crit chance (+0.5%/lvl) x1.5 spell crit damage (+x0.05/lvl)
Absorb Energy:
Attacks hit up to 10 enemies, but do no damage. There is a 10% chance per hit to gather energy, restoring 50 mana to the tower and the target will lose 50 mana if it has mana. Level Bonus: +1 mana +0.2% chance
Unleash
Unleashes built up energy, dealing [400 x wave] spell damage to a single enemy and increasing the spell crit damage of nearby towers within 350 range by x0.75 for 5 seconds. Level Bonus: +8 spell damage per wave +x0.03 spell crit damage AC_TYPE_OFFENSIVE_BUFF 400, 1200.00 range, 0.50s cooldown
Conduit - Aura
Attack speed, trigger chances, spell damage, spell crit chance and spell crit damage bonuses on this tower are applied to Common and Uncommon Storm towers in 350 range at a rate of 50%. Level Bonus: +2% stats |
Download
Toggle Triggers Autocast
AUTOCAST_cooldown: 0.50
AUTOCAST_autoRange: 1200.00
AUTOCAST_manacost: 400
AUTOCAST_range: 1200.00
AUTOCAST_targetType: TARGET_TYPE_CREEPS
AUTOCAST_numBuffsBeforeIdle: 1
caster_art:
target_art:
AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_BUFF
AUTOCAST_buffType: 0
AUTOCAST_isExtended: false
AUTOCAST_targetSelf: false
private function onAutocast takes Tower tower returns nothing
local Iterate it = Iterate.overUnitsInRangeOfUnit(tower,TARGET_TOWERS,tower,350)
local Unit next
local real cast_damage = (400 + (tower.getLevel() * 8)) * tower.getOwner().getTeam().getLevel()
loop
set next = it.next()
call ashbringer_unleash_buff.apply(tower,next,tower.getLevel())
exitwhen next == 0
endloop
call ashbringer_unleash_cast.targetCastFromCaster(tower,Event.getTarget(),1.0+tower.getLevel()*0.02,tower.calcSpellCritNoBonus())
call tower.doSpellDamage(Event.getTarget(), cast_damage, tower.calcSpellCritNoBonus())
endfunction
Header globals
BuffType ashbringer_conduit_aura
Cast ashbringer_unleash_cast
BuffType ashbringer_unleash_buff
endglobals
function ashbringer_conduit_update takes Buff b returns nothing
local Tower tower = b.getBuffedUnit()
local Tower caster = b.getCaster()
local real tower_level = caster.getLevel()
local real caster_level_factor = 0.5 + (tower_level * 0.02)
call tower.modifyProperty(MOD_SPELL_DAMAGE_DEALT, -b.userReal)
call tower.modifyProperty(MOD_SPELL_CRIT_CHANCE, -b.userReal2)
call tower.modifyProperty(MOD_SPELL_CRIT_DAMAGE, -b.userReal3)
call tower.modifyProperty(MOD_ATTACKSPEED, -(b.userInt/1000.0))
call tower.modifyProperty(MOD_TRIGGER_CHANCES, -(b.userInt2/1000.0))
set b.userReal = (caster.getProp_SpellDmgDealt() - 1.0)*caster_level_factor
set b.userReal2 = (caster.getProp_SpellCritChance() - (0.05 + (tower_level * 0.005)))*caster_level_factor
set b.userReal3 = (caster.getProp_SpellCritDamage() - (1.5 + (tower_level * 0.05)))*caster_level_factor
set b.userInt = R2I((caster.getProp_Attackspeed() - (0.00 + (tower_level * 0.012)))*caster_level_factor*1000.0)
set b.userInt2 = R2I((caster.getProp_TriggerChances()- 1.0)*caster_level_factor*1000.0)
call tower.modifyProperty(MOD_SPELL_DAMAGE_DEALT, b.userReal)
call tower.modifyProperty(MOD_SPELL_CRIT_CHANCE, b.userReal2)
call tower.modifyProperty(MOD_SPELL_CRIT_DAMAGE, b.userReal3)
call tower.modifyProperty(MOD_ATTACKSPEED, (b.userInt/1000.0))
call tower.modifyProperty(MOD_TRIGGER_CHANCES, (b.userInt2/1000.0))
endfunction
function ashbringer_conduit_create takes Buff b returns nothing
set b.userReal = 0
set b.userReal2 = 0
set b.userReal3 = 0
set b.userInt = 0
set b.userInt2 = 0
call ashbringer_conduit_update(b)
endfunction
function ashbringer_conduit_cleanup takes Buff b returns nothing
local Tower tower = b.getBuffedUnit()
call tower.modifyProperty(MOD_SPELL_DAMAGE_DEALT, -b.userReal)
call tower.modifyProperty(MOD_SPELL_CRIT_CHANCE, -b.userReal2)
call tower.modifyProperty(MOD_SPELL_CRIT_DAMAGE, -b.userReal3)
call tower.modifyProperty(MOD_ATTACKSPEED, -b.userInt/1000.0)
call tower.modifyProperty(MOD_TRIGGER_CHANCES, -b.userInt2/1000.0)
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()
set ashbringer_conduit_aura = BuffType.createAuraEffectType(true)
set ashbringer_unleash_cast = Cast.create('@@1@@',"chainlightning",1.0)
set ashbringer_unleash_buff=BuffType.create(3,0,false)
call ashbringer_conduit_aura.setBuffIcon('@@2@@')
call ashbringer_conduit_aura.addEventOnCreate(ashbringer_conduit_create)
call ashbringer_conduit_aura.addEventOnCleanup(ashbringer_conduit_cleanup)
call ashbringer_conduit_aura.addPeriodicEvent(ashbringer_conduit_update, 5)
call m.addModification(MOD_SPELL_CRIT_DAMAGE, 0.75, 0.03)
call ashbringer_unleash_buff.setBuffIcon('@@3@@')
call ashbringer_unleash_buff.setBuffModifier(m)
call ashbringer_unleash_cast.setSourceHeight(220.0)
endfunction
On Damage
ONDAMAGE_chance: 0.1
ONDAMAGE_chanceLevelAdd: 0.002
function onDamage takes Tower tower returns nothing
local real mana = 50.0 + (1.0 * tower.getLevel())
set Event.damage = 0
call tower.addMana(mana)
call Event.getTarget().subtractMana(mana, true)
call Lightning.createFromUnitToPoint("BLUE", Event.getTarget(), tower.getX(), tower.getY(), 180.00).setLifetime(0.5)
endfunction
Tower Aura
AURA_powerAdd: 0
AURA_auraEffect: ashbringer_conduit_aura
AURA_levelAdd: 0
AURA_power: 1
AURA_targetType: TARGET_TYPE_TOWERS + TARGET_TYPE_ELEMENT_STORM + TARGET_TYPE_RARITY_UNCOMMON + TARGET_TYPE_RARITY_COMMON
AURA_targetSelf: false
AURA_level: 1
AURA_auraRange: 350
|
Description: