diff --git a/public/battle-anims/thief.json b/public/battle-anims/thief.json index acb3c102e22..6e650198847 100644 --- a/public/battle-anims/thief.json +++ b/public/battle-anims/thief.json @@ -10,7 +10,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -44,7 +44,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -67,7 +67,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -80,7 +80,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -114,7 +114,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -137,7 +137,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -150,7 +150,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -184,7 +184,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -207,7 +207,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -220,7 +220,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -254,7 +254,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -277,7 +277,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -290,7 +290,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -324,7 +324,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -347,7 +347,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -360,7 +360,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -394,7 +394,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -417,7 +417,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -430,7 +430,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -464,7 +464,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -487,7 +487,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -500,7 +500,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -534,7 +534,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -557,7 +557,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -570,7 +570,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -604,7 +604,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -627,7 +627,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -640,7 +640,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -674,7 +674,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -697,7 +697,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -710,7 +710,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -744,7 +744,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -767,7 +767,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -780,7 +780,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -814,7 +814,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -837,7 +837,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -850,7 +850,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -884,7 +884,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -907,7 +907,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -920,7 +920,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -954,7 +954,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -977,7 +977,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -990,7 +990,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -1024,7 +1024,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -1047,7 +1047,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -1060,7 +1060,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -1094,7 +1094,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -1117,7 +1117,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -1130,7 +1130,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -1164,7 +1164,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -1187,7 +1187,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -1200,7 +1200,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -1234,7 +1234,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -1257,7 +1257,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -1270,7 +1270,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -1293,7 +1293,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 2 }, @@ -1304,7 +1304,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -1327,7 +1327,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -1340,7 +1340,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -1363,7 +1363,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 2 }, @@ -1374,7 +1374,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -1397,7 +1397,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -1410,7 +1410,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -1433,7 +1433,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 2 }, @@ -1444,7 +1444,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -1467,7 +1467,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -1480,7 +1480,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -1503,7 +1503,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 2 }, @@ -1514,7 +1514,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -1537,7 +1537,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -1550,7 +1550,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -1573,7 +1573,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 2 }, @@ -1584,7 +1584,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -1607,7 +1607,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 } @@ -1620,7 +1620,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -1643,7 +1643,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 2 }, @@ -1654,7 +1654,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -1677,7 +1677,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 }, @@ -1688,7 +1688,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 2, "target": 2, "graphicFrame": 0, @@ -1724,7 +1724,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -1747,7 +1747,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 2 }, @@ -1758,7 +1758,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -1781,7 +1781,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 }, @@ -1792,7 +1792,7 @@ "zoomY": 150, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 2, "target": 2, "graphicFrame": 0, @@ -1828,7 +1828,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -1851,7 +1851,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 2 }, @@ -1862,7 +1862,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -1885,7 +1885,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 }, @@ -1896,7 +1896,7 @@ "zoomY": 200, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 2, "target": 2, "graphicFrame": 0, @@ -1932,7 +1932,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -1955,7 +1955,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 2 }, @@ -1966,7 +1966,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -1989,7 +1989,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 }, @@ -2000,7 +2000,7 @@ "zoomY": 200, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 2, "target": 2, "graphicFrame": 0, @@ -2036,7 +2036,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -2059,7 +2059,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 2 }, @@ -2070,7 +2070,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -2093,7 +2093,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 }, @@ -2104,7 +2104,7 @@ "zoomY": 150, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 2, "target": 2, "graphicFrame": 0, @@ -2140,7 +2140,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 0, "graphicFrame": 0, @@ -2163,7 +2163,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 2 }, @@ -2174,7 +2174,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 0, "target": 1, "graphicFrame": 0, @@ -2197,7 +2197,7 @@ 0, 0 ], - "locked": false, + "locked": true, "priority": 1, "focus": 1 }, @@ -2208,7 +2208,7 @@ "zoomY": 100, "angle": 0, "mirror": false, - "visible": false, + "visible": true, "blendType": 2, "target": 2, "graphicFrame": 0, diff --git a/public/images/battle_anims/PRAS- Elemental Punch.png b/public/images/battle_anims/PRAS- Elemental Punch.png index f2b56f301f7..8e811954ffd 100644 Binary files a/public/images/battle_anims/PRAS- Elemental Punch.png and b/public/images/battle_anims/PRAS- Elemental Punch.png differ diff --git a/src/data/battle-anims.ts b/src/data/battle-anims.ts index a5b83f0c03e..446c86ef1ac 100644 --- a/src/data/battle-anims.ts +++ b/src/data/battle-anims.ts @@ -502,6 +502,8 @@ function loadAnimAssets(scene: BattleScene, anims: AnimConfig[], startLoad?: boo interface GraphicFrameData { x: number, y: number, + scaleX: number, + scaleY: number, angle: number } @@ -534,7 +536,6 @@ export abstract class BattleAnim { const user = !isOppAnim ? this.user : this.target; const target = !isOppAnim ? this.target : this.user; const isReverseCoords = this.isReverseCoords(); - const graphicScale = this.getGraphicScale(); const userInitialX = user.x; const userInitialY = user.y; @@ -549,21 +550,27 @@ export abstract class BattleAnim { if (frame.target !== AnimFrameTarget.GRAPHIC) continue; + const isGlobal = isGlobalGraphic(this.getAnim().graphic, frame.graphicFrame); const xProgress = frame.focus !== AnimFocus.SCREEN ? Math.min(Math.max(frame.x, 0) / 128, 1) : 0; const initialX = targetInitialX; const initialY = targetInitialY; let xOffset = (!isReverseCoords ? (userInitialX - targetInitialX) : (targetInitialX - userInitialX)); let yOffset = (!isReverseCoords ? (userInitialY - targetInitialY) : (targetInitialY - userInitialY)); const ySpriteOffset = ((userHalfHeight * (1 - xProgress)) + (targetHalfHeight * xProgress)) * -1; - if (graphicScale > 1) { - xOffset -= ((scene.game.canvas.width / 6) * (graphicScale - 1)) / 2; - yOffset -= ((scene.game.canvas.height / 6) * (graphicScale - 1)) / 2; + const globalXOffset = !isGlobal ? 0 : -114; + const globalYOffset = 0; + if (isGlobal) { + xOffset -= ((scene.game.canvas.width / 6) * 0.25) / 2; + yOffset -= ((scene.game.canvas.height / 6) * 0.25) / 2; } - const x = initialX + xOffset * (!isReverseCoords ? 1 : -1) + (frame.x * graphicScale) * (!isReverseCoords ? 1 : -1); + const globalScale = !isGlobal ? 1 : 1.25; + const scaleX = globalScale * (frame.zoomX / 100) *(isReverseCoords === frame.mirror ? 1 : -1); + const scaleY = globalScale * (frame.zoomY / 100); + const x = (initialX + xOffset * (!isReverseCoords ? 1 : -1) + (frame.x * globalScale) * (!isReverseCoords ? 1 : -1)); const y = ((initialY + yOffset * (!isReverseCoords || frame.focus === AnimFocus.USER || frame.focus === AnimFocus.SCREEN ? 1 : -1) - + (frame.y * graphicScale) * (!isReverseCoords || (frame.focus !== AnimFocus.USER_TARGET) ? 1 : -1) + ySpriteOffset)); + + (frame.y * globalScale) * (!isReverseCoords || (frame.focus !== AnimFocus.USER_TARGET) ? 1 : -1) + ySpriteOffset)); const angle = -frame.angle * (!isReverseCoords ? 1 : -1); - ret.set(g++, { x: x, y: y, angle: angle }); + ret.set(g++, { x: x + globalXOffset, y: y + globalYOffset, scaleX: scaleX, scaleY: scaleY, angle: angle }); } return ret; @@ -662,13 +669,11 @@ export abstract class BattleAnim { } moveSprite.setFrame(frame.graphicFrame); //console.log(AnimFocus[frame.focus]); - const graphicScale = this.getGraphicScale(); - moveSprite.setPosition(frameData.get(graphicIndex).x, frameData.get(graphicIndex).y); - moveSprite.setAngle(frameData.get(graphicIndex).angle); - const scaleX = graphicScale * (isReverseCoords === frame.mirror ? 1 : -1); - const scaleY = graphicScale; - moveSprite.setScale(scaleX, scaleY); + const graphicFrameData = frameData.get(graphicIndex); + moveSprite.setPosition(graphicFrameData.x, graphicFrameData.y); + moveSprite.setAngle(graphicFrameData.angle); + moveSprite.setScale(graphicFrameData.scaleX, graphicFrameData.scaleY); moveSprite.setAlpha(frame.opacity / 255); moveSprite.setVisible(frame.visible); @@ -783,16 +788,6 @@ export class MoveAnim extends BattleAnim { isReverseCoords(): boolean { return !this.user.isPlayer() === !this.isOppAnim(); } - - getGraphicScale(): number { - switch (this.move) { - case Moves.SEISMIC_TOSS: - case Moves.FISSURE: - return 1.25; - } - - return 1; - } } export class MoveChargeAnim extends MoveAnim { @@ -811,6 +806,24 @@ export class MoveChargeAnim extends MoveAnim { } } +function isGlobalGraphic(graphic: string, graphicFrame: integer): boolean { + switch (graphic) { + case 'PRAS- Fissure': + return true; + case 'PRAS- Seismic Toss': + switch (graphicFrame) { + case 1: + case 2: + case 3: + case 4: + return false; + } + return true; + } + + return false; +} + export function populateAnims() { return; const commonAnimNames = Utils.getEnumKeys(CommonAnim).map(k => k.toLowerCase());