Compare commits

..

No commits in common. "681f85a2c46250fc31ef1cb9000e47d53d3b1e85" and "43fe315083874140c1e9045370dc1d87bd5d046a" have entirely different histories.

7 changed files with 46 additions and 74 deletions

View file

@ -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

View file

@ -68,10 +68,10 @@ func _process(delta: float) -> void:
func initializeGame() -> void: func initializeGame() -> void:
setupStyles() setupStyles()
initializeBoard()
setupUI() setupUI()
initializeDeckSystem() initializeDeckSystem()
initializeCardPreview() initializeCardPreview()
initializeBoard()
func initializeCardPreview() -> void: func initializeCardPreview() -> void:
cardPreview = CardPreview.new() cardPreview = CardPreview.new()
@ -224,10 +224,8 @@ func placePiece(position: String, pieceName: String, color: int) -> void:
var piece = summonPiece(pieceName, color) var piece = summonPiece(pieceName, color)
# boardContainer.get_node(position).add_child(piece) # boardContainer.get_node(position).add_child(piece)
var container = boardContainer.get_node(position) as PieceContainer var container = boardContainer.get_node(position)
await container.set_piece(piece, false) container.set_piece(piece)
container.remove_piece(true)
container.set_piece(piece, false)
var coords = position.split("-") var coords = position.split("-")
board[int(coords[1])][int(coords[0])] = piece board[int(coords[1])][int(coords[0])] = piece

View file

@ -10,44 +10,19 @@ func _init() -> void:
effects.name = "Effects" effects.name = "Effects"
add_child(effects) add_child(effects)
func set_piece(new_piece: Pawn) -> void:
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:
remove_piece() # Clean up any existing piece remove_piece() # Clean up any existing piece
piece = new_piece piece = new_piece
if new_piece != null: if new_piece != null:
if animate:
print("POS ", get_global_position())
var targetPos = get_global_position() + Vector2(25, 25)
if new_piece.get_parent():
new_piece.reparent(self)
else:
add_child(new_piece)
await new_piece.animate_movement(targetPos)
else:
if new_piece.get_parent():
new_piece.reparent(self)
else:
add_child(new_piece) add_child(new_piece)
new_piece.position = Vector2(25, 25) new_piece.position = Vector2(25, 25)
func get_piece() -> Pawn: func get_piece() -> Pawn:
return piece return piece
func remove_piece(keep_piece: bool = false) -> Pawn: func remove_piece(keep_piece: bool = false) -> Pawn:
var old_piece = piece var old_piece = piece
if piece != null: if piece != null:
if piece.get_parent() == self:
remove_child(piece) remove_child(piece)
if !keep_piece: if !keep_piece:
piece.queue_free() piece.queue_free()

View file

@ -180,16 +180,10 @@ 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()
@ -219,14 +213,8 @@ func handleCapture(node: PieceContainer) -> void:
if moving_piece && captured_piece: if moving_piece && captured_piece:
game.updatePoints(captured_piece) game.updatePoints(captured_piece)
node.animate_movement(source_container, moving_piece); source_container.remove_piece(true)
node.set_piece(moving_piece)
# 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()
@ -238,7 +226,9 @@ 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")
node.animate_movement(sourceContainer, piece); sourceContainer.remove_piece(true)
node.set_piece(piece)
game.currentlyMovingPiece = piece game.currentlyMovingPiece = piece
if consume: if consume:
game.resolveMoveEffects() game.resolveMoveEffects()

View file

@ -102,7 +102,6 @@ func place_random_game_tiles(num_tiles: int = 6) -> void:
var tile_type = rng.randi() % 3 var tile_type = rng.randi() % 3
var tile: Tile var tile: Tile
return
match tile_type: match tile_type:
0: # DoubleMovementTile tile 0: # DoubleMovementTile tile
tile = WallTile.new(container, is_white, -1) tile = WallTile.new(container, is_white, -1)

View file

@ -87,3 +87,29 @@ 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

View file

@ -137,19 +137,3 @@ func can_move_to_cell(board_flow, location: String, is_capture: bool = false) ->
var piece = container.get_piece() var piece = container.get_piece()
return piece != null && piece.Item_Color != self.Item_Color return piece != null && piece.Item_Color != self.Item_Color
return !container.has_piece() return !container.has_piece()
func animate_movement(target_position: Vector2, duration: float = 1) -> void:
# print("--------------STARTING ANIM--------------", position, " ", target_position)
z_index = 1
var tween = create_tween()
# Make sure the tween is configured properly
tween.set_trans(Tween.TRANS_LINEAR) # or TRANS_CUBIC for smoother movement
tween.set_ease(Tween.EASE_IN_OUT)
var start_pos = position
tween.tween_property(self, "global_position", target_position, duration)
#.from(start_pos)
# Wait for animation to complete
await tween.finished
# print("--------------FINISHED ANIM--------------")