From 75cd2fbe79d37d472d4d2e867906ca33efee9407 Mon Sep 17 00:00:00 2001 From: 2ManyProjects Date: Wed, 5 Feb 2025 18:38:54 -0600 Subject: [PATCH] Fixed tile ownership fore FieryCap --- Systems/Cards/{FireyCape.gd => FieryCape.gd} | 6 +++--- Systems/DeckManager.gd | 2 +- Systems/Game/ChessGame.gd | 2 +- Systems/Tile.gd | 2 +- Systems/TileManager.gd | 6 +++++- Systems/Tiles/FireWall.gd | 8 ++++++-- 6 files changed, 17 insertions(+), 9 deletions(-) rename Systems/Cards/{FireyCape.gd => FieryCape.gd} (94%) diff --git a/Systems/Cards/FireyCape.gd b/Systems/Cards/FieryCape.gd similarity index 94% rename from Systems/Cards/FireyCape.gd rename to Systems/Cards/FieryCape.gd index bf022bb..83cc8a7 100644 --- a/Systems/Cards/FireyCape.gd +++ b/Systems/Cards/FieryCape.gd @@ -1,16 +1,16 @@ -class_name FireyCapeCard extends Card +class_name FieryCapeCard extends Card var previous_position: String = "" var fire_tiles: Array[String] = [] func _init(): super._init() - cardName = "Firey Cape" + cardName = "Fiery Cape" rank = Rank.RANK_2 effectType = EffectType.PIECE_EFFECT description = "Leaves a trail of fire that lasts 4 turns. Owner's pieces can pass safely." duration = 3 # Card effect lasts 3 turns - unitWhitelist = [] # Any piece can wear the cape + unitWhitelist = ["Pawn", "Bishop", "Queen", "King", "Rook"] # Any piece can wear the cape func apply_effect(target_piece = null, board_flow = null, game_state = null): if !super.apply_effect(target_piece, board_flow, game_state): diff --git a/Systems/DeckManager.gd b/Systems/DeckManager.gd index d521afe..64c84c8 100644 --- a/Systems/DeckManager.gd +++ b/Systems/DeckManager.gd @@ -22,7 +22,7 @@ func initializeStartingDeck(): deck.clear(); # for i in range(2): # deck.append(DoubleTimeCard.new()) - deck.append(FireyCapeCard.new()) + deck.append(FieryCapeCard.new()) deck.append(ExplosiveBootsCard.new()) deck.append(DoubleTimeCard.new()) deck.append(DrunkDrivingCard.new()) diff --git a/Systems/Game/ChessGame.gd b/Systems/Game/ChessGame.gd index 2e695fe..56dcb54 100644 --- a/Systems/Game/ChessGame.gd +++ b/Systems/Game/ChessGame.gd @@ -49,7 +49,7 @@ func _ready() -> void: func initializeTiles() -> void: - tileManager = TileManager.new() + tileManager = TileManager.new($Flow, self) add_child(tileManager) await get_tree().process_frame tileManager.initialize(boardContainer) diff --git a/Systems/Tile.gd b/Systems/Tile.gd index 74bb72b..074b806 100644 --- a/Systems/Tile.gd +++ b/Systems/Tile.gd @@ -12,7 +12,7 @@ enum TileOwner { ENEMY, # Black player GAME # Neutral/game-owned } - +var game: ChessGame var tile_name: String = "" var description: String = "" var duration: int = -1 # -1 for permanent tiles diff --git a/Systems/TileManager.gd b/Systems/TileManager.gd index 41306b4..793d221 100644 --- a/Systems/TileManager.gd +++ b/Systems/TileManager.gd @@ -3,13 +3,16 @@ extends Node var active_tiles: Dictionary = {} # location: Tile var board_flow: FlowContainer +var game: ChessGame const DoubleMovementTile = preload("res://Systems/Tiles/DoubleMovement.gd") const FireWallTile = preload("res://Systems/Tiles/FireWall.gd") const PawnBoostTile = preload("res://Systems/Tiles/PawnBoost.gd") -func _init(flow: FlowContainer = null) -> void: +func _init(flow: FlowContainer = null, chess_game: ChessGame = null) -> void: if flow: initialize(flow) + + game = chess_game func initialize(flow: FlowContainer) -> void: board_flow = flow @@ -28,6 +31,7 @@ func add_tile(location: String, tile: Tile) -> void: # Remove any existing tile remove_tile(location) + tile.game = game # Add new tile active_tiles[location] = tile tile.effect_expired.connect(func(): remove_tile(location)) diff --git a/Systems/Tiles/FireWall.gd b/Systems/Tiles/FireWall.gd index d5a27a3..a55cc93 100644 --- a/Systems/Tiles/FireWall.gd +++ b/Systems/Tiles/FireWall.gd @@ -7,13 +7,17 @@ func _init(button: Button, is_white: bool, d: int, owner: TileOwner = TileOwner. description = "Captures any piece that moves through" type = TileType.GENERAL duration = d + tile_owner = owner func apply_effect(piece: Pawn = null) -> void: if piece && is_effect_active(): # Only affect enemy pieces based on tile owner var is_enemy = false + print("--------___CHECKING FIREWALL") + print(tile_owner, " ", piece.Item_Color) match tile_owner: TileOwner.PLAYER: # White + print("PLAYER OWNER") is_enemy = piece.Item_Color == 1 # Black pieces are enemy TileOwner.ENEMY: # Black is_enemy = piece.Item_Color == 0 # White pieces are enemy @@ -21,10 +25,10 @@ func apply_effect(piece: Pawn = null) -> void: is_enemy = true # Game-owned fire affects all if is_enemy: + var container = piece.get_parent() as PieceContainer if container: - var board = container.get_parent().get_parent() as ChessGame - board.updatePoints(piece) + game.updatePoints(piece) container.remove_piece() func update_appearance() -> void: