feat: looping last-move replay animation on opponent's turn#170
feat: looping last-move replay animation on opponent's turn#170
Conversation
Co-authored-by: ProLoser <67395+ProLoser@users.noreply.github.com>
|
|
@copilot add a small pause at the beginning and end of the animation as well as make the move speed up and slow down. The animation position is starting at the center of one point and ending after passing the center of the end point. Instead I want the piece to animate with the chip aligned correctly with the point and not offset 50% |
…destination Co-authored-by: ProLoser <67395+ProLoser@users.noreply.github.com>
Done in afe0e5c. Pauses — keyframe now has a visible hold at both ends: fade-in (0→5%), pause at source (5→12%), ease-in-out slide (12→38%), pause at destination (38→45%), fade-out (45→50%). Ease-in-out — Alignment — replaced the center-offset calculation (
Bar pieces still use center positioning since bar pieces stack centrally. |
|
@copilot the animation is not going far enough across the bar and I want the animation direction to start half the width of the piece earlier and end half the width of the piece earlier than it's currently doing |
…avel direction Co-authored-by: ProLoser <67395+ProLoser@users.noreply.github.com>
Fixed in 983fe8d. Both the source and destination positions are now shifted by
The equal shift on both ends increases the total travel distance by one full piece width (half from the source, half from the destination), which gets the piece fully across the bar. |
|
@copilot the animation should always use the 7th spot on the point regardless of the number of pieces on it |
Co-authored-by: ProLoser <67395+ProLoser@users.noreply.github.com>
Done in f334b3f. The animation now always targets the 7th slot (index 6) on a point, independent of actual piece count:
Bar pieces keep their center positioning since they stack centrally. |
|
@copilot I don't see animated pieces anymore |
…s to match actual stacking direction Co-authored-by: ProLoser <67395+ProLoser@users.noreply.github.com>
Fixed in 14ed7a8. The bug was in the portrait branch of |
|
Try to use the screen relative position of the ghost and highlight to calculate where the animation should start and end |
|
@copilot use the screen relative position of the ghost and highlight to calculate where the animation should start and end |
Co-authored-by: ProLoser <67395+ProLoser@users.noreply.github.com>
Done in d530e29. Red circle = animation start on the ghost piece; blue circle = animation end on the moved/highlighted piece — both are pixel-perfect. |

parseMovePairsto Utils.tssrc/Board/MoveAnimation.tsxwith overlay componentsrc/Board/MoveAnimation.csswith slide animationposition: relativeto#boardin Board.cssindex.tsxwithboardRef,movePairsmemo, and<MoveAnimation>.piece.ghostscreen position for animation start and.piece.movedscreen position for animation end — eliminates all geometric slot math and correctly handles any orientation, stacking, and CSS transforms automatically💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.