Lesser Ice Defender v1
65
|
ID: 507
Family ID:
Author: Natac
Rarity: common
Element: ice
Attack Type: Elemental
Attack Range: 900
Attack CD: 1.4
Damage: 88-94
Status: Approved
|
|
Download
|
Lesser Astral Defender v1
65
|
ID: 510
Family ID:
Author: Natac
Rarity: common
Element: astral
Attack Type: Energy
Attack Range: 850
Attack CD: 1.2
Damage: 73-84
Status: Approved
|
Description: Common elementar defender. |
Download
|
Lesser Iron Defender v1
65
|
ID: 515
Family ID:
Author: Natac
Rarity: common
Element: iron
Attack Type: Physical
Attack Range: 800
Attack CD: 1
Damage: 65-65
Status: Approved
|
Description: Common elementar defender. |
Download
|
Burning Watchtower v1
65
|
ID: 658
Family ID:
Author: Natac
Rarity: uncommon
Element: fire
Attack Type: Elemental
Attack Range: 800
Attack CD: 1.4
Damage: 51-52
Status: Approved
|
Description: Burning structure with a small synergetic effect for its element.
Burn
Starts to burn a target. On every further hit of a fire tower, the target will receive more bonus damage then before. Burning Structures will increase the bonus damage by 1, any other fire towers by 0.3. If the unit dies, it explodes and deals 49 damage to nearby units in a range of 200. Lasts 5 seconds after the last attack of a fire tower. Level Bonus: + 0.1 damage gain (Burning Structrues) + 0.03 damage gain (Other fire towers) + 0.12 seconds burn duration |
Download
Toggle Triggers Header globals
//This buff is configurated as follows:
//level: damage gain per attack
//userReal: Already done bonus damage on the buffed unit
//userInt: AOE-Damage if the buffed unit dies
//@export
BuffType natac_burning_buff
endglobals
// b.userReal: The user Real is the current bonus damage of the buff. Init with 0
function initOnCreate takes Buff b returns nothing
set b.userReal = 0.0
set b.userInt = 0
endfunction
// Increase damage gain and do direct damage to the target by setting the event damage
function damageOnFireAttack takes Buff b returns nothing
local real damageGain
local real damageFactor
local Unit attacker = Event.getTarget()
local boolean isBurningTower
if(Element.FIRE == attacker.getCategory()) then
set isBurningTower = Tower(attacker).getFamily() == Tower(b.getCaster()).getFamily()
if(isBurningTower) then
set damageFactor = 1.0 // is Burning Tower
else
set damageFactor = 0.3 // is other fire tower
endif
set damageGain = damageFactor * b.getLevel() * 0.01 //Added power with "*100", so multiply with 0.01
set b.userReal = b.userReal + damageGain
set Event.damage = Event.damage + b.userReal
if(isBurningTower) then //Display damage
call attacker.getOwner().displaySmallFloatingText(I2S(R2I(b.userReal)), b.getBuffedUnit(),255,90,0, 40.0)
endif
call b.refreshDuration() // Reset duration
endif
endfunction
// Does damage to all units around the buffed unit, if the buffed unit dies
// b.userInt: AOE damage of the current buff.
function explodeOnDeath takes Buff b returns nothing
local Unit killer = Event.getTarget()
local Unit buffedUnit = b.getBuffedUnit()
call SFXAtUnit("Abilities\\Spells\\Other\\Incinerate\\FireLordDeathExplode.mdl",buffedUnit.getUnit())
call killer.doSpellDamageAoEUnit(buffedUnit,200, b.userInt, killer.calcSpellCritNoBonus(),0.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
set natac_burning_buff = BuffType.create(0.0, 0.0, false) //CustomTime applied
call natac_burning_buff.setBuffIcon('@@0@@')
call natac_burning_buff.addEventOnCreate(EventHandler.initOnCreate)
call natac_burning_buff.addEventOnDamaged(EventHandler.damageOnFireAttack,1.0,0.0)
call natac_burning_buff.addEventOnDeath(EventHandler.explodeOnDeath)
endfunction
On Damage
ONDAMAGE_chance: 1.0
ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
local integer towerLevel = tower.getLevel()
local Unit target = Event.getTarget()
local real level = 1 + towerLevel*0.1
local real duration = 5 + towerLevel*0.12
local Buff b = natac_burning_buff.applyCustomTimed(tower, target, R2I(level*100), duration)
// Upgrade AOE-damage, if it makes sense
if(b.userInt < 49) then
set b.userInt = 49
endif
endfunction
|
Baby Plant v1
65
|
ID: 673
Family ID:
Author: Boekie
Rarity: common
Element: nature
Attack Type: Decay
Attack Range: 825
Attack CD: 1.75
Damage: 108-108
Status: Approved
|
Description: This plant is small but it grows very fast!
Specials:
+40% exp gain (-2.5%/lvl) +5% damage/lvl |
Download
|
Fiery Dog v1
70
|
ID: 70
Family ID:
Author: cedi
Rarity: uncommon
Element: fire
Attack Type: Decay
Attack Range: 800
Attack CD: 1.2
Damage: 78-86
Status: Approved
|
Description: The hounds of war are howling again.
Roar
Whenever this tower damages a unit it has 30% chance to release a battle cry. The cry increases the attack damage of all towers in 420 range by 5% for 5 seconds. If a tower has allready the roar buff the attack damage is increased by 0.3% and the duration is refreshed. Stacks up to 100 times. Level Bonus: +0.3% attack damage |
Download
Toggle Triggers Header globals
//@export
BuffType cedi_helldog
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 mod = Modifier.create()
call mod.addModification( MOD_DAMAGE_ADD_PERC, 0.05, 0.0005 ) //*6 was 0.003 before
set cedi_helldog = BuffType.create( 5.0, 0.0, true )
call cedi_helldog.setBuffIcon( '@@0@@' )
call cedi_helldog.setBuffModifier( mod )
endfunction
On Damage
ONDAMAGE_chance: 0.3
ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
local Iterate I = Iterate.overUnitsInRangeOfCaster( tower, TARGET_TYPE_TOWERS, 420.0 )
local Unit U
local Buff B
call DestroyEffect( AddSpecialEffectTarget( "Abilities\\Spells\\NightElf\\BattleRoar\\RoarCaster.mdl", tower.getUnit(), "origin" ) )
loop
set U = I.next()
exitwhen U == 0
set B = U.getBuffOfType( cedi_helldog )
if B != 0 then
if B.userInt < 100 then
call cedi_helldog.apply( tower, U, B.getLevel() + 6 )
set B.userInt = B.userInt + 1
else
call B.refreshDuration()
endif
else
set B = cedi_helldog.apply( tower, U, tower.getLevel() * 6 )
set B.userInt = 0
endif
endloop
endfunction
|
Burrow v1
70
|
ID: 186
Family ID:
Author: tolleder
Rarity: uncommon
Element: iron
Attack Type: Physical
Attack Range: 700
Attack CD: 3
Damage: 289-289
Status: Approved
|
Description: A burrow with Peons inside, which will try to break through every armor.
Piercing Shot
10% of this tower's attack damage cannot be reduced by armor resistances. Level Bonus: +0.4% damage ratio |
Download
Toggle Triggers On Damage
ONDAMAGE_chance: 1.0
ONDAMAGE_chanceLevelAdd: 0.0
function onDamage takes Tower tower returns nothing
local real curRatio=0.1+0.004*tower.getLevel()
local real sDmg=Event.damage
local real damageBase=Event.damage
local Creep target=Event.getTarget()
local real temp = AttackType.PHYSICAL.getDamageAgainst(target.getArmorType())
if temp > 0. and temp < 1. then //ignoring armor type "resistance" not weakness :P
set damageBase = damageBase / temp
endif
set temp = (1 - target.getCurrentArmorDamageReduction())
if temp > 0. then
set damageBase = damageBase / temp
endif
if sDmg < damageBase then
set Event.damage=damageBase*curRatio+sDmg*(1.-curRatio)
endif
//The engine calculates critical strike extra damage ***AFTER*** the onDamage event, so there is no need to care about it in this trigger.
endfunction
|
Description: