fix: revert // to / in deck.gd (GDScript 4 does not support // operator)

The INTEGER_DIVISION warning in deck.gd:19 is a false positive - both
operands are int, so / performs integer division correctly in GDScript 4.
Using // caused a parse error (Expected expression after '/' operator),
which cascaded to GameController/TrainingController resolution failure.
This commit is contained in:
xiaji
2026-05-30 08:01:07 +08:00
parent f4a2686810
commit bad46b0109
37 changed files with 422 additions and 1 deletions

1
.godot/.gdignore Normal file
View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,73 @@
[docks]
dock_3_selected_tab_idx=0
dock_4_selected_tab_idx=0
dock_5_selected_tab_idx=0
dock_floating={}
dock_closed=[]
dock_split_2=0
dock_split_3=0
dock_hsplit_1=0
dock_hsplit_2=280
dock_hsplit_3=-280
dock_hsplit_4=0
dock_9_selected_tab_idx=1
dock_3="Scene,Import"
dock_4="FileSystem,History"
dock_5="Inspector,Signals,Groups"
dock_9="Output,Debugger,Audio,Animation,Shader Editor,Search Results,AnimationTree,ResourcePreloader,ShaderFile,SpriteFrames,Theme,Polygon,TileSet,TileMap,Replication,GridMap"
[docks/FileSystem]
h_split_offset=240
v_split_offset=0
display_mode=0
file_sort=0
file_list_display_mode=1
selected_paths=PackedStringArray("res://")
uncollapsed_paths=PackedStringArray("Favorites", "res://")
[docks/History]
include_scene=true
include_global=true
[EditorNode]
open_scenes=PackedStringArray("res://src/ui/scenes/main_menu.tscn")
current_scene="res://src/ui/scenes/main_menu.tscn"
bottom_panel_offsets={
"Audio": -450,
"Debugger": 0,
"Output": 0
}
selected_default_debugger_tab_idx=0
selected_main_editor_idx=2
[EditorWindow]
screen=0
mode="windowed"
position=Vector2i(1331, 150)
size=Vector2i(1152, 648)
[ScriptEditor]
open_scripts=["res://src/game/training_controller.gd"]
selected_script="res://src/game/training_controller.gd"
open_help=[]
script_split_offset=200
list_split_offset=0
zoom_factor=1.0
[GameView]
floating_window_rect=Rect2i(634, 142, 1292, 740)
floating_window_screen=0
[ShaderEditor]
open_shaders=[]
split_offset=200
selected_shader=""
text_shader_zoom_factor=1.0

View File

