From b0ff6ddd89165096237a1e5177918945cfa66ab4 Mon Sep 17 00:00:00 2001 From: 2ManyProjects Date: Wed, 5 Feb 2025 19:50:46 -0600 Subject: [PATCH] Fixed DoubleMovement Tiles --- Systems/DeckManager.gd | 4 ++-- Systems/TileManager.gd | 6 +++--- Systems/Tiles/DoubleMovement.gd | 16 ++++++++++++---- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/Systems/DeckManager.gd b/Systems/DeckManager.gd index 64c84c8..085f7ed 100644 --- a/Systems/DeckManager.gd +++ b/Systems/DeckManager.gd @@ -54,8 +54,8 @@ signal hand_updated -func playCard(card: Card, target_piece: Pawn, board_flow = null, game_state = null): - if !hand.has(card): +func playCard(card: Card, target_piece: Pawn, board_flow = null, game_state = null, avoidHand = false): + if !avoidHand and !hand.has(card): # print("Failed Play Card 1") return false if card.duration > 0: diff --git a/Systems/TileManager.gd b/Systems/TileManager.gd index 793d221..5374065 100644 --- a/Systems/TileManager.gd +++ b/Systems/TileManager.gd @@ -108,10 +108,10 @@ func place_random_game_tiles(num_tiles: int = 6) -> void: var tile: Tile match tile_type: 0: # DoubleMovementTile tile - tile = FireWallTile.new(container, is_white, 3) + tile = DoubleMovementTile.new(container, is_white, -1) 1: # FireWallTile - tile = FireWallTile.new(container, is_white, 3) + tile = DoubleMovementTile.new(container, is_white, -1) 2: # PawnBoostTile tile - tile = FireWallTile.new(container, is_white, 3) + tile = DoubleMovementTile.new(container, is_white, -1) add_tile(pos, tile) \ No newline at end of file diff --git a/Systems/Tiles/DoubleMovement.gd b/Systems/Tiles/DoubleMovement.gd index 59dcb1b..599b413 100644 --- a/Systems/Tiles/DoubleMovement.gd +++ b/Systems/Tiles/DoubleMovement.gd @@ -4,19 +4,27 @@ extends Tile func _init(button: Button, is_white: bool, d: int) -> void: super._init(button, is_white, d) tile_name = "Double Movement" - description = "Any unit that starts its turn here gets double movement for 2 turns" + description = "Any unit that starts its turn here gets double movement for 2 turns, Clears previous card effects" type = TileType.GENERAL tile_owner = TileOwner.GAME duration = d # Permanent tile func apply_effect(piece: Pawn = null) -> void: - print("APPLY DoubleMovementTile") if piece && is_effect_active(): + var deck_manager = game.deckManager + + # Check for and remove any existing card + var piece_id = piece.get_instance_id() + if deck_manager.attached_cards.has(piece_id): + var existing_card = deck_manager.attached_cards[piece_id] + existing_card.remove_effect() + deck_manager.attached_cards.erase(piece_id) + # Add double movement effect to the piece - var deck_manager = piece.get_parent().get_parent().get_parent().deckManager var double_time = DoubleTimeCard.new() double_time.duration = 2 - deck_manager.playCard(double_time, piece) + deck_manager.playCard(double_time, piece, null, null, true) + piece.on_card_effect_changed() func update_appearance() -> void: if is_effect_active() && base_button: