Array
(
[scriptVersion] => 8
[oeValues] => Array
(
[Ubertip] => Very spooky.
[Art] => ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
[abilList] => Array
(
)
[Name] => Orb of Harrowing Despair
)
[settings] => Array
(
[balanceTip] => Array
(
)
[goldcost] => 1900
[author] => Ashbringer
[authorDisplay] => |cffff6600Ashbringer|r
[version] => 1.0
[rarity] => unique
)
[dmgTable] => Array
(
)
[triggers] => Array
(
[0] => Array
(
[name] => Header
[code] => globals
ProjectileType ashbringer_soulvortex_missile
endglobals
public function ashbringer_soulvortex_hit takes Projectile p, Creep creep returns nothing
local Tower tower = p.getCaster()
call tower.doCustomAttackDamage(creep, tower.getCurrentAttackDamageWithBonus()*2, 1.0, AttackType.DECAY)
call Effect.createSimpleOnUnit("Abilities\\Weapons\\ZigguratMissile\\ZigguratMissile.mdl", creep, "chest").destroy()
endfunction
public function ashbringer_soulvortex_update takes Projectile p returns nothing
local real radius = SquareRoot((p.userReal - p.x) * (p.userReal - p.x) + (p.userReal2 - p.y) * (p.userReal2 - p.y))
local real circumference = bj_PI * radius * 2
local real seconds = circumference / (p.speed)
local real turning = (360 / seconds / 25) * 1.3
local real angle = bj_RADTODEG * Atan2(p.y - p.userReal2, p.x - p.userReal) + (p.userInt2 * 93)
if radius>140 then
if angle < 0 then
set angle = angle + 360
elseif angle > 360 then
set angle = angle - 360
endif
set p.rotation = p.userInt2 * RMinBJ(19.4 * 1.3, turning)
set p.direction = angle
else
call p.destroy()
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 ashbringer_soulvortex_missile = ProjectileType.create("Abilities\\Weapons\\ZigguratMissile\\ZigguratMissile.mdl", 15, 1300)
call ashbringer_soulvortex_missile.enablePeriodic(ProjectileEvent.ashbringer_soulvortex_update, 0.2)
call ashbringer_soulvortex_missile.enableCollision(ProjectileTargetEvent.ashbringer_soulvortex_hit, 75, TARGET_TYPE_CREEPS, false)
endfunction
[values] => Array
(
[explain] =>
[visible] => false
[goldcost] => 0
[name] =>
)
)
[1] => Array
(
[name] => On Kill
[code] => local Tower tower = itm.getCarrier()
local Unit target = Event.getTarget()
local Projectile p
local real angle
local real tower_x = tower.getX()
local real tower_y = tower.getY()
local real target_x = target.getX()
local real target_y = target.getY()
local integer random = GetRandomInt(0, 1)
set angle = bj_RADTODEG * Atan2(tower_y - target_y, tower_x - target_x)
if random == 0 then
set random = -1
call ashbringer_soulvortex_missile.setStartRotation(2)
else
call ashbringer_soulvortex_missile.setStartRotation(-2)
endif
set angle = angle - (random * 85)
if angle < 0 then
set angle = angle + 360
elseif angle > 360 then
set angle = angle - 360
endif
set p = Projectile.create(ashbringer_soulvortex_missile, tower, 0, 0, target_x, target_y, 40, angle)
set p.userReal = tower_x
set p.userReal2 = tower_y
set p.userInt = 0
set p.userInt2 = random
set p.explode = false
[values] => Array
(
[explain] => Enemies killed by the holder have their souls ripped out, which then spiral inward towards the tower. Souls deals |cffffff80200%|r of attack damage as |cff808000Decay|r damage to enemies in their path.
[visible] => true
[goldcost] => 1900
[name] => Despair in Death
)
)
)
[abilities] => Array
(
)
[buffs] => Array
(
)
[units] => Array
(
)
[references] => Array
(
)
)