@@ -0,0 +1,59 @@
63f7b34db8d8cdea90c76aacccf841ec
::res://::1780099064
check_errors.txt::TextFile::-1::1780067435::0::1::::<><><>0<>0<><>::
check_output.txt::TextFile::-1::1780067436::0::1::::<><><>0<>0<><>::
README.md::TextFile::-1::1780058809::0::1::::<><><>0<>0<><>::
run_errors.txt::TextFile::-1::1780099036::0::1::::<><><>0<>0<><>::
run_output.txt::TextFile::-1::1780099036::0::1::::<><><>0<>0<><>::
::res://addons/::1780019826
::res://docs/::1779979748
::res://docs/superpowers/::1780013039
::res://docs/superpowers/plans/::1780013236
2026-05-28-guandan-training-mode.md::TextFile::-1::1780013236::0::1::::<><><>0<>0<><>::
::res://docs/superpowers/specs/::1779979781
2026-05-28-guandan-card-game-design.md::TextFile::-1::1779982163::0::1::::<><><>0<>0<><>::
::res://src/::1780017254
::res://src/ai/::1780066437
base_ai.gd::GDScript::393918515999702918::1780020075::0::1::::BaseAI<>RefCounted<><>0<>0<><>::
l1_basic_ai.gd::GDScript::3824293036085027691::1780020020::0::1::::L1BasicAI<>BaseAI<><>0<>0<><>::
l2_rule_ai.gd::GDScript::2394058896228022033::1780066437::0::1::::L2RuleAI<>BaseAI<><>0<>0<><>::
::res://src/autoload/::1780097357
audio_manager.gd::GDScript::358732800655427921::1780097357::0::1::::<>Node<><>0<>0<><>::
config.gd::GDScript::2812499630245000571::1780017185::0::1::::<>Node<><>0<>0<><>::
event_bus.gd::GDScript::5265213255942945415::1780097205::0::1::::<>Node<><>0<>0<><>::
::res://src/core/::1780098678
actions.gd::GDScript::5385093260602373151::1780017019::0::1::::Actions<>RefCounted<><>0<>0<><>::
card.gd::GDScript::5722482673676396107::1780098655::0::1::::Card<>RefCounted<><>0<>0<><>::
constants.gd::GDScript::1018983800197122308::1780016790::0::1::::<>RefCounted<><>0<>0<><>::
deck.gd::GDScript::7625729605329324812::1780098687::0::1::::Deck<>RefCounted<><>0<>0<><>::
game_state.gd::GDScript::1313773448155235731::1780017031::0::1::::GameState<>RefCounted<><>0<>0<><>::
hand_evaluator.gd::GDScript::2941013735155443621::1780019993::0::1::::HandEvaluator<>RefCounted<><>0<>0<><>::
move_generator.gd::GDScript::4717501802299714497::1780067204::0::1::::MoveGenerator<>RefCounted<><>0<>0<><>::
round.gd::GDScript::4048136154956438979::1780017022::0::1::::Round<>RefCounted<><>0<>0<><>::
rule_config.gd::GDScript::5834083765288513466::1780016802::0::1::::RuleConfig<>RefCounted<><>0<>0<><>::
rule_engine.gd::GDScript::1125035198888330416::1780017015::0::1::::RuleEngine<>RefCounted<><>0<>0<><>::
::res://src/game/::1780098917
game_controller.gd::GDScript::7404956464888235868::1780065068::0::1::::GameController<>Node<><>0<>0<><>::
replay_recorder.gd::GDScript::2551932574825654942::1780017203::0::1::::<>Node<><>0<>0<><>::
training_controller.gd::GDScript::1120733736618609603::1780098917::0::1::::TrainingController<>GameController<><>0<>0<><>::
::res://src/ui/::1780017254
::res://src/ui/components/::1780066437
card_node.gd::GDScript::1700562391934990522::1780066437::0::1::::CardNode<>Control<><>0<>0<><>::
card_node.tscn::PackedScene::-1::1780017273::0::1::::<><><>0<>0<><>::res://src/ui/components/card_node.gd
hand_area.gd::GDScript::8635681064847839428::1780059588::0::1::::HandArea<>HBoxContainer<><>0<>0<><>::
hand_area.tscn::PackedScene::-1::1780017274::0::1::::<><><>0<>0<><>::res://src/ui/components/hand_area.gd
::res://src/ui/scenes/::1780066437
main_menu.gd::GDScript::8687373002954932151::1780061851::0::1::::<>Control<><>0<>0<><>::
main_menu.tscn::PackedScene::-1::1780017280::0::1::::<><><>0<>0<><>::res://src/ui/scenes/main_menu.gd
training_room.gd::GDScript::1431432233075994614::1780066437::0::1::::<>Control<><>0<>0<><>::
training_room.tscn::PackedScene::-1::1780060957::0::1::::<><><>0<>0<><>::res://src/ui/scenes/training_room.gd<>res://src/ui/components/hand_area.gd
::res://tests/::1780059239
hello.gd::GDScript::801214535407504309::1780020576::0::1::::<>Node<><>0<>0<><>::
quick_test.gd::GDScript::8419040576856027441::1780020535::0::1::::<>Node<><>0<>0<><>::
run_validation.gd::GDScript::5977040163953791705::1780019872::0::1::::<>Node<><>0<>0<><>::
test_cards.gd::GDScript::3474674096739086510::1780017322::0::1::::<>GutTest<><>0<>0<><>::
test_deck.gd::GDScript::5372822746484118668::1780017327::0::1::::<>GutTest<><>0<>0<><>::
test_game_state.gd::GDScript::5310760542796422668::1780017346::0::1::::<>GutTest<><>0<>0<><>::
test_hand_evaluator.gd::GDScript::5064547684838000492::1780017338::0::1::::<>GutTest<><>0<>0<><>::
test_rule_engine.gd::GDScript::1242756042438170058::1780017356::0::1::::<>GutTest<><>0<>0<><>::
validate_project.gd::GDScript::2810346865604840601::1780019501::0::1::::<>RefCounted<><>0<>0<><>::

View File

