Array
(
[scriptVersion] => 7
[oeValues] => Array
(
[Name] => M.E.F.I.S. Rocket
[Art] => ReplaceableTextures\CommandButtons\BTNClusterRockets.blp
[Ubertip] => Now, If only I could remember where I put the manual.
[abilList] => Array
(
)
)
[settings] => Array
(
[author] => cedi
[authorDisplay] => DreamStrider
[balanceTip] => Array
(
)
[rarity] => unique
[goldcost] => 1500
[version] => 1.0
)
[dmgTable] => Array
(
)
[triggers] => Array
(
[0] => Array
(
[name] => On Tower Details
[code] => local Tower T = itm.getCarrier()
local real dmg = T.getCurrentAttackDamageWithBonus() * ( T.getProp_SpellDmgDealt() * ( 0.2 + 0.008 * T.getLevel() ) )
call MB.setValue( 0, formatFloat( dmg, 0 ) )
return MB
[values] => Array
(
[0] => Array
(
[_value] => 0
[typ] => string
)
)
)
[1] => Array
(
[name] => On Item Pickup
[code] => local Tower T = itm.getCarrier()
if T.getAttackType() != AttackType.MAGIC then
set itm.userInt = T.getAttackType()
else
set itm.userInt = AttackType.ESSENCE
endif
[values] => Array
(
[visible] => false
[name] =>
[goldcost] => 0
[explain] =>
)
)
[2] => Array
(
[name] => Header
[code] => globals
ProjectileType PT
MultiboardValues MB
endglobals
function hitPT takes Projectile P, Unit U returns nothing
local Tower T = P.getCaster()
//local AttackType AT = P.userInt
call T.doCustomAttackDamage( U, P.userReal, T.calcAttackMulticrit( 0, 0, 0 ), P.userInt )
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 PT = ProjectileType.createInterpolate( "Abilities\\Spells\\Other\\TinkerRocket\\TinkerRocketMissile.mdl", 1000.00 )
call PT.setEventOnInterpolationFinished( hitPT )
set MB = MultiboardValues.create( 1 )
call MB.setKey( 0, "Damage" )
endfunction
[values] => Array
(
[visible] => false
[name] =>
[goldcost] => 0
[explain] =>
)
)
[3] => Array
(
[name] => Periodic
[code] => local Tower T = itm.getCarrier()
local Iterate I = Iterate.overUnitsInRangeOfCaster( T, TARGET_CREEPS, T.getRange() )
local Unit U
local real dmg
local Projectile P
call Event.getCurrentPeriodicEvent().enableAdvanced( T.getCurrentAttackspeed(), true )
loop
set U = I.next()
if U == 0 then
return //No target
endif
exitwhen U.isImmune()
endloop
//Gotcha
call I.destroy() //If this point is reached the Iteration still exists and has to be destroyed
set dmg = T.getCurrentAttackDamageWithBonus() * ( T.getProp_SpellDmgDealt() * ( 0.2 + 0.008 * T.getLevel() ) )
set P = Projectile.createLinearInterpolationFromUnitToUnit( PT, T, 1.0, 1.0, T, U, 0.35, true )
set P.userReal = dmg
set P.userInt = itm.userInt
[values] => Array
(
[visible] => true
[PERIODIC_period] => 0.1
[name] => Anti-Immunity Missile
[goldcost] => 1500
[explain] => Fires immune-seeking missiles. The attack range, speed, damage and type is the same as the carrier's, unless the attack type is |cffFF0080Magic|r, which is dealt as |cff80FF00Essence|r damage. Damage is scaled by |cffFFFF8020%|r of the tower's spell damage.|n|n|cffFF8000Level Bonus:|r|n|cffFFFF80+0.8%|r scaling
)
)
)
[abilities] => Array
(
)
[buffs] => Array
(
)
[units] => Array
(
)
[references] => Array
(
)
)