diff --git a/player_side.gd b/player_side.gd index 21b4a04..aec31f2 100644 --- a/player_side.gd +++ b/player_side.gd @@ -9,6 +9,8 @@ signal rps_move(move: String) @export var support_red_card_prefab: PackedScene @export var support_green_card_prefab: PackedScene @export var monster_card_prefab: PackedScene +@export var rps_button_container: Container +@export var rps_grayed_color: Color @onready var monster_card_ui := $"MonsterCard" @onready var support1_green := $"Support1GreenCard" @@ -71,6 +73,7 @@ func _on_update(transition): monster_card_ui.visible = true monster_card_ui.show_monster(monster) incoming_damage_label.text = "Incoming Damage: " + str(monster.health_delta) + else: monster_card_ui.visible = false if match_manager.phase in [Match.Phase.SUMMON, Match.Phase.SUPPORT_1, Match.Phase.SUPPORT_2]: @@ -111,7 +114,6 @@ func _on_update(transition): if card is MonsterCard: var monster_card:MonsterCardUI = monster_card_prefab.instantiate() monster_card.show_monster(MatchMonster.new(card, card.base_health, 0)) - if !is_disabled: monster_card.left_clicked.connect(func (): _pop_this_card(monster_card) @@ -131,21 +133,37 @@ func _on_update(transition): btn.left_clicked.connect(func (): _pop_this_card(btn) play_card.emit(card)) - - if match_manager.phase == Match.Phase.RPS: - for move in ["rock", "paper", "scissors"]: - - if !show_buttons: - continue - - var btn = Button.new() - btn.text = move - btn.button_up.connect(func (): rps_move.emit(move)) - deck.add_child(btn) - + + if rps_button_container: + rps_button_container.visible = match_manager.phase == Match.Phase.RPS + for button: TextureButton in rps_button_container.get_children(): + button.modulate = rps_grayed_color + + func _pop_this_card(control: Control): if selected_card: selected_card.size_flags_vertical = Control.SIZE_SHRINK_END control.size_flags_vertical = Control.SIZE_SHRINK_BEGIN selected_card = control + + +func _on_kertas_button_button_down() -> void: + rps_move.emit("paper") + for button: TextureButton in rps_button_container.get_children(): + button.modulate = rps_grayed_color + rps_button_container.get_node("KertasButton").modulate = Color.WHITE + + +func _on_gunting_button_button_down() -> void: + rps_move.emit("scissors") + for button: TextureButton in rps_button_container.get_children(): + button.modulate = rps_grayed_color + rps_button_container.get_node("GuntingButton").modulate = Color.WHITE + + +func _on_batu_button_button_down() -> void: + rps_move.emit("rock") + for button: TextureButton in rps_button_container.get_children(): + button.modulate = rps_grayed_color + rps_button_container.get_node("BatuButton").modulate = Color.WHITE diff --git a/tcg/match/match_manager.gd b/tcg/match/match_manager.gd index 647f4ce..f77d424 100644 --- a/tcg/match/match_manager.gd +++ b/tcg/match/match_manager.gd @@ -79,6 +79,7 @@ func resolve(action_by_player_id: Dictionary) -> PhaseTransition: players[player_id].monster = _monster_from_card(card) players[player_id].hand = players[player_id].hand.filter(func(card_in_hand): return card.id != card_in_hand.id) events.append(EventMonsterSummoned.new(card)) + players[player_id].energy = players[player_id].energy - card.energy_cost if players.values().all(func(player: MatchPlayer): return player.monster): phase = Match.Phase.SUPPORT_1 Match.Phase.SUPPORT_1: