new features, play menu, deck builder, deck selection

This commit is contained in:
2026-01-28 20:22:09 -05:00
parent f4c7bab6b0
commit bf9aa3fa23
80 changed files with 4501 additions and 58 deletions

View File

@@ -12,14 +12,14 @@ dock_floating={}
dock_split_2=0
dock_split_3=0
dock_hsplit_1=0
dock_hsplit_2=540
dock_hsplit_2=1040
dock_hsplit_3=-540
dock_hsplit_4=0
dock_filesystem_split=0
dock_filesystem_display_mode=0
dock_filesystem_file_sort=0
dock_filesystem_file_list_display_mode=1
dock_filesystem_selected_paths=PackedStringArray("res://scripts/ui/ActionLog.gd")
dock_filesystem_selected_paths=PackedStringArray("res://scripts/ui/GameSetupMenu.gd")
dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://scripts/", "res://scripts/visual/", "res://scripts/ui/", "res://scripts/game/", "res://scenes/")
dock_3="Scene,Import"
dock_4="FileSystem"
@@ -30,14 +30,14 @@ dock_5="Inspector,Node,History"
open_scenes=PackedStringArray("res://scenes/main.tscn")
current_scene="res://scenes/main.tscn"
center_split_offset=-491
selected_default_debugger_tab_idx=1
selected_default_debugger_tab_idx=0
selected_main_editor_idx=2
selected_bottom_panel_item=1
selected_bottom_panel_item=0
[ScriptEditor]
open_scripts=["res://scripts/ui/ActionLog.gd", "res://scripts/autoload/CardDatabase.gd", "res://scripts/game/CardInstance.gd", "res://scripts/visual/CardVisual.gd", "res://scripts/game/CPPool.gd", "res://scripts/ui/DamageDisplay.gd", "res://scripts/GameController.gd", "res://scripts/game/GameState.gd", "res://scripts/ui/GameUI.gd", "res://scripts/ui/HandDisplay.gd", "res://scripts/Main.gd", "res://scripts/ui/MainMenu.gd", "res://scripts/ui/PauseMenu.gd", "res://scripts/game/Player.gd", "res://scripts/visual/PlaymatRenderer.gd", "res://scripts/visual/TableCamera.gd", "res://scripts/visual/TableSetup.gd", "res://tests/fixtures/test_card_data.gd", "res://tests/integration/test_game_state.gd", "res://tests/unit/test_zone.gd", "res://scripts/game/UndoSystem.gd", "res://scripts/game/Zone.gd"]
selected_script="res://scripts/game/Zone.gd"
open_scripts=["res://scripts/ui/ActionLog.gd", "res://scripts/autoload/CardDatabase.gd", "res://scripts/ui/CardDetailViewer.gd", "res://scripts/game/CardInstance.gd", "res://scripts/visual/CardVisual.gd", "res://scripts/game/CPPool.gd", "res://scripts/ui/DamageDisplay.gd", "res://scripts/ui/DeckListPanel.gd", "res://scripts/game/Enums.gd", "res://scripts/GameController.gd", "res://scripts/ui/GameSetupMenu.gd", "res://scripts/game/GameState.gd", "res://scripts/ui/GameUI.gd", "res://scripts/ui/HandDisplay.gd", "res://scripts/Main.gd", "res://scripts/ui/MainMenu.gd", "res://scripts/ui/PauseMenu.gd", "res://scripts/game/Player.gd", "res://scripts/visual/PlaymatRenderer.gd", "res://scripts/visual/TableCamera.gd", "res://scripts/visual/TableSetup.gd", "res://tests/fixtures/test_card_data.gd", "res://tests/integration/test_game_state.gd", "res://tests/unit/test_zone.gd", "res://scripts/game/UndoSystem.gd", "res://scripts/game/Zone.gd"]
selected_script="res://scripts/ui/GameSetupMenu.gd"
open_help=[]
script_split_offset=140
list_split_offset=0

View File

