GOdot 4.4 uid and added better card ui in game
This commit is contained in:
parent
c3b166112b
commit
025a690b48
73 changed files with 271 additions and 107 deletions
1
Systems/Card.gd.uid
Normal file
1
Systems/Card.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://eqadab7yd0qq
|
||||
|
|
@ -1,8 +1,10 @@
|
|||
class_name CardDisplay extends Control
|
||||
|
||||
const CARD_WIDTH = 150
|
||||
const CARD_HEIGHT = 250
|
||||
# Base card dimensions
|
||||
const BASE_CARD_WIDTH = 150
|
||||
const BASE_CARD_HEIGHT = 250
|
||||
const CARD_MARGIN = 10
|
||||
const MAX_HAND_WIDTH_RATIO = 0.7 # Maximum portion of screen width to use for hand
|
||||
|
||||
var cardDisplays = [] # Array of {panel: Node, card: Card}
|
||||
var selectedCard = null
|
||||
|
|
@ -18,7 +20,7 @@ func _ready():
|
|||
container = HBoxContainer.new()
|
||||
container.name = "Hand"
|
||||
container.position = Vector2(10, 500)
|
||||
container.custom_minimum_size = Vector2(0, CARD_HEIGHT)
|
||||
container.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||
add_child(container)
|
||||
|
||||
# Create a hover preview panel that will follow the mouse
|
||||
|
|
@ -28,87 +30,69 @@ func _ready():
|
|||
|
||||
func update_hand(hand: Array):
|
||||
clear_cards()
|
||||
|
||||
# Calculate card sizes based on hand size and screen width
|
||||
var card_size = calculate_card_size(hand.size())
|
||||
|
||||
for card in hand:
|
||||
add_card_display(card)
|
||||
add_card_display(card, card_size)
|
||||
|
||||
func add_card_display(card):
|
||||
func calculate_card_size(hand_size: int) -> Vector2:
|
||||
# Get screen dimensions
|
||||
var screen_width = get_viewport_rect().size.x
|
||||
var screen_height = get_viewport_rect().size.y
|
||||
|
||||
var max_hand_width = screen_width * MAX_HAND_WIDTH_RATIO
|
||||
var width_per_card = max_hand_width / max(hand_size, 1)
|
||||
|
||||
# Ensure minimum size and preserve aspect ratio
|
||||
var card_width = clamp(width_per_card - CARD_MARGIN, 80, BASE_CARD_WIDTH)
|
||||
var card_height = card_width * (BASE_CARD_HEIGHT / BASE_CARD_WIDTH)
|
||||
|
||||
# Ensure cards don't extend off the bottom of the screen
|
||||
var max_height = screen_height * 0.4 # Use at most 40% of screen height
|
||||
if card_height > max_height:
|
||||
card_height = max_height
|
||||
card_width = card_height * (BASE_CARD_WIDTH / BASE_CARD_HEIGHT)
|
||||
|
||||
return Vector2(card_width, card_height)
|
||||
|
||||
func add_card_display(card, card_size: Vector2 = Vector2(BASE_CARD_WIDTH, BASE_CARD_HEIGHT)):
|
||||
# Create a container for the card
|
||||
var cardContainer = PanelContainer.new()
|
||||
cardContainer.custom_minimum_size = Vector2(CARD_WIDTH, CARD_HEIGHT)
|
||||
cardContainer.custom_minimum_size = card_size
|
||||
|
||||
# Create a stylebox for selection highlighting
|
||||
# var style = StyleBoxFlat.new()
|
||||
# style.bg_color = Utils.DARK_CELL
|
||||
# style.corner_radius_top_left = 5
|
||||
# style.corner_radius_top_right = 5
|
||||
# style.corner_radius_bottom_left = 5
|
||||
# style.corner_radius_bottom_right = 5
|
||||
# cardContainer.add_theme_stylebox_override("panel", style)
|
||||
var style = StyleBoxFlat.new()
|
||||
style.bg_color = Utils.DARK_CELL
|
||||
style.corner_radius_top_left = 5
|
||||
style.corner_radius_top_right = 5
|
||||
style.corner_radius_bottom_left = 5
|
||||
style.corner_radius_bottom_right = 5
|
||||
cardContainer.add_theme_stylebox_override("panel", style)
|
||||
|
||||
# Create a simplified card view
|
||||
var vbox = VBoxContainer.new()
|
||||
vbox.set_meta("card_id", card.id)
|
||||
cardContainer.add_child(vbox)
|
||||
# Create compact card display
|
||||
var compact_card = CompactCardDisplay.new()
|
||||
compact_card.set_anchors_preset(Control.PRESET_FULL_RECT)
|
||||
compact_card.mouse_filter = Control.MOUSE_FILTER_PASS
|
||||
|
||||
# Card name
|
||||
var nameLabel = Label.new()
|
||||
nameLabel.text = card.cardName
|
||||
nameLabel.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
nameLabel.add_theme_font_size_override("font_size", 16)
|
||||
vbox.add_child(nameLabel)
|
||||
|
||||
# Card rank with color
|
||||
var rankLabel = Label.new()
|
||||
rankLabel.text = "Rank " + str(card.rank)
|
||||
rankLabel.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
|
||||
# Apply color based on rank
|
||||
match card.rank:
|
||||
Card.Rank.RANK_0:
|
||||
rankLabel.add_theme_color_override("font_color", Color(0.9, 0.1, 0.1, 1.0)) # Red
|
||||
Card.Rank.RANK_1:
|
||||
rankLabel.add_theme_color_override("font_color", Color(0.9, 0.6, 0.1, 1.0)) # Orange
|
||||
Card.Rank.RANK_2:
|
||||
rankLabel.add_theme_color_override("font_color", Color(0.1, 0.7, 0.1, 1.0)) # Green
|
||||
Card.Rank.RANK_3:
|
||||
rankLabel.add_theme_color_override("font_color", Color(0.1, 0.7, 0.9, 1.0)) # Blue
|
||||
|
||||
vbox.add_child(rankLabel)
|
||||
|
||||
# Card description (truncated)
|
||||
var descLabel = Label.new()
|
||||
descLabel.text = card.description
|
||||
if descLabel.text.length() > 50:
|
||||
descLabel.text = descLabel.text.substr(0, 50) + "..."
|
||||
descLabel.autowrap_mode = TextServer.AUTOWRAP_WORD
|
||||
descLabel.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
descLabel.custom_minimum_size = Vector2(CARD_WIDTH - 20, 0)
|
||||
vbox.add_child(descLabel)
|
||||
|
||||
# Unit whitelist
|
||||
var unitLabel = Label.new()
|
||||
if card.unitWhitelist.is_empty():
|
||||
unitLabel.text = "Any piece"
|
||||
else:
|
||||
unitLabel.text = ", ".join(card.unitWhitelist)
|
||||
unitLabel.autowrap_mode = TextServer.AUTOWRAP_WORD
|
||||
unitLabel.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
unitLabel.custom_minimum_size = Vector2(CARD_WIDTH - 20, 0)
|
||||
vbox.add_child(unitLabel)
|
||||
# Add to container
|
||||
cardContainer.add_child(compact_card)
|
||||
compact_card.set_card(card)
|
||||
|
||||
# Connect signals
|
||||
cardContainer.gui_input.connect(func(event): _on_card_clicked(event, card))
|
||||
|
||||
# Connect hover signals for preview
|
||||
cardContainer.mouse_entered.connect(func(): _on_card_mouse_entered(card))
|
||||
cardContainer.mouse_exited.connect(func(): _on_card_mouse_exited())
|
||||
|
||||
# Add to hand container
|
||||
container.add_child(cardContainer)
|
||||
|
||||
# Add to display list
|
||||
cardDisplays.append({
|
||||
"panel": cardContainer,
|
||||
"card": card
|
||||
})
|
||||
container.add_child(cardContainer)
|
||||
|
||||
func _on_card_clicked(event: InputEvent, card: Card):
|
||||
if event is InputEventMouseButton and event.pressed:
|
||||
|
|
@ -121,6 +105,7 @@ func _on_card_clicked(event: InputEvent, card: Card):
|
|||
|
||||
func _on_card_mouse_entered(card: Card):
|
||||
# Show card preview when hovering
|
||||
print("_on_card_mouse_entered")
|
||||
currently_hovered_card = card
|
||||
hoveredPreview.preview_card(card)
|
||||
hoveredPreview.visible = true
|
||||
|
|
@ -159,19 +144,17 @@ func _process(delta):
|
|||
func highlight_selectedCard(selected: Card) -> void:
|
||||
for card_data in cardDisplays:
|
||||
var panel = card_data.panel
|
||||
var style = StyleBoxFlat.new()
|
||||
style.bg_color = Utils.DARK_CELL # Default color
|
||||
|
||||
# Style corners
|
||||
style.corner_radius_top_left = 5
|
||||
style.corner_radius_top_right = 5
|
||||
style.corner_radius_bottom_left = 5
|
||||
style.corner_radius_bottom_right = 5
|
||||
var compact_card = panel.get_child(0) as CompactCardDisplay
|
||||
|
||||
if selected && card_data.card.id == selected.id:
|
||||
style.bg_color = Color(0.4, 0.6, 0.4, 1) # Selected color
|
||||
|
||||
panel.add_theme_stylebox_override("panel", style)
|
||||
# Apply highlighting to the CompactCardDisplay
|
||||
if compact_card:
|
||||
compact_card.set_selected(true)
|
||||
else:
|
||||
# Reset highlighting
|
||||
if compact_card:
|
||||
compact_card.set_selected(false)
|
||||
|
||||
func get_card_by_uuid(uuid: String) -> Card:
|
||||
for card_data in cardDisplays:
|
||||
|
|
@ -186,4 +169,4 @@ func clear_cards():
|
|||
for card_data in cardDisplays:
|
||||
card_data.panel.queue_free()
|
||||
cardDisplays.clear()
|
||||
selectedCard = null
|
||||
selectedCard = null
|
||||
|
|
|
|||
1
Systems/CardDisplay.gd.uid
Normal file
1
Systems/CardDisplay.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dgsj76xih6r3y
|
||||
1
Systems/CardPreview.gd.uid
Normal file
1
Systems/CardPreview.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://p4ahefeutov0
|
||||
|
|
@ -33,7 +33,8 @@ func preview_card(card: Card):
|
|||
if !card:
|
||||
hide_preview()
|
||||
return
|
||||
|
||||
# if !is_inside_tree():
|
||||
# await ready
|
||||
# Update all card information
|
||||
card_name_label.text = card.cardName
|
||||
|
||||
|
|
|
|||
1
Systems/CardPreviewPanel.gd.uid
Normal file
1
Systems/CardPreviewPanel.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://2xcreiq6lhe2
|
||||
1
Systems/Cards/CardBankItem.gd.uid
Normal file
1
Systems/Cards/CardBankItem.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://b1d17jfxagdc7
|
||||
1
Systems/Cards/CardSlot.gd.uid
Normal file
1
Systems/Cards/CardSlot.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://b5888fqblsco5
|
||||
1
Systems/Cards/Doubletime.gd.uid
Normal file
1
Systems/Cards/Doubletime.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://o16wgudelf8x
|
||||
1
Systems/Cards/Drunkdriving.gd.uid
Normal file
1
Systems/Cards/Drunkdriving.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bayyvtfwpshsh
|
||||
1
Systems/Cards/Explosiveboots.gd.uid
Normal file
1
Systems/Cards/Explosiveboots.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://64bdg86r6t4o
|
||||
1
Systems/Cards/FieryCape.gd.uid
Normal file
1
Systems/Cards/FieryCape.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://cpgq5itsb2l8j
|
||||
1
Systems/Cards/Fierytrail.gd.uid
Normal file
1
Systems/Cards/Fierytrail.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://ca4j0d6hrcm4x
|
||||
1
Systems/Cards/Hopscotch.gd.uid
Normal file
1
Systems/Cards/Hopscotch.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://5w8amumsdpto
|
||||
1
Systems/Cards/Supernova.gd.uid
Normal file
1
Systems/Cards/Supernova.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://cvldhayf5ket0
|
||||
109
Systems/CompactCardDisplay.gd
Normal file
109
Systems/CompactCardDisplay.gd
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
extends Panel
|
||||
class_name CompactCardDisplay
|
||||
|
||||
# Node references (will be created programmatically)
|
||||
var card_name_label: Label
|
||||
var rank_label: Label
|
||||
var description_label: Label
|
||||
var effect_type_label: Label
|
||||
|
||||
# Card rank colors (same as other card components)
|
||||
var rank_colors = {
|
||||
Card.Rank.RANK_0: Color(0.9, 0.1, 0.1, 1.0), # Red
|
||||
Card.Rank.RANK_1: Color(0.9, 0.6, 0.1, 1.0), # Orange
|
||||
Card.Rank.RANK_2: Color(0.1, 0.7, 0.1, 1.0), # Green
|
||||
Card.Rank.RANK_3: Color(0.1, 0.7, 0.9, 1.0) # Blue
|
||||
}
|
||||
|
||||
# Effect type descriptions
|
||||
var effect_type_names = {
|
||||
Card.EffectType.MOVEMENT_MODIFIER: "Movement Modifier",
|
||||
Card.EffectType.BOARD_EFFECT: "Board Effect",
|
||||
Card.EffectType.PIECE_EFFECT: "Piece Effect",
|
||||
Card.EffectType.SPECIAL_ACTION: "Special Action"
|
||||
}
|
||||
|
||||
var current_card = null
|
||||
|
||||
func _ready():
|
||||
# Create a stylish background
|
||||
var style = StyleBoxFlat.new()
|
||||
style.bg_color = Color(0.15, 0.15, 0.15, 1.0)
|
||||
style.corner_radius_top_left = 5
|
||||
style.corner_radius_top_right = 5
|
||||
style.corner_radius_bottom_left = 5
|
||||
style.corner_radius_bottom_right = 5
|
||||
style.border_width_left = 2
|
||||
style.border_width_top = 2
|
||||
style.border_width_right = 2
|
||||
style.border_width_bottom = 2
|
||||
style.border_color = Color(0.3, 0.3, 0.3)
|
||||
add_theme_stylebox_override("panel", style)
|
||||
|
||||
# Create a content container
|
||||
var content = VBoxContainer.new()
|
||||
content.set_anchors_preset(Control.PRESET_FULL_RECT)
|
||||
content.add_theme_constant_override("separation", 2) # Tight spacing
|
||||
add_child(content)
|
||||
|
||||
card_name_label = Label.new()
|
||||
card_name_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
card_name_label.add_theme_font_size_override("font_size", 12)
|
||||
card_name_label.clip_text = true # Prevent overflow
|
||||
content.add_child(card_name_label)
|
||||
|
||||
rank_label = Label.new()
|
||||
rank_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
rank_label.add_theme_font_size_override("font_size", 10)
|
||||
content.add_child(rank_label)
|
||||
|
||||
# Create description label (limited to 2-3 lines)
|
||||
description_label = Label.new()
|
||||
description_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
description_label.add_theme_font_size_override("font_size", 9)
|
||||
description_label.autowrap_mode = TextServer.AUTOWRAP_WORD
|
||||
description_label.max_lines_visible = 3
|
||||
description_label.size_flags_vertical = SIZE_EXPAND_FILL
|
||||
content.add_child(description_label)
|
||||
|
||||
effect_type_label = Label.new()
|
||||
effect_type_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
effect_type_label.add_theme_font_size_override("font_size", 8)
|
||||
effect_type_label.clip_text = true
|
||||
content.add_child(effect_type_label)
|
||||
|
||||
|
||||
func set_selected(is_selected: bool) -> void:
|
||||
var style = get_theme_stylebox("panel").duplicate()
|
||||
|
||||
if is_selected:
|
||||
style.bg_color = Utils.GREEN_CELL # Selected color
|
||||
else:
|
||||
style.bg_color = Utils.DARK_CELL
|
||||
|
||||
add_theme_stylebox_override("panel", style)
|
||||
|
||||
func set_card(card: Card):
|
||||
if !card:
|
||||
return
|
||||
|
||||
if !is_inside_tree():
|
||||
await ready
|
||||
|
||||
current_card = card
|
||||
|
||||
card_name_label.text = card.cardName
|
||||
|
||||
rank_label.text = "Rank " + str(card.rank)
|
||||
if card.rank in rank_colors:
|
||||
rank_label.add_theme_color_override("font_color", rank_colors[card.rank])
|
||||
var style = get_theme_stylebox("panel").duplicate()
|
||||
style.border_color = rank_colors[card.rank]
|
||||
add_theme_stylebox_override("panel", style)
|
||||
|
||||
description_label.text = card.description
|
||||
|
||||
if card.effectType in effect_type_names:
|
||||
effect_type_label.text = "Effect: " + effect_type_names[card.effectType]
|
||||
else:
|
||||
effect_type_label.text = "Effect: Unknown"
|
||||
1
Systems/CompactCardDisplay.gd.uid
Normal file
1
Systems/CompactCardDisplay.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dm6uv77n0roen
|
||||
1
Systems/DeckManager.gd.uid
Normal file
1
Systems/DeckManager.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bdwsolgdmo51y
|
||||
1
Systems/FairyStockfish/ServerManager.gd.uid
Normal file
1
Systems/FairyStockfish/ServerManager.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dae6g5472sh26
|
||||
1
Systems/FairyStockfish/StockfishClient.gd.uid
Normal file
1
Systems/FairyStockfish/StockfishClient.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bnxxex87ax7hc
|
||||
1
Systems/Game/CameraController.gd.uid
Normal file
1
Systems/Game/CameraController.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bdbap6f4c4d5w
|
||||
|
|
@ -251,7 +251,7 @@ func setupUI() -> void:
|
|||
|
||||
var reset_button = Button.new()
|
||||
reset_button.text = "Reset View"
|
||||
reset_button.size = Vector2(100, 30)
|
||||
reset_button.size = Vector2(0, 30)
|
||||
reset_button.pressed.connect(func(): cameraController.reset_view())
|
||||
|
||||
var control_container = VBoxContainer.new()
|
||||
|
|
|
|||
1
Systems/Game/ChessGame.gd.uid
Normal file
1
Systems/Game/ChessGame.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://cbcu68o863pfp
|
||||
1
Systems/Game/DeckManagerScreen.gd.uid
Normal file
1
Systems/Game/DeckManagerScreen.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://vxufsih5pgeu
|
||||
1
Systems/Game/Game.gd.uid
Normal file
1
Systems/Game/Game.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://cbaoxhgtk4td8
|
||||
1
Systems/Game/GameMenuButton.gd.uid
Normal file
1
Systems/Game/GameMenuButton.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bfjmon81nckns
|
||||
1
Systems/Game/GameMenuScreen.gd.uid
Normal file
1
Systems/Game/GameMenuScreen.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://j0m4rwr86oi6
|
||||
1
Systems/Game/Menu/MenuContainer.gd.uid
Normal file
1
Systems/Game/Menu/MenuContainer.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bf5ljae05pvla
|
||||
1
Systems/Game/Menu/MenuOption.gd.uid
Normal file
1
Systems/Game/Menu/MenuOption.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dbm5dv81lbdod
|
||||
1
Systems/Game/Menu/MenuTextOption.gd.uid
Normal file
1
Systems/Game/Menu/MenuTextOption.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://c47i2m0ll101x
|
||||
1
Systems/PieceContainer.gd.uid
Normal file
1
Systems/PieceContainer.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://btu5staehrl5k
|
||||
1
Systems/StateMachine/ChessGameState.gd.uid
Normal file
1
Systems/StateMachine/ChessGameState.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bcp8cle0ptyxp
|
||||
1
Systems/StateMachine/Constants.gd.uid
Normal file
1
Systems/StateMachine/Constants.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://buuc2ua0y55qu
|
||||
1
Systems/StateMachine/GameStates/ApplyCardEffects.gd.uid
Normal file
1
Systems/StateMachine/GameStates/ApplyCardEffects.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dwshyvjsmtsnk
|
||||
1
Systems/StateMachine/GameStates/ApplyTileEffects.gd.uid
Normal file
1
Systems/StateMachine/GameStates/ApplyTileEffects.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://c8dujt7rgmewm
|
||||
1
Systems/StateMachine/GameStates/AttachCards.gd.uid
Normal file
1
Systems/StateMachine/GameStates/AttachCards.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://ddk4pbq3qpb56
|
||||
1
Systems/StateMachine/GameStates/BlackTurn.gd.uid
Normal file
1
Systems/StateMachine/GameStates/BlackTurn.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://c0bv30h81kpfh
|
||||
1
Systems/StateMachine/GameStates/CleanupPhase.gd.uid
Normal file
1
Systems/StateMachine/GameStates/CleanupPhase.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bhsnqkwpq6j07
|
||||
1
Systems/StateMachine/GameStates/DrawPhase.gd.uid
Normal file
1
Systems/StateMachine/GameStates/DrawPhase.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://gcstgtn6qibn
|
||||
1
Systems/StateMachine/GameStates/EvaluatePosition.gd.uid
Normal file
1
Systems/StateMachine/GameStates/EvaluatePosition.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://x5xhlydm4sqa
|
||||
1
Systems/StateMachine/GameStates/HandSetup.gd.uid
Normal file
1
Systems/StateMachine/GameStates/HandSetup.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dilhmg6yll1b5
|
||||
1
Systems/StateMachine/GameStates/Movement.gd.uid
Normal file
1
Systems/StateMachine/GameStates/Movement.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://d008wm4s4f13n
|
||||
1
Systems/StateMachine/GameStates/PostMovePhase.gd.uid
Normal file
1
Systems/StateMachine/GameStates/PostMovePhase.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://ceygswx1lxgwa
|
||||
1
Systems/StateMachine/GameStates/PreMovePhase.gd.uid
Normal file
1
Systems/StateMachine/GameStates/PreMovePhase.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://iom2mj8nkjyl
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://btjlt4t08xpkr
|
||||
1
Systems/StateMachine/GameStates/RoundEnd.gd.uid
Normal file
1
Systems/StateMachine/GameStates/RoundEnd.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bbcqcob12kjj8
|
||||
1
Systems/StateMachine/GameStates/WhiteTurn.gd.uid
Normal file
1
Systems/StateMachine/GameStates/WhiteTurn.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://d2bfw6edgkhfa
|
||||
1
Systems/StateMachine/State.gd.uid
Normal file
1
Systems/StateMachine/State.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bdd6qti00rf0w
|
||||
1
Systems/StateMachine/StateMachine.gd.uid
Normal file
1
Systems/StateMachine/StateMachine.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://d374gcphjcd64
|
||||
1
Systems/Tile.gd.uid
Normal file
1
Systems/Tile.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dv51spq5jfpn
|
||||
1
Systems/TileManager.gd.uid
Normal file
1
Systems/TileManager.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://t0w5e5p7y02m
|
||||
1
Systems/Tiles/DoubleMovement.gd.uid
Normal file
1
Systems/Tiles/DoubleMovement.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://ce2aqwj7tpe2g
|
||||
1
Systems/Tiles/DoubleWall.gd.uid
Normal file
1
Systems/Tiles/DoubleWall.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://cd7b4rmmnl64d
|
||||
1
Systems/Tiles/FireWall.gd.uid
Normal file
1
Systems/Tiles/FireWall.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://babnkyo77rhlx
|
||||
1
Systems/Tiles/PawnBoost.gd.uid
Normal file
1
Systems/Tiles/PawnBoost.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://41u46uiv0kb4
|
||||
1
Systems/Tiles/Portal.gd.uid
Normal file
1
Systems/Tiles/Portal.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://4mx8dov6q41n
|
||||
1
Systems/Tiles/Wall.gd.uid
Normal file
1
Systems/Tiles/Wall.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://da68m1iay1wih
|
||||
|
|
@ -55,5 +55,6 @@ static func location_to_algebraic(location: String) -> String:
|
|||
|
||||
static var LIGHT_CELL = Color(0.5, 0.5, 0.5, 1)
|
||||
static var DARK_CELL = Color(0.2, 0.2, 0.2, 1)
|
||||
static var GREEN_CELL = Color(0.36, 0.62, 0.43, 1)
|
||||
static var WALL_CELL = Color(0.59, 0.29, 0.0, 1) # Brown (#964B00)
|
||||
static var DOUBLE_WALL = Color(0.36, 0.17, 0.0, 1) # Dark Brown (#5C2B00)
|
||||
1
Utils/Utils.gd.uid
Normal file
1
Utils/Utils.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bgfb0t7eso7ug
|
||||
1
addons/Chess/Chess.gd.uid
Normal file
1
addons/Chess/Chess.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://ou3nhs1sjm3b
|
||||
1
addons/Chess/Scripts/Bishop.gd.uid
Normal file
1
addons/Chess/Scripts/Bishop.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dorhpw5wn2gfd
|
||||
1
addons/Chess/Scripts/King.gd.uid
Normal file
1
addons/Chess/Scripts/King.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://cvlk3w6d4ckic
|
||||
1
addons/Chess/Scripts/Knight.gd.uid
Normal file
1
addons/Chess/Scripts/Knight.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://b8msrnx62vyd7
|
||||
1
addons/Chess/Scripts/Pawn.gd.uid
Normal file
1
addons/Chess/Scripts/Pawn.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://ckej5yjb55kcr
|
||||
1
addons/Chess/Scripts/Queen.gd.uid
Normal file
1
addons/Chess/Scripts/Queen.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://b4x7tb14kjbfn
|
||||
1
addons/Chess/Scripts/Rook.gd.uid
Normal file
1
addons/Chess/Scripts/Rook.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://drn6iebxdrr3r
|
||||
44
board.tscn
44
board.tscn
|
|
@ -1,32 +1,32 @@
|
|||
[gd_scene load_steps=29 format=3 uid="uid://d0qyk6v20uief"]
|
||||
|
||||
[ext_resource type="Script" path="res://Systems/Game/ChessGame.gd" id="1_fkb2r"]
|
||||
[ext_resource type="Script" path="res://Systems/StateMachine/GameStates/WhiteTurn.gd" id="3_276ip"]
|
||||
[ext_resource type="Script" path="res://Systems/StateMachine/StateMachine.gd" id="3_lw81y"]
|
||||
[ext_resource type="Script" path="res://Systems/StateMachine/GameStates/BlackTurn.gd" id="4_tl1oh"]
|
||||
[ext_resource type="Script" path="res://Systems/StateMachine/GameStates/HandSetup.gd" id="5_4xbce"]
|
||||
[ext_resource type="Script" path="res://Systems/StateMachine/GameStates/DrawPhase.gd" id="6_xlfb1"]
|
||||
[ext_resource type="Script" path="res://Systems/StateMachine/GameStates/ResolvePersistentEffects.gd" id="7_1ufry"]
|
||||
[ext_resource type="Script" path="res://Systems/StateMachine/GameStates/ApplyTileEffects.gd" id="8_h8ea3"]
|
||||
[ext_resource type="Script" path="res://Systems/StateMachine/GameStates/PreMovePhase.gd" id="9_vq75e"]
|
||||
[ext_resource type="Script" path="res://Systems/StateMachine/GameStates/AttachCards.gd" id="10_mkypi"]
|
||||
[ext_resource type="Script" path="res://Systems/StateMachine/GameStates/ApplyCardEffects.gd" id="11_fqmmt"]
|
||||
[ext_resource type="Script" path="res://Systems/StateMachine/GameStates/Movement.gd" id="12_l81sw"]
|
||||
[ext_resource type="Script" path="res://Systems/StateMachine/GameStates/PostMovePhase.gd" id="13_d4fiw"]
|
||||
[ext_resource type="Script" path="res://Systems/StateMachine/GameStates/EvaluatePosition.gd" id="14_icem8"]
|
||||
[ext_resource type="Script" path="res://Systems/StateMachine/GameStates/CleanupPhase.gd" id="15_m58r8"]
|
||||
[ext_resource type="Script" path="res://Systems/StateMachine/GameStates/RoundEnd.gd" id="16_8h5do"]
|
||||
[ext_resource type="Script" path="res://Systems/Game/CameraController.gd" id="17_1epdx"]
|
||||
[ext_resource type="Script" path="res://Systems/Game/Menu/MenuContainer.gd" id="18_c1y73"]
|
||||
[ext_resource type="Script" uid="uid://cbcu68o863pfp" path="res://Systems/Game/ChessGame.gd" id="1_fkb2r"]
|
||||
[ext_resource type="Script" uid="uid://d2bfw6edgkhfa" path="res://Systems/StateMachine/GameStates/WhiteTurn.gd" id="3_276ip"]
|
||||
[ext_resource type="Script" uid="uid://d374gcphjcd64" path="res://Systems/StateMachine/StateMachine.gd" id="3_lw81y"]
|
||||
[ext_resource type="Script" uid="uid://c0bv30h81kpfh" path="res://Systems/StateMachine/GameStates/BlackTurn.gd" id="4_tl1oh"]
|
||||
[ext_resource type="Script" uid="uid://dilhmg6yll1b5" path="res://Systems/StateMachine/GameStates/HandSetup.gd" id="5_4xbce"]
|
||||
[ext_resource type="Script" uid="uid://gcstgtn6qibn" path="res://Systems/StateMachine/GameStates/DrawPhase.gd" id="6_xlfb1"]
|
||||
[ext_resource type="Script" uid="uid://btjlt4t08xpkr" path="res://Systems/StateMachine/GameStates/ResolvePersistentEffects.gd" id="7_1ufry"]
|
||||
[ext_resource type="Script" uid="uid://c8dujt7rgmewm" path="res://Systems/StateMachine/GameStates/ApplyTileEffects.gd" id="8_h8ea3"]
|
||||
[ext_resource type="Script" uid="uid://iom2mj8nkjyl" path="res://Systems/StateMachine/GameStates/PreMovePhase.gd" id="9_vq75e"]
|
||||
[ext_resource type="Script" uid="uid://ddk4pbq3qpb56" path="res://Systems/StateMachine/GameStates/AttachCards.gd" id="10_mkypi"]
|
||||
[ext_resource type="Script" uid="uid://dwshyvjsmtsnk" path="res://Systems/StateMachine/GameStates/ApplyCardEffects.gd" id="11_fqmmt"]
|
||||
[ext_resource type="Script" uid="uid://d008wm4s4f13n" path="res://Systems/StateMachine/GameStates/Movement.gd" id="12_l81sw"]
|
||||
[ext_resource type="Script" uid="uid://ceygswx1lxgwa" path="res://Systems/StateMachine/GameStates/PostMovePhase.gd" id="13_d4fiw"]
|
||||
[ext_resource type="Script" uid="uid://x5xhlydm4sqa" path="res://Systems/StateMachine/GameStates/EvaluatePosition.gd" id="14_icem8"]
|
||||
[ext_resource type="Script" uid="uid://bhsnqkwpq6j07" path="res://Systems/StateMachine/GameStates/CleanupPhase.gd" id="15_m58r8"]
|
||||
[ext_resource type="Script" uid="uid://bbcqcob12kjj8" path="res://Systems/StateMachine/GameStates/RoundEnd.gd" id="16_8h5do"]
|
||||
[ext_resource type="Script" uid="uid://bdbap6f4c4d5w" path="res://Systems/Game/CameraController.gd" id="17_1epdx"]
|
||||
[ext_resource type="Script" uid="uid://bf5ljae05pvla" path="res://Systems/Game/Menu/MenuContainer.gd" id="18_c1y73"]
|
||||
[ext_resource type="Texture2D" uid="uid://bn0offg4w11w4" path="res://Assets/main_menu/label_continue.png" id="18_yr4pt"]
|
||||
[ext_resource type="Theme" uid="uid://cuq0xndnachqb" path="res://Assets/Themes/Title.tres" id="19_enj45"]
|
||||
[ext_resource type="Texture2D" uid="uid://b8khh5b1iwic1" path="res://Assets/main_menu/label_options.png" id="20_necaf"]
|
||||
[ext_resource type="Script" path="res://Systems/Game/Menu/MenuOption.gd" id="20_qqo7d"]
|
||||
[ext_resource type="Script" uid="uid://dbm5dv81lbdod" path="res://Systems/Game/Menu/MenuOption.gd" id="20_qqo7d"]
|
||||
[ext_resource type="Texture2D" uid="uid://bexpni52h8527" path="res://Assets/main_menu/characters.png" id="23_vmvai"]
|
||||
[ext_resource type="Theme" uid="uid://btgbiqdc4kf15" path="res://Assets/Themes/SimpleMenuText.tres" id="24_4y4dr"]
|
||||
[ext_resource type="Script" path="res://Systems/Game/Menu/MenuTextOption.gd" id="24_aslgu"]
|
||||
[ext_resource type="Script" path="res://Systems/Game/GameMenuScreen.gd" id="26_pb4ja"]
|
||||
[ext_resource type="Script" path="res://Systems/Game/GameMenuButton.gd" id="26_t2e38"]
|
||||
[ext_resource type="Script" uid="uid://c47i2m0ll101x" path="res://Systems/Game/Menu/MenuTextOption.gd" id="24_aslgu"]
|
||||
[ext_resource type="Script" uid="uid://j0m4rwr86oi6" path="res://Systems/Game/GameMenuScreen.gd" id="26_pb4ja"]
|
||||
[ext_resource type="Script" uid="uid://bfjmon81nckns" path="res://Systems/Game/GameMenuButton.gd" id="26_t2e38"]
|
||||
[ext_resource type="PackedScene" uid="uid://c7uqbcxdjoais" path="res://deck_manager_screen.tscn" id="28_4nyv8"]
|
||||
|
||||
[node name="Board" type="Control"]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://cqg23tpbanwv4"]
|
||||
|
||||
[ext_resource type="Script" path="res://Systems/Cards/CardBankItem.gd" id="1_gu47gh"]
|
||||
[ext_resource type="Script" uid="uid://b1d17jfxagdc7" path="res://Systems/Cards/CardBankItem.gd" id="1_gu47gh"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_asdfvfa"]
|
||||
bg_color = Color(0.15, 0.15, 0.15, 1)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://xxxxxxxx"]
|
||||
|
||||
[ext_resource type="Script" path="res://Systems/CardPreviewPanel.gd" id="1_ykslh"]
|
||||
[ext_resource type="Script" uid="uid://2xcreiq6lhe2" path="res://Systems/CardPreviewPanel.gd" id="1_ykslh"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ykslh"]
|
||||
bg_color = Color(0.08, 0.08, 0.12, 0.95)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://b13w87rkhvwcv"]
|
||||
|
||||
[ext_resource type="Script" path="res://Systems/Cards/CardSlot.gd" id="1_asdwda"]
|
||||
[ext_resource type="Script" uid="uid://b5888fqblsco5" path="res://Systems/Cards/CardSlot.gd" id="1_asdwda"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_asdawdf"]
|
||||
bg_color = Color(0.15, 0.15, 0.15, 1)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://c7uqbcxdjoais"]
|
||||
|
||||
[ext_resource type="Script" path="res://Systems/Game/DeckManagerScreen.gd" id="1_gokg4"]
|
||||
[ext_resource type="Script" uid="uid://vxufsih5pgeu" path="res://Systems/Game/DeckManagerScreen.gd" id="1_gokg4"]
|
||||
[ext_resource type="PackedScene" uid="uid://xxxxxxxx" path="res://card_preview_panel.tscn" id="3_abcde"]
|
||||
[ext_resource type="Script" path="res://Systems/Game/GameMenuButton.gd" id="4_gokg4"]
|
||||
[ext_resource type="Script" uid="uid://bfjmon81nckns" path="res://Systems/Game/GameMenuButton.gd" id="4_gokg4"]
|
||||
|
||||
[node name="DeckManagerScreen" type="Control"]
|
||||
layout_mode = 3
|
||||
|
|
|
|||
|
|
@ -10,8 +10,10 @@ export_filter="all_resources"
|
|||
include_filter="Assets/*"
|
||||
exclude_filter="build/"
|
||||
export_path="build/Linux/ChessBuilder.x86_64"
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
seed=0
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
|
@ -50,8 +52,10 @@ export_filter="all_resources"
|
|||
include_filter="Assets/*"
|
||||
exclude_filter="build/"
|
||||
export_path="build/Windows/ChessBuilder.exe"
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
seed=0
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
|
@ -115,8 +119,10 @@ export_filter="all_resources"
|
|||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path=""
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
seed=0
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
|
@ -137,7 +143,8 @@ application/short_version=""
|
|||
application/version=""
|
||||
application/copyright=""
|
||||
application/copyright_localized={}
|
||||
application/min_macos_version="10.12"
|
||||
application/min_macos_version_x86_64="10.12"
|
||||
application/min_macos_version_arm64="11.00"
|
||||
application/export_angle=0
|
||||
display/high_res=true
|
||||
application/additional_plist_content=""
|
||||
|
|
@ -175,6 +182,7 @@ codesign/entitlements/app_sandbox/files_music=0
|
|||
codesign/entitlements/app_sandbox/files_movies=0
|
||||
codesign/entitlements/app_sandbox/files_user_selected=0
|
||||
codesign/entitlements/app_sandbox/helper_executables=[]
|
||||
codesign/entitlements/additional=""
|
||||
codesign/custom_options=PackedStringArray()
|
||||
notarization/notarization=0
|
||||
privacy/microphone_usage_description=""
|
||||
|
|
@ -352,3 +360,4 @@ open \"{temp_dir}/{exe_name}.app\" --args {cmd_args}"
|
|||
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
|
||||
kill $(pgrep -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\")
|
||||
rm -rf \"{temp_dir}\""
|
||||
application/min_macos_version="10.12"
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ config_version=5
|
|||
|
||||
config/name="Godot Chess"
|
||||
run/main_scene="res://board.tscn"
|
||||
config/features=PackedStringArray("4.3", "Forward Plus")
|
||||
config/features=PackedStringArray("4.4", "Forward Plus")
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
[autoload]
|
||||
|
|
|
|||
Loading…
Reference in a new issue