Array
(
[scriptVersion] => 7
[oeValues] => Array
(
[auto] => Array
(
)
[Art] => ReplaceableTextures\CommandButtons\BTNChaosBlademaster.blp
[turnRate] => 0.6
[dmgplus1] => 7108
[bldtm] => 1
[unitSound] => HeroBladeMaster
[goldcost] => 3400
[sides1] => 1
[acquire] => 1200
[upgrades] => Array
(
)
[Upgrade] => Array
(
)
[Name] => The Omnislasher
[weapTp1] => missile
[MissileHoming] => 1
[file] => units\demon\HeroChaosBladeMaster\HeroChaosBladeMaster.mdl
[uberSplat] => OSMA
[Missilespeed] => 1200
[dice1] => 1
[RngBuff1] => 250
[modelScale] => 0.5
[rangeN1] => 1200
[atkType1] => siege
[cool1] => 5
[Ubertip] => Faster than the wind, faster than Sonic, even faster than light!
[abilList] => Array
(
)
[moveHeight] => 138
[buildingShadow] => Array
(
)
[targs1] => Array
(
)
[weapsOn] => 1
)
[settings] => Array
(
[balanceTip] => |cffFFFF00+10% |rdamage/lvl
[abil_factor] => 0.336
[author] => KublaiKhan1
[alpha] => 200
[authorDisplay] => KublaiKhan1
[version] => 1.0
[element] => fire
[rarity] => unique
)
[effects] => Array
(
[0] => Array
(
[x] => -0.994183
[y] => 0.996669
[z] => 0
[scale] => 1
[rot] => 5.12603
[file] => Doodads\Barrens\Rocks\RockPillar\RockPillar1.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[1] => Array
(
[x] => -29.6771
[y] => 11.0168
[z] => 0
[scale] => 0.7
[rot] => 4.72183
[file] => Doodads\LordaeronSummer\Plants\RiverRushes\RiverRushes2.mdl
[red] => 255
[green] => 140
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[2] => Array
(
[x] => 14.5905
[y] => -18.0471
[z] => 0
[scale] => 0.5
[rot] => 6.14356
[file] => Doodads\Ruins\Plants\Ruins_Shrub\Ruins_Shrub0.mdl
[red] => 255
[green] => 140
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[3] => Array
(
[x] => 28.7428
[y] => 1.74789
[z] => 89.6
[scale] => 0.25
[rot] => 2.72043
[file] => Doodads\Ruins\Plants\Ruins_Shroom\Ruins_Shroom5.mdl
[red] => 255
[green] => 200
[blue] => 200
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[4] => Array
(
[x] => 19.2295
[y] => 30.9921
[z] => 0
[scale] => 0.7
[rot] => 5.25344
[file] => Doodads\LordaeronSummer\Plants\RiverRushes\RiverRushes2.mdl
[red] => 255
[green] => 140
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[5] => Array
(
[x] => -13.3155
[y] => -7.34373
[z] => 0.000000953674
[scale] => 1
[rot] => 1.89735
[file] => Doodads\Ruins\Plants\Ruins_Shroom\Ruins_Shroom3.mdl
[red] => 255
[green] => 200
[blue] => 200
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[6] => Array
(
[x] => -3.97019
[y] => 4.47209
[z] => -76.8
[scale] => 1
[rot] => 5.20108
[file] => Doodads\Dungeon\Rocks\Cave_FieryCrator\Cave_FieryCrator.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[7] => Array
(
[x] => 4.04952
[y] => -8.02644
[z] => -76.8
[scale] => 1
[rot] => 5.20108
[file] => Doodads\Dungeon\Rocks\Cave_FieryCrator\Cave_FieryCrator.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[8] => Array
(
[x] => 7.11015
[y] => 10.5009
[z] => -44.8
[scale] => 3
[rot] => 3.9619
[file] => Abilities\Spells\Human\FlameStrike\FlameStrikeDamageTarget.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
)
[dmgTable] => Array
(
[0] => Array
(
[id] => MOD_DAMAGE_BASE_PERC
[base] => 0
[add] => 0.1
)
)
[triggers] => Array
(
[0] => Array
(
[name] => On Attack
[code] => local unit u
local Iterate iterate = tower.userInt3
local timer t
local Unit target = Event.getTarget()
local integer numAttacks = 20 + tower.getLevel() * 2/5
if iterate == -1 then
set u = tower.getUnit()
set iterate = Iterate.overUnitsInRangeOfUnit(tower, TARGET_CREEPS, Event.getTarget(), 1200.00)
set t = NewTimer()
call TimerStart(t, tower.getCurrentAttackspeed() / numAttacks, true, function onHit)
call SetTimerData(t,tower)
call SFXOnUnit("Abilities\\Spells\\Orc\\MirrorImage\\MirrorImageCaster.mdl", u, "origin")
call SetUnitVertexColor(u, 255, 255, 255, 0)
call PauseUnit(u, true)
set tower.userInt = target // Save current target
set tower.userInt2 = numAttacks
set tower.userInt3 = iterate
set tower.userReal = target.getUID()
call damage(tower, target)
if(tower.calcChance(.002)) then
call tower.getOwner().displayFloatingTextX("I'm faster than LIGHT!", tower, 50, 150, 255, 255, 0.05, 2, 3)
endif
if(tower.calcChance(.002)) then
call tower.getOwner().displayFloatingTextX("Don't listen to Einstein's lies!", tower, 50, 150, 255, 255, 0.05, 2, 3)
endif
if(tower.calcChance(.002)) then
call tower.getOwner().displayFloatingTextX("I'm debunking relativity. Just watch me!", tower, 50, 150, 255, 255, 0.05, 2, 3)
endif
set u = null
set t = null
endif
[values] => Array
(
[visible] => true
[icon] => ReplaceableTextures\CommandButtons\BTNWhirlwind.blp
[name] => Omnislash
[short_explain] => Flies across the battlefield, hitting multiple units with each attack.
[ONATTACK_chance] => 1.0
[ONATTACK_chanceLevelAdd] => 0.0
[long_explain] => On each attack the Omnislasher moves with insane speed towards the battlefield. There, he attacks up to |cffFFFF8020|r times before returning to his triumphant pedestal. Each attack deals |cffFFFF805%|r of this tower's normal attack damage and permanently increases the damage its target takes from |cffC0C0C0Physical|r type attacks by |cffFFFF802%|r.|n|n|cffFF8000Level Bonus:|r|n|cffFFFF80+2|r slashes every |cffFFFF805|r levels
)
)
[1] => Array
(
[name] => Header
[code] => globals
BuffType DamageIncreaseBT
endglobals
function onDamaged takes Buff b returns nothing
local Tower tower = Event.getTarget()
if tower.getAttackType() == AttackType.PHYSICAL then
if Event.isSpellDamage() == false then
set Event.damage = Event.damage * b.userReal
endif
endif
endfunction
function damage takes Tower tower, Unit target returns nothing
local real range = 80.00
local real angle = GetRandomReal(0.00, 360.00)
local real x = target.getX() + Cos(angle) * range
local real y = target.getY() + Sin(angle) * range
local real z = target.getZ()
local Effect blademaster = Effect.createAnimated("units\\demon\\HeroChaosBladeMaster\\HeroChaosBladeMaster.mdl", x, y, z, angle + 180 * bj_DEGTORAD)
local Effect mirrorimage = Effect.create("Abilities\\Spells\\Orc\\MirrorImage\\MirrorImageCaster.mdl", x, y, z, angle + 180 * bj_DEGTORAD)
local Buff b = target.getBuffOfType(DamageIncreaseBT)
call blademaster.setLifetime(.4)
call blademaster.setAnimation("attack")
call blademaster.setScale(0.4)
call blademaster.noDeathAnimation()
call mirrorimage.setLifetime(.4)
call mirrorimage.setScale(0.4)
call tower.doAttackDamage(target, tower.getCurrentAttackDamageWithBonus()/20, tower.calcAttackMulticrit(0.0, 0.0, 0) )
if b == 0 then
set b = DamageIncreaseBT.apply(tower, target, tower.getLevel())
set b.userReal = 1.0
else
set b.userReal = b.userReal + 0.02
endif
endfunction
function onHit takes nothing returns nothing
local timer t = GetExpiredTimer()
local Tower tower = GetTimerData(t)
local unit u = tower.getUnit()
local Unit target = tower.userInt
local integer uid = R2I(tower.userReal)
local integer towerUID = R2I(tower.userReal2)
local Iterate iterate = tower.userInt3
local integer numAttacks = tower.userInt2
// The tower has changed (sold or replaced)
if (tower.getUID() != towerUID) then
call ReleaseTimer(t)
set t = null
set u = null
call iterate.destroy()
return
endif
// The target died
if (target.getUID() != uid) then
set target = iterate.next()
set tower.userInt = target
set tower.userReal = target.getUID()
endif
if (target != 0 and numAttacks > 0) then
call damage(tower, target)
set tower.userInt2 = numAttacks - 1
else
if (target != 0) then
call iterate.destroy()
endif
call ReleaseTimer(t)
call SetUnitVertexColor(u, 255, 255, 255, 255)
call PauseUnit(u, false)
call SFXOnUnit("Abilities\\Spells\\Orc\\MirrorImage\\MirrorImageCaster.mdl", u, "origin")
set tower.userInt3 = -1
endif
set t = null
set u = null
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 DamageIncreaseBT = BuffType.create(-1, 0.0, false)
call DamageIncreaseBT.setBuffIcon('@@0@@')
call DamageIncreaseBT.addEventOnDamaged(onDamaged, 1.0, 0.0)
endfunction
[values] => Array
(
[visible] => false
[icon] =>
[name] =>
[short_explain] =>
[long_explain] =>
)
)
[2] => Array
(
[name] => On Tower Creation
[code] => set tower.userReal2 = tower.getUID()
set tower.userInt3 = -1
[values] => Array
(
[visible] => false
[icon] =>
[name] =>
[short_explain] =>
[long_explain] =>
)
)
)
[abilities] => Array
(
)
[buffs] => Array
(
[0] => Array
(
[id] => @@0@@
[derivedFrom] => BHfs
[oeValues] => Array
(
[EditorName] => Sliced
[Buffubertip] => This creep take additional damage from physical attacks.
[TargetArt] => Array
(
)
[Bufftip] => Sliced
[Buffart] => ReplaceableTextures\CommandButtons\BTNCriticalStrike.blp
)
)
)
[units] => Array
(
)
[references] => Array
(
)
)