@@ -1,5 +1,5 @@
ea4bc82a6ad023ab7ee23ee620429895
::res://::1769613134
::res://::1769647407
background_1.png::CompressedTexture2D::259206091835802070::1769464008::1769464212::1::::<><>::
card_back.png::CompressedTexture2D::4833498016096001590::1769466370::1769466517::1::::<><>::
FF14_Playmat__12516.webp::CompressedTexture2D::1641665221299209414::1769277769::1769280957::1::::<><>::
@@ -7,6 +7,27 @@ FF_mat_option_1.png::CompressedTexture2D::4359709237641823626::1769451897::17694
JimNightshade-Regular.ttf::FontFile::7644275900508645331::1757609064::1769555265::1::::<><>::
README.md::TextFile::-1::1769279531::0::1::::<><>::
Screenshot 2026-01-24 at 12-53-03 Untitled-3 - fftcgrulesheet-en.pdf.png::CompressedTexture2D::5958662832102035034::1769277183::1769280957::1::::<><>::
sleeve_1.jpg::CompressedTexture2D::1482248397063355742::1769617800::1769618827::1::::<><>::
sleeve_2.jpg::CompressedTexture2D::6383066359122151379::1769617926::1769618827::1::::<><>::
sleeve_3.jpg::CompressedTexture2D::601887052280553192::1769617938::1769618827::1::::<><>::
sleeve_4.jpg::CompressedTexture2D::6060458880840563199::1769617950::1769618827::1::::<><>::
sleeve_5.jpg::CompressedTexture2D::5882622769392279266::1769617965::1769618827::1::::<><>::
sleeve_6.jpg::CompressedTexture2D::8915184504686677023::1769618359::1769618827::1::::<><>::
sleeve_7.jpg::CompressedTexture2D::6894860378666619339::1769618370::1769618827::1::::<><>::
sleeve_8.jpg::CompressedTexture2D::7601270914850012809::1769618385::1769618827::1::::<><>::
sleeve_9.jpg::CompressedTexture2D::5656371699412624542::1769618396::1769618827::1::::<><>::
sleeve_10.jpg::CompressedTexture2D::3792829908701748015::1769618409::1769618827::1::::<><>::
sleeve_11.jpg::CompressedTexture2D::3100688219177629970::1769618692::1769618827::1::::<><>::
sleeve_12.jpg::CompressedTexture2D::1346926720015876285::1769618708::1769618827::1::::<><>::
sleeve_13.jpg::CompressedTexture2D::1194020321927022207::1769619087::1769644241::1::::<><>::
sleeve_14.jpg::CompressedTexture2D::7503502150336033005::1769619098::1769644241::1::::<><>::
sleeve_15.jpg::CompressedTexture2D::8717635135292546825::1769619110::1769644241::1::::<><>::
sleeve_16.jpg::CompressedTexture2D::166845585734163091::1769619123::1769644241::1::::<><>::
sleeve_17.jpg::CompressedTexture2D::4080901806752110915::1769619134::1769644241::1::::<><>::
sleeve_18.jpg::CompressedTexture2D::7870841060308936216::1769619160::1769644241::1::::<><>::
sleeve_19.jpg::CompressedTexture2D::4959713250773028751::1769619172::1769644241::1::::<><>::
sleeve_20.jpg::CompressedTexture2D::4615949045548257824::1769619186::1769644241::1::::<><>::
sleeve_21.jpg::CompressedTexture2D::4455193360889187036::1769619197::1769644241::1::::<><>::
title_menu.png::CompressedTexture2D::4103292590061137586::1769543314::1769543405::1::::<><>::
::res://addons/::1769611855
::res://addons/gut/::1769611855
@@ -127,44 +148,63 @@ card_back.png::CompressedTexture2D::7787125851359297441::1769466418::1769466517:
::res://assets/table/::1769464212
background_1.png::CompressedTexture2D::102728058489724503::1769464097::1769464212::1::::<><>::
playmat.webp::CompressedTexture2D::3235866490631872101::1769279471::1769280957::1::::<><>::
::res://assets/ui/::1769542991
::res://assets/ui/::1769638945
icon.svg::CompressedTexture2D::2912283608529879130::1769280588::1769280956::1::::<><>::
title_menu.png::CompressedTexture2D::8625156175856392101::1769542458::1769542991::1::::<><>::
::res://data/::1769541933
::res://assets/ui/starter_decks/::1769644241
opus1_vii_fire_earth.png::CompressedTexture2D::8249821348761355382::1769638945::1769644241::1::::<><>::
opus1_xiii_ice_lightning.png::CompressedTexture2D::5441208453357402287::1769638945::1769644241::1::::<><>::
opus1_x_water_wind.png::CompressedTexture2D::1129182255694527899::1769638945::1769644241::1::::<><>::
opus3_ix_fire_water.png::CompressedTexture2D::5381369350901260001::1769638945::1769644240::1::::<><>::
opus3_type0_wind_lightning.png::CompressedTexture2D::6074265651240728071::1769638945::1769644240::1::::<><>::
opus5_xiii2_ice_fire.png::CompressedTexture2D::3841226189606794188::1769638945::1769644240::1::::<><>::
opus5_xii_wind_water.png::CompressedTexture2D::5241364105917462364::1769638945::1769644240::1::::<><>::
opus5_xiv_earth_lightning.png::CompressedTexture2D::4811331662772755880::1769638945::1769644240::1::::<><>::
::res://data/::1769639015
cards.json::JSON::-1::1769541579::0::1::::<><>::
cards_progress.json::JSON::-1::1769539572::0::1::::<><>::
scan_errors.log::TextFile::-1::1769539203::0::1::::<><>::
starter_decks.json::JSON::-1::1769639015::0::1::::<><>::
::res://docs/::1769279608
CARD_FORMAT.md::TextFile::-1::1769279608::0::1::::<><>::
DESIGN.md::TextFile::-1::1769279572::0::1::::<><>::
::res://scenes/::1769558936
::res://scenes/::1769646947
game_controller.tscn::PackedScene::3882700613993784342::1769285267::0::1::::<><>::res://scripts/GameController.gd
main.tscn::PackedScene::5942992277112036945::1769558936::0::1::::<><>::res://scripts/Main.gd
main.tscn::PackedScene::5942992277112036945::1769646947::0::1::::<><>::res://scripts/Main.gd
::res://scenes/card/::1769279430
::res://scenes/main/::1769279430
::res://scenes/table/::1769279430
::res://scenes/ui/::1769279430
::res://scripts/::1769558794
GameController.gd::GDScript::-1::1769557430::0::1::::<>Node<>::
Main.gd::GDScript::-1::1769558794::0::1::::<>Node3D<>::
::res://scripts/autoload/::1769308378
CardDatabase.gd::GDScript::-1::1769308329::0::1::::<>Node<>::
GameManager.gd::GDScript::-1::1769308378::0::1::::<>Node<>::
::res://scripts/game/::1769471419
::res://scripts/::1769645475
GameController.gd::GDScript::-1::1769645475::0::1::::<>Node<>::
Main.gd::GDScript::-1::1769627747::0::1::::<>Node3D<>::
::res://scripts/autoload/::1769639030
CardDatabase.gd::GDScript::-1::1769639030::0::1::::<>Node<>::
GameManager.gd::GDScript::-1::1769627732::0::1::::<>Node<>::
::res://scripts/data/::1769625750
Deck.gd::GDScript::-1::1769625732::0::1::::Deck<>RefCounted<>::
DeckManager.gd::GDScript::-1::1769625750::0::1::::DeckManager<>RefCounted<>::
::res://scripts/game/::1769626106
CardInstance.gd::GDScript::-1::1769279755::0::1::::CardInstance<>RefCounted<>::
CPPool.gd::GDScript::-1::1769302515::0::1::::CPPool<>RefCounted<>::
Enums.gd::GDScript::-1::1769281049::0::1::::Enums<>RefCounted<>::
Enums.gd::GDScript::-1::1769626106::0::1::::Enums<>RefCounted<>::
GameState.gd::GDScript::-1::1769471419::0::1::::GameState<>RefCounted<>::
Player.gd::GDScript::-1::1769302256::0::1::::Player<>RefCounted<>::
TurnManager.gd::GDScript::-1::1769302284::0::1::::TurnManager<>RefCounted<>::
UndoSystem.gd::GDScript::-1::1769301595::0::1::::UndoSystem<>RefCounted<>::
Zone.gd::GDScript::-1::1769302225::0::1::::Zone<>RefCounted<>::
::res://scripts/ui/::1769558772
::res://scripts/ui/::1769646748
ActionLog.gd::GDScript::-1::1769298563::0::1::::ActionLog<>Control<>::
CardDetailViewer.gd::GDScript::-1::1769625828::0::1::::CardDetailViewer<>Control<>::
CardFilterBar.gd::GDScript::-1::1769625881::0::1::::CardFilterBar<>Control<>::
CardGrid.gd::GDScript::-1::1769625920::0::1::::CardGrid<>Control<>::
DamageDisplay.gd::GDScript::-1::1769280183::0::1::::DamageDisplay<>Control<>::
DeckBuilder.gd::GDScript::-1::1769626028::0::1::::DeckBuilder<>CanvasLayer<>::
DeckListPanel.gd::GDScript::-1::1769625968::0::1::::DeckListPanel<>Control<>::
GameSetupMenu.gd::GDScript::-1::1769646748::0::1::::GameSetupMenu<>CanvasLayer<>::
GameUI.gd::GDScript::-1::1769472787::0::1::::GameUI<>CanvasLayer<>::
HandDisplay.gd::GDScript::-1::1769558772::0::1::::HandDisplay<>Control<>::
MainMenu.gd::GDScript::-1::1769557191::0::1::::MainMenu<>CanvasLayer<>::
MainMenu.gd::GDScript::-1::1769626090::0::1::::MainMenu<>CanvasLayer<>::
PauseMenu.gd::GDScript::-1::1769287615::0::1::::PauseMenu<>CanvasLayer<>::
::res://scripts/visual/::1769471729
CardVisual.gd::GDScript::-1::1769460118::0::1::::CardVisual<>Node3D<>::
@@ -4190,14 +4230,14 @@ Re-198H-13-127H.jpg::CompressedTexture2D::5413433616482804995::1769306351::17693
Re-199H-19-125H.jpg::CompressedTexture2D::4308488034767344289::1769306351::1769308619::1::::<><>::
Re-200L-19-128L.jpg::CompressedTexture2D::8097057901487536182::1769306356::1769308614::1::::<><>::
::res://tests/::1769610959
::res://tests/fixtures/::1769610993
test_card_data.gd::GDScript::-1::1769610993::0::1::::TestCardData<>RefCounted<>::
::res://tests/integration/::1769611345
test_game_state.gd::GDScript::-1::1769611345::0::1::::<>GutTest<>::
::res://tests/unit/::1769611266
::res://tests/fixtures/::1769614165
test_card_data.gd::GDScript::-1::1769614165::0::1::::TestCardData<>RefCounted<>::
::res://tests/integration/::1769615059
test_game_state.gd::GDScript::-1::1769615059::0::1::::<>GutTest<>::
::res://tests/unit/::1769615032
test_card_instance.gd::GDScript::-1::1769611194::0::1::::<>GutTest<>::
test_cppool.gd::GDScript::-1::1769611095::0::1::::<>GutTest<>::
test_player.gd::GDScript::-1::1769611266::0::1::::<>GutTest<>::
test_turn_manager.gd::GDScript::-1::1769611145::0::1::::<>GutTest<>::
test_zone.gd::GDScript::-1::1769611040::0::1::::<>GutTest<>::
test_zone.gd::GDScript::-1::1769615032::0::1::::<>GutTest<>::
::res://tools/::1769541891

