Array
(
[scriptVersion] => 7
[oeValues] => Array
(
[RngBuff1] => 250
[MissileHoming] => 1
[Upgrade] => Array
(
)
[targs1] => Array
(
)
[goldcost] => 4500
[weapsOn] => 1
[dice1] => 1
[Missilespeed] => 1500
[moveHeight] => 45
[file] => units\undead\Banshee\Banshee.mdl
[atkType1] => hero
[modelScale] => 0.3
[weapTp1] => missile
[acquire] => 800
[rangeN1] => 800
[upgrades] => Array
(
)
[cool1] => 2
[Ubertip] => An unsightly being from a distant realm, adept in performing daemonic rituals and casting nasty curses.
[green] => 0
[abilList] => Array
(
)
[Name] => It
[Missileart] => Abilities\Spells\NightElf\CorrosiveBreath\CorrosiveBreathMissile.mdl
[Art] => ReplaceableTextures\CommandButtons\BTNBanshee.blp
[red] => 0
[buildingShadow] => Array
(
)
[turnRate] => 2
[blue] => 0
[sides1] => 1
[auto] => Array
(
)
[dmgplus1] => 8683
[bldtm] => 1
)
[settings] => Array
(
[author] => axllow
[element] => darkness
[authorDisplay] => axllow
[alpha] => 255
[balanceTip] => |cffFFFF0010%|r spell crit chance (|cffFFFF00+0.5%|r/lvl)
[rarity] => unique
[version] => 1.0
[abil_factor] => 0.7
)
[effects] => Array
(
[0] => Array
(
[x] => 37.0487
[y] => 36.8589
[z] => 0
[scale] => 0.6
[rot] => 3.99471
[file] => units\undead\Acolyte\Acolyte.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 200
[pitch] => 0
[advanced] => true
[animation] => Stand Work Gold
[aniSpeed] => 50
)
[1] => Array
(
[x] => -34.8764
[y] => -33.1036
[z] => 0
[scale] => 0.6
[rot] => 0.794998
[file] => units\undead\Acolyte\Acolyte.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 200
[pitch] => 0
[advanced] => true
[animation] => Stand Work Gold
[aniSpeed] => 50
)
[2] => Array
(
[x] => 34.8725
[y] => -33.8093
[z] => 0
[scale] => 0.6
[rot] => 2.34904
[file] => units\undead\Acolyte\Acolyte.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 200
[pitch] => 0
[advanced] => true
[animation] => Stand Work Gold
[aniSpeed] => 50
)
[3] => Array
(
[x] => -38.435
[y] => 38.0979
[z] => 0
[scale] => 0.6
[rot] => 5.45712
[file] => units\undead\Acolyte\Acolyte.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 200
[pitch] => 0
[advanced] => true
[animation] => Stand Work Gold
[aniSpeed] => 50
)
[4] => Array
(
[x] => -3.48232
[y] => 5.23116
[z] => 0
[scale] => 0.3
[rot] => 4.5369
[file] => buildings\undead\SacrificialPit\SacrificialPit.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => true
[animation] => Array
(
)
[aniSpeed] => 50
)
[5] => Array
(
[x] => -2.7309
[y] => -16.8057
[z] => 0
[scale] => 1
[rot] => 4.39823
[file] => Environment\BlightDoodad\BlightDoodad.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[6] => Array
(
[x] => 0.935466
[y] => -15.7653
[z] => 0
[scale] => 1
[rot] => 4.66003
[file] => Environment\BlightDoodad\BlightDoodad.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[7] => Array
(
[x] => 15.797
[y] => -45.6027
[z] => 0
[scale] => 0.3
[rot] => 1.93732
[file] => Doodads\LordaeronSummer\Props\SkullPile\SkullPile0.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[8] => Array
(
[x] => 30.7619
[y] => -14.333
[z] => 0
[scale] => 0.3
[rot] => 1.93732
[file] => Doodads\LordaeronSummer\Props\SkullPile\SkullPile0.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[9] => Array
(
[x] => 38.6696
[y] => 15.2645
[z] => 0
[scale] => 0.3
[rot] => 1.93732
[file] => Doodads\LordaeronSummer\Props\SkullPile\SkullPile0.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[10] => Array
(
[x] => 48.821
[y] => 17.8092
[z] => 0
[scale] => 0.3
[rot] => 1.93732
[file] => Doodads\LordaeronSummer\Props\SkullPile\SkullPile0.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[11] => Array
(
[x] => 2.74186
[y] => 50.0285
[z] => 0
[scale] => 0.3
[rot] => 1.93732
[file] => Doodads\LordaeronSummer\Props\SkullPile\SkullPile0.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[12] => Array
(
[x] => -43.2828
[y] => 10.3024
[z] => 0
[scale] => 0.3
[rot] => 1.93732
[file] => Doodads\LordaeronSummer\Props\SkullPile\SkullPile0.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[13] => Array
(
[x] => -43.9299
[y] => -7.6306
[z] => 0
[scale] => 0.3
[rot] => 1.93732
[file] => Doodads\LordaeronSummer\Props\SkullPile\SkullPile0.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[14] => Array
(
[x] => 11.4347
[y] => 44.6986
[z] => 0
[scale] => 0.3
[rot] => 1.93732
[file] => Doodads\LordaeronSummer\Props\SkullPile\SkullPile0.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[15] => Array
(
[x] => 45.897
[y] => -4.22109
[z] => 0
[scale] => 0.3
[rot] => 1.93732
[file] => Doodads\LordaeronSummer\Props\SkullPile\SkullPile0.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[16] => Array
(
[x] => -20.6361
[y] => -19.423
[z] => 0
[scale] => 0.3
[rot] => 1.93732
[file] => Doodads\LordaeronSummer\Props\SkullPile\SkullPile0.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[17] => Array
(
[x] => 47.7294
[y] => 3.61563
[z] => 0
[scale] => 0.3
[rot] => 1.93732
[file] => Doodads\LordaeronSummer\Props\SkullPile\SkullPile0.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[18] => Array
(
[x] => 5.97022
[y] => -36.5948
[z] => 0
[scale] => 0.3
[rot] => 1.93732
[file] => Doodads\LordaeronSummer\Props\SkullPile\SkullPile0.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[19] => Array
(
[x] => -8.2793
[y] => -44.1874
[z] => 0
[scale] => 0.3
[rot] => 1.93732
[file] => Doodads\LordaeronSummer\Props\SkullPile\SkullPile0.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[20] => Array
(
[x] => -14.3339
[y] => 47.5408
[z] => 0
[scale] => 0.3
[rot] => 1.93732
[file] => Doodads\LordaeronSummer\Props\SkullPile\SkullPile0.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
[21] => Array
(
[x] => -43.9618
[y] => 18.4426
[z] => 0
[scale] => 0.3
[rot] => 1.93732
[file] => Doodads\LordaeronSummer\Props\SkullPile\SkullPile0.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
)
)
[dmgTable] => Array
(
[0] => Array
(
[id] => MOD_SPELL_CRIT_CHANCE
[base] => 0.0875
[add] => 0.005
)
)
[triggers] => Array
(
[0] => Array
(
[name] => On Tower Creation
[code] => local Summoner sum = Summoner.create()
local unit twrUnit = tower.getUnit()
set sum.tow = CreateUbersplat(GetUnitX(twrUnit) - 16.0, GetUnitY(twrUnit) - 16.0,"DRKC",255,255,255,255,false,false)
call SetUbersplatRenderAlways(sum.tow,true)
set tower.userInt = sum
set tower.userInt2 = 0
set tower.userInt3 = 0
set twrUnit = null
[values] => Array
(
[icon] =>
[visible] => false
[name] =>
[short_explain] =>
[long_explain] =>
)
)
[1] => Array
(
[name] => On Tower Details
[code] => local Summoner sum = tower.userInt
call Summoner_spd.setValue(0, formatPercent(sum.size - 3.0, 1))
return Summoner_spd
[values] => Array
(
[0] => Array
(
[_value] => 4500
[typ] => string
)
)
)
[2] => Array
(
[name] => Header
[code] => globals
integer array Summoner_units
Effect Summoner_tp_e
MultiboardValues Summoner_spd
endglobals
struct Summoner
real size = 3.0
ubersplat tow
Effect from = 0
Effect future = 0
real fromX = 0
real fromY = 0
real toX = 0
real toY = 0
endstruct
function It_kill takes Tower tower returns nothing
local Summoner sum = tower.userInt
local unit twrUnit = tower.getUnit()
local real mod = 0.001 + (0.0001 * tower.getLevel())
if sum.size < 10.0 then
call tower.modifyProperty(MOD_SPELL_DAMAGE_DEALT,mod)//700% cap
set sum.size = sum.size + mod
endif
if sum.size < 3.7 then
call SetUnitScale(twrUnit,sum.size-2.7,sum.size,sum.size)
endif
set twrUnit = 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 Summoner_spd = MultiboardValues.create(1)
call Summoner_spd.setKey(0,"Spelldamage Bonus")
endfunction
[values] => Array
(
[icon] => ReplaceableTextures\CommandButtons\BTNDevourMagic.blp
[visible] => true
[name] => It Hunger
[short_explain] => Unstoppable hunger
[long_explain] => Every time an enemy creep is transported by Dark Ritual or killed by this tower, It permanently gains |cffFFFF800.1%|r spelldamage. There is a maximum of |cffFFFF80700%|r bonus spelldamage.|n|n|cffFF8000Level Bonus:|r|n |cffFFFF80+0.01%|r spelldamage
)
)
[3] => Array
(
[name] => Autocast
[code] => local Summoner sum = tower.userInt
local real lastX = sum.toX
local real lastY = sum.toY
set sum.toX = GetSpellTargetX()
set sum.toY = GetSpellTargetY()
if isPointOnCreepPath(sum.toX,sum.toY) then
if tower.userInt2 == 1 then
call sum.future.setPosition(sum.toX,sum.toY)
else
set tower.userInt2 = 1
set sum.future = Effect.createColored("Abilities\\Spells\\Undead\\VampiricAura\\VampiricAura.mdl",sum.toX,sum.toY,0,270.0,2.0,255,0,0,255)
call sum.future.noDeathAnimation()
endif
else
set sum.toX = lastX
set sum.toY = lastY
call tower.getOwner().displaySmallFloatingText("Invalid location!",tower,255, 150, 0,30)
endif
[values] => Array
(
[caster_art] =>
[icon] => ReplaceableTextures\CommandButtons\BTNLoad.blp
[AUTOCAST_cooldown] => 5
[AUTOCAST_numBuffsBeforeIdle] => 0
[AUTOCAST_isExtended] => true
[long_explain] => Set up Recreation Field at a chosen location. Field has |cffFFFF80250|r AoE and will punish creeps that walk over it at the wrong moment.
[AUTOCAST_autocastType] => AC_TYPE_NOAC_POINT
[AUTOCAST_manacost] => 0
[AUTOCAST_range] => 800
[AUTOCAST_buffType] => 0
[name] => Recreation Field
[AUTOCAST_targetSelf] => false
[short_explain] => Set up recreation field
[AUTOCAST_targetType] => 0
[target_art] =>
[AUTOCAST_autoRange] => 0
)
)
[4] => Array
(
[name] => Autocast
[code] => local Summoner sum = tower.userInt
local real lastX = sum.fromX
local real lastY = sum.fromY
if(tower.userInt2 == 1) then
set tower.userReal = 1
set sum.fromX = GetSpellTargetX()
set sum.fromY = GetSpellTargetY()
//no need to check the location in this field's placement
if tower.userInt3 == 1 then
call sum.from.setPosition(sum.fromX,sum.fromY)
else
set tower.userInt3 = 1
set sum.from = Effect.createColored("Abilities\\Spells\\Undead\\VampiricAura\\VampiricAura.mdl",sum.fromX,sum.fromY,0,270.0,2.0,0,0,255,255)
call sum.from.noDeathAnimation()
endif
else
call tower.getOwner().displaySmallFloatingText("You must place the recreation field first!",tower,255, 150, 0,30)
endif
[values] => Array
(
[caster_art] =>
[icon] => ReplaceableTextures\CommandButtons\BTNUnload.blp
[AUTOCAST_cooldown] => 5
[AUTOCAST_numBuffsBeforeIdle] => 0
[AUTOCAST_isExtended] => true
[long_explain] => Set up Corruption Field at a chosen location. Field has |cffFFFF80250|r AoE and will punish creeps that walk over it at the wrong moment.
[AUTOCAST_autocastType] => AC_TYPE_NOAC_POINT
[AUTOCAST_manacost] => 0
[AUTOCAST_range] => 800
[AUTOCAST_buffType] => 0
[name] => Corruption Field
[AUTOCAST_targetSelf] => false
[short_explain] => Set up corruption field
[AUTOCAST_targetType] => 0
[target_art] =>
[AUTOCAST_autoRange] => 0
)
)
[5] => Array
(
[name] => On Tower Destruction
[code] => local Summoner sum = tower.userInt
if tower.userInt2 == 1 then
call sum.future.destroy()
endif
if tower.userInt3 == 1 then
call sum.from.destroy()
endif
call DestroyUbersplat(sum.tow)
set sum.tow = null
call sum.destroy()
[values] => Array
(
[icon] =>
[visible] => false
[name] =>
[short_explain] =>
[long_explain] =>
)
)
[6] => Array
(
[name] => On Kill
[code] => call It_kill(tower)
[values] => Array
(
[icon] =>
[visible] => false
[name] =>
[short_explain] =>
[long_explain] =>
)
)
[7] => Array
(
[name] => On Attack
[code] => //local integer currentTime = Game.getGameTime
local Summoner sum = tower.userInt
local Iterate inRange
local real mod = 3000 + (tower.getLevel() * 100)
local Creep s
local integer UID
local Effect DMG1
local Effect DMG2
local Effect TP1
local Effect TP2
local real toX
local real toY
if(tower.userReal == 1) then
call tower.doSpellDamageAoE(sum.fromX,sum.fromY,250.0,mod,tower.calcSpellCritNoBonus(),0.0)
//40.0 Oo
set DMG1 = Effect.createColored("Abilities\\Spells\\Human\\Feedback\\ArcaneTowerAttack.mdl",sum.fromX,sum.fromY,100.0,270.0,40.0,0,0,0,255)
call DMG1.setLifetime(1)
set inRange = Iterate.overUnitsInRange(tower,TARGET_TYPE_CREEPS,sum.fromX,sum.fromY,250.0)
loop
set s = inRange.next()
exitwhen s == 0
// set s = l
set UID = s.getUID()
if UID != -1 and Summoner_units[s] != UID and s.getSize() < SIZE_BOSS then
set TP1 = Effect.create("Abilities\\Spells\\Undead\\Darksummoning\\DarkSummonTarget.mdl",s.getX(),s.getY(),0.0,270.0)
call TP1.setLifetime(1)
call It_kill(tower)
set toX = sum.toX + GetRandomReal(-25,25)
set toY = sum.toY + GetRandomReal(-25,25)
call s.moveToPoint(toX,toY,false)
set TP2 = Effect.create("Abilities\\Spells\\Undead\\Darksummoning\\DarkSummonTarget.mdl",toX,toY,0.0,270.0)
call TP2.setLifetime(1)
call s.reorder()
set Summoner_units[s] = UID
endif
endloop
call tower.doSpellDamageAoE(sum.toX,sum.toY,250.0,mod,tower.calcSpellCritNoBonus(),0.0)
set DMG2 = Effect.createColored("Abilities\\Spells\\Human\\Feedback\\ArcaneTowerAttack.mdl",sum.toX,sum.toY,100.0,270.0,40.0,0,0,0,255)
call DMG2.setLifetime(1)
set tower.userReal = 0
call TriggerSleepAction(1.0)
set tower.userReal = 1
endif
[values] => Array
(
[icon] => ReplaceableTextures\CommandButtons\BTNDarkSummoning.blp
[visible] => true
[name] => Dark Ritual
[short_explain] => Start dark ritual
[ONATTACK_chance] => 1.0
[ONATTACK_chanceLevelAdd] => 0.0
[long_explain] => When this tower attacks, it awakens the powerful dark magic in Recreation and Corruption Fields, dealing |cffFFFF803000|r spelldamage to all creeps unfortunate enough to be standing in those areas. If a non-boss enemy in Corruption Field is affected by Dark Ritual for the first time, it will be immediately transported to Recreation Field.|n|n|cffFF8000Level Bonus:|r|n |cffFFFF80+100|r spelldamage|n|n|cffFFFF80Cooldown:|r |cffFFFF801 sec|r
)
)
)
[abilities] => Array
(
)
[buffs] => Array
(
)
[units] => Array
(
)
[references] => Array
(
)
)