simplified movement animations
This commit is contained in:
parent
0715911318
commit
681f85a2c4
4 changed files with 29 additions and 42 deletions
|
|
@ -57,12 +57,12 @@ func apply_effect(target_piece = null, board_flow = null, game_state = null):
|
||||||
# Move piece to final position
|
# Move piece to final position
|
||||||
var final_container = board_flow.get_node(str(current_x) + "-" + str(final_y)) as PieceContainer
|
var final_container = board_flow.get_node(str(current_x) + "-" + str(final_y)) as PieceContainer
|
||||||
|
|
||||||
|
|
||||||
# Important: Need to remove the piece from its current container first
|
# Important: Need to remove the piece from its current container first
|
||||||
# AND keep a reference to it
|
# AND keep a reference to it
|
||||||
target_piece = current_container.get_piece() # Get reference before removing
|
target_piece = current_container.get_piece() # Get reference before removing
|
||||||
current_container.remove_piece(true) # Remove from current container
|
# current_container.remove_piece(true) # Remove from current container
|
||||||
final_container.set_piece(target_piece) # Set in new container
|
# final_container.set_piece(target_piece) # Set in new container
|
||||||
|
final_container.animate_movement(current_container, target_piece)
|
||||||
|
|
||||||
game_state.currentlyMovingPiece = target_piece
|
game_state.currentlyMovingPiece = target_piece
|
||||||
burned = true
|
burned = true
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,13 @@ func _init() -> void:
|
||||||
add_child(effects)
|
add_child(effects)
|
||||||
|
|
||||||
|
|
||||||
|
func animate_movement(source_container: PieceContainer, moving_piece: Pawn) -> void :
|
||||||
|
await set_piece(moving_piece)
|
||||||
|
source_container.remove_piece(true)
|
||||||
|
remove_piece(true)
|
||||||
|
set_piece(moving_piece, false)
|
||||||
|
|
||||||
|
|
||||||
func set_piece(new_piece: Pawn, animate: bool = true) -> void:
|
func set_piece(new_piece: Pawn, animate: bool = true) -> void:
|
||||||
remove_piece() # Clean up any existing piece
|
remove_piece() # Clean up any existing piece
|
||||||
piece = new_piece
|
piece = new_piece
|
||||||
|
|
|
||||||
|
|
@ -180,10 +180,16 @@ func handleCastling(node: PieceContainer) -> void:
|
||||||
var king = kingContainer.get_piece()
|
var king = kingContainer.get_piece()
|
||||||
var rook = rookContainer.get_piece()
|
var rook = rookContainer.get_piece()
|
||||||
|
|
||||||
kingContainer.remove_piece(true)
|
# kingContainer.remove_piece(true)
|
||||||
rookContainer.remove_piece(true)
|
# rookContainer.remove_piece(true)
|
||||||
kingTargetContainer.set_piece(king)
|
# kingTargetContainer.set_piece(king)
|
||||||
rookTargetContainer.set_piece(rook)
|
# rookTargetContainer.set_piece(rook)
|
||||||
|
|
||||||
|
kingTargetContainer.animate_movement(kingContainer, king);
|
||||||
|
|
||||||
|
rookTargetContainer.animate_movement(rookContainer, rook);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
game.currentlyMovingPiece = king
|
game.currentlyMovingPiece = king
|
||||||
game.resolveMoveEffects()
|
game.resolveMoveEffects()
|
||||||
|
|
@ -213,10 +219,14 @@ func handleCapture(node: PieceContainer) -> void:
|
||||||
|
|
||||||
if moving_piece && captured_piece:
|
if moving_piece && captured_piece:
|
||||||
game.updatePoints(captured_piece)
|
game.updatePoints(captured_piece)
|
||||||
await node.set_piece(moving_piece)
|
node.animate_movement(source_container, moving_piece);
|
||||||
source_container.remove_piece(true)
|
|
||||||
node.remove_piece(true)
|
|
||||||
node.set_piece(moving_piece, false)
|
# await node.set_piece(moving_piece)
|
||||||
|
# source_container.remove_piece(true)
|
||||||
|
# node.remove_piece(true)
|
||||||
|
# node.set_piece(moving_piece, false)
|
||||||
|
|
||||||
game.currentlyMovingPiece = moving_piece
|
game.currentlyMovingPiece = moving_piece
|
||||||
game.resolveMoveEffects()
|
game.resolveMoveEffects()
|
||||||
|
|
||||||
|
|
@ -228,11 +238,7 @@ func handleRegularMove(node: PieceContainer, consume: bool) -> void:
|
||||||
var sourceContainer = game.get_node("Flow/" + game.selectedNode) as PieceContainer
|
var sourceContainer = game.get_node("Flow/" + game.selectedNode) as PieceContainer
|
||||||
var piece = sourceContainer.get_piece()
|
var piece = sourceContainer.get_piece()
|
||||||
print("Removing Piece 1")
|
print("Removing Piece 1")
|
||||||
await node.set_piece(piece)
|
node.animate_movement(sourceContainer, piece);
|
||||||
sourceContainer.remove_piece(true)
|
|
||||||
node.remove_piece(true)
|
|
||||||
node.set_piece(piece, false)
|
|
||||||
|
|
||||||
game.currentlyMovingPiece = piece
|
game.currentlyMovingPiece = piece
|
||||||
if consume:
|
if consume:
|
||||||
game.resolveMoveEffects()
|
game.resolveMoveEffects()
|
||||||
|
|
|
||||||
|
|
@ -87,29 +87,3 @@ func getValidMoves(board_flow, current_location: String) -> Dictionary:
|
||||||
return moves
|
return moves
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# func getValidMoves(board_flow, current_location: String) -> Dictionary:
|
|
||||||
# var moves = {
|
|
||||||
# "regular_moves": [],
|
|
||||||
# "special_moves": []
|
|
||||||
# }
|
|
||||||
|
|
||||||
# var loc = current_location.split("-")
|
|
||||||
# var x = int(loc[0])
|
|
||||||
# var y = int(loc[1])
|
|
||||||
|
|
||||||
# # All possible L-shaped moves
|
|
||||||
# var knight_moves = [
|
|
||||||
# [-2, -1], [-2, 1],
|
|
||||||
# [-1, -2], [-1, 2],
|
|
||||||
# [1, -2], [1, 2],
|
|
||||||
# [2, -1], [2, 1]
|
|
||||||
# ]
|
|
||||||
|
|
||||||
# for move in knight_moves:
|
|
||||||
# var new_loc = str(x + move[0]) + "-" + str(y + move[1])
|
|
||||||
# if is_valid_cell(board_flow, new_loc):
|
|
||||||
# if can_move_to_cell(board_flow, new_loc) || can_move_to_cell(board_flow, new_loc, true):
|
|
||||||
# moves.regular_moves.append(new_loc)
|
|
||||||
|
|
||||||
# return moves
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue