diff --git a/data/graphics.js b/data/graphics.js index 9909fdfda..3b7983c9d 100644 --- a/data/graphics.js +++ b/data/graphics.js @@ -3255,7 +3255,71 @@ var BattleMoveAnims = { anim: BattleOtherAnims.shake.anim }, splash: { - anim: BattleOtherAnims.shake.anim + anim: function (battle, args) { + var attacker = args[0]; + + battle.showEffect('waterwisp', { + x: attacker.x + 20, + y: attacker.y + 20, + z: attacker.z, + scale: 0.5, + opacity: 0.1, + time: 150 + }, { + x: attacker.x + 40, + y: attacker.y + 60, + z: attacker.z, + opacity: 0.3 + }, 'ballistic', 'fade'); + battle.showEffect('waterwisp', { + x: attacker.x - 20, + y: attacker.y + 20, + z: attacker.z, + scale: 0.5, + opacity: 0.1, + time: 300 + }, { + x: attacker.x - 40, + y: attacker.y + 60, + z: attacker.z, + opacity: 0.3 + }, 'ballistic', 'fade'); + battle.showEffect('waterwisp', { + x: attacker.x + 20, + y: attacker.y + 40, + z: attacker.z, + scale: 0.5, + opacity: 0.1, + time: 450 + }, { + x: attacker.x + 60, + y: attacker.y + 40, + z: attacker.z, + opacity: 0.3 + }, 'ballistic', 'fade'); + + attacker.anim({ + y: attacker.y + 15, + time: 150 + }, 'decel'); + attacker.anim({ + time: 150 + }, 'accel'); + attacker.anim({ + y: attacker.y + 15, + time: 150 + }, 'decel'); + attacker.anim({ + time: 150 + }, 'accel'); + attacker.anim({ + y: attacker.y + 15, + time: 150 + }, 'decel'); + attacker.anim({ + time: 150 + }, 'accel'); + } }, encore: { anim: function (battle, args) { @@ -5296,10 +5360,21 @@ var BattleMoveAnims = { } }, conversion: { - anim: BattleOtherAnims.selfstatus.anim - }, - conversion2: { - anim: BattleOtherAnims.selfstatus.anim + anim: function (battle, args) { + var attacker = args[0]; + + battle.showEffect(attacker.sp, { + x: attacker.x, + y: attacker.y, + z: attacker.z, + scale: 2, + opacity: 0.3 + }, { + scale: 1, + opacity: 0, + time: 600 + }, 'decel'); + } }, powertrick: { anim: BattleOtherAnims.selfstatus.anim @@ -22043,37 +22118,30 @@ var BattleMoveAnims = { defender.delay(600); defender.anim({ x: defender.x - 5, - yscale: 0.9, time: 75 }, 'swing'); defender.anim({ x: defender.x + 5, - yscale: 0.9, time: 75 }, 'swing'); defender.anim({ x: defender.x - 5, - yscale: 0.9, time: 75 }, 'swing'); defender.anim({ x: defender.x + 5, - yscale: 0.9, time: 75 }, 'swing'); defender.anim({ x: defender.x - 5, - yscale: 0.9, time: 75 }, 'swing'); defender.anim({ x: defender.x + 5, - yscale: 0.9, time: 75 }, 'swing'); defender.anim({ x: defender.x - 5, - yscale: 0.9, time: 75 }, 'swing'); defender.anim({ @@ -25118,6 +25186,166 @@ var BattleMoveAnims = { }, 'decel', 'fade'); } }, + spiritshackle: { + anim: function (battle, args) { + var attacker = args[0]; + var defender = args[1]; + + battle.backgroundEffect('linear-gradient(#440044 30%, #000000', 1000, 0.4); + battle.showEffect('shadowball', { + x: attacker.x, + y: attacker.y, + z: attacker.z, + scale: 1, + opacity: 0.5 + }, { + scale: 3, + opacity: 0 + }, 'linear'); + battle.showEffect('shadowball', { + x: attacker.x, + y: attacker.y - 35, + z: attacker.z, + scale: 0.1, + opacity: 0.4, + time: 0 + }, { + x: attacker.x, + y: attacker.y + 200, + z: attacker.z, + scale: 0.2, + opacity: 0, + time: 300 + }, 'decel'); + + battle.showEffect('shadowball', { + x: defender.x, + y: defender.y + 200, + z: defender.behind(-10), + opacity: 0.4, + xscale: 0.1, + yscale: 5, + time: 575 + }, { + y: defender.y + 150, + z: defender.behind(-10), + opacity: 0, + time: 825 + }, 'decel'); + battle.showEffect('shadowball', { + x: defender.x, + y: defender.y - 50, + z: defender.z, + opacity: 0.4, + xscale: 0.3, + yscale: 0.1, + time: 590 + }, { + xscale: 0.6, + yscale: 0.1, + opacity: 0, + time: 825 + }, 'linear', 'explode'); + + defender.delay(825); + defender.anim({ + z: defender.behind(15), + time: 100 + }, 'swing'); + defender.anim({ + time: 300 + }, 'swing'); + } + }, + brutalswing: { + anim: function (battle, args) { + var attacker = args[0]; + var defender = args[1]; + + battle.backgroundEffect('#000000', 1300, 0.3); + attacker.anim({ + x: defender.x, + y: defender.y + 80, + z: defender.behind(-30), + time: 400 + }, 'ballistic'); + attacker.anim({ + x: defender.x, + y: defender.y, + z: defender.behind(-50), + time: 100 + }); + attacker.anim({ + time: 500 + }, 'ballistic2Back'); + + for (var i = 1; i < args.length; i++) { + defender = args[i]; + defender.delay(700); + defender.anim({ + z: defender.behind(10), + time: 100 + }, 'swing'); + defender.anim({ + time: 200 + }, 'swing'); + defender.anim({ + z: defender.behind(10), + time: 100 + }, 'swing'); + defender.anim({ + time: 300 + }, 'swing'); + + battle.showEffect('shadowball', { + x: defender.x, + y: defender.y, + z: defender.z, + opacity: 0.3, + scale: 0, + time: 700 + }, { + scale: 2, + opacity: 0, + time: 1000 + }, 'linear'); + battle.showEffect('shadowball', { + x: defender.x, + y: defender.y, + z: defender.z, + opacity: 0.3, + scale: 0, + time: 900 + }, { + scale: 2, + opacity: 0, + time: 1200 + }, 'linear'); + } + battle.activityWait(500); + if (args.length > 2) defender = args[2]; + + var xf = [1, -1, 1, -1]; + var yf = [1, -1, -1, 1]; + var xf2 = [1, 0, -1, 0]; + var yf2 = [0, 1, 0, -1]; + + battle.showEffect('shadowball', { + x: attacker.x, + y: attacker.y - 50, + z: defender.behind(-50), + scale: 1, + xscale: 5, + opacity: 0.8, + time: 500 + }, { + scale: 2, + xscale: 8, + opacity: 0.1, + time: 1300 + }, 'decel', 'fade'); + } + }, revelationdance: { anim: function (battle, args) { var attacker = args[0]; @@ -26010,6 +26238,311 @@ var BattleMoveAnims = { }, 'swing'); } }, + coreenforcer: { + anim: function (battle, args) { + var attacker = args[0]; + var defender = args[1]; + + battle.backgroundEffect('#082179', 1600, 0.5, 300); + battle.backgroundEffect('linear-gradient(#46AF71 20%, #1170F0)', 1600, 0.4, 300); + + attacker.anim({ + y: defender.y + 120, + opacity: 0, + time: 300 + }, 'accel'); + attacker.delay(1525); + attacker.anim({ + x: attacker.x, + y: attacker.y + 40, + z: attacker.behind(40), + time: 1 + }); + attacker.anim({ + x: attacker.x, + y: attacker.y, + z: attacker.z, + time: 250 + }, 'decel'); + + attacker.delay(600); + for (var i = 1; i < args.length; i++) { + defender = args[i]; + defender.delay(2075); + defender.anim({ + x: defender.x - 30, + time: 75 + }); + defender.anim({ + x: defender.x + 30, + time: 100 + }); + defender.anim({ + x: defender.x - 30, + time: 100 + }); + defender.anim({ + x: defender.x + 30, + time: 100 + }); + defender.anim({ + x: defender.x - 30, + time: 100 + }); + defender.anim({ + x: defender.x + 30, + time: 100 + }); + defender.anim({ + x: defender.x, + time: 100 + }); + } + if (args.length > 2) defender = args[2]; + + var xstep = (defender.x - defender.leftof(-25)) / 5; + var ystep = (defender.y - 225 - attacker.y) / 5; + var zstep = (defender.z - attacker.z) / 5; + + for (var i = 0; i < 6; i++) { + battle.showEffect('wisp', { + x: attacker.leftof(50) + xstep * (i + 1), + y: (attacker.y + 300) + ystep * (i + 1), + z: attacker.z + zstep * (i + 1), + scale: 1.3, + opacity: 1, + time: 5 * i + 700 + }, { + x: defender.leftof(50) + xstep * (i + 1), + opacity: 0, + time: 100 * i + 800 + }, 'linear'); + } + var xstep = (defender.x - defender.leftof(25)) / 5; + var ystep = (defender.y - 250 - attacker.y) / 5; + var zstep = (defender.behind(-100) - attacker.z) / 5; + + for (var i = 0; i < 6; i++) { + battle.showEffect('wisp', { + x: attacker.leftof(-50) + xstep * (i + 1), + y: (attacker.y + 275) + ystep * (i + 1), + z: attacker.behind(-150) + zstep * (i + 1), + scale: 1.3, + opacity: 1, + time: 5 * i + 900 + }, { + x: defender.leftof(-50) + xstep * (i + 1), + z: attacker.z + zstep * (i + 1), + opacity: 0, + time: 100 * i + 1000 + }, 'linear'); + } + var xstep = (defender.x - defender.leftof(-15)) / 5; + var ystep = (defender.y - 275 - attacker.y - 25) / 5; + var zstep = (defender.z - attacker.z) / 5; + + for (var i = 0; i < 6; i++) { + battle.showEffect('wisp', { + x: attacker.leftof(50) + xstep * (i + 1), + y: (attacker.y + 275) + ystep * (i + 1), + z: attacker.z + zstep * (i + 1), + scale: 1.3, + opacity: 1, + time: 5 * i + 1100 + }, { + x: defender.leftof(50) + xstep * (i + 1), + opacity: 0, + time: 100 * i + 1200 + }, 'linear'); + } + + battle.showEffect('iceball', { + x: attacker.x, + y: attacker.y + 200, + z: attacker.z, + scale: 0.4, + opacity: 0.6, + time: 1100 + }, { + x: defender.x + 60, + y: defender.y + 30, + z: defender.behind(20), + scale: 1, + opacity: 0.6, + time: 1300 + }, 'linear', 'fade'); + battle.showEffect('flareball', { + x: attacker.x, + y: attacker.y + 200, + z: attacker.z, + scale: 0.4, + opacity: 1, + time: 1175 + }, { + x: defender.x - 10, + y: defender.y - 30, + z: defender.behind(20), + scale: 1, + opacity: 0.6, + time: 1375 + }, 'linear', 'fade'); + battle.showEffect('iceball', { + x: attacker.x, + y: attacker.y + 200, + z: attacker.z, + scale: 0.4, + opacity: 1, + time: 1225 + }, { + x: defender.x + 20, + y: defender.y + 10, + z: defender.behind(10), + scale: 1, + opacity: 1, + time: 1425 + }, 'linear', 'fade'); + battle.showEffect('flareball', { + x: attacker.x, + y: attacker.y + 200, + z: attacker.z, + scale: 0.4, + opacity: 1, + time: 1250 + }, { + x: defender.x - 30, + y: defender.y, + z: defender.behind(-10), + scale: 1, + opacity: 0.6, + time: 1450 + }, 'linear', 'fade'); + battle.showEffect('iceball', { + x: attacker.x, + y: attacker.y + 200, + z: attacker.z, + scale: 0.4, + opacity: 1, + time: 1325 + }, { + x: defender.x - 50, + y: defender.y + 10, + z: defender.behind(-20), + scale: 1, + opacity: 1, + time: 1525 + }, 'linear', 'fade'); + battle.showEffect('flareball', { + x: attacker.x, + y: attacker.y + 200, + z: attacker.z, + scale: 0.4, + opacity: 1, + time: 1350 + }, { + x: defender.x - 30, + y: defender.y, + z: defender.behind(-25), + scale: 1, + opacity: 0.6, + time: 1550 + }, 'linear', 'fade'); + battle.showEffect('iceball', { + x: attacker.x, + y: attacker.y + 200, + z: attacker.z, + scale: 0.4, + opacity: 1.4, + time: 1400 + }, { + x: defender.x - 60, + y: defender.y - 10, + z: defender.behind(-40), + scale: 1, + opacity: 1, + time: 1600 + }, 'linear', 'fade'); + battle.showEffect('flareball', { + x: attacker.x, + y: attacker.y + 200, + z: attacker.z, + scale: 0.4, + opacity: 1.4, + time: 1475 + }, { + x: defender.x - 30, + y: defender.y, + z: defender.behind(-30), + scale: 1, + opacity: 0.6, + time: 1675 + }, 'linear', 'fade'); + battle.showEffect('iceball', { + x: attacker.x, + y: attacker.y + 200, + z: attacker.z, + scale: 0.4, + opacity: 1, + time: 1525 + }, { + x: defender.x + 40, + y: defender.y + 10, + z: defender.behind(-40), + scale: 1, + opacity: 1, + time: 1725 + }, 'linear', 'fade'); + battle.showEffect('flareball', { + x: attacker.x, + y: attacker.y + 200, + z: attacker.z, + scale: 0.4, + opacity: 1, + time: 1550 + }, { + x: defender.x + 80, + y: defender.y, + z: defender.behind(-50), + scale: 1, + opacity: 0.6, + time: 1750 + }, 'linear', 'fade'); + + battle.backgroundEffect('#ffffff', 800, 0.8, 2000); + battle.showEffect('fireball', { + x: defender.x + 40, + y: defender.y, + z: defender.z, + scale: 0, + opacity: .6, + time: 2000 + }, { + scale: 6, + opacity: 0 + }, 'linear'); + battle.showEffect('fireball', { + x: defender.x - 40, + y: defender.y - 20, + z: defender.z, + scale: 0, + opacity: .6, + time: 2150 + }, { + scale: 6, + opacity: 0 + }, 'linear'); + battle.showEffect('fireball', { + x: defender.x + 10, + y: defender.y + 20, + z: defender.z, + scale: 0, + opacity: .6, + time: 2300 + }, { + scale: 6, + opacity: 0 + }, 'linear'); + } + }, // z-move animations gigavolthavoc: { @@ -28115,6 +28648,8 @@ BattleMoveAnims['torment'] = {anim:BattleMoveAnims['swagger'].anim}; BattleMoveAnims['mefirst'] = {anim:BattleMoveAnims['mimic'].anim}; +BattleMoveAnims['conversion'] = {anim:BattleMoveAnims['conversion2'].anim}; + BattleMoveAnims['autotomize'] = {anim:BattleMoveAnims['rockpolish'].anim}; BattleMoveAnims['honeclaws'] = {anim:BattleMoveAnims['rockpolish'].anim}; BattleMoveAnims['gearup'] = {anim:BattleMoveAnims['rockpolish'].anim}; @@ -28172,8 +28707,6 @@ BattleMoveAnims['infestation'] = {anim:BattleMoveAnims['bulletseed'].anim}; BattleMoveAnims['nightdaze'] = {anim:BattleMoveAnims['darkpulse'].anim}; -BattleMoveAnims['spiritshackle'] = {anim:BattleMoveAnims['shadowball'].anim}; - BattleMoveAnims['strengthsap'] = {anim:BattleMoveAnims['leechlife'].anim}; BattleMoveAnims['hornattack'] = {anim:BattleMoveAnims['megahorn'].anim}; BattleMoveAnims['lunge'] = {anim:BattleMoveAnims['megahorn'].anim};