Gargoyle Wing v1
640
lvl: 47
ID:
40
Author:
Boekie
Rarity:
common
Status:
Approved

Description:

This piece of wing belonged to a gargoyle statue.
Specials:
+100% dmg to air (+1%/lvl)
Download
Crit Blade v1
644
lvl: 16
ID:
250
Author:
Ranakastrasz
Rarity:
unique
Status:
Approved

Description:

This blade improves chance of critical strikes.
Specials:
Specials:
+x0.8 crit damage
Critical Accumulation
On attack, increases critical strike chance by 2% up to a maximum of 40%. The bonus is lost when a critical strike is made. The bonus is bound to the item.
Download

Toggle Triggers

Header

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

On Attack

goldcost: 50 ONATTACK_chance: 1.0 ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Item itm returns nothing
    if (itm.getCarrier().getNumberOfCrits() > 0)then
        call itm.getCarrier().modifyProperty( MOD_ATK_CRIT_CHANCE  , -itm.userReal )
        //call itm.getCarrier().modifyProperty( MOD_ATK_CRIT_DAMAGE  , -itm.userReal )
        set itm.userReal = 0
        //call itm.setCharges(0)
    else
        //call itm.setCharges(itm.getCharges()+R2I(0.02*100))
        if itm.userReal < 0.40 then
            set itm.userReal = itm.userReal + 0.02
            call itm.getCarrier().modifyProperty( MOD_ATK_CRIT_CHANCE, 0.02 )
            //call itm.getCarrier().modifyProperty( MOD_ATK_CRIT_DAMAGE, 0.02 )
        endif
    endif
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_ATK_CRIT_CHANCE  , -itm.userReal ) 
    //call itm.getCarrier().modifyProperty( MOD_ATK_CRIT_DAMAGE  , -itm.userReal ) 
endfunction

On Item Pickup

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

On Tower Details

goldcost: 0
function onTowerDetails takes Item itm returns MultiboardValues
    call CritBlade_multiboard.setValue(0,R2S(itm.userReal*100)+"%")
    return CritBlade_multiboard
endfunction
Optimist's Preserved Face v1
650
lvl: 24
ID:
202
Author:
cedi
Rarity:
rare
Status:
Approved

Description:

The thing above my fireplace? Ye, that was my first optimist.
Optimist Hunting Season
The carrier of this item's damage is modified by the amount of hp the creep has left. The range goes from +75% damage when the creep has full hp to -50% damage when the creep has no hp left.
Download

Toggle Triggers

On Damage

ONDAMAGE_chance: 1.0 goldcost: 650 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Item itm returns nothing
    local unit u = Event.getTarget().getUnit()
    local real r = GetUnitState( u, UNIT_STATE_LIFE ) / GetUnitState( u, UNIT_STATE_MAX_LIFE )
    set Event.damage = Event.damage * ( 1.75 - ( 1.25 * ( 1 - r ) ) )
    set u = null
endfunction
Lunar Essence v2
650
lvl: 16
ID:
227
Author:
Finger of Destiny
Rarity:
unique
Status:
Approved

Description:

A powerful knowledge is captured into this essence.
Sacred Wisdom
Grants 200 flat experience to the holder. The experience is bound to the item and lost on drop. If the tower has less than 200 experience when the item is dropped, the item will drain experience from the next tower it is placed in, up to 200 experience.
Download

Toggle Triggers

On Item Creation

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

On Item Drop

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

On Item Pickup

goldcost: 650
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
Mask of Sanity v1
656
lvl: 36
ID:
44
Author:
SymphonyX
Rarity:
uncommon
Status:
Approved

Description:

This mask alters the wearers sanity in different ways.
Specials:
+20% dmg to normals
+10% dmg to champions
-25% dmg to air
+10% attackspeed (+0.25%/lvl)
Download
Heavy Crossbow v3
680
lvl: 50
ID:
189
Author:
drol
Rarity:
common
Status:
Approved

Description:

Bolts of this crossbow deliver quite a punch to your enemies.
Specials:
+10% attackspeed
+215 dps
Download
Dagger of Bane v1
700
lvl: 18
ID:
132
Author:
F12ight
Rarity:
unique
Status:
Approved

Description:

The dagger oozes out deadly green poison.
Deadly Poison
Applies a deadly poison on damage to the main target of the attack. Each second the poison deals 15% of the tower's base damage as spell damage to the target. The spell damage is always critical. Lasts 4 seconds.
Download

Toggle Triggers

Header

goldcost: 0
globals
    BuffType fright_poison_dagger_buff
endglobals

function dealDamage takes Buff b returns nothing
    local Tower tower = b.getCaster()
    if tower == b.userInt then
        call tower.doSpellDamage(b.getBuffedUnit(),tower.getCurrentAttackDamageBase()*0.15,tower.getProp_SpellCritDamage())
    else
        call b.removeBuff()
    endif
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 fright_poison_dagger_buff = BuffType.create(4.01,0,false)   // + 0.01 seconds is a dirty hack to make damage tick 4 times with 100% duration
    call fright_poison_dagger_buff.setBuffIcon('@@0@@')
    call fright_poison_dagger_buff.addPeriodicEvent(EventHandler.dealDamage,1)
endfunction

On Damage

ONDAMAGE_chance: 1.0 goldcost: 700 ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Item itm returns nothing
 
    local Buff P
    local Unit u
    if Event.isMainTarget() then
        set u = Event.getTarget()
        set P = u.getBuffOfType( fright_poison_dagger_buff )
        if P != 0 then
            call fright_poison_dagger_buff.apply(itm.getCarrier(), Event.getTarget(), 0)
        else
            set fright_poison_dagger_buff.apply(itm.getCarrier(), Event.getTarget(), 0).userInt = itm.getCarrier()
        endif
    endif
endfunction