Array
(
[scriptVersion] => 8
[oeValues] => Array
(
[auto] => Array
(
)
[Art] => ReplaceableTextures\CommandButtons\BTNHeroPaladin.blp
[turnRate] => 2
[dmgplus1] => 6510
[bldtm] => 1
[goldcost] => 4500
[unitSound] => Array
(
)
[sides1] => 1
[Missilearc] => 0.1
[manaN] => 150
[acquire] => 1000
[upgrades] => Array
(
)
[Upgrade] => Array
(
)
[Name] => Thor
[weapTp1] => missile
[MissileHoming] => 1
[file] => units\human\HeroPaladinBoss2\HeroPaladinBoss2.mdl
[Missileart] => Abilities\Weapons\GryphonRiderMissile\GryphonRiderMissile.mdl
[Missilespeed] => 1400
[dice1] => 1
[RngBuff1] => 250
[regenMana] => 5
[modelScale] => 0.8
[rangeN1] => 1000
[atkType1] => siege
[cool1] => 2
[Ubertip] => Look the storm in the eye and you will have its respect.
[scaleBull] => 0
[abilList] => @@0@@
[moveHeight] => 50
[customTeamColor] => 1
[buildingShadow] => Array
(
)
[targs1] => Array
(
)
[weapsOn] => 1
[teamColor] => 0
)
[settings] => Array
(
[balanceTip] => Array
(
)
[abil_factor] => 0.61
[author] => Ashbringer
[alpha] => 255
[authorDisplay] => |cffff6600Ashbringer|r
[version] => 1.0
[element] => storm
[rarity] => unique
)
[effects] => Array
(
[0] => Array
(
[x] => -37.0738
[y] => -37.6872
[z] => 0
[scale] => 0.15
[rot] => 3.92699
[file] => Doodads\Cityscape\Props\KnightStatueA\KnightStatueA.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
[1] => Array
(
[x] => -36.7626
[y] => 37.86
[z] => 0
[scale] => 0.15
[rot] => 2.3562
[file] => Doodads\Cityscape\Props\KnightStatueA\KnightStatueA.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
[2] => Array
(
[x] => 40.7866
[y] => 37.9778
[z] => 0
[scale] => 0.15
[rot] => 0.785398
[file] => Doodads\Cityscape\Props\KnightStatueA\KnightStatueA.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
[3] => Array
(
[x] => -54.2121
[y] => 0.558196
[z] => -19.2
[scale] => 0.49
[rot] => 4.71239
[file] => Doodads\Cityscape\Props\CrystalLamp\CrystalLamp.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
[4] => Array
(
[x] => 0.0438005
[y] => -53.086
[z] => -19.2
[scale] => 0.49
[rot] => 4.71239
[file] => Doodads\Cityscape\Props\CrystalLamp\CrystalLamp.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
[5] => Array
(
[x] => 53.9729
[y] => 1.95904
[z] => -19.2
[scale] => 0.49
[rot] => 4.71239
[file] => Doodads\Cityscape\Props\CrystalLamp\CrystalLamp.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
[6] => Array
(
[x] => -0.233135
[y] => -0.26873
[z] => -25.6
[scale] => 1.35
[rot] => 3.61283
[file] => Abilities\Spells\Undead\UnholyFrenzy\UnholyFrenzyTarget.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
[7] => Array
(
[x] => -0.202262
[y] => -0.497405
[z] => 25.6
[scale] => 1.85
[rot] => 1.23918
[file] => war3mapImported\GeneralAuraTargetWhite.mdl
[red] => 35
[green] => 95
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
[8] => Array
(
[x] => 28.2997
[y] => -0.748657
[z] => 19.2
[scale] => 0.7
[rot] => 3.14159
[file] => Doodads\Cityscape\Props\Throne\Throne.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 205
[pitch] => -1.57
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
[9] => Array
(
[x] => -28.606
[y] => 0.147156
[z] => 19.2
[scale] => 0.7
[rot] => 0.000000119209
[file] => Doodads\Cityscape\Props\Throne\Throne.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 205
[pitch] => -1.57
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
[10] => Array
(
[x] => 37.6708
[y] => -37.983
[z] => 0
[scale] => 0.15
[rot] => 5.49779
[file] => Doodads\Cityscape\Props\KnightStatueA\KnightStatueA.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
[11] => Array
(
[x] => -0.781342
[y] => -55.7658
[z] => 19.2
[scale] => 0.55
[rot] => 4.63835
[file] => Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
[12] => Array
(
[x] => 0.457554
[y] => 28.1153
[z] => 19.2
[scale] => 0.7
[rot] => 4.71239
[file] => Doodads\Cityscape\Props\Throne\Throne.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 205
[pitch] => -1.57
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
[13] => Array
(
[x] => -0.438229
[y] => -28.7904
[z] => 19.2
[scale] => 0.7
[rot] => 1.5708
[file] => Doodads\Cityscape\Props\Throne\Throne.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 205
[pitch] => -1.57
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
[14] => Array
(
[x] => 52.5068
[y] => -3.64301
[z] => 19.2
[scale] => 0.55
[rot] => 6.27542
[file] => Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
[15] => Array
(
[x] => 0.0137897
[y] => 0.0134469
[z] => -25.6
[scale] => 2.55
[rot] => 0.575959
[file] => war3mapImported\GeneralAuraTargetWhite.mdl
[red] => 35
[green] => 95
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
[16] => Array
(
[x] => -54.4042
[y] => -1.6534
[z] => 19.2
[scale] => 0.55
[rot] => 3.13105
[file] => Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
[red] => 255
[green] => 255
[blue] => 255
[alpha] => 255
[pitch] => 0
[advanced] => false
[animation] => Array
(
)
[aniSpeed] => 50
[pcolor] => 255
)
)
[dmgTable] => Array
(
)
[triggers] => Array
(
[0] => Array
(
[name] => Header
[code] => globals
ProjectileType ashbringer_mjolner_missile
BuffType ashbringer_resil_buff
endglobals
function ashbringer_thunder takes Tower tower, Creep target, real damage, real crit returns real
local Iterate i
local Unit next
local real aoe = tower.getCurrentAttackDamageWithBonus() * (0.5 + (tower.getLevel() * 0.02))
call Lightning.createFromPointToUnit("CLPB", target.getX(), target.getY(), 1600, target).setLifetime(0.2)
call Effect.createSimpleAtUnit("Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl", target).setLifetime(0.5)
set i = Iterate.overUnitsInRangeOfUnit(tower, TARGET_CREEPS, target, 175)
loop
set next = i.next()
exitwhen next==0
if next != target then
call tower.doCustomAttackDamage(next, aoe, crit, AttackType.ENERGY)
endif
endloop
set damage = damage + (aoe / AttackType.PHYSICAL.getDamageAgainst(target.getArmorType()) * AttackType.ENERGY.getDamageAgainst(target.getArmorType()))
return damage
endfunction
function ashbringer_mjolner_order takes Projectile p, Unit target returns nothing
local Tower tower = p.getCaster()
local Iterate i
local Unit next
local real end_x
local real end_y
local real random_angle
local real random_distance
local real angle_diff
local real angle_mult
local real height = 180 + GetRandomReal(-15, 15)
local real move_modifier = 1 + (tower.getProp_Attackspeed() * 0.2)
local Buff b
local real damage
local real crit
local real chance = 0.1 + (tower.getLevel() * 0.004)
local Effect e
call p.avertDestruction()
set p.userReal = Game.getGameTime()
if p.userInt==0 then
set i = Iterate.overUnitsInRangeOfCaster(tower, TARGET_CREEPS, tower.getRange())
set next = i.nextRandom()
if next!=0 then
set angle_diff = bj_RADTODEG * Atan2(next.getY() - p.y, next.getX() - p.x)
set angle_diff = (angle_diff-180) - (p.direction-180)
if angle_diff<-180.0 then
set angle_diff = angle_diff + 360.0
endif
if angle_diff>180.0 then
set angle_diff = angle_diff - 360.0
endif
if angle_diff>0.0 then
set angle_mult = 1
elseif(angle_diff < 0.0) then
set angle_mult = -1
else
set angle_mult = 1
endif
set p.speed = 600 * move_modifier
call p.startBezierInterpolationToUnit(next, 0, GetRandomReal(0.2, 0.4)*angle_mult, GetRandomReal(0.2, 0.4), true)
set p.userInt = 1
call i.destroy()
else
set random_angle = GetRandomReal(0, 360)
set random_distance = GetRandomReal(0, 750)
set end_x = tower.getX() + random_distance * Cos(Deg2Rad(random_angle))
set end_y = tower.getY() + random_distance * Sin(Deg2Rad(random_angle))
set angle_diff = bj_RADTODEG * Atan2(end_y - p.y, end_x - p.x)
set angle_diff = (angle_diff-180) - (p.direction-180)
if angle_diff<-180.0 then
set angle_diff = angle_diff + 360.0
endif
if angle_diff>180.0 then
set angle_diff = angle_diff - 360.0
endif
if angle_diff>0.0 then
set angle_mult = -1
elseif(angle_diff < 0.0) then
set angle_mult = 1
else
set angle_mult = 0
endif
set p.speed = 300 * move_modifier
call p.startBezierInterpolationToPoint(end_x, end_y, height, 0, GetRandomReal(0.2, 0.4)*angle_mult, 0.4)
endif
else
set p.userInt = 0
if target!=0 then
set damage = tower.getCurrentAttackDamageWithBonus() * (1.5 + (tower.getLevel() * 0.06))
set crit = tower.calcAttackMulticrit(0, 0, 0)
call Effect.createSimpleOnUnit("Abilities\\Spells\\Human\\StormBolt\\StormBoltMissile.mdl", target, "chest").destroy()
if tower.userInt2 > 0 then
set damage = ashbringer_thunder(tower, target, damage, crit)
if not tower.calcChance(chance) then
set tower.userInt2 = tower.userInt2 - 1
set e = tower.userInt3
if tower.userInt2 == 0 and e != 0 then
call e.destroy()
set tower.userInt3 = 0
endif
endif
elseif tower.calcChance(chance) then
set damage = ashbringer_thunder(tower, target, damage, crit)
endif
call tower.doAttackDamage(target, damage, crit)
endif
set random_angle = GetRandomReal(0, 360)
set random_distance = GetRandomReal(0, 1000)
set end_x = tower.getX() + random_distance * Cos(Deg2Rad(random_angle))
set end_y = tower.getY() + random_distance * Sin(Deg2Rad(random_angle))
set angle_diff = bj_RADTODEG * Atan2(end_y - p.y, end_x - p.x)
set angle_diff = (angle_diff-180) - (p.direction-180)
if angle_diff<-180.0 then
set angle_diff = angle_diff + 360.0
endif
if angle_diff>180.0 then
set angle_diff = angle_diff - 360.0
endif
if angle_diff>0.0 then
set angle_mult = -1
elseif(angle_diff < 0.0) then
set angle_mult = 1
else
set angle_mult = 0
endif
set p.speed = 300 * move_modifier
call p.startBezierInterpolationToPoint(end_x, end_y, height, 0, GetRandomReal(0.2, 0.4)*angle_mult, 0.4)
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 mod = Modifier.create()
set ashbringer_mjolner_missile = ProjectileType.createInterpolate("Abilities\\Spells\\Human\\StormBolt\\StormBoltMissile.mdl", 300)
call ashbringer_mjolner_missile.disableExplodeOnExpiration()
call ashbringer_mjolner_missile.setEventOnInterpolationFinished(ashbringer_mjolner_order)
set ashbringer_resil_buff = BuffType.create(5, 0.2, true)
call ashbringer_resil_buff.setBuffIcon('@@1@@')
call mod.addModification(MOD_ATTACKSPEED, 0.4, 0.016)
call mod.addModification(MOD_DAMAGE_BASE_PERC, 0.4, 0.016)
call ashbringer_resil_buff.setBuffModifier(mod)
endfunction
[values] => Array
(
[visible] => true
[icon] => ReplaceableTextures\CommandButtons\BTNStormBolt.blp
[name] => Mjolner
[short_explain] => Thor's mighty hammer has a mind of its own, periodically attacking enemies in range.
[long_explain] => Thor's mighty hammer roams the battlefield, looking for enemies. Mjolner will fly at random enemies within Thor's attack range, dealing |cffffff80150%|r attack damage.|n|nMovement speed of Mjolner is increased by |cffffff8020%|r of the Thor's bonus attack speed.|n|n|cffFF8000Level Bonus:|r|n|cffFFFF80+6%|r attack damage
)
)
[1] => Array
(
[name] => On Spell Target
[code] => if Event.getTarget().isACreep() then
call ashbringer_resil_buff.apply(tower, tower, tower.getLevel())
endif
[values] => Array
(
[visible] => true
[icon] => ReplaceableTextures\CommandButtons\BTNPurge.blp
[name] => Strongest Avenger
[short_explain] => Thor has |cffffff80+30%|r debuff resistance and gains increased attack speed and damage when targeted by a creep ability.
[long_explain] => Thor has |cffffff80+30%|r debuff resistance. When he is targeted by a creep ability, he gains |cffffff8040%|r increased attack speed and damage for |cffffff805|r seconds.|n|n|cffFF8000Level Bonus:|r|n|cffFFFF80+1.6%|r attack speed and damage|n|cffFFFF80+0.2|r seconds duration
)
)
[2] => Array
(
[name] => On Tower Destruction
[code] => local Projectile p
call p.destroy()
[values] => Array
(
[visible] => false
[icon] =>
[name] =>
[short_explain] =>
[long_explain] =>
)
)
[3] => Array
(
[name] => On Damage
[code] => local real chance = 0.1 + (tower.getLevel() * 0.004)
local Effect e = tower.userInt3
if tower.userInt2 > 0 then
set Event.damage = ashbringer_thunder(tower, Event.getTarget(), Event.damage, Event.getCriticalMultiplier())
if not tower.calcChance(chance) then
set tower.userInt2 = tower.userInt2 - 1
if tower.userInt2 == 0 and e != 0 then
call e.destroy()
set tower.userInt3 = 0
endif
endif
elseif tower.calcChance(chance) then
set Event.damage = ashbringer_thunder(tower, Event.getTarget(), Event.damage, Event.getCriticalMultiplier())
endif
[values] => Array
(
[ONDAMAGE_chance] => 1.0
[visible] => true
[icon] => ReplaceableTextures\CommandButtons\BTNStaticShock.blp
[name] => God of Thunder
[short_explain] => Attacks and Mjolner have a chance to deal extra |cff00FFFFEnergy|r damage in an area.
[ONDAMAGE_chanceLevelAdd] => 0.0
[long_explain] => Attacks and Mjolner have a |cffffff8010%|r chance on hit to deal |cffffff8050%|r of attack damage as |cff00FFFFEnergy|r damage in |cffffff80175|r area around the target.|n|n|cffFF8000Level Bonus:|r|n|cffFFFF80+0.4%|r chance|n|cffFFFF80+2%|r attack damage
)
)
[4] => Array
(
[name] => Periodic
[code] => local Projectile p = tower.userInt
local real current_time = Game.getGameTime()
//check if hammer broken and respawn
if (current_time - p.userReal) / 25 > 15 then
call p.destroy()
set p = Projectile.createBezierInterpolationFromPointToPoint(ashbringer_mjolner_missile, tower, 0, 0, tower.getX(), tower.getY(), 100, tower.getX(), tower.getY()-500, 180, 0, 0, 0)
set tower.userInt = p
endif
[values] => Array
(
[visible] => false
[PERIODIC_period] => 60
[icon] =>
[name] =>
[short_explain] =>
[long_explain] =>
)
)
[5] => Array
(
[name] => Autocast
[code] => if tower.userInt3 == 0 then
set tower.userInt3 = Effect.create("Abilities\\Spells\\Undead\\UnholyFrenzy\\UnholyFrenzyTarget.mdl", tower.getX(), tower.getY(), tower.getZ()+80, 270)
endif
set tower.userInt2 = tower.userInt2 + 4
if tower.getLevel() >= 25 then
set tower.userInt2 = tower.userInt2 + 2
elseif tower.getLevel() >= 15 then
set tower.userInt2 = tower.userInt2 + 1
endif
[values] => Array
(
[AUTOCAST_cooldown] => 5
[AUTOCAST_autoRange] => 900
[AUTOCAST_manacost] => 100
[icon] => ReplaceableTextures\CommandButtons\BTNThunderStorm.blp
[AUTOCAST_range] => 1000
[AUTOCAST_targetType] => 0
[AUTOCAST_numBuffsBeforeIdle] => 0
[caster_art] => Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
[long_explain] => Grants Thor |cffffff804|r charges which increase the chance to trigger God of Thunder to |cffffff80100%|r. God of Thunder triggered this way has a |cffffff8010%|r chance to not consume a charge.|n|n|cffFF8000Level Bonus:|r|n|cffFFFF80+0.4%|r chance|n|cffFFFF80+1|r charge at level |cffFFFF8015|r and |cffFFFF8025|r
[target_art] =>
[AUTOCAST_autocastType] => AC_TYPE_OFFENSIVE_IMMEDIATE
[AUTOCAST_buffType] => 0
[AUTOCAST_isExtended] => false
[name] => Stormbreaker
[AUTOCAST_targetSelf] => false
[short_explain] => Gives the next few hits a guaranteed chance to trigger God of Thunder.
)
)
[6] => Array
(
[name] => On Tower Creation
[code] => local Projectile p = Projectile.createBezierInterpolationFromPointToPoint(ashbringer_mjolner_missile, tower, 0, 0, tower.getX(), tower.getY(), 100, tower.getX(), tower.getY()-500, 180, 0, 0, 0)
call p.setScale(1.2)
call SetUnitColor(tower.getUnit(), ConvertPlayerColor(0))
set tower.userInt = p
set tower.userInt2 = 0
call tower.modifyProperty(MOD_DEBUFF_RESISTANCE, 0.3)
[values] => Array
(
[visible] => false
[icon] =>
[name] =>
[short_explain] =>
[long_explain] =>
)
)
)
[abilities] => Array
(
[0] => Array
(
[id] => @@0@@
[derivedFrom] => Asph
[oeValues] => Array
(
[Targetattach] => weapon
[Art] => Array
(
)
[Targetattach1] => Array
(
)
[Targetattach2] => Array
(
)
[TargetArt] => Abilities\Spells\Items\AIlb\AIlbTarget.mdl
[Targetattachcount] => 1
[Missileart] => Abilities\Weapons\GryphonRiderMissile\GryphonRiderMissile.mdl
[Unubertip] => -HIDE-
[Cool1] => 0.01
[Name] => thorsphere
)
)
)
[buffs] => Array
(
[0] => Array
(
[id] => @@1@@
[derivedFrom] => BHab
[oeValues] => Array
(
[Buffubertip] => Increased damage and attack speed.
[TargetArt] => Abilities\Spells\Orc\Purge\PurgeBuffTarget.mdl
[Bufftip] => Strongest Avenger
[Buffart] => ReplaceableTextures\CommandButtons\BTNPurge.blp
)
)
)
[units] => Array
(
)
[references] => Array
(
)
[lightning] => Array
(
)
)