Unstable Current v1
300
lvl: 14
ID:
226
Author:
Finger of Destiny
Rarity:
uncommon
Status:
Approved

Description:

Used to increase the damage against hel armor.
Unstable Current
Increases the damage against creeps with the armor type hel by 25%.
Download

Toggle Triggers

On Damage

ONDAMAGE_chance: 1.0 goldcost: 300 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Item itm returns nothing
    local Creep T = Event.getTarget()
    local Tower U = itm.getCarrier()
    if T.getArmorType() == ARMOR_HEL then
        set Event.damage = Event.damage * 1.25
        call SFXOnUnit( "Abilities\\Spells\\Human\\DispelMagic\\DispelMagicTarget.mdl", T.getUnit(), "chest" )
     endif
endfunction
Shrapnel Ammunition v1
300
lvl: 14
ID:
257
Author:
cedi
Rarity:
uncommon
Status:
Approved

Description:

Used to increase the damage against lua armor.
Shrapnel Munition
Increases the damage against creeps with the armor type lua by 25%.
Download

Toggle Triggers

On Damage

ONDAMAGE_chance: 1.0 goldcost: 300 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Item itm returns nothing
    local Creep T = Event.getTarget()
    local Tower U = itm.getCarrier()
    if T.getArmorType() == ARMOR_LUA then
        set Event.damage = Event.damage * 1.25
        call SFXOnUnit( "Abilities\\Weapons\\FlyingMachine\\FlyingMachineImpact.mdl", T.getUnit(), "chest" )
    endif
endfunction
Workbench v1
300
lvl: 5
ID:
275
Author:
Boekie
Rarity:
unique
Status:
Approved

Description:

This bench is used to improve other items.
Improve Item
Every kill increases item quality by 0.15%. The quality improvement is bound to the item.
Download

Toggle Triggers

Header

goldcost: 0
    globals
        MultiboardValues boekie_itemQualBonus
    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 boekie_itemQualBonus = MultiboardValues.create(1)
        call boekie_itemQualBonus.setKey(0,"Workbench")
    endfunction

On Item Creation

goldcost: 0
function onCreate takes Item itm returns nothing
set itm.userReal = 0.00 
endfunction

On Item Drop

goldcost: 0
function onDrop takes Item itm returns nothing
call itm.getCarrier().modifyProperty( MOD_ITEM_QUALITY_ON_KILL, -itm.userReal ) 
endfunction

On Item Pickup

goldcost: 0
function onPickup  takes Item itm returns nothing
call itm.getCarrier().modifyProperty( MOD_ITEM_QUALITY_ON_KILL, itm.userReal ) 
endfunction

On Kill

goldcost: 300
function onKill takes Item itm returns nothing
call itm.getCarrier().modifyProperty( MOD_ITEM_QUALITY_ON_KILL, -itm.userReal )  
set itm.userReal = itm.userReal + 0.0015  
call itm.getCarrier().modifyProperty( MOD_ITEM_QUALITY_ON_KILL, itm.userReal )
endfunction

On Tower Details

goldcost: 0
function onTowerDetails takes Item itm returns MultiboardValues
    call boekie_itemQualBonus.setValue(0,formatPercent(itm.userReal,2))
    return boekie_itemQualBonus
endfunction
Magic Conductor v1
300
lvl: 5
ID:
279
Author:
Boekie
Rarity:
unique
Status:
Approved

Description:

This item is able to transform magic powers into a speed bonus.
Conduct Magic
Whenever the carrier of this item is targeted by a spell it gains +20% attackspeed for 10 seconds.

Level Bonus:
+0.5% attackspeed
Download

Toggle Triggers

Header

goldcost: 0
    globals
    BuffType boekie_magicConductor_buff 
    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_ATTACKSPEED,0.20,0.005) 
    set boekie_magicConductor_buff = BuffType.create(0.0,0.0,true) //0.0 time since I will apply it custom timed  
    call boekie_magicConductor_buff.setBuffModifier(m) 
    call boekie_magicConductor_buff.setBuffIcon('@@0@@') 
    call boekie_magicConductor_buff.setStackingGroup("boekie_magicConductor") 
    endfunction

On Spell Target

goldcost: 300
function onSpellTarget takes Item itm returns nothing
local Tower tower = itm.getCarrier() 
local integer lvl = tower.getLevel() 

call boekie_magicConductor_buff.applyCustomTimed(tower,tower,lvl,10.0) 
endfunction
Survival Kit v1
303
lvl: 14
ID:
19
Author:
Boekie
Rarity:
uncommon
Status:
Approved

Description:

This kit contains everything you need to survive in the wilderness.
Specials:
+5% exp gain
+5% bounty collected
+5% item chance
+5% item quality
Download
Shining Rock v2
320
lvl: 10
ID:
212
Author:
Deemzul
Rarity:
rare
Status:
Approved

Description:

With this rock, you can shine like Danny.
Fickle Power
Grants 100 flat experience to the holder. The experience is bound to the item and lost on drop. If the tower has less than 100 experience when the item is dropped, the item will drain experience from the next tower it is placed in, up to 100 experience.
Download

Toggle Triggers

On Item Creation

goldcost: 0
function onCreate takes Item itm returns nothing
            
set itm.userReal = 100
        
endfunction

On Item Drop

goldcost: 0
function onDrop takes Item itm returns nothing
            
local Tower tower = itm.getCarrier()
    set itm.userReal = tower.removeExpFlat(100)
        
endfunction

On Item Pickup

goldcost: 320
function onPickup  takes Item itm returns nothing
            
local Tower tower = itm.getCarrier()
    local real r = itm.userReal
    if r > 0 then
        call tower.addExpFlat(r)
    endif
        
endfunction
Haunted Hand v1
342
lvl: 11
ID:
246
Author:
Sunken
Rarity:
rare
Status:
Approved

Description:

A haunted hand with a mind of it's own, it attacks with reckless fervor.
Specials:
Specials:
+8% attackspeed (+0.2%/lvl)
Haunted!
This item makes its carrier attack random targets.
Download

Toggle Triggers

Header

goldcost: 0
    globals
    endglobals
    
    function attackRandomUnit takes Tower tower returns nothing
        local Iterate it  = Iterate.overUnitsInRangeOfCaster(tower, TARGET_CREEPS, tower.getRange())
        local Creep creep = it.nextRandom()
        if creep != 0 then
            call it.destroy()
            call IssueTargetOrder(tower.getUnit(), "attack", creep.getUnit())
        endif
    endfunction
    
    function doIt takes nothing returns nothing
        local timer t = GetExpiredTimer()
        call attackRandomUnit(GetTimerData(t))
        call ReleaseTimer(t)
        set t = null
    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
    endfunction

On Attack

goldcost: -50 ONATTACK_chance: 1.0 ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Item itm returns nothing
    local Tower tower = itm.getCarrier()
    local timer t 
    if tower.typ.dmgpt > 0 then
        set t = NewTimer()
        call SetTimerData(t,tower)
        call TimerStart(t, pendingAttacksTimerStep, false, function doIt) 
        set t = null
    else
        call attackRandomUnit(tower)
    endif
endfunction