Spear of Loki v1 1470
lvl: 43
|
ID: 264
Author: Boekie
Rarity: unique
Status: Approved
|
Specials:
+50% damage (+1%/lvl)
Tricky Weapon
Each attack there is a 15% chance the carrier gets stunned for 1 second. |
Download
Toggle Triggers On Attack
goldcost: -1000
ONATTACK_chance: 1.0
ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Item itm returns nothing
local Tower twr = itm.getCarrier()
if GetRandomReal(0, 1) < 0.15 / twr.getProp_TriggerChances() then
call cb_stun.applyOnlyTimed(itm,twr,1)
endif
endfunction
|
Spellbook of Item Mastery v1 1500
lvl: 44
|
ID: 200
Author: Majildian
Rarity: unique
Status: Approved
|
Description: This spellbook contains a variety of spells for items.
Cast a Spell
Casts one of these spells on attack: -Target drops a very high quality item -Two high quality items -Three normal quality items -Two low quality items and spellbook gains +10% item chance and item quality -Spellbook gains +25% item quality or item chance Cooldown of 15 waves. |
Download
Toggle Triggers Header
goldcost: 0
globals
MultiboardValues Maj_spellbook
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
set Maj_spellbook = MultiboardValues.create(3)
call Maj_spellbook.setKey(0,"Waves Left")
call Maj_spellbook.setKey(1,"Item Quality")
call Maj_spellbook.setKey(2,"Item Chance")
endfunction
On Attack
goldcost: 1500
ONATTACK_chance: 1.0
ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Item itm returns nothing
local integer choose
local Creep target
local Tower tower
local Playor owner
if itm.userInt <= 0 then
set tower = itm.getCarrier()
set owner = itm.getOwner()
set choose = GetRandomInt(1,6)
if choose <= 4 then
set target = Event.getTarget()
endif
if choose == 1 then
call tower.modifyProperty(MOD_ITEM_QUALITY_ON_KILL, 1)
call target.dropItem(tower,false)
call tower.modifyProperty(MOD_ITEM_QUALITY_ON_KILL, -1)
call owner.displayFloatingText("One Item",tower,0,0,255)
elseif choose == 2 then
call tower.modifyProperty(MOD_ITEM_QUALITY_ON_KILL, 0.5)
call target.dropItem(tower,false)
call target.dropItem(tower,false)
call tower.modifyProperty(MOD_ITEM_QUALITY_ON_KILL, -0.5)
call owner.displayFloatingText("Two Items",tower,0,0,255)
elseif choose == 3 then
call target.dropItem(tower,false)
call target.dropItem(tower,false)
call target.dropItem(tower,false)
call owner.displayFloatingText("Three Items",tower,0,0,255)
elseif choose == 4 then
call tower.modifyProperty(MOD_ITEM_QUALITY_ON_KILL, -0.25)
call target.dropItem(tower, false)
call target.dropItem(tower, false)
call tower.modifyProperty(MOD_ITEM_QUALITY_ON_KILL, 0.35)
call tower.modifyProperty(MOD_ITEM_CHANCE_ON_KILL, 0.1)
set itm.userReal = itm.userReal + 0.1
set itm.userReal2 = itm.userReal2 + 0.1
call owner.displayFloatingText("Two Items + Bonus!", tower, 0, 0, 255)
elseif choose == 5 then
call tower.modifyProperty(MOD_ITEM_CHANCE_ON_KILL,.25)
set itm.userReal2 = itm.userReal2+0.25
call owner.displayFloatingText("Item Chance",tower,0,255,0)
elseif choose == 6 then
call tower.modifyProperty(MOD_ITEM_QUALITY_ON_KILL,.25)
set itm.userReal = itm.userReal+0.25
call owner.displayFloatingText("Item Quality",tower,0,255,0)
endif
set itm.userInt = 15
endif
endfunction
On Item Creation
goldcost: 0
function onCreate takes Item itm returns nothing
set itm.userInt = 0
set itm.userInt2 = itm.getOwner().getTeam().getLevel()
set itm.userReal = 0.00
set itm.userReal2 = 0.00
endfunction
On Item Drop
goldcost: 0
function onDrop takes Item itm returns nothing
local Tower tower = itm.getCarrier()
call tower.modifyProperty(MOD_ITEM_QUALITY_ON_KILL, -itm.userReal)
call tower.modifyProperty(MOD_ITEM_CHANCE_ON_KILL, -itm.userReal2)
endfunction
On Item Pickup
goldcost: 0
function onPickup takes Item itm returns nothing
local Tower tower = itm.getCarrier()
call tower.modifyProperty(MOD_ITEM_QUALITY_ON_KILL, itm.userReal)
call tower.modifyProperty(MOD_ITEM_CHANCE_ON_KILL, itm.userReal2)
endfunction
On Tower Details
goldcost: 0
function onTowerDetails takes Item itm returns MultiboardValues
call Maj_spellbook.setValue(0,I2S(itm.userInt))
call Maj_spellbook.setValue(1,formatPercent(itm.userReal, 0))
call Maj_spellbook.setValue(2,formatPercent(itm.userReal2, 0))
return Maj_spellbook
endfunction
Periodic
PERIODIC_period: 5
goldcost: 0
function periodic takes Item itm returns nothing
local integer level = itm.getOwner().getTeam().getLevel()
if itm.userInt2 < level then
set itm.userInt = itm.userInt - (level - itm.userInt2)
set itm.userInt2 = level
endif
endfunction
|
M.E.F.I.S. Rocket v1 1500
lvl: 44
|
ID: 207
Author: cedi
Rarity: unique
Status: Approved
|
Description: Now, If only I could remember where I put the manual.
Anti-Immunity Missile
Fires immune-seeking missiles. The attack range, speed, damage and type is the same as the carrier's, unless the attack type is Magic, which is dealt as Essence damage. Damage is scaled by 20% of the tower's spell damage. Level Bonus: +0.8% scaling |
Download
Toggle Triggers Header
goldcost: 0
globals
ProjectileType PT
MultiboardValues MB
endglobals
function hitPT takes Projectile P, Unit U returns nothing
local Tower T = P.getCaster()
//local AttackType AT = P.userInt
call T.doCustomAttackDamage( U, P.userReal, T.calcAttackMulticrit( 0, 0, 0 ), P.userInt )
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 PT = ProjectileType.createInterpolate( "Abilities\\Spells\\Other\\TinkerRocket\\TinkerRocketMissile.mdl", 1000.00 )
call PT.setEventOnInterpolationFinished( hitPT )
set MB = MultiboardValues.create( 1 )
call MB.setKey( 0, "Damage" )
endfunction
On Item Pickup
goldcost: 0
function onPickup takes Item itm returns nothing
local Tower T = itm.getCarrier()
if T.getAttackType() != AttackType.MAGIC then
set itm.userInt = T.getAttackType()
else
set itm.userInt = AttackType.ESSENCE
endif
endfunction
On Tower Details
goldcost: 0
function onTowerDetails takes Item itm returns MultiboardValues
local Tower T = itm.getCarrier()
local real dmg = T.getCurrentAttackDamageWithBonus() * ( T.getProp_SpellDmgDealt() * ( 0.2 + 0.008 * T.getLevel() ) )
call MB.setValue( 0, formatFloat( dmg, 0 ) )
return MB
endfunction
Periodic
PERIODIC_period: 0.1
goldcost: 1500
function periodic takes Item itm returns nothing
local Tower T = itm.getCarrier()
local Iterate I = Iterate.overUnitsInRangeOfCaster( T, TARGET_CREEPS, T.getRange() )
local Unit U
local real dmg
local Projectile P
call Event.getCurrentPeriodicEvent().enableAdvanced( T.getCurrentAttackspeed(), true )
loop
set U = I.next()
if U == 0 then
return //No target
endif
exitwhen U.isImmune()
endloop
//Gotcha
call I.destroy() //If this point is reached the Iteration still exists and has to be destroyed
set dmg = T.getCurrentAttackDamageWithBonus() * ( T.getProp_SpellDmgDealt() * ( 0.2 + 0.008 * T.getLevel() ) )
set P = Projectile.createLinearInterpolationFromUnitToUnit( PT, T, 1.0, 1.0, T, U, 0.35, true )
set P.userReal = dmg
set P.userInt = itm.userInt
endfunction
|
Grounding Gloves v1 1500
lvl: 44
|
ID: 209
Author: SirCoqaLot.
Rarity: unique
Status: Approved
|
Description:
Entangling Roots
On attack the carrier has an 6% attackspeed adjusted chance to create a field of overgrowth in 200 AoE around the target. Creeps entering the overgrowth will become entangled for 1.8 seconds, taking 4500 spell damage per second. Cannot entangle the same creep for 3 seconds afterwards. Bosses can only be hit once. |
Download
Toggle Triggers Header
goldcost: 0
globals
BuffType BT
BuffType CD
Cast C
endglobals
function overgrowth_dmg takes DummyUnit C returns nothing
local Creep U = Event.getTarget()
local Tower tower = C.getCaster()
set Event.damage = 0
if U.getBuffOfType(CD) == 0 then
call BT.apply(tower, U, 0)
if U.getSize() < SIZE_BOSS then
call CD.apply(tower, U, 0)
else
call CD.applyOnlyTimed(tower, U, -1)
endif
endif
endfunction
function periodicDmg takes Buff B returns nothing
call B.getCaster().doSpellDamage(B.getBuffedUnit(), 4500, B.getCaster().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
set BT = BuffType.createDuplicate(cb_stun, 1.8, 0.00, false)
call BT.addPeriodicEvent(periodicDmg, 1.0)
call BT.setBuffIcon('@@1@@')
set CD = BuffType.create(4.8, 0.00, false)
set C = Cast.create('@@0@@', "blizzard", 4.0)
call C.setDamageEvent(overgrowth_dmg)
endfunction
On Damage
ONDAMAGE_chance: 1
goldcost: 1500
ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Item itm returns nothing
local Creep target = Event.getTarget()
local Tower tower = itm.getCarrier()
if Event.isMainTarget() and tower.calcChance(tower.getBaseAttackspeed()*0.06) then
call C.pointCastFromTargetOnTarget( tower, target, 1.0, 1.0 )
call Effect.createColored( "Abilities\\Spells\\NightElf\\EntangleMine\\Roots.mdl", target.getX(), target.getY(), 0.0, 270.0, 1.2, 210, 255, 180, 255 ).setLifetime( 2.5 )
endif
endfunction
|
Doom's Ensign v1 1500
lvl: 44
|
ID: 253
Author: cedi
Rarity: unique
Status: Approved
|
Description: This relic is imbued with dark powers.
Ensign's Touch
When the user of this item attacks an enemy it decreases the armor of the target by 10% for 5 seconds. Level Bonus: +0.6% armor decrease |
Download
Toggle Triggers Header
goldcost: 1500
globals
BuffType BT
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 BT = BuffType.create( 5.00, 0.00, false )
call m.addModification( MOD_ARMOR_PERC, -0.10, -0.006 )
call BT.setBuffModifier( m )
call BT.setBuffIcon( '@@0@@' )
endfunction
On Damage
ONDAMAGE_chance: 1.0
goldcost: 0
ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Item itm returns nothing
if Event.isMainTarget() then
call BT.apply( itm.getCarrier(), Event.getTarget(), itm.getCarrier().getLevel() )
endif
endfunction
|
Beast Head v2 1525
lvl: 89
|
ID: 134
Author: cedi
Rarity: uncommon
Status: Approved
|
Description: Only the bravest and strongest warriors are able to kill such a beast without hurting the head.
Specials:
+1230 dps
|
Download
|
Forcefield Generator v1 1600
lvl: 67
|
ID: 126
Author: drol
Rarity: rare
Status: Approved
|
Description: Negates all offensive magic in an area.
Forcefield
Reduces the duration of debuffs cast on the carrier and all towers within 200 range of the carrier by 15%. Level Bonus: -1% debuff duration |
Download
Toggle Triggers Header
goldcost: 1600
globals
BuffType drol_debuffAura
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()
call m.addModification(MOD_DEBUFF_DURATION,-0.15,-0.01)
set drol_debuffAura = BuffType.createAuraEffectType(true)
call drol_debuffAura.setBuffIcon('@@0@@')
call drol_debuffAura.setBuffModifier(m)
endfunction
Tower Aura
AURA_levelAdd: 1
AURA_targetType: TARGET_TYPE_TOWERS
AURA_auraRange: 200
AURA_powerAdd: 1
AURA_targetSelf: true
goldcost: 0
AURA_auraEffect: drol_debuffAura
AURA_power: 0
AURA_level: 0
|
Description: