Rundown Iron Sentry v1
950
|
ID: 31
Family ID:
Author: Glowackos
Rarity: rare
Element: iron
Attack Type: Physical
Attack Range: 925
Attack CD: 1.4
Damage: 710-710
Status: Approved
|
Alert
Towers in 500 range get alerted whenever a creep of size air, champion or boss enters the sentry's attack range. They have their base damage increased by 7.5% for 5 seconds. Does not stack. Level Bonus: +0.5% base damage bonus
Trespasser Awareness
This tower strengthens its defenses when uninvited units enter its territory. It gains bonus 5%-40% base percent damage with each creep entering its attack range, based on the creep's size. Bonus damage lasts 5 seconds and new stacks of damage do not refresh duration of old ones. There is also a 40% chance that the trespassing creep will permanently have its armor reduced by 3, which stacks up to 5 times. Level Bonus: +0.1 armor reduction +0.1%-0.8% bonus base percent damage |
Download
Toggle Triggers Header globals
//@export
BuffType glow_damage_buff
//@export
BuffType glow_armor_shred
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_DAMAGE_BASE_PERC, 0.075, 0.005)
set glow_damage_buff = BuffType.create(5, 5, true)
call glow_damage_buff.setBuffIcon('@@0@@')
call glow_damage_buff.setBuffModifier(m)
set m = Modifier.create()
call m.addModification(MOD_ARMOR, 0.0, -0.01)
set glow_armor_shred = BuffType.create(-1.0, 0.0, false)
call glow_armor_shred.setBuffIcon('@@1@@')
call glow_armor_shred.setBuffModifier(m)
endfunction
On Unit Comes In Range
UNITINRANGE_targetType: TARGET_TYPE_CREEPS
UNITINRANGE_range: 925
function onUnitInRange takes Tower tower returns nothing
local Unit creep = Event.getTarget()
local integer size = creep.getSize()
local integer level = tower.getLevel()
local Iterate it
local Unit next
local integer uid = tower.getUID()
local Buff b = creep.getBuffOfType(glow_armor_shred)
local integer buffLevel = 300 + 10 * level
if b != 0 then
set buffLevel = IMinBJ(buffLevel + b.getLevel(), buffLevel * 5)
endif
if tower.calcChance(0.4) then
call glow_armor_shred.apply(tower,creep,buffLevel)
endif
call tower.modifyProperty(MOD_DAMAGE_BASE_PERC,(0.05 + 0.001*level)*(size+1))
if size > SIZE_NORMAL then
set it = Iterate.overUnitsInRangeOfCaster(tower, TARGET_TOWERS, 500)
loop
set next = it.next()
exitwhen next == 0
call glow_damage_buff.apply(tower,next,0)
endloop
endif
call TriggerSleepAction(5)
if tower.getUID() == uid then
call tower.modifyProperty(MOD_DAMAGE_BASE_PERC,-(0.05 + 0.001*level)*(size+1))
endif
endfunction
|
Bomb Turret v1
950
|
ID: 217
Family ID:
Author: DaveMatthews
Rarity: rare
Element: iron
Attack Type: Physical
Attack Range: 900
Attack CD: 2.6
Damage: 2429-2429
Status: Approved
|
Description: Can fire different bombs for a great versatility.
Concussive Bombs
Equips the tower with concussive bombs. Each attack slows all the creeps in a 250 area around the target by 15% for 4 seconds. Level Bonus: +0.4% slow AC_TYPE_NOAC_IMMEDIATE 0, 0 range, 5s cooldown
Acid Bombs
Equips the tower with acid bombs. Each attack reduces the armor of all the creeps in a 250 area around the target by 10% for 4 seconds. Level Bonus: +0.4% armor reduction AC_TYPE_NOAC_IMMEDIATE 0, 0 range, 5s cooldown
Smoke Bombs
Equips the tower with smoke bombs. Each attack silences all the creeps in a 250 area around the target for 1 second. Level Bonus: +0.04 seconds duration AC_TYPE_NOAC_IMMEDIATE 0, 0 range, 5s cooldown |
Download
Toggle Triggers Autocast
caster_art:
AUTOCAST_cooldown: 5
AUTOCAST_numBuffsBeforeIdle: 1
AUTOCAST_isExtended: false
AUTOCAST_autocastType: AC_TYPE_NOAC_IMMEDIATE
AUTOCAST_manacost: 0
AUTOCAST_range: 0
AUTOCAST_buffType: dave_concussive
AUTOCAST_targetSelf: true
AUTOCAST_targetType: TARGET_TYPE_TOWERS
target_art:
AUTOCAST_autoRange: 0
private function onAutocast takes Tower tower returns nothing
if tower.getBuffOfType(dave_concussive)==0 then
call dave_concussive.apply(tower, tower, tower.getLevel())
endif
if tower.getBuffOfType(dave_acid)!=0 then
call tower.getBuffOfType(dave_acid).removeBuff()
endif
if tower.getBuffOfType(dave_smoke)!=0 then
call tower.getBuffOfType(dave_smoke).removeBuff()
endif
endfunction
Autocast
caster_art:
AUTOCAST_cooldown: 5
AUTOCAST_numBuffsBeforeIdle: 1
AUTOCAST_isExtended: false
AUTOCAST_autocastType: AC_TYPE_NOAC_IMMEDIATE
AUTOCAST_manacost: 0
AUTOCAST_range: 0
AUTOCAST_buffType: dave_acid
AUTOCAST_targetSelf: true
AUTOCAST_targetType: TARGET_TYPE_TOWERS
target_art:
AUTOCAST_autoRange: 0
private function onAutocast takes Tower tower returns nothing
if tower.getBuffOfType(dave_acid)==0 then
call dave_acid.apply(tower, tower, tower.getLevel())
endif
if tower.getBuffOfType(dave_concussive)!=0 then
call tower.getBuffOfType(dave_concussive).removeBuff()
endif
if tower.getBuffOfType(dave_smoke)!=0 then
call tower.getBuffOfType(dave_smoke).removeBuff()
endif
endfunction
Autocast
caster_art:
AUTOCAST_cooldown: 5
AUTOCAST_numBuffsBeforeIdle: 1
AUTOCAST_isExtended: false
AUTOCAST_autocastType: AC_TYPE_NOAC_IMMEDIATE
AUTOCAST_manacost: 0
AUTOCAST_range: 0
AUTOCAST_buffType: dave_smoke
AUTOCAST_targetSelf: true
AUTOCAST_targetType: TARGET_TYPE_TOWERS
target_art:
AUTOCAST_autoRange: 0
private function onAutocast takes Tower tower returns nothing
if tower.getBuffOfType(dave_smoke)==0 then
call dave_smoke.apply(tower, tower, tower.getLevel())
endif
if tower.getBuffOfType(dave_acid)!=0 then
call tower.getBuffOfType(dave_acid).removeBuff()
endif
if tower.getBuffOfType(dave_concussive)!=0 then
call tower.getBuffOfType(dave_concussive).removeBuff()
endif
endfunction
Header globals
//@export
BuffType dave_concussive
//@export
BuffType dave_acid
//@export
BuffType dave_smoke
//@export
BuffType dave_concussive_buff
//@export
BuffType dave_acid_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()
local Modifier n = Modifier.create()
set dave_concussive_buff = BuffType.create(4,0,false)
call dave_concussive_buff.setBuffModifier(m)
call m.addModification(MOD_MOVESPEED,-0.15,-0.004)
call dave_concussive_buff.setBuffIcon( '@@2@@' )
set dave_acid_buff = BuffType.create(4,0,false)
call dave_acid_buff.setBuffModifier(n)
call dave_acid_buff.setBuffIcon( '@@4@@' )
call n.addModification(MOD_ARMOR_PERC,-0.1,-0.004)
set dave_concussive = BuffType.create(-1,0,true)
call dave_concussive.setBuffIcon( '@@0@@' )
set dave_acid = BuffType.create(-1,0,true)
call dave_acid.setBuffIcon( '@@1@@' )
set dave_smoke = BuffType.create(-1,0,true)
call dave_smoke.setBuffIcon( '@@3@@' )
endfunction
On Damage
ONDAMAGE_chance: 1.0
ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
local integer level = tower.getLevel()
local Unit creep = Event.getTarget()
local Unit u
local Iterate it
if tower.getBuffOfType(dave_concussive)!=0 then
set it = Iterate.overUnitsInRangeOfUnit(tower,TARGET_CREEPS,creep,250)
loop
set u = it.next()
exitwhen u == 0
call dave_concussive_buff.apply(tower,u,level)
endloop
call Effect.createScaled("Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl", GetUnitX(creep.getUnit()), GetUnitY(creep.getUnit()), 0, 0, 1.0).setLifetime(0.2)
elseif tower.getBuffOfType(dave_acid)!=0 then
set it = Iterate.overUnitsInRangeOfUnit(tower,TARGET_CREEPS,creep,250)
loop
set u = it.next()
exitwhen u == 0
call dave_acid_buff.apply(tower, u, level)
endloop
call Effect.createScaled("Abilities\\Weapons\\ChimaeraAcidMissile\\ChimaeraAcidMissile.mdl", GetUnitX(creep.getUnit()), GetUnitY(creep.getUnit()), 0, 0, 1.3).setLifetime(0.2)
elseif tower.getBuffOfType(dave_smoke)!=0 then
set it = Iterate.overUnitsInRangeOfUnit(tower,TARGET_CREEPS,creep,250)
loop
set u = it.next()
exitwhen u == 0
call cb_silence.applyOnlyTimed(tower, u, 1+(0.04*level))
endloop
call Effect.createScaled("Abilities\\Spells\\Human\\CloudOfFog\\CloudOfFog.mdl", GetUnitX(creep.getUnit()), GetUnitY(creep.getUnit()), 0, 0, 0.8).setLifetime(0.5)
endif
endfunction
|
Gnoll Thunder Mage v1
950
|
ID: 328
Family ID:
Author: cedi
Rarity: rare
Element: storm
Attack Type: Energy
Attack Range: 1200
Attack CD: 0.75
Damage: 111-111
Mana: 20
Mana regen: 1
Status: Approved
|
Description: Gnollssss!
Thunder Shock
Deals [1450 + (435 x amount of player towers)] spell damage to a target creep. This ability has a 25% chance to recast itself when cast. Maximum of 1 extra cast. Level Bonus: +58 base spelldamage +17.4 spelldamage per player tower +1 extra cast at levels 15 and 25 AC_TYPE_OFFENSIVE_UNIT 12, 1200.00 range, 3.0s cooldown |
Download
Toggle Triggers Autocast
caster_art: Abilities\Spells\Orc\Purge\PurgeBuffTarget.mdl
AUTOCAST_cooldown: 3.0
AUTOCAST_numBuffsBeforeIdle: 1
AUTOCAST_isExtended: false
AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_UNIT
AUTOCAST_manacost: 12
AUTOCAST_range: 1200.00
AUTOCAST_buffType: 0
AUTOCAST_targetSelf: true
AUTOCAST_targetType: TARGET_TYPE_CREEPS
target_art: Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl
AUTOCAST_autoRange: 1200.00
private function onAutocast takes Tower tower returns nothing
local Unit U = Event.getTarget()
local integer lvl = tower.getLevel()
local integer i = tower.userInt
local Iterate I
local boolean b
call tower.doSpellDamage( U, 1450.00 + 58.00 * lvl + ( 435.00 + 17.4 * lvl ) * tower.getOwner().getNumTowers(), tower.calcSpellCritNoBonus() )
if tower.calcChance( 0.25 ) then
call tower.getOwner().displaySmallFloatingText( "MULTICAST!", tower, 0, 255, 0, 0.00 )
loop
exitwhen i <= 0
set I = Iterate.overUnitsInRangeOfCaster( tower, TARGET_CREEPS, 1200.00 )
set b = true
loop
if i <= 0 then
//enough hits
call I.destroy()
exitwhen true
endif
set U = I.next()
if U == 0 and b then
//no units near
return
endif
set b = false
exitwhen U == 0
call SFXAtUnit( "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl", U.getUnit() )
call tower.doSpellDamage( U, 1450.00 + 58.00 * lvl + ( 435.00 + 17.4 * lvl ) * tower.getOwner().getNumTowers(), tower.calcSpellCritNoBonus() )
set i = i - 1
endloop
endloop
endif
endfunction
Header globals
MultiboardValues MBV
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 MBV = MultiboardValues.create( 1 )
call MBV.setKey( 0, "Thunder Shock Dmg" )
endfunction
On Level Up function onLevelUp takes Tower tower returns nothing
local integer lvl = tower.getLevel()
if lvl < 15 then
set tower.userInt = 1
elseif lvl >= 15 and lvl < 25 then
set tower.userInt = 2
elseif lvl == 25 then
set tower.userInt = 3
endif
endfunction
On Tower Creation function onCreate takes Tower tower returns nothing
local integer lvl = tower.getLevel()
if lvl < 15 then
set tower.userInt = 1
elseif lvl >= 15 and lvl < 25 then
set tower.userInt = 2
elseif lvl == 25 then
set tower.userInt = 3
endif
endfunction
On Tower Details function onTowerDetails takes Tower tower returns MultiboardValues
local real r = 1450.00 + 58.00 * tower.getLevel() + ( 435.00 + 17.4 * tower.getLevel() ) * tower.getOwner().getNumTowers()
call MBV.setValue( 0, R2S( r ) )
return MBV
endfunction
|
Small Library v1
950
|
ID: 619
Family ID:
Author: SirCoqaLot.
Rarity: uncommon
Element: astral
Attack Type: Energy
Attack Range: 960
Attack CD: 2.6
Damage: 2083-2083
Status: Approved
|
Description: Basic astral tower that strengthens itself by acummulating knowledge from its books.
High Knowledge
Grants 0.7 experience on attack.
|
Download
Toggle Triggers On Attack
ONATTACK_chance: 1.0
ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
call tower.addExp (0.7)
endfunction
|
Ruined Storm Tower v1
975
|
ID: 341
Family ID:
Author: SirCoqaLot.
Rarity: uncommon
Element: storm
Attack Type: Physical
Attack Range: 1000
Attack CD: 2.8
Damage: 3409-3459
Status: Approved
|
Description: Strange tower that rejects some items.
Rejection
This tower drops all except Uncommon items on attack.
|
Download
Toggle Triggers On Attack
ONATTACK_chance: 1.0
ONATTACK_chanceLevelAdd: 0.0
function onAttack takes Tower tower returns nothing
local Item itm
local integer i = 1
loop
exitwhen i > 6
set itm = tower.getHeldItem(i)
if itm != 0 and itm.getRarity() != Rarity.UNCOMMON then
call itm.drop()
endif
set i = i + 1
endloop
endfunction
|
Warrior of Light v1
1000
|
ID: 84
Family ID:
Author: i_mOck_death
Rarity: rare
Element: astral
Attack Type: Elemental
Attack Range: 900
Attack CD: 1
Damage: 406-406
Status: Approved
|
Description: Rare Astral tower with a chance on each attack to create a wave of light that damages enemies.
Ain Soph Aur
This tower has a 20% chance on every attack to create a shockwave of light that starts at the targeted creep and travels 500 units behind that creep dealing 1000 spell damage to all creeps in its path. Level Bonus: +0.5% chance +50 damage
Aura of Light - Aura
Towers in 300 range deal 15% more damage to undead creeps. Level Bonus: +0.6% damage |
Download
Toggle Triggers Header globals
Cast Swave
//@export
BuffType mOck_Warrioroflight
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 Amod = Modifier.create()
set mOck_Warrioroflight = BuffType.createAuraEffectType(true)
call Amod.addModification(MOD_DMG_TO_UNDEAD,0,.001)
call mOck_Warrioroflight.setBuffModifier(Amod)
call mOck_Warrioroflight.setBuffIcon('@@1@@')
set Swave = Cast.create('@@0@@', "carrionswarm", 1)
endfunction
On Attack
ONATTACK_chance: .2
ONATTACK_chanceLevelAdd: 0.005
function onAttack takes Tower tower returns nothing
local unit creep = Event.getTarget().getUnit()
local integer level = tower.getLevel()
local real facing = GetUnitFacing(creep) - 180
local real x = GetUnitX(creep) + (50) * Cos(facing * bj_DEGTORAD)
local real y = GetUnitY(creep) + (50) * Sin(facing * bj_DEGTORAD)
call Effect.createSimple("Abilities\\Spells\\Human\\HolyBolt\\HolyBoltSpecialArt.mdl",GetUnitX(creep),GetUnitY(creep)).destroy()
call Swave.pointCastFromUnitOnPoint(tower,Event.getTarget(),x, y,1.0+(.05*level), tower.calcSpellCritNoBonus())
set creep = null
endfunction
Tower Aura
AURA_powerAdd: 6
AURA_auraEffect: mOck_Warrioroflight
AURA_levelAdd: 6
AURA_power: 150
AURA_targetType: TARGET_TYPE_TOWERS
AURA_targetSelf: true
AURA_level: 150
AURA_auraRange: 300
|
Mutating Acid Factory v1
1000
|
ID: 164
Family ID:
Author: cedi
Rarity: common
Element: iron
Attack Type: Decay
Attack Range: 800
Attack CD: 1
Damage: 452-472
Status: Approved
|
Description: Careful, corrosive.
Specials:
Bounce attack:
3 targets
-15% damage per bounce
Acid Coating
Decreases the armor of damaged units by 4.8 for 3 seconds. Level Bonus: +0.192 armor reduction +0.12 seconds |
Download
Toggle Triggers Header globals
//@import
BuffType cedi_acidarmor
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
endfunction
On Damage
ONDAMAGE_chance: 1.0
ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
call cedi_acidarmor.applyCustomTimed( tower, Event.getTarget(), 4800 + tower.getLevel() * 192, 3.0 + 0.12 * tower.getLevel() )
endfunction
|
Description: