feat: Implement initial main scene, player scripts, and core game manager systems for input, actions, playerboard, special tiles, and UI.

This commit is contained in:
Yogi Wiguna
2026-03-12 12:06:32 +08:00
parent 686ea2587e
commit 412e7bdcdd
8 changed files with 9 additions and 8610 deletions
-56
View File
@@ -11,12 +11,6 @@ const item_tex = [
]
# Node references - will be set by Main
var action_menu
var move_button
var grab_button
var put_button
var randomize_button
var arrange_button
# var victory_ui_scene = preload("res://scenes/ui/victory_ui.tscn")
var victory_ui_scene = null
var powerup_inventory_ui_script = preload("res://scripts/ui/powerup_inventory_ui.gd")
@@ -33,31 +27,12 @@ var player_name_label: Label # Shows player name on main UI
var local_player_character
var _previous_playerboard_state: Array = []
enum ActionState {
NONE,
MOVING,
GRABBING,
ARRANGING,
RANDOMIZING,
TARGETING
}
var current_action_state = ActionState.NONE
var pending_skill_id: int = -1
func initialize(player_node):
# Get PowerUp Inventory UI from scene
powerup_inventory_ui = player_node.get_node_or_null("PowerUpInventoryUI")
# Get node references from main scene
action_menu = player_node.get_node("ActionMenu")
var button_container = player_node.get_node("ActionMenu/ActionButtonContainer")
move_button = button_container.get_node("MoveButton")
grab_button = button_container.get_node("GrabButton")
put_button = button_container.get_node("PutButton")
randomize_button = button_container.get_node("RandomizeButton") # renamed main_node to player_node which is Main
arrange_button = player_node.get_node("ActionMenu/ActionButtonContainer/ArrangeButton")
playerboard_ui = player_node.get_node("PlayerboardUI")
# Connect PlayerName label (Level/XP/Name UI)
@@ -78,18 +53,6 @@ func set_local_player(player):
player_name_label.text = player.display_name
print("[UIManager] Updated PlayerName label to: ", player.display_name)
func setup_action_buttons(action_state_callback):
move_button.pressed.connect(func(): action_state_callback.call(ActionState.MOVING))
grab_button.pressed.connect(func(): action_state_callback.call(ActionState.GRABBING))
put_button.pressed.connect(func():
if local_player_character:
local_player_character.auto_put_item()
)
randomize_button.pressed.connect(func(): action_state_callback.call(ActionState.RANDOMIZING))
arrange_button.pressed.connect(func():
if local_player_character and local_player_character.action_points >= 2:
action_state_callback.call(ActionState.ARRANGING)
)
func setup_playerboard_ui():
for child in playerboard_ui.get_children():
@@ -238,25 +201,6 @@ func _pulse_slot_effect(slot: Control):
slot.modulate = Color(1.5, 1.5, 1.5) # Overbright
tween.parallel().tween_property(slot, "modulate", original_modulate, 0.3)
func update_button_states():
if not local_player_character or local_player_character.is_in_group("Bots"):
move_button.visible = false
grab_button.visible = false
put_button.visible = false
randomize_button.visible = false
arrange_button.visible = false
return
move_button.visible = true
grab_button.visible = true
put_button.visible = true
randomize_button.visible = true
arrange_button.visible = true
move_button.disabled = false
grab_button.disabled = false
put_button.disabled = false
arrange_button.disabled = false