Marine v1
1500
|
ID: 201
Family ID:
Author: Boekie
Rarity: rare
Element: iron
Attack Type: Decay
Attack Range: 1200
Attack CD: 0.6
Damage: 336-336
Abil. Factor: 0.5
Status: Approved
|
Stim
This marine uses a stimpack, increasing its attackspeed by 150% and decreasing its attackdamage by 50%. This buff lasts 5 seconds. Level Bonus: +0.08 seconds duration
Frag Grenade
When this tower damages a creep it has a 20% chance to fire a frag grenade that will split into 6 smaller grenades after a short delay. When a grenade collides with a creep it deals 1200 spelldamage and increases the damage the target takes from attacks by 2%, stacking up to a maximum of 50%. Level Bonus: +0.3% chance +100 damage +0.1% damage increase |
Download
Toggle Triggers Autocast
caster_art: Abilities\Spells\Human\Avatar\AvatarCaster.mdl
AUTOCAST_cooldown: 8
AUTOCAST_numBuffsBeforeIdle: 0
AUTOCAST_isExtended: false
AUTOCAST_autocastType: AC_TYPE_OFFENSIVE_IMMEDIATE
AUTOCAST_manacost: 25
AUTOCAST_range: 1200
AUTOCAST_buffType: 0
AUTOCAST_targetSelf: true
AUTOCAST_targetType: 0
target_art:
AUTOCAST_autoRange: 1200
private function onAutocast takes Tower tower returns nothing
local integer level = tower.getLevel()
call boekie_stim_buff.applyCustomTimed(tower,tower,level,5.0+0.08*level)
endfunction
Header globals
//@export
ProjectileType shard
//@export
BuffType boekie_stim_buff
//Don't need to export this one, as the second member doesn't need to refer to it.
BuffType boekie_grenade_buff
endglobals
function Expiration takes Projectile p returns nothing
local Tower tower = p.getCaster()
local real CONE_WIDTH = 120.0 //degrees
local real NUM_PROJECTILES = p.userInt
local real angle = p.direction - CONE_WIDTH / 2
local real dmgRatio = p.getDmgRatio()
loop
exitwhen p.userInt <= 0
set Projectile.create(shard, tower, dmgRatio, tower.calcSpellCritNoBonus(), p.x, p.y, p.z, angle + GetRandomReal(-8.0, 8.0)).userInt = 0
set angle = angle + CONE_WIDTH / (NUM_PROJECTILES - 1)
set p.userInt = p.userInt - 1
endloop
endfunction
function Impact takes Projectile p, Unit target returns nothing
local Tower tower = p.getCaster()
local integer level = tower.getLevel()
local Buff b = target.getBuffOfType(boekie_grenade_buff)
call p.doSpellDamage(target, 1200 + 100 * level)
call SFXAtUnit("Objects\\Spawnmodels\\Human\\FragmentationShards\\FragBoomSpawn.mdl", target.getUnit())
if b != 0 then
call boekie_grenade_buff.apply(tower, target, IMinBJ(480, b.getLevel()+20+level))
else
call boekie_grenade_buff.apply(tower, target, level)
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
local Modifier m = Modifier.create()
call m.addModification(MOD_ATTACKSPEED,1.5,0.0)
call m.addModification(MOD_DAMAGE_ADD_PERC,-0.5,0.0)
set boekie_stim_buff = BuffType.create(0.0,0.0,true) //0.0 time since I will apply it custom timed
call boekie_stim_buff.setBuffModifier(m)
call boekie_stim_buff.setBuffIcon('@@0@@')
set m = Modifier.create()
call m.addModification(MOD_ATK_DAMAGE_RECEIVED,0.02,0.001)
set boekie_grenade_buff = BuffType.create(-1.0,0.0,false) //Lasts indefinitely
call boekie_grenade_buff.setBuffModifier(m)
call boekie_grenade_buff.setBuffIcon('@@1@@')
set shard = ProjectileType.createRanged( "Abilities\\Weapons\\GyroCopter\\GyroCopterMissile.mdl", 400.00, 500.00 )
call shard.setEventOnExpiration(Expiration)
call shard.enableCollision(Impact, 75.00, TARGET_CREEPS, true)
endfunction
On Damage
ONDAMAGE_chance: 0.20
ONDAMAGE_chanceLevelAdd: 0.003
function onDamage takes Tower tower returns nothing
set Projectile.createFromUnitToUnit(shard, tower, 1.00, tower.calcSpellCritNoBonus(), tower, Event.getTarget(), false, true, false).userInt = 6 //six projectiles
endfunction
|
Description:
Latest Upload Comment: