From 482249f48aa71fbf3283dfe1a7aef1d2dda7d0ff Mon Sep 17 00:00:00 2001 From: Ridaz Date: Sat, 27 Jan 2018 22:45:18 +0000 Subject: [PATCH] Update move animations Added a new particle so it can be used by some moves like Haze and Smokescreen --- data/graphics.js | 308 +++++++++++++++++++++++++++++++++++++++++++---- fx/blackwisp.png | Bin 0 -> 20204 bytes 2 files changed, 287 insertions(+), 21 deletions(-) create mode 100644 fx/blackwisp.png diff --git a/data/graphics.js b/data/graphics.js index 1d1f8f90b..9d6e2741a 100644 --- a/data/graphics.js +++ b/data/graphics.js @@ -38,6 +38,10 @@ var BattleEffects = { url: 'mudwisp.png', w: 100, h: 100 }, + blackwisp: { + url: 'blackwisp.png', + w: 100, h: 100 + }, fireball: { url: 'fireball.png', w: 64, h: 64 @@ -4124,12 +4128,6 @@ var BattleMoveAnims = { BattleOtherAnims.dance.anim(battle, args); } }, - haze: { - anim: function (battle, args) { - battle.backgroundEffect('#FFFFFF', 1000, 0.3); - BattleOtherAnims.dance.anim(battle, args); - } - }, electricterrain: { anim: function (battle, args) { battle.backgroundEffect('#FFFF00', 1000, 0.3); @@ -5314,7 +5312,74 @@ var BattleMoveAnims = { anim: function () {} }, mist: { - anim: function () {} + anim: function (battle, args) { + var attacker = args[0]; + var defender = args[1]; + + var xf = [1, -1, 1, -1]; + var yf = [1, -1, -1, 1]; + var xf2 = [1, 0, -1, 0]; + var yf2 = [0, 1, 0, -1]; + + for (var i = 0; i < 4; i++) { + battle.showEffect('waterwisp', { + x: attacker.x, + y: attacker.y, + z: attacker.z, + scale: 0.5, + opacity: 0.7 + }, { + x: attacker.x + 120 * xf[i], + y: attacker.y, + z: attacker.z + 68 * yf[i], + scale: 1, + opacity: 0, + time: 800 + }, 'decel', 'fade'); + battle.showEffect('waterwisp', { + x: attacker.x, + y: attacker.y, + z: attacker.z, + scale: 0.5, + opacity: 0.7 + }, { + x: attacker.x + 113 * xf2[i], + y: attacker.y, + z: attacker.z + 97 * yf2[i], + scale: 1, + opacity: 0, + time: 800 + }, 'decel', 'fade'); + battle.showEffect('wisp', { + x: attacker.x, + y: attacker.y, + z: attacker.z, + scale: 1, + opacity: 0.7 + }, { + x: attacker.x + 120 * xf[i], + y: attacker.y, + z: attacker.z + 68 * yf[i], + scale: 1.5, + opacity: 0, + time: 800 + }, 'decel', 'fade'); + battle.showEffect('wisp', { + x: attacker.x, + y: attacker.y, + z: attacker.z, + scale: 1, + opacity: 0.7 + }, { + x: attacker.x + 113 * xf2[i], + y: attacker.y, + z: attacker.z + 97 * yf2[i], + scale: 1.5, + opacity: 0, + time: 800 + }, 'decel', 'fade'); + } + } }, transform: { anim: function () {} @@ -7707,6 +7772,77 @@ var BattleMoveAnims = { } } }, + haze: { + anim: function (battle, args) { + var attacker = args[0]; + var defender = args[1]; + + 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.backgroundEffect('#000000', 1000, 0.3); + for (var i = 0; i < 4; i++) { + battle.showEffect('blackwisp', { + x: attacker.x, + y: attacker.y, + z: attacker.z, + scale: 0.5, + opacity: 1 + }, { + x: attacker.x + 120 * xf[i], + y: attacker.y, + z: attacker.z + 68 * yf[i], + scale: 1, + opacity: 0, + time: 800 + }, 'decel', 'fade'); + battle.showEffect('blackwisp', { + x: attacker.x, + y: attacker.y, + z: attacker.z, + scale: 0.5, + opacity: 1 + }, { + x: attacker.x + 113 * xf2[i], + y: attacker.y, + z: attacker.z + 97 * yf2[i], + scale: 1, + opacity: 0, + time: 800 + }, 'decel', 'fade'); + battle.showEffect('blackwisp', { + x: attacker.x, + y: attacker.y, + z: attacker.z, + scale: 0.5, + opacity: 1 + }, { + x: attacker.x + 120 * xf[i], + y: attacker.y, + z: attacker.z + 68 * yf[i], + scale: 1, + opacity: 0, + time: 800 + }, 'decel', 'fade'); + battle.showEffect('blackwisp', { + x: attacker.x, + y: attacker.y, + z: attacker.z, + scale: 0.5, + opacity: 1 + }, { + x: attacker.x + 113 * xf2[i], + y: attacker.y, + z: attacker.z + 97 * yf2[i], + scale: 1, + opacity: 0, + time: 800 + }, 'decel', 'fade'); + } + } + }, seedflare: { anim: function (battle, args) { var attacker = args[0]; @@ -8104,7 +8240,7 @@ var BattleMoveAnims = { }, 'accel'); defender.anim({ x: defender.x, - y: defender.y - 30, + y: defender.y - 35, yscale: 0.25, time: 50 }, 'swing'); @@ -15244,8 +15380,43 @@ var BattleMoveAnims = { magmastorm: { anim: function (battle, args) { var defender = args[1]; - battle.backgroundEffect('#CC3300', 900, 0.2); - + battle.backgroundEffect('#CC3300', 900, 0.3); + defender.anim({ + x: defender.x - 5, + time: 75 + }); + defender.anim({ + x: defender.x + 5, + time: 100 + }); + defender.anim({ + x: defender.x - 5, + time: 100 + }); + defender.anim({ + x: defender.x + 5, + time: 100 + }); + defender.anim({ + x: defender.x - 5, + time: 100 + }); + defender.anim({ + x: defender.x + 5, + time: 100 + }); + defender.anim({ + x: defender.x - 5, + time: 100 + }); + defender.anim({ + x: defender.x + 5, + time: 100 + }); + defender.anim({ + x: defender.x, + time: 100 + }); for (var i = 0; i < 4; i++) { battle.showEffect('fireball', { x: defender.x + 50, @@ -17591,6 +17762,57 @@ var BattleMoveAnims = { }, 'decel', 'explode'); } }, + smokescreen: { + anim: function (battle, args) { + var attacker = args[0]; + var defender = args[1]; + + battle.showEffect('blackwisp', { + x: attacker.x, + y: attacker.y, + z: attacker.z, + scale: 0.1, + opacity: 0 + }, { + x: defender.x, + y: defender.y, + z: defender.z, + scale: 0.7, + opacity: 1, + time: 400 + }, 'ballistic', 'explode'); + battle.showEffect('blackwisp', { + x: attacker.x, + y: attacker.y, + z: attacker.z, + scale: 0.1, + opacity: 0, + time: 100 + }, { + x: defender.x + 40, + y: defender.y - 20, + z: defender.z, + scale: 0.7, + opacity: 1, + time: 500 + }, 'ballistic', 'explode'); + battle.showEffect('blackwisp', { + x: attacker.x, + y: attacker.y, + z: attacker.z, + scale: 0.1, + opacity: 0, + time: 200 + }, { + x: defender.x - 30, + y: defender.y - 10, + z: defender.z, + scale: 0.7, + opacity: 1, + time: 600 + }, 'ballistic', 'explode'); + } + }, sludgebomb: { anim: function (battle, args) { var attacker = args[0]; @@ -21291,7 +21513,52 @@ var BattleMoveAnims = { anim: BattleOtherAnims.hydroshot.anim }, octazooka: { - anim: BattleOtherAnims.hydroshot.anim + anim: function (battle, args) { + var attacker = args[0]; + var defender = args[1]; + + battle.showEffect('blackwisp', { + x: attacker.x, + y: attacker.y, + z: attacker.z, + scale: 0.4, + opacity: 0.3 + }, { + x: defender.x + 10, + y: defender.y + 5, + z: defender.behind(30), + scale: 1, + opacity: 0.6 + }, 'decel', 'explode'); + battle.showEffect('blackwisp', { + x: attacker.x, + y: attacker.y, + z: attacker.z, + scale: 0.4, + opacity: 0.3, + time: 75 + }, { + x: defender.x - 10, + y: defender.y - 5, + z: defender.behind(30), + scale: 1, + opacity: 0.6 + }, 'decel', 'explode'); + battle.showEffect('blackwisp', { + x: attacker.x, + y: attacker.y, + z: attacker.z, + scale: 0.4, + opacity: 0.3, + time: 150 + }, { + x: defender.x, + y: defender.y + 5, + z: defender.behind(30), + scale: 1, + opacity: 0.6 + }, 'decel', 'explode'); + } }, waterpledge: { anim: BattleOtherAnims.hydroshot.anim @@ -23824,7 +24091,7 @@ var BattleMoveAnims = { }, 'linear'); } - battle.showEffect('poisonwisp', { + battle.showEffect('blackwisp', { x: attacker.x, y: attacker.y + 165, z: attacker.z, @@ -23839,7 +24106,7 @@ var BattleMoveAnims = { opacity: 0.3, time: 700 }, 'linear', 'explode'); - battle.showEffect('poisonwisp', { + battle.showEffect('blackwisp', { x: attacker.x, y: attacker.y + 165, z: attacker.z, @@ -23854,7 +24121,7 @@ var BattleMoveAnims = { opacity: 0.3, time: 775 }, 'linear', 'explode'); - battle.showEffect('poisonwisp', { + battle.showEffect('blackwisp', { x: attacker.x, y: attacker.y + 165, z: attacker.z, @@ -23869,7 +24136,7 @@ var BattleMoveAnims = { opacity: 0.3, time: 825 }, 'linear', 'explode'); - battle.showEffect('poisonwisp', { + battle.showEffect('blackwisp', { x: attacker.x, y: attacker.y + 165, z: attacker.z, @@ -23884,7 +24151,7 @@ var BattleMoveAnims = { opacity: 0.3, time: 850 }, 'linear', 'explode'); - battle.showEffect('poisonwisp', { + battle.showEffect('blackwisp', { x: attacker.x, y: attacker.y + 165, z: attacker.z, @@ -23899,7 +24166,7 @@ var BattleMoveAnims = { opacity: 0.3, time: 900 }, 'linear', 'explode'); - battle.showEffect('poisonwisp', { + battle.showEffect('blackwisp', { x: attacker.x, y: attacker.y + 165, z: attacker.z, @@ -23915,7 +24182,7 @@ var BattleMoveAnims = { time: 975 }, 'linear', 'explode'); - battle.showEffect('poisonwisp', { + battle.showEffect('blackwisp', { x: defender.x, y: defender.y + 20, z: defender.z, @@ -23930,7 +24197,7 @@ var BattleMoveAnims = { opacity: 0, time: 1500 }, 'ballistic2'); - battle.showEffect('poisonwisp', { + battle.showEffect('blackwisp', { x: defender.x, y: defender.y, z: defender.z, @@ -23945,7 +24212,7 @@ var BattleMoveAnims = { opacity: 0, time: 1550 }, 'linear'); - battle.showEffect('poisonwisp', { + battle.showEffect('blackwisp', { x: defender.x, y: defender.y - 20, z: defender.z, @@ -34721,7 +34988,6 @@ BattleMoveAnims['hyperfang'] = {anim:BattleMoveAnims['superfang'].anim}; BattleMoveAnims['barrage'] = {anim:BattleMoveAnims['magnetbomb'].anim, multihit:true}; BattleMoveAnims['eggbomb'] = {anim:BattleMoveAnims['magnetbomb'].anim}; -BattleMoveAnims['smokescreen'] = {anim:BattleMoveAnims['magnetbomb'].anim}; BattleMoveAnims['spitup'] = {anim:BattleMoveAnims['magnetbomb'].anim}; BattleMoveAnims['rollingkick'] = {anim:BattleMoveAnims['doublekick'].anim}; diff --git a/fx/blackwisp.png b/fx/blackwisp.png new file mode 100644 index 0000000000000000000000000000000000000000..0a485ff070a72624a1db9d05d7c753e88d366e13 GIT binary patch literal 20204 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 CfBZ`T literal 0 HcmV?d00001