update/godot-version-4-4 #1
@@ -1,25 +1,19 @@
|
|||||||
extends Node2D
|
extends Node2D
|
||||||
|
|
||||||
enum Suits {HEARTS, DIAMONDS, CLUBS, SPADES}
|
|
||||||
enum Values {SIX = 6, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING, ACE}
|
|
||||||
enum GameState {SETUP, ATTACK, DEFEND, DRAW_PHASE, GAME_OVER}
|
|
||||||
enum JokerType {DOUBLE_ATTACK, TRUMP_CHANGE, DRAW_BLOCK}
|
|
||||||
|
|
||||||
class Player:
|
class Player:
|
||||||
var hand: Array = []
|
var hand: Array = []
|
||||||
var jokers_hand: Array = []
|
var jokers_hand: Array = []
|
||||||
var coins: int = 100
|
var coins: int = 100
|
||||||
var is_attacker: bool = false
|
var is_attacker: bool = false
|
||||||
|
|
||||||
func add_joker_to_hand(joker_type: JokerType):
|
func add_joker_to_hand(joker_type: Globals.JokerType):
|
||||||
jokers_hand.append(joker_type)
|
jokers_hand.append(joker_type)
|
||||||
|
|
||||||
func has_jokers_in_hand() -> bool:
|
func has_jokers_in_hand() -> bool:
|
||||||
return jokers_hand.size() > 0
|
return jokers_hand.size() > 0
|
||||||
|
|
||||||
func remove_card(card):
|
func remove_card(card):
|
||||||
hand.erase(card)
|
hand.erase(card)
|
||||||
|
|
||||||
func has_card_value(value) -> bool:
|
func has_card_value(value) -> bool:
|
||||||
for card in hand:
|
for card in hand:
|
||||||
if card.value == value:
|
if card.value == value:
|
||||||
@@ -28,19 +22,19 @@ class Player:
|
|||||||
|
|
||||||
# Game Variables
|
# Game Variables
|
||||||
var deck: Array = []
|
var deck: Array = []
|
||||||
var trump_suit: Suits
|
var trump_suit: Globals.Suits
|
||||||
var player1: Player
|
var player1: Player
|
||||||
var player2: Player
|
var player2: Player
|
||||||
var current_attacker: Player
|
var current_attacker: Player
|
||||||
var current_defender: Player
|
var current_defender: Player
|
||||||
var game_phase: GameState = GameState.SETUP
|
var game_phase: Globals.GameState = Globals.GameState.SETUP
|
||||||
var active_jokers: Array = []
|
var active_jokers: Array = []
|
||||||
var MAX_JOKERS: int = 3
|
var MAX_JOKERS: int = 3
|
||||||
|
|
||||||
# Battle Variables
|
# Battle Variables
|
||||||
var attacking_cards: Array = []
|
var attacking_cards: Array = []
|
||||||
var defending_cards: Array = []
|
var defending_cards: Array = []
|
||||||
var table_pairs: Array = [] # [{attack: card, defend: card}]
|
var table_pairs: Array = [] # [{attack: card, defend: card}]
|
||||||
var can_add_attack: bool = false
|
var can_add_attack: bool = false
|
||||||
|
|
||||||
# UI Reference
|
# UI Reference
|
||||||
@@ -52,14 +46,14 @@ func _ready():
|
|||||||
current_attacker = player1
|
current_attacker = player1
|
||||||
current_defender = player2
|
current_defender = player2
|
||||||
player1.is_attacker = true
|
player1.is_attacker = true
|
||||||
|
|
||||||
if ui:
|
if ui:
|
||||||
ui.card_played.connect(_on_card_played)
|
ui.card_played.connect(_on_card_played)
|
||||||
ui.joker_played.connect(_on_joker_played)
|
ui.joker_played.connect(_on_joker_played)
|
||||||
ui.booster_bought.connect(_on_booster_bought)
|
ui.booster_bought.connect(_on_booster_bought)
|
||||||
ui.defend_button_pressed.connect(_on_defend_complete)
|
ui.defend_button_pressed.connect(_on_defend_complete)
|
||||||
ui.take_cards_pressed.connect(_on_take_cards)
|
ui.take_cards_pressed.connect(_on_take_cards)
|
||||||
|
|
||||||
start_new_game()
|
start_new_game()
|
||||||
|
|
||||||
func start_new_game():
|
func start_new_game():
|
||||||
@@ -68,14 +62,14 @@ func start_new_game():
|
|||||||
shuffle_deck()
|
shuffle_deck()
|
||||||
deal_cards()
|
deal_cards()
|
||||||
set_trump()
|
set_trump()
|
||||||
game_phase = GameState.ATTACK
|
game_phase = Globals.GameState.ATTACK
|
||||||
update_ui()
|
update_ui()
|
||||||
print("Spiel gestartet! ", current_attacker, " greift an")
|
print("Spiel gestartet! ", current_attacker, " greift an")
|
||||||
|
|
||||||
func create_deck():
|
func create_deck():
|
||||||
deck.clear()
|
deck.clear()
|
||||||
for suit in [Suits.HEARTS, Suits.DIAMONDS, Suits.CLUBS, Suits.SPADES]:
|
for suit in [Globals.Suits.HEARTS, Globals.Suits.DIAMONDS, Globals.Suits.CLUBS, Globals.Suits.SPADES]:
|
||||||
for value in [Values.SIX, Values.SEVEN, Values.EIGHT, Values.NINE, Values.TEN, Values.JACK, Values.QUEEN, Values.KING, Values.ACE]:
|
for value in [Globals.Values.SIX, Globals.Values.SEVEN, Globals.Values.EIGHT, Globals.Values.NINE, Globals.Values.TEN, Globals.Values.JACK, Globals.Values.QUEEN, Globals.Values.KING, Globals.Values.ACE]:
|
||||||
deck.append({"suit": suit, "value": value, "is_joker": false})
|
deck.append({"suit": suit, "value": value, "is_joker": false})
|
||||||
|
|
||||||
func setup_initial_jokers():
|
func setup_initial_jokers():
|
||||||
@@ -92,7 +86,7 @@ func deal_cards():
|
|||||||
player1.add_joker_to_hand(card.joker_type)
|
player1.add_joker_to_hand(card.joker_type)
|
||||||
else:
|
else:
|
||||||
player1.hand.append(card)
|
player1.hand.append(card)
|
||||||
|
|
||||||
if deck.size() > 0:
|
if deck.size() > 0:
|
||||||
var card = deck.pop_back()
|
var card = deck.pop_back()
|
||||||
if card.is_joker:
|
if card.is_joker:
|
||||||
@@ -109,9 +103,9 @@ func set_trump():
|
|||||||
# MAIN GAME LOGIC
|
# MAIN GAME LOGIC
|
||||||
func _on_card_played(card):
|
func _on_card_played(card):
|
||||||
match game_phase:
|
match game_phase:
|
||||||
GameState.ATTACK:
|
Globals.GameState.ATTACK:
|
||||||
handle_attack(card)
|
handle_attack(card)
|
||||||
GameState.DEFEND:
|
Globals.GameState.DEFEND:
|
||||||
handle_defense(card)
|
handle_defense(card)
|
||||||
|
|
||||||
func handle_attack(card):
|
func handle_attack(card):
|
||||||
@@ -119,35 +113,35 @@ func handle_attack(card):
|
|||||||
if not can_attack_with_card(card):
|
if not can_attack_with_card(card):
|
||||||
print("Angriff mit dieser Karte nicht möglich!")
|
print("Angriff mit dieser Karte nicht möglich!")
|
||||||
return
|
return
|
||||||
|
|
||||||
# Karte vom Angreifer entfernen
|
# Karte vom Angreifer entfernen
|
||||||
current_attacker.remove_card(card)
|
current_attacker.remove_card(card)
|
||||||
attacking_cards.append(card)
|
attacking_cards.append(card)
|
||||||
|
|
||||||
print("Angriff mit: ", card)
|
print("Angriff mit: ", card)
|
||||||
|
|
||||||
# Wechsel zu Verteidigung
|
# Wechsel zu Verteidigung
|
||||||
game_phase = GameState.DEFEND
|
game_phase = Globals.GameState.DEFEND
|
||||||
update_ui()
|
update_ui()
|
||||||
|
|
||||||
func handle_defense(card):
|
func handle_defense(card):
|
||||||
if attacking_cards.size() == 0:
|
if attacking_cards.size() == 0:
|
||||||
print("Nichts zu verteidigen!")
|
print("Nichts zu verteidigen!")
|
||||||
return
|
return
|
||||||
|
|
||||||
var attack_card = attacking_cards[-1] # Letzte Angriffskarte
|
var attack_card = attacking_cards[-1] # Letzte Angriffskarte
|
||||||
|
|
||||||
if can_beat_card(attack_card, card):
|
if can_beat_card(attack_card, card):
|
||||||
# Erfolgreiche Verteidigung
|
# Erfolgreiche Verteidigung
|
||||||
current_defender.remove_card(card)
|
current_defender.remove_card(card)
|
||||||
defending_cards.append(card)
|
defending_cards.append(card)
|
||||||
|
|
||||||
# Paar erstellen
|
# Paar erstellen
|
||||||
table_pairs.append({"attack": attack_card, "defend": card})
|
table_pairs.append({"attack": attack_card, "defend": card})
|
||||||
attacking_cards.pop_back()
|
attacking_cards.pop_back()
|
||||||
|
|
||||||
print("Verteidigt: ", attack_card, " mit ", card)
|
print("Verteidigt: ", attack_card, " mit ", card)
|
||||||
|
|
||||||
# Prüfen ob weitere Angriffe möglich
|
# Prüfen ob weitere Angriffe möglich
|
||||||
can_add_attack = true
|
can_add_attack = true
|
||||||
check_round_end()
|
check_round_end()
|
||||||
@@ -158,26 +152,26 @@ func can_attack_with_card(card) -> bool:
|
|||||||
# Erster Angriff: Jede Karte erlaubt
|
# Erster Angriff: Jede Karte erlaubt
|
||||||
if attacking_cards.size() == 0 and table_pairs.size() == 0:
|
if attacking_cards.size() == 0 and table_pairs.size() == 0:
|
||||||
return true
|
return true
|
||||||
|
|
||||||
# Weitere Angriffe: Nur Werte die schon auf dem Tisch liegen
|
# Weitere Angriffe: Nur Werte die schon auf dem Tisch liegen
|
||||||
var table_values = []
|
var table_Globals = []
|
||||||
for pair in table_pairs:
|
for pair in table_pairs:
|
||||||
table_values.append(pair.attack.value)
|
table_Globals.Values.append(pair.attack.value)
|
||||||
table_values.append(pair.defend.value)
|
table_Globals.Values.append(pair.defend.value)
|
||||||
for attack in attacking_cards:
|
for attack in attacking_cards:
|
||||||
table_values.append(attack.value)
|
table_Globals.Values.append(attack.value)
|
||||||
|
|
||||||
return card.value in table_values
|
return card.value in table_Globals.Values
|
||||||
|
|
||||||
func can_beat_card(attacking_card, defending_card) -> bool:
|
func can_beat_card(attacking_card, defending_card) -> bool:
|
||||||
# Trump schlägt alles außer höheren Trump
|
# Trump schlägt alles außer höheren Trump
|
||||||
if defending_card.suit == trump_suit and attacking_card.suit != trump_suit:
|
if defending_card.suit == trump_suit and attacking_card.suit != trump_suit:
|
||||||
return true
|
return true
|
||||||
|
|
||||||
# Gleiche Farbe: höherer Wert gewinnt
|
# Gleiche Farbe: höherer Wert gewinnt
|
||||||
if attacking_card.suit == defending_card.suit:
|
if attacking_card.suit == defending_card.suit:
|
||||||
return defending_card.value > attacking_card.value
|
return defending_card.value > attacking_card.value
|
||||||
|
|
||||||
return false
|
return false
|
||||||
|
|
||||||
func check_round_end():
|
func check_round_end():
|
||||||
@@ -185,7 +179,7 @@ func check_round_end():
|
|||||||
if attacking_cards.size() == 0:
|
if attacking_cards.size() == 0:
|
||||||
if can_add_attack and current_attacker.hand.size() > 0:
|
if can_add_attack and current_attacker.hand.size() > 0:
|
||||||
# Angreifer kann weitere Karten spielen
|
# Angreifer kann weitere Karten spielen
|
||||||
game_phase = GameState.ATTACK
|
game_phase = Globals.GameState.ATTACK
|
||||||
print("Weitere Angriffe möglich")
|
print("Weitere Angriffe möglich")
|
||||||
else:
|
else:
|
||||||
# Runde erfolgreich verteidigt
|
# Runde erfolgreich verteidigt
|
||||||
@@ -196,36 +190,36 @@ func check_round_end():
|
|||||||
|
|
||||||
func end_round_defended():
|
func end_round_defended():
|
||||||
print("Runde erfolgreich verteidigt!")
|
print("Runde erfolgreich verteidigt!")
|
||||||
|
|
||||||
# Karten vom Tisch entfernen
|
# Karten vom Tisch entfernen
|
||||||
table_pairs.clear()
|
table_pairs.clear()
|
||||||
attacking_cards.clear()
|
attacking_cards.clear()
|
||||||
defending_cards.clear()
|
defending_cards.clear()
|
||||||
can_add_attack = false
|
can_add_attack = false
|
||||||
|
|
||||||
# Rollen tauschen: Verteidiger wird Angreifer
|
# Rollen tauschen: Verteidiger wird Angreifer
|
||||||
swap_roles()
|
swap_roles()
|
||||||
|
|
||||||
# Karten nachziehen
|
# Karten nachziehen
|
||||||
draw_phase()
|
draw_phase()
|
||||||
|
|
||||||
func end_round_taken():
|
func end_round_taken():
|
||||||
print("Verteidiger nimmt alle Karten!")
|
print("Verteidiger nimmt alle Karten!")
|
||||||
|
|
||||||
# Alle Karten an Verteidiger geben
|
# Alle Karten an Verteidiger geben
|
||||||
for pair in table_pairs:
|
for pair in table_pairs:
|
||||||
current_defender.hand.append(pair.attack)
|
current_defender.hand.append(pair.attack)
|
||||||
current_defender.hand.append(pair.defend)
|
current_defender.hand.append(pair.defend)
|
||||||
|
|
||||||
for card in attacking_cards:
|
for card in attacking_cards:
|
||||||
current_defender.hand.append(card)
|
current_defender.hand.append(card)
|
||||||
|
|
||||||
# Aufräumen
|
# Aufräumen
|
||||||
table_pairs.clear()
|
table_pairs.clear()
|
||||||
attacking_cards.clear()
|
attacking_cards.clear()
|
||||||
defending_cards.clear()
|
defending_cards.clear()
|
||||||
can_add_attack = false
|
can_add_attack = false
|
||||||
|
|
||||||
# Angreifer bleibt Angreifer (Verteidiger nimmt)
|
# Angreifer bleibt Angreifer (Verteidiger nimmt)
|
||||||
# Karten nachziehen
|
# Karten nachziehen
|
||||||
draw_phase()
|
draw_phase()
|
||||||
@@ -234,27 +228,27 @@ func swap_roles():
|
|||||||
var temp = current_attacker
|
var temp = current_attacker
|
||||||
current_attacker = current_defender
|
current_attacker = current_defender
|
||||||
current_defender = temp
|
current_defender = temp
|
||||||
|
|
||||||
current_attacker.is_attacker = true
|
current_attacker.is_attacker = true
|
||||||
current_defender.is_attacker = false
|
current_defender.is_attacker = false
|
||||||
|
|
||||||
print("Rollen getauscht: ", current_attacker, " greift an")
|
print("Rollen getauscht: ", current_attacker, " greift an")
|
||||||
|
|
||||||
func draw_phase():
|
func draw_phase():
|
||||||
game_phase = GameState.DRAW_PHASE
|
game_phase = Globals.GameState.DRAW_PHASE
|
||||||
|
|
||||||
# Angreifer zieht zuerst auf 6 Karten
|
# Angreifer zieht zuerst auf 6 Karten
|
||||||
draw_cards_to_six(current_attacker)
|
draw_cards_to_six(current_attacker)
|
||||||
|
|
||||||
# Dann Verteidiger
|
# Dann Verteidiger
|
||||||
draw_cards_to_six(current_defender)
|
draw_cards_to_six(current_defender)
|
||||||
|
|
||||||
# Spielende prüfen
|
# Spielende prüfen
|
||||||
if check_game_end():
|
if check_game_end():
|
||||||
return
|
return
|
||||||
|
|
||||||
# Nächste Runde starten
|
# Nächste Runde starten
|
||||||
game_phase = GameState.ATTACK
|
game_phase = Globals.GameState.ATTACK
|
||||||
update_ui()
|
update_ui()
|
||||||
|
|
||||||
func draw_cards_to_six(player: Player):
|
func draw_cards_to_six(player: Player):
|
||||||
@@ -267,23 +261,23 @@ func draw_cards_to_six(player: Player):
|
|||||||
else:
|
else:
|
||||||
player.hand.append(card)
|
player.hand.append(card)
|
||||||
|
|
||||||
func show_joker_dialog(player: Player, joker_type: JokerType):
|
func show_joker_dialog(player: Player, joker_type: Globals.JokerType):
|
||||||
if player == player1: # Nur für menschlichen Spieler
|
if player == player1: # Nur für menschlichen Spieler
|
||||||
ui.show_joker_choice(joker_type)
|
ui.show_joker_choice(joker_type)
|
||||||
|
|
||||||
func _on_joker_choice(play_immediately: bool, joker_type: JokerType):
|
func _on_joker_choice(play_immediately: bool, joker_type: Globals.JokerType):
|
||||||
if play_immediately:
|
if play_immediately:
|
||||||
play_joker_to_field(player1, joker_type)
|
play_joker_to_field(player1, joker_type)
|
||||||
# Sonst bleibt Joker auf der Hand (Risiko!)
|
# Sonst bleibt Joker auf der Hand (Risiko!)
|
||||||
|
|
||||||
# UI Event Handlers
|
# UI Event Handlers
|
||||||
func _on_defend_complete():
|
func _on_defend_complete():
|
||||||
if game_phase == GameState.DEFEND:
|
if game_phase == Globals.GameState.DEFEND:
|
||||||
# Verteidiger gibt auf, nimmt alle Karten
|
# Verteidiger gibt auf, nimmt alle Karten
|
||||||
end_round_taken()
|
end_round_taken()
|
||||||
|
|
||||||
func _on_take_cards():
|
func _on_take_cards():
|
||||||
if game_phase == GameState.DEFEND:
|
if game_phase == Globals.GameState.DEFEND:
|
||||||
end_round_taken()
|
end_round_taken()
|
||||||
|
|
||||||
func _on_joker_played(joker_type):
|
func _on_joker_played(joker_type):
|
||||||
@@ -306,31 +300,31 @@ func check_game_end() -> bool:
|
|||||||
if player1.hand.size() == 0:
|
if player1.hand.size() == 0:
|
||||||
if player1.has_jokers_in_hand():
|
if player1.has_jokers_in_hand():
|
||||||
print("Spieler 1 verliert - Joker auf der Hand!")
|
print("Spieler 1 verliert - Joker auf der Hand!")
|
||||||
game_phase = GameState.GAME_OVER
|
game_phase = Globals.GameState.GAME_OVER
|
||||||
return true
|
return true
|
||||||
else:
|
else:
|
||||||
print("Spieler 1 gewinnt!")
|
print("Spieler 1 gewinnt!")
|
||||||
game_phase = GameState.GAME_OVER
|
game_phase = Globals.GameState.GAME_OVER
|
||||||
return true
|
return true
|
||||||
|
|
||||||
if player2.hand.size() == 0:
|
if player2.hand.size() == 0:
|
||||||
if player2.has_jokers_in_hand():
|
if player2.has_jokers_in_hand():
|
||||||
print("Spieler 2 verliert - Joker auf der Hand!")
|
print("Spieler 2 verliert - Joker auf der Hand!")
|
||||||
game_phase = GameState.GAME_OVER
|
game_phase = Globals.GameState.GAME_OVER
|
||||||
return true
|
return true
|
||||||
else:
|
else:
|
||||||
print("Spieler 2 gewinnt!")
|
print("Spieler 2 gewinnt!")
|
||||||
game_phase = GameState.GAME_OVER
|
game_phase = Globals.GameState.GAME_OVER
|
||||||
return true
|
return true
|
||||||
|
|
||||||
return false
|
return false
|
||||||
|
|
||||||
# Joker System
|
# Joker System
|
||||||
func play_joker_to_field(player: Player, joker_type: JokerType) -> bool:
|
func play_joker_to_field(player: Player, joker_type: Globals.JokerType) -> bool:
|
||||||
if active_jokers.size() >= MAX_JOKERS:
|
if active_jokers.size() >= MAX_JOKERS:
|
||||||
print("Maximale Joker-Anzahl erreicht!")
|
print("Maximale Joker-Anzahl erreicht!")
|
||||||
return false
|
return false
|
||||||
|
|
||||||
if joker_type in player.jokers_hand:
|
if joker_type in player.jokers_hand:
|
||||||
player.jokers_hand.erase(joker_type)
|
player.jokers_hand.erase(joker_type)
|
||||||
active_jokers.append(joker_type)
|
active_jokers.append(joker_type)
|
||||||
@@ -339,15 +333,15 @@ func play_joker_to_field(player: Player, joker_type: JokerType) -> bool:
|
|||||||
return true
|
return true
|
||||||
return false
|
return false
|
||||||
|
|
||||||
func apply_joker_effect(joker_type: JokerType):
|
func apply_joker_effect(joker_type: Globals.JokerType):
|
||||||
match joker_type:
|
match joker_type:
|
||||||
JokerType.TRUMP_CHANGE:
|
Globals.JokerType.TRUMP_CHANGE:
|
||||||
print("Trump-Wechsel verfügbar!")
|
print("Trump-Wechsel verfügbar!")
|
||||||
# UI für Trump-Auswahl
|
# UI für Trump-Auswahl
|
||||||
JokerType.DOUBLE_ATTACK:
|
Globals.JokerType.DOUBLE_ATTACK:
|
||||||
print("Doppel-Angriff möglich!")
|
print("Doppel-Angriff möglich!")
|
||||||
# Ermöglicht 2 Karten gleichzeitig
|
# Ermöglicht 2 Karten gleichzeitig
|
||||||
JokerType.DRAW_BLOCK:
|
Globals.JokerType.DRAW_BLOCK:
|
||||||
print("Zieh-Block aktiv!")
|
print("Zieh-Block aktiv!")
|
||||||
# Gegner kann nicht ziehen
|
# Gegner kann nicht ziehen
|
||||||
|
|
||||||
@@ -355,15 +349,15 @@ func buy_booster(player: Player, cost: int = 50) -> Array:
|
|||||||
if player.coins >= cost:
|
if player.coins >= cost:
|
||||||
player.coins -= cost
|
player.coins -= cost
|
||||||
var booster_content = []
|
var booster_content = []
|
||||||
|
|
||||||
for i in range(3):
|
for i in range(3):
|
||||||
if randf() < 0.3:
|
if randf() < 0.3:
|
||||||
var joker_types = [JokerType.DOUBLE_ATTACK, JokerType.TRUMP_CHANGE, JokerType.DRAW_BLOCK]
|
var joker_types = [Globals.JokerType.DOUBLE_ATTACK, Globals.JokerType.TRUMP_CHANGE, Globals.JokerType.DRAW_BLOCK]
|
||||||
var random_joker = joker_types[randi() % joker_types.size()]
|
var random_joker = joker_types[randi() % joker_types.size()]
|
||||||
booster_content.append({"type": "joker", "joker_type": random_joker})
|
booster_content.append({"type": "joker", "joker_type": random_joker})
|
||||||
else:
|
else:
|
||||||
booster_content.append({"type": "coins", "amount": randi() % 20 + 10})
|
booster_content.append({"type": "coins", "amount": randi() % 20 + 10})
|
||||||
|
|
||||||
return booster_content
|
return booster_content
|
||||||
return []
|
return []
|
||||||
|
|
||||||
@@ -375,15 +369,15 @@ func update_ui():
|
|||||||
ui.update_coins(player1.coins)
|
ui.update_coins(player1.coins)
|
||||||
ui.update_table(table_pairs, attacking_cards)
|
ui.update_table(table_pairs, attacking_cards)
|
||||||
ui.update_game_state(game_phase, current_attacker == player1)
|
ui.update_game_state(game_phase, current_attacker == player1)
|
||||||
|
|
||||||
if deck.size() > 0:
|
if deck.is_empty():
|
||||||
ui.update_trump(deck[0])
|
ui.update_trump(deck[0])
|
||||||
|
|
||||||
# Input for testing
|
# Input for testing
|
||||||
func _input(event):
|
func _input(event):
|
||||||
if event.is_action_pressed("ui_accept"):
|
if event.is_action_pressed("ui_accept"):
|
||||||
_on_booster_bought()
|
_on_booster_bought()
|
||||||
|
|
||||||
if event.is_action_pressed("ui_cancel"):
|
if event.is_action_pressed("ui_cancel"):
|
||||||
if game_phase == GameState.DEFEND:
|
if game_phase == Globals.GameState.DEFEND:
|
||||||
_on_take_cards()
|
_on_take_cards()
|
||||||
|
|||||||
Reference in New Issue
Block a user