@@ -0,0 +1,5 @@
[folding]
node_unfolds=[NodePath("."), PackedStringArray("Layout"), NodePath("VBoxContainer"), PackedStringArray("Layout"), NodePath("VBoxContainer/StartButton"), PackedStringArray("Layout"), NodePath("VBoxContainer/QuitButton"), PackedStringArray("Layout")]
resource_unfolds=[]
nodes_folded=[]

View File

@@ -0,0 +1,13 @@
[res://src/game/training_controller.gd]
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 0,
"folded_lines": PackedInt32Array(),
"h_scroll_position": 0,
"row": 1,
"scroll_position": 1.0,
"selection": false,
"syntax_highlighter": "GDScript"
}

View File

@@ -0,0 +1,129 @@
list=[{
"base": &"RefCounted",
"class": &"Actions",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://src/core/actions.gd"
}, {
"base": &"RefCounted",
"class": &"BaseAI",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://src/ai/base_ai.gd"
}, {
"base": &"RefCounted",
"class": &"Card",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://src/core/card.gd"
}, {
"base": &"Control",
"class": &"CardNode",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://src/ui/components/card_node.gd"
}, {
"base": &"RefCounted",
"class": &"Deck",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://src/core/deck.gd"
}, {
"base": &"Node",
"class": &"GameController",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://src/game/game_controller.gd"
}, {
"base": &"RefCounted",
"class": &"GameState",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://src/core/game_state.gd"
}, {
"base": &"HBoxContainer",
"class": &"HandArea",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://src/ui/components/hand_area.gd"
}, {
"base": &"RefCounted",
"class": &"HandEvaluator",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://src/core/hand_evaluator.gd"
}, {
"base": &"BaseAI",
"class": &"L1BasicAI",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://src/ai/l1_basic_ai.gd"
}, {
"base": &"BaseAI",
"class": &"L2RuleAI",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://src/ai/l2_rule_ai.gd"
}, {
"base": &"RefCounted",
"class": &"MoveGenerator",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://src/core/move_generator.gd"
}, {
"base": &"RefCounted",
"class": &"Round",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://src/core/round.gd"
}, {
"base": &"RefCounted",
"class": &"RuleConfig",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://src/core/rule_config.gd"
}, {
"base": &"RefCounted",
"class": &"RuleEngine",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://src/core/rule_engine.gd"
}, {
"base": &"GameController",
"class": &"TrainingController",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://src/game/training_controller.gd"
}]

View File

BIN
.godot/uid_cache.bin Normal file

Binary file not shown.

0
check_errors.txt Normal file
View File

27
check_output.txt Normal file
View File

@@ -0,0 +1,27 @@
WorkerThreadPool: 24 threads, 7 max low-priority.
Godot Engine v4.6.3.stable.official.7d41c59c4 - https://godotengine.org
TextServer: Added interface "Dummy"
TextServer: Added interface "ICU / HarfBuzz / Graphite (Built-in)"
Unrecognized output string "misc2" in mapping:
030000008a2e0000dd10000000000000,Hand Held Legend GC Ultimate,a:b0,b:b2,back:b17,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,guide:b18,leftshoulder:b10,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b19,misc2:b24,paddle1:b13,paddle2:b12,rightshoulder:b11,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b1,y:b3,platform:Windows,
Unrecognized output string "misc2" in mapping:
030000000d0f00000202000000000000,Horipad O Nintendo Switch 2 Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,misc2:b14,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows,
Unrecognized output string "misc2" in mapping:
030000000d0f00009601000000000000,Horipad Steam,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc2:b2,paddle1:b5,paddle2:b15,paddle3:b18,paddle4:b19,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,
Unrecognized output string "misc2" in mapping:
030000007e0500006920000000000000,Nintendo Switch 2 Pro Controller,a:b0,b:b1,back:b14,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b12,leftstick:b15,lefttrigger:b13,leftx:a0,lefty:a1~,misc1:b17,misc2:b20,paddle1:b18,paddle2:b19,rightshoulder:b4,rightstick:b7,righttrigger:b5,rightx:a2,righty:a3~,start:b6,x:b2,y:b3,platform:Windows,
Using "default" pen tablet driver...
TextServer: Primary interface set to: "ICU / HarfBuzz / Graphite (Built-in)".
CORE API HASH: 2475187701
EDITOR API HASH: 3867286884
SceneTreeFTI: traversal method DEFAULT
Loading resource: res://src/autoload/config.gd
Loading resource: res://src/autoload/event_bus.gd
Loading resource: res://src/autoload/audio_manager.gd
Loaded system CA certificates
Loading resource: res://src/ui/scenes/main_menu.tscn
Loading resource: res://src/ui/scenes/main_menu.gd
XR: Clearing primary interface
XR: Removed interface "Native mobile"
XR: Removed interface "OpenXR"

