fix: refine game mode state tracking and turn handling
* Centralize ball state generation in `BaseMode` * Track turn count, player, and ball state consistently * Prevent 8-ball, 9-ball, and colored snooker balls from being marked valid when reaped/sunk * Update mode initialization and ball-state assignment * Normalize Free Ball mode node name to `freeball`
This commit is contained in:
@@ -41,6 +41,6 @@ script = ExtResource("4_glu7g")
|
||||
[connection signal="pressed" from="ui/body/right_body/vbox/8ball" to="." method="_on_mode_bttn_pressed" flags=18]
|
||||
[connection signal="pressed" from="ui/body/right_body/vbox/9ball" to="." method="_on_mode_bttn_pressed" flags=18]
|
||||
[connection signal="pressed" from="ui/body/right_body/vbox/snooker" to="." method="_on_mode_bttn_pressed" flags=18]
|
||||
[connection signal="pressed" from="ui/body/right_body/vbox/free_ball" to="." method="_on_mode_bttn_pressed" flags=18]
|
||||
[connection signal="pressed" from="ui/body/right_body/vbox/freeball" to="." method="_on_mode_bttn_pressed" flags=18]
|
||||
|
||||
[editable path="ui"]
|
||||
|
||||
@@ -60,4 +60,4 @@ func _on_match_create_bttn_pressed() -> void:
|
||||
MessageBus.emit_request.rpc("match_list_add_entry", match_entry)
|
||||
|
||||
func _on_mode_bttn_pressed(button: Button) -> void:
|
||||
active_mode = button.name.remove_chars("_").to_lower()
|
||||
active_mode = button.name.to_lower()
|
||||
|
||||
@@ -158,7 +158,7 @@ mouse_default_cursor_shape = 2
|
||||
disabled = true
|
||||
text = "Snooker"
|
||||
|
||||
[node name="free_ball" type="Button" parent="body/right_body/vbox"]
|
||||
[node name="freeball" type="Button" parent="body/right_body/vbox"]
|
||||
layout_mode = 2
|
||||
mouse_default_cursor_shape = 2
|
||||
text = "Free Ball"
|
||||
|
||||
Reference in New Issue
Block a user