mirror of
https://github.com/smogon/pokemon-showdown-client.git
synced 2026-08-27 21:48:31 -05:00
Add a few move animations
This commit is contained in:
561
data/graphics.js
561
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};
|
||||
|
||||
Reference in New Issue
Block a user