24
deck_err.txt Normal file
View File

@@ -0,0 +1,24 @@
SCRIPT ERROR: Parse Error: Could not resolve class "Deck", because of a parser error.
at: GDScript::reload (res://src/game/game_controller.gd:23)
GDScript backtrace (most recent call first):
[0] _initialize (res://tests/test_training_controller.gd:4)
SCRIPT ERROR: Parse Error: Cannot infer the type of "deck" variable because the value doesn't have a set type.
at: GDScript::reload (res://src/game/game_controller.gd:23)
GDScript backtrace (most recent call first):
[0] _initialize (res://tests/test_training_controller.gd:4)
SCRIPT ERROR: Parse Error: Could not resolve external class member "deal_cards".
at: GDScript::reload (res://src/game/game_controller.gd:24)
GDScript backtrace (most recent call first):
[0] _initialize (res://tests/test_training_controller.gd:4)
ERROR: Failed to load script "res://src/game/game_controller.gd" with error "Parse error".
at: load (modules/gdscript/gdscript.cpp:2907)
GDScript backtrace (most recent call first):
[0] _initialize (res://tests/test_training_controller.gd:4)
SCRIPT ERROR: Parse Error: Could not resolve class "GameController".
at: GDScript::reload (res://src/game/training_controller.gd:2)
GDScript backtrace (most recent call first):
[0] _initialize (res://tests/test_training_controller.gd:9)
ERROR: Failed to load script "res://src/game/training_controller.gd" with error "Parse error".
at: load (modules/gdscript/gdscript.cpp:2907)
GDScript backtrace (most recent call first):
[0] _initialize (res://tests/test_training_controller.gd:9)

4
deck_out.txt Normal file
View File

@@ -0,0 +1,4 @@
Godot Engine v4.6.3.stable.official.7d41c59c4 - https://godotengine.org
GameController loaded: (res://src/game/game_controller.gd):<GDScript#-9223372009524689480>
TrainingController loaded: (res://src/game/training_controller.gd):<GDScript#-9223372007477869127>

0
run_err.txt Normal file
View File

0
run_errors.txt Normal file
View File

27
run_out.txt Normal file
View File

@@ -0,0 +1,27 @@
WorkerThreadPool: 24 threads, 7 max low-priority.
Godot Engine v4.6.3.stable.official.7d41c59c4 - https://godotengine.org
TextServer: Added interface "Dummy"
TextServer: Added interface "ICU / HarfBuzz / Graphite (Built-in)"
Unrecognized output string "misc2" in mapping:
030000008a2e0000dd10000000000000,Hand Held Legend GC Ultimate,a:b0,b:b2,back:b17,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,guide:b18,leftshoulder:b10,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b19,misc2:b24,paddle1:b13,paddle2:b12,rightshoulder:b11,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b1,y:b3,platform:Windows,
Unrecognized output string "misc2" in mapping:
030000000d0f00000202000000000000,Horipad O Nintendo Switch 2 Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,misc2:b14,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows,
Unrecognized output string "misc2" in mapping:
030000000d0f00009601000000000000,Horipad Steam,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc2:b2,paddle1:b5,paddle2:b15,paddle3:b18,paddle4:b19,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,
Unrecognized output string "misc2" in mapping:
030000007e0500006920000000000000,Nintendo Switch 2 Pro Controller,a:b0,b:b1,back:b14,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b12,leftstick:b15,lefttrigger:b13,leftx:a0,lefty:a1~,misc1:b17,misc2:b20,paddle1:b18,paddle2:b19,rightshoulder:b4,rightstick:b7,righttrigger:b5,rightx:a2,righty:a3~,start:b6,x:b2,y:b3,platform:Windows,
Using "default" pen tablet driver...
TextServer: Primary interface set to: "ICU / HarfBuzz / Graphite (Built-in)".
CORE API HASH: 2475187701
EDITOR API HASH: 3867286884
SceneTreeFTI: traversal method DEFAULT
Loading resource: res://src/autoload/config.gd
Loading resource: res://src/autoload/event_bus.gd
Loading resource: res://src/autoload/audio_manager.gd
Loaded system CA certificates
Loading resource: res://src/ui/scenes/main_menu.tscn
Loading resource: res://src/ui/scenes/main_menu.gd
XR: Clearing primary interface
XR: Removed interface "Native mobile"
XR: Removed interface "OpenXR"

27
run_output.txt Normal file
View File

@@ -0,0 +1,27 @@
WorkerThreadPool: 24 threads, 7 max low-priority.
Godot Engine v4.6.3.stable.official.7d41c59c4 - https://godotengine.org
TextServer: Added interface "Dummy"
TextServer: Added interface "ICU / HarfBuzz / Graphite (Built-in)"
Unrecognized output string "misc2" in mapping:
030000008a2e0000dd10000000000000,Hand Held Legend GC Ultimate,a:b0,b:b2,back:b17,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,guide:b18,leftshoulder:b10,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b19,misc2:b24,paddle1:b13,paddle2:b12,rightshoulder:b11,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b1,y:b3,platform:Windows,
Unrecognized output string "misc2" in mapping:
030000000d0f00000202000000000000,Horipad O Nintendo Switch 2 Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,misc2:b14,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows,
Unrecognized output string "misc2" in mapping:
030000000d0f00009601000000000000,Horipad Steam,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc2:b2,paddle1:b5,paddle2:b15,paddle3:b18,paddle4:b19,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,
Unrecognized output string "misc2" in mapping:
030000007e0500006920000000000000,Nintendo Switch 2 Pro Controller,a:b0,b:b1,back:b14,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b12,leftstick:b15,lefttrigger:b13,leftx:a0,lefty:a1~,misc1:b17,misc2:b20,paddle1:b18,paddle2:b19,rightshoulder:b4,rightstick:b7,righttrigger:b5,rightx:a2,righty:a3~,start:b6,x:b2,y:b3,platform:Windows,
Using "default" pen tablet driver...
TextServer: Primary interface set to: "ICU / HarfBuzz / Graphite (Built-in)".
CORE API HASH: 2475187701
EDITOR API HASH: 3867286884
SceneTreeFTI: traversal method DEFAULT
Loading resource: res://src/autoload/config.gd
Loading resource: res://src/autoload/event_bus.gd
Loading resource: res://src/autoload/audio_manager.gd
Loaded system CA certificates
Loading resource: res://src/ui/scenes/main_menu.tscn
Loading resource: res://src/ui/scenes/main_menu.gd
XR: Clearing primary interface
XR: Removed interface "Native mobile"
XR: Removed interface "OpenXR"

View File

@@ -16,7 +16,7 @@ static func _rank_for(original_id: int) -> int:
return 15
if original_id == 53:
return 16
return 2 + (original_id // 4)
return 2 + (original_id / 4)
static func create(seed: int = -1) -> Deck:
var d := Deck.new()

1
tests/hello.gd.uid Normal file
View File

@@ -0,0 +1 @@
uid://lod5euxb1cwb

1
tests/quick_test.gd.uid Normal file
View File

@@ -0,0 +1 @@
uid://dr7imryh5wia8

View File

@@ -0,0 +1 @@
uid://crfk8i35o3o6d

1
tests/test_cards.gd.uid Normal file
View File

@@ -0,0 +1 @@
uid://bprfm0f45hu8e

1
tests/test_deck.gd.uid Normal file
View File

@@ -0,0 +1 @@
uid://cisvuuexcmhei

9
tests/test_deck_load.gd Normal file
View File

@@ -0,0 +1,9 @@
extends SceneTree
func _initialize():
var d = load("res://src/core/deck.gd")
if d:
print("Deck loaded: ", d)
else:
print("FAIL: Deck not found")
quit()

View File

@@ -0,0 +1 @@
uid://chwtpkp06q4no

View File

@@ -0,0 +1 @@
uid://cefkmiwlb6dlc

View File

@@ -0,0 +1 @@
uid://ryaamcy0nefy

View File

@@ -0,0 +1,14 @@
extends SceneTree
func _initialize():
var t = load("res://src/game/game_controller.gd")
if t:
print("GameController loaded: ", t)
else:
print("FAIL: GameController not found")
var tc = load("res://src/game/training_controller.gd")
if tc:
print("TrainingController loaded: ", tc)
else:
print("FAIL: TrainingController not found")
quit()

View File

@@ -0,0 +1 @@
uid://bgbmacvuo7rjd