View File

@@ -10,7 +10,7 @@ run_reload_scripts=true
[recent_files]
scenes=["res://scenes/main.tscn"]
scripts=["res://scripts/game/Zone.gd", "res://tests/unit/test_zone.gd", "res://tests/integration/test_game_state.gd", "res://tests/fixtures/test_card_data.gd", "res://scripts/ui/DamageDisplay.gd", "res://scripts/visual/CardVisual.gd", "res://scripts/GameController.gd", "res://scripts/visual/PlaymatRenderer.gd", "res://scripts/ui/MainMenu.gd", "res://scripts/ui/GameUI.gd"]
scripts=["res://scripts/ui/DeckListPanel.gd", "res://scripts/ui/GameSetupMenu.gd", "res://scripts/game/Enums.gd", "res://scripts/ui/CardDetailViewer.gd", "res://scripts/game/Zone.gd", "res://tests/unit/test_zone.gd", "res://tests/integration/test_game_state.gd", "res://tests/fixtures/test_card_data.gd", "res://scripts/ui/DamageDisplay.gd", "res://scripts/visual/CardVisual.gd"]
[linked_properties]

View File

@@ -3,11 +3,11 @@
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 8,
"column": 15,
"folded_lines": Array[int]([]),
"h_scroll_position": 0,
"row": 314,
"scroll_position": 309.0,
"row": 316,
"scroll_position": 313.0,
"selection": false,
"syntax_highlighter": "GDScript"
}
@@ -115,11 +115,11 @@ state={
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 0,
"column": 3,
"folded_lines": Array[int]([]),
"h_scroll_position": 0,
"row": 0,
"scroll_position": 39.0,
"row": 9,
"scroll_position": 0.0,
"selection": false,
"syntax_highlighter": "GDScript"
}
@@ -147,7 +147,7 @@ state={
"folded_lines": Array[int]([]),
"h_scroll_position": 0,
"row": 33,
"scroll_position": 0.0,
"scroll_position": 20.0,
"selection": false,
"syntax_highlighter": "GDScript"
}
@@ -301,7 +301,63 @@ state={
"folded_lines": Array[int]([]),
"h_scroll_position": 0,
"row": 22,
"scroll_position": 22.0,
"scroll_position": 0.0,
"selection": false,
"syntax_highlighter": "GDScript"
}
[res://scripts/ui/CardDetailViewer.gd]
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 0,
"folded_lines": Array[int]([]),
"h_scroll_position": 0,
"row": 0,
"scroll_position": 0.0,
"selection": false,
"syntax_highlighter": "GDScript"
}
[res://scripts/game/Enums.gd]
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 7,
"folded_lines": Array[int]([]),
"h_scroll_position": 0,
"row": 11,
"scroll_position": 0.0,
"selection": false,
"syntax_highlighter": "GDScript"
}
[res://scripts/ui/GameSetupMenu.gd]
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 0,
"folded_lines": Array[int]([]),
"h_scroll_position": 0,
"row": 0,
"scroll_position": 0.0,
"selection": false,
"syntax_highlighter": "GDScript"
}
[res://scripts/ui/DeckListPanel.gd]
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 0,
"folded_lines": Array[int]([]),
"h_scroll_position": 0,
"row": 0,
"scroll_position": 0.0,
"selection": false,
"syntax_highlighter": "GDScript"
}