From ba9a3f8cd8c111d34206cb30e87ec33b0dd8b97c Mon Sep 17 00:00:00 2001 From: Ileyan <3003916@stud.hs-mannheim.de> Date: Mon, 1 Apr 2024 19:22:12 +0200 Subject: [PATCH] v.0.6.5: Deadzones verbessert MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Man kann während dem Würfeln nicht mehr setzen --- board/board.gd | 4 +--- game.gd | 37 ++++++++++++++++++++++++++++++++----- game.tscn | 4 +++- 3 files changed, 36 insertions(+), 9 deletions(-) diff --git a/board/board.gd b/board/board.gd index e01258f..1ca6eb4 100644 --- a/board/board.gd +++ b/board/board.gd @@ -14,6 +14,7 @@ var off_limits: String = "" @export var active: bool = true + func _ready(): print("Initializing board...") _index_atlas_coordinates_by_name() @@ -103,15 +104,12 @@ func delete_column(column: int) -> void: else: #Falls kein Inhalt, leer setzten self.set_cell(tile_map_layer, Vector2i(i, j + 1)) - func delete_row(row: int) -> void: for i in range(6): self.set_cell(tile_map_layer, Vector2i(row - 3, i), 1, Vector2i(1, 2), 0) await get_tree().create_timer(0.25).timeout #Inhalt leer setzten (row -3 damit es mit 1 - 6 funktioniert) self.set_cell(tile_map_layer, Vector2i(row - 3, i)) - - func _clear_enemy_tile(grid_pos: Vector2) -> void: self.set_cell(tile_map_layer, grid_pos) self.set_cell(tile_map_layer, grid_pos, 1, Vector2i(1, 2), 0) diff --git a/game.gd b/game.gd index ecf1dc7..1877d99 100644 --- a/game.gd +++ b/game.gd @@ -11,7 +11,7 @@ var zuege = 0 var wuerfeln_erlaubt = false var wheel_spin_allowed = false var active = Theme.new() - +var schnickLost = false @onready var gui := $GUI as Node2D @onready var board := $Board as Board @@ -51,8 +51,10 @@ func _ready(): # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(_delta): + _check_dice_color() + move_allowed = move_allowed and !schnickLost and !luckyWheel.wheelActive if won == "": - if Input.is_action_just_pressed("Click") and move_allowed and !luckyWheel.wheelActive: + if Input.is_action_just_pressed("Click") and move_allowed: var grid_pos = board.gridpos_at_mouse() if enable_remove: print(grid_pos) @@ -110,6 +112,9 @@ func _check_win() -> String: if board.get_state(cell + check[0] * (i + j)) != state: same = false break + elif board.get_state(cell + check[0] * (i + j)) == "Triangle2": + same = false + break _sequence.append(Vector2i(cell + check[0] * (i + j))) if same: return state @@ -118,7 +123,9 @@ func _check_win() -> String: #Generiert die Zufallszahl von 1-6 func _roll_dice() -> int: + schnickLost = false wuerfeln_erlaubt = false + move_allowed = false var zahl = randi() % 6 + 1 var animation_help var zahl_davor @@ -150,7 +157,7 @@ func _roll_dice() -> int: switch_to_game() board.active = true - + move_allowed = true return zahl @@ -238,7 +245,6 @@ func _on_test_pressed(): func _spin_the_wheel(result: int) -> void: wheel_spin_allowed = false - move_allowed = true ereignis.text = "Ereignis: " if result <= 3: ereignis.text += "Instant win!" @@ -266,6 +272,8 @@ func _spin_the_wheel(result: int) -> void: ereignis.text += "Zeile " + str(zeile_zum_loeschen) + " wird entfernt!" await get_tree().create_timer(6).timeout board.delete_column(zeile_zum_loeschen) + + elif result <= 85: var spalte_zum_loeschen = randi() % 6 + 1 ereignis.text += "Spalte " + str(spalte_zum_loeschen) + " wird entfernt!" @@ -275,11 +283,15 @@ func _spin_the_wheel(result: int) -> void: var spalte = randi() % 6 + 1 ereignis.text += "Totes Feld in Spalte " + str(spalte) _dead_zone(spalte) + move_allowed = true func _dead_zone(spalte :int): var pos = board._calculate_drop_pos(Vector2(spalte-3,0)) - board.set_state(pos, "Triangle2") + if pos.y == 0: + _spin_the_wheel(randi() % 100 + 1) + else: + board.set_state(pos, "Triangle2") #Am Glücksrad drehen @@ -315,10 +327,25 @@ func switch_to_game(): board.show() func _on_gewonnen_pressed(): + schnickLost = false hide_schnick() switch_to_game() func _on_verloren_pressed(): + schnickLost = true + wuerfeln_erlaubt = true switch_player() hide_schnick() switch_to_game() + +func _check_dice_color(): + if wuerfeln_erlaubt == false: + diceButton.add_theme_color_override("font_color", Color.RED) + diceButton.add_theme_color_override("font_hover_color", Color.RED) + diceButton.add_theme_color_override("font_pressed_color", Color.RED) + diceButton.add_theme_color_override("font_focus_color", Color.RED) + elif wuerfeln_erlaubt == true: + diceButton.add_theme_color_override("font_color", Color.SEA_GREEN) + diceButton.add_theme_color_override("font_hover_color", Color.SEA_GREEN) + diceButton.add_theme_color_override("font_pressed_color", Color.SEA_GREEN) + diceButton.add_theme_color_override("font_focus_color", Color.SEA_GREEN) diff --git a/game.tscn b/game.tscn index 283e7b8..bf0511c 100644 --- a/game.tscn +++ b/game.tscn @@ -82,6 +82,8 @@ offset_top = 638.0 offset_right = 1583.0 offset_bottom = 758.0 theme_override_colors/font_color = Color(1, 0, 0, 1) +theme_override_colors/font_pressed_color = Color(1, 0, 0, 1) +theme_override_colors/font_hover_color = Color(1, 0.0588235, 0.0352941, 1) theme_override_font_sizes/font_size = 30 text = "Restart" @@ -148,8 +150,8 @@ offset_left = 573.0 offset_top = 909.0 offset_right = 778.0 offset_bottom = 978.0 +theme_override_colors/font_color = Color(1, 0, 0, 1) theme_override_font_sizes/font_size = 50 -text = "Ereignis:" [node name="Sequenz" type="Label" parent="GUI"] offset_left = 108.0