mirror of
https://github.com/smogon/pokemon-showdown-client.git
synced 2026-10-01 07:10:46 -05:00
Update some move animations
- Added rotated fist particle; - Added Revelation Dance and Guardian of Alola move animations; - Updated Memento & Hammer Arm move animation; - Darkest Lariat will use the Flare Blitz move animation; - Updated a few animation backgrounds to use gradients instead of a solid color
This commit is contained in:
386
data/graphics.js
386
data/graphics.js
@@ -122,6 +122,10 @@ var BattleEffects = {
|
||||
url: 'fist.png', // by Pokemon Showdown user SailorCosmos
|
||||
w: 55, h: 49
|
||||
},
|
||||
fist1: {
|
||||
url: 'fist1.png',
|
||||
w: 49, h: 55
|
||||
},
|
||||
foot: {
|
||||
url: 'foot.png', // by Pokemon Showdown user SailorCosmos
|
||||
w: 50, h: 75
|
||||
@@ -2055,7 +2059,7 @@ var BattleOtherAnims = {
|
||||
anim: function (battle, args) {
|
||||
var attacker = args[0];
|
||||
|
||||
battle.backgroundEffect('#B84038', 500, 0.4);
|
||||
battle.backgroundEffect('linear-gradient(#390000 30%, #B84038)', 500, 0.4);
|
||||
battle.showEffect('flareball', {
|
||||
x: attacker.x,
|
||||
y: attacker.y,
|
||||
@@ -9168,20 +9172,20 @@ var BattleMoveAnims = {
|
||||
var attacker = args[0];
|
||||
var defender = args[1];
|
||||
|
||||
battle.showEffect('fist', {
|
||||
battle.showEffect('fist1', {
|
||||
x: defender.x,
|
||||
y: defender.y + 80,
|
||||
z: defender.behind(-15),
|
||||
scale: 1.5,
|
||||
scale: 1.2,
|
||||
opacity: 0.8,
|
||||
time: 400
|
||||
}, {
|
||||
y: defender.y - 10,
|
||||
z: defender.z,
|
||||
scale: 1,
|
||||
scale: 1.6,
|
||||
opacity: 1,
|
||||
time: 500
|
||||
}, 'linear', 'explode');
|
||||
}, 'accel', 'explode');
|
||||
battle.showEffect('shadowball', {
|
||||
x: defender.x,
|
||||
y: defender.y,
|
||||
@@ -11181,7 +11185,7 @@ var BattleMoveAnims = {
|
||||
var attacker = args[0];
|
||||
var defender = args[1];
|
||||
|
||||
battle.backgroundEffect('#B84038', 600, 0.3, 400);
|
||||
battle.backgroundEffect('linear-gradient(#390000 30%, #B84038)', 600, 0.6, 400);
|
||||
battle.showEffect('angry', {
|
||||
x: attacker.x - 10,
|
||||
y: attacker.y + 50,
|
||||
@@ -16412,7 +16416,7 @@ var BattleMoveAnims = {
|
||||
var defender = args[1];
|
||||
|
||||
battle.backgroundEffect('#000000', 500, 0.7);
|
||||
battle.backgroundEffect('#B84038', 600, 0.4, 500);
|
||||
battle.backgroundEffect('linear-gradient(#390000 30%, #B84038)', 600, 0.4, 500);
|
||||
battle.showEffect('fireball', {
|
||||
x: attacker.x,
|
||||
y: attacker.y,
|
||||
@@ -19196,7 +19200,7 @@ var BattleMoveAnims = {
|
||||
});
|
||||
}
|
||||
|
||||
battle.backgroundEffect('#B84038', 1100, 0.4);
|
||||
battle.backgroundEffect('linear-gradient(#390000 30%, #B84038)', 1100, 0.4);
|
||||
battle.showEffect('flareball', {
|
||||
x: attacker.x,
|
||||
y: attacker.y,
|
||||
@@ -20471,7 +20475,7 @@ var BattleMoveAnims = {
|
||||
var attacker = args[0];
|
||||
var defender = args[1];
|
||||
|
||||
battle.backgroundEffect('#B84038', 700, 0.4);
|
||||
battle.backgroundEffect('linear-gradient(#390000 30%, #B84038)', 700, 0.4);
|
||||
battle.showEffect('fireball', {
|
||||
x: attacker.x,
|
||||
y: attacker.y,
|
||||
@@ -20615,7 +20619,7 @@ var BattleMoveAnims = {
|
||||
var attacker = args[0];
|
||||
var defender = args[1];
|
||||
|
||||
battle.backgroundEffect('#B84038', 700, 0.4);
|
||||
battle.backgroundEffect('linear-gradient(#390000 30%, #B84038)', 700, 0.4);
|
||||
battle.showEffect('fireball', {
|
||||
x: attacker.x,
|
||||
y: attacker.y,
|
||||
@@ -21647,20 +21651,21 @@ var BattleMoveAnims = {
|
||||
for (var i = 1; i < args.length; i++) {
|
||||
defender = args[i];
|
||||
defender.anim({
|
||||
y: defender.y - 80,
|
||||
opacity: 0,
|
||||
y: defender.y - 60,
|
||||
time: 300
|
||||
}, 'linear', 'fade');
|
||||
}, 'accel', 'fade');
|
||||
defender.anim({
|
||||
y: defender.y,
|
||||
opacity: 0,
|
||||
y: defender.y,
|
||||
time: 200
|
||||
}, 'linear');
|
||||
});
|
||||
defender.delay(200);
|
||||
defender.anim({
|
||||
opacity: 1,
|
||||
y: defender.y,
|
||||
opacity: 1,
|
||||
time: 200
|
||||
}, 'linear');
|
||||
});
|
||||
}
|
||||
|
||||
if (args.length > 2) defender = args[2];
|
||||
@@ -21891,7 +21896,6 @@ var BattleMoveAnims = {
|
||||
time: 500
|
||||
}, 'decel', 'fade');
|
||||
|
||||
|
||||
battle.showEffect(defender.sp, {
|
||||
x: defender.x,
|
||||
y: defender.y,
|
||||
@@ -22222,7 +22226,7 @@ var BattleMoveAnims = {
|
||||
var attacker = args[0];
|
||||
var defender = args[1];
|
||||
|
||||
battle.backgroundEffect('#B84038', 800, .4);
|
||||
battle.backgroundEffect('linear-gradient(#390000 30%, #B84038)', 800, 0.4);
|
||||
battle.showEffect('flareball', {
|
||||
x: attacker.x,
|
||||
y: attacker.y,
|
||||
@@ -24297,6 +24301,202 @@ var BattleMoveAnims = {
|
||||
}, 'accel', 'explode');
|
||||
}
|
||||
},
|
||||
memento: {
|
||||
anim: function (battle, args) {
|
||||
var attacker = args[0];
|
||||
var defender = args[1];
|
||||
|
||||
battle.backgroundEffect('#000000', 900, 0.2);
|
||||
battle.showEffect(attacker.sp, {
|
||||
x: attacker.x,
|
||||
y: attacker.y,
|
||||
z: attacker.z,
|
||||
opacity: 0,
|
||||
}, {
|
||||
y: attacker.y + 600,
|
||||
yscale: 10,
|
||||
opacity: 0.3,
|
||||
time: 400
|
||||
}, 'accel', 'fade');
|
||||
battle.showEffect(attacker.sp, {
|
||||
x: defender.x,
|
||||
y: defender.y + 500,
|
||||
z: defender.z,
|
||||
yscale: 10,
|
||||
opacity: 0.3,
|
||||
time: 500
|
||||
}, {
|
||||
y: defender.y,
|
||||
opacity: 0,
|
||||
yscale: 1,
|
||||
time: 900
|
||||
}, 'decel', 'fade');
|
||||
}
|
||||
},
|
||||
revelationdance: {
|
||||
anim: function (battle, args) {
|
||||
var attacker = args[0];
|
||||
var defender = args[1];
|
||||
|
||||
battle.backgroundEffect('#000000', 1300, 0.3);
|
||||
battle.showEffect('electroball', {
|
||||
x: attacker.x + 20,
|
||||
y: attacker.y - 60,
|
||||
z: attacker.behind(15),
|
||||
scale: 1,
|
||||
xscale: 2,
|
||||
opacity: 0.5,
|
||||
time: 150
|
||||
}, {
|
||||
scale: 1.5,
|
||||
xscale: 4,
|
||||
opacity: 0
|
||||
}, 'linear', 'fade');
|
||||
battle.showEffect('electroball', {
|
||||
x: attacker.x - 20,
|
||||
y: attacker.y - 60,
|
||||
z: attacker.behind(15),
|
||||
scale: 1,
|
||||
xscale: 2,
|
||||
opacity: 0.5,
|
||||
time: 500
|
||||
}, {
|
||||
scale: 1.5,
|
||||
xscale: 4,
|
||||
opacity: 0
|
||||
}, 'linear', 'fade');
|
||||
battle.showEffect('electroball', {
|
||||
x: attacker.x,
|
||||
y: attacker.y - 60,
|
||||
z: attacker.behind(15),
|
||||
scale: 1,
|
||||
xscale: 2,
|
||||
opacity: 0.5,
|
||||
time: 650
|
||||
}, {
|
||||
scale: 1.5,
|
||||
xscale: 4,
|
||||
opacity: 0
|
||||
}, 'linear', 'fade');
|
||||
battle.showEffect('electroball', {
|
||||
x: attacker.x,
|
||||
y: attacker.y,
|
||||
z: attacker.behind(-15),
|
||||
scale: 0.7,
|
||||
xscale: 1,
|
||||
opacity: 0.8,
|
||||
time: 900
|
||||
}, {
|
||||
x: defender.x,
|
||||
y: defender.y,
|
||||
z: defender.behind(5),
|
||||
time: 1100
|
||||
}, 'linear', 'explode');
|
||||
battle.showEffect('wisp', {
|
||||
x: defender.x + 30,
|
||||
y: defender.y + 25,
|
||||
z: defender.z,
|
||||
scale: 0.2,
|
||||
opacity: 0.6,
|
||||
time: 1100
|
||||
}, {
|
||||
x: defender.x + 50,
|
||||
y: defender.y + 10,
|
||||
opacity: 0.3,
|
||||
time: 1400
|
||||
}, 'accel', 'explode');
|
||||
battle.showEffect('wisp', {
|
||||
x: defender.x - 30,
|
||||
y: defender.y - 20,
|
||||
z: defender.z,
|
||||
scale: 0.2,
|
||||
opacity: 0.6,
|
||||
time: 1200
|
||||
}, {
|
||||
x: defender.x - 50,
|
||||
y: defender.y - 20,
|
||||
opacity: 0.3,
|
||||
time: 1400
|
||||
}, 'accel', 'explode');
|
||||
battle.showEffect('wisp', {
|
||||
x: defender.x + 15,
|
||||
y: defender.y + 10,
|
||||
z: defender.z,
|
||||
scale: 0.2,
|
||||
opacity: 0.7,
|
||||
time: 1300
|
||||
}, {
|
||||
x: defender.x + 35,
|
||||
y: defender.y + 30,
|
||||
opacity: 0.3,
|
||||
time: 1500
|
||||
}, 'accel', 'explode');
|
||||
battle.showEffect('wisp', {
|
||||
x: defender.x - 15,
|
||||
y: defender.y - 30,
|
||||
z: defender.z,
|
||||
scale: 0.2,
|
||||
opacity: 0.7,
|
||||
time: 1300
|
||||
}, {
|
||||
x: defender.x - 35,
|
||||
y: defender.y - 40,
|
||||
opacity: 0.3,
|
||||
time: 1500
|
||||
}, 'accel', 'explode');
|
||||
|
||||
attacker.anim({
|
||||
x: attacker.x + 5,
|
||||
y: attacker.y + 10,
|
||||
time: 100
|
||||
}, 'ballistic');
|
||||
attacker.anim({
|
||||
x: attacker.x + 10,
|
||||
y: attacker.y,
|
||||
time: 50
|
||||
});
|
||||
attacker.anim({
|
||||
x: attacker.x - 5,
|
||||
y: attacker.y + 10,
|
||||
time: 200
|
||||
}, 'ballistic');
|
||||
attacker.anim({
|
||||
x: attacker.x - 10,
|
||||
y: attacker.y,
|
||||
time: 100
|
||||
});
|
||||
attacker.anim({
|
||||
x: attacker.x - 5,
|
||||
y: attacker.y + 10,
|
||||
time: 100
|
||||
}, 'ballistic');
|
||||
attacker.anim({
|
||||
x: attacker.x,
|
||||
y: attacker.y,
|
||||
time: 50
|
||||
});
|
||||
attacker.anim({
|
||||
z: attacker.behind(15),
|
||||
time: 200
|
||||
}, 'decel');
|
||||
attacker.anim({
|
||||
z: attacker.behind(-15),
|
||||
time: 100
|
||||
}, 'accel');
|
||||
attacker.anim({
|
||||
z: attacker.z,
|
||||
time: 300
|
||||
}, 'swing');
|
||||
defender.delay(1100);
|
||||
defender.anim({
|
||||
z: defender.behind(15),
|
||||
time: 100
|
||||
}, 'swing');
|
||||
defender.anim({
|
||||
time: 300
|
||||
}, 'swing');
|
||||
}
|
||||
},
|
||||
gigavolthavoc: {
|
||||
anim: function (battle, args) {
|
||||
var attacker = args[0];
|
||||
@@ -24471,7 +24671,7 @@ var BattleMoveAnims = {
|
||||
var attacker = args[0];
|
||||
var defender = args[1];
|
||||
|
||||
battle.backgroundEffect('#B84038', 800, 0.7);
|
||||
battle.backgroundEffect('linear-gradient(#421800 40%, #B8652F)', 800, 0.7);
|
||||
battle.backgroundEffect('#ffffff', 200, 0.7, 700);
|
||||
battle.backgroundEffect('#000000', 800, 0.7, 900);
|
||||
battle.showEffect('fireball', {
|
||||
@@ -24673,7 +24873,7 @@ var BattleMoveAnims = {
|
||||
var attacker = args[0];
|
||||
var defender = args[1];
|
||||
|
||||
battle.backgroundEffect('#000000', 600, 0.7, 1200);
|
||||
battle.backgroundEffect('linear-gradient(#421800 40%, #B8652F)', 600, 0.7, 1200);
|
||||
battle.showEffect('electroball', {
|
||||
x: defender.x,
|
||||
y: defender.y - 60,
|
||||
@@ -25141,36 +25341,147 @@ var BattleMoveAnims = {
|
||||
battle.activityWait(1450);
|
||||
}
|
||||
},
|
||||
memento: {
|
||||
guardianofalola: {
|
||||
anim: function (battle, args) {
|
||||
var attacker = args[0];
|
||||
var defender = args[1];
|
||||
|
||||
battle.showEffect('poisonwisp', {
|
||||
x: attacker.x,
|
||||
y: attacker.y,
|
||||
z: attacker.z,
|
||||
scale: 1,
|
||||
opacity: 1
|
||||
}, {
|
||||
y: attacker.y + 130,
|
||||
opacity: 0,
|
||||
battle.backgroundEffect('linear-gradient(#421800 40%, #B8652F)', 1700, 0.6, 300);
|
||||
battle.showEffect('fist1', {
|
||||
x: attacker.leftof(200),
|
||||
y: defender.y + 175,
|
||||
z: defender.z,
|
||||
scale: 0.5,
|
||||
opacity: 1,
|
||||
time: 400
|
||||
}, 'accel');
|
||||
battle.showEffect('poisonwisp', {
|
||||
}, {
|
||||
x: defender.x,
|
||||
y: defender.y + 130,
|
||||
y: defender.y + 15,
|
||||
z: defender.z,
|
||||
scale: 5.5,
|
||||
opacity: 0.5,
|
||||
time: 799
|
||||
}, 'accel', 'fade');
|
||||
battle.showEffect('fist1', {
|
||||
x: defender.x,
|
||||
y: defender.y + 15,
|
||||
z: defender.z,
|
||||
scale: 5.5,
|
||||
opacity: 1,
|
||||
time: 800
|
||||
}, {
|
||||
x: defender.x,
|
||||
y: defender.y - 10,
|
||||
z: defender.z,
|
||||
xscale: 10,
|
||||
opacity: 0,
|
||||
time: 1050
|
||||
}, 'linear');
|
||||
battle.showEffect('electroball', {
|
||||
x: defender.x,
|
||||
y: defender.y - 60,
|
||||
z: defender.z,
|
||||
scale: 1,
|
||||
opacity: 0,
|
||||
time: 400
|
||||
xscale: 3,
|
||||
opacity: 1,
|
||||
time: 850
|
||||
}, {
|
||||
scale: 2,
|
||||
xscale: 12,
|
||||
opacity: 0,
|
||||
time: 1200
|
||||
}, 'linear', 'fade');
|
||||
battle.showEffect('electroball', {
|
||||
x: defender.x,
|
||||
y: defender.y - 60,
|
||||
z: defender.z,
|
||||
scale: 1,
|
||||
xscale: 3,
|
||||
opacity: 1,
|
||||
time: 1050
|
||||
}, {
|
||||
scale: 2,
|
||||
xscale: 12,
|
||||
opacity: 0,
|
||||
time: 1500
|
||||
}, 'linear', 'fade');
|
||||
battle.showEffect('electroball', {
|
||||
x: defender.x,
|
||||
y: defender.y - 60,
|
||||
z: defender.z,
|
||||
scale: 1,
|
||||
xscale: 3,
|
||||
opacity: 1,
|
||||
time: 1250
|
||||
}, {
|
||||
scale: 2,
|
||||
xscale: 12,
|
||||
opacity: 0,
|
||||
time: 1800
|
||||
}, 'linear', 'fade');
|
||||
battle.showEffect('electroball', {
|
||||
x: defender.x,
|
||||
y: defender.y,
|
||||
z: defender.z,
|
||||
opacity: 0.7,
|
||||
scale: 1,
|
||||
time: 850
|
||||
}, {
|
||||
scale: 6,
|
||||
opacity: 0,
|
||||
time: 2000
|
||||
}, 'linear');
|
||||
battle.showEffect('wisp', {
|
||||
x: defender.x,
|
||||
y: defender.y + 350,
|
||||
z: defender.z,
|
||||
opacity: 1,
|
||||
scale: 3,
|
||||
yscale: 10,
|
||||
time: 850
|
||||
}, {
|
||||
xscale: 0,
|
||||
opacity: 0.7,
|
||||
time: 1800
|
||||
}, 'accel', 'fade');
|
||||
battle.showEffect('wisp', {
|
||||
x: defender.x,
|
||||
y: defender.y,
|
||||
z: defender.z,
|
||||
opacity: 1,
|
||||
time: 800
|
||||
}, 'decel', 'explode');
|
||||
scale: 6,
|
||||
time: 850
|
||||
}, {
|
||||
scale: 12,
|
||||
opacity: 0.8,
|
||||
time: 2000
|
||||
}, 'linear', 'explode');
|
||||
|
||||
attacker.anim({
|
||||
x: attacker.x,
|
||||
y: attacker.y + 60,
|
||||
z: attacker.behind(40),
|
||||
opacity: 0,
|
||||
time: 250
|
||||
}, 'accel');
|
||||
attacker.delay(1300);
|
||||
attacker.anim({
|
||||
x: attacker.x,
|
||||
y: attacker.y,
|
||||
z: attacker.z,
|
||||
time: 250
|
||||
}, 'decel');
|
||||
defender.delay(750);
|
||||
defender.anim({
|
||||
y: defender.y - 30,
|
||||
z: defender.z,
|
||||
yscale: 0.5,
|
||||
time: 200
|
||||
}, 'swing');
|
||||
defender.delay(700);
|
||||
defender.anim({
|
||||
time: 300
|
||||
}, 'swing');
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -25185,6 +25496,7 @@ BattleMoveAnims['honeclaws'] = {anim:BattleMoveAnims['rockpolish'].anim};
|
||||
BattleMoveAnims['workup'] = {anim:BattleMoveAnims['bulkup'].anim};
|
||||
|
||||
BattleMoveAnims['heatcrash'] = {anim:BattleMoveAnims['flareblitz'].anim};
|
||||
BattleMoveAnims['darkestlariat'] = {anim:BattleMoveAnims['flareblitz'].anim};
|
||||
BattleMoveAnims['flameburst'] = {anim:BattleMoveAnims['shelltrap'].anim};
|
||||
BattleMoveAnims['searingshot'] = {anim:BattleMoveAnims['shelltrap'].anim};
|
||||
BattleMoveAnims['fierydance'] = {anim:BattleMoveAnims['magmastorm'].anim};
|
||||
|
||||
BIN
fx/fist1.png
Normal file
BIN
fx/fist1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
Reference in New Issue
Block a user