parent
e8f7cb1f3f
commit
ba9a3f8cd8
|
|
@ -14,6 +14,7 @@ var off_limits: String = ""
|
||||||
@export var active: bool = true
|
@export var active: bool = true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
print("Initializing board...")
|
print("Initializing board...")
|
||||||
_index_atlas_coordinates_by_name()
|
_index_atlas_coordinates_by_name()
|
||||||
|
|
@ -103,15 +104,12 @@ func delete_column(column: int) -> void:
|
||||||
else:
|
else:
|
||||||
#Falls kein Inhalt, leer setzten
|
#Falls kein Inhalt, leer setzten
|
||||||
self.set_cell(tile_map_layer, Vector2i(i, j + 1))
|
self.set_cell(tile_map_layer, Vector2i(i, j + 1))
|
||||||
|
|
||||||
func delete_row(row: int) -> void:
|
func delete_row(row: int) -> void:
|
||||||
for i in range(6):
|
for i in range(6):
|
||||||
self.set_cell(tile_map_layer, Vector2i(row - 3, i), 1, Vector2i(1, 2), 0)
|
self.set_cell(tile_map_layer, Vector2i(row - 3, i), 1, Vector2i(1, 2), 0)
|
||||||
await get_tree().create_timer(0.25).timeout
|
await get_tree().create_timer(0.25).timeout
|
||||||
#Inhalt leer setzten (row -3 damit es mit 1 - 6 funktioniert)
|
#Inhalt leer setzten (row -3 damit es mit 1 - 6 funktioniert)
|
||||||
self.set_cell(tile_map_layer, Vector2i(row - 3, i))
|
self.set_cell(tile_map_layer, Vector2i(row - 3, i))
|
||||||
|
|
||||||
|
|
||||||
func _clear_enemy_tile(grid_pos: Vector2) -> void:
|
func _clear_enemy_tile(grid_pos: Vector2) -> void:
|
||||||
self.set_cell(tile_map_layer, grid_pos)
|
self.set_cell(tile_map_layer, grid_pos)
|
||||||
self.set_cell(tile_map_layer, grid_pos, 1, Vector2i(1, 2), 0)
|
self.set_cell(tile_map_layer, grid_pos, 1, Vector2i(1, 2), 0)
|
||||||
|
|
|
||||||
37
game.gd
37
game.gd
|
|
@ -11,7 +11,7 @@ var zuege = 0
|
||||||
var wuerfeln_erlaubt = false
|
var wuerfeln_erlaubt = false
|
||||||
var wheel_spin_allowed = false
|
var wheel_spin_allowed = false
|
||||||
var active = Theme.new()
|
var active = Theme.new()
|
||||||
|
var schnickLost = false
|
||||||
|
|
||||||
@onready var gui := $GUI as Node2D
|
@onready var gui := $GUI as Node2D
|
||||||
@onready var board := $Board as Board
|
@onready var board := $Board as Board
|
||||||
|
|
@ -51,8 +51,10 @@ func _ready():
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
func _process(_delta):
|
func _process(_delta):
|
||||||
|
_check_dice_color()
|
||||||
|
move_allowed = move_allowed and !schnickLost and !luckyWheel.wheelActive
|
||||||
if won == "":
|
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()
|
var grid_pos = board.gridpos_at_mouse()
|
||||||
if enable_remove:
|
if enable_remove:
|
||||||
print(grid_pos)
|
print(grid_pos)
|
||||||
|
|
@ -110,6 +112,9 @@ func _check_win() -> String:
|
||||||
if board.get_state(cell + check[0] * (i + j)) != state:
|
if board.get_state(cell + check[0] * (i + j)) != state:
|
||||||
same = false
|
same = false
|
||||||
break
|
break
|
||||||
|
elif board.get_state(cell + check[0] * (i + j)) == "Triangle2":
|
||||||
|
same = false
|
||||||
|
break
|
||||||
_sequence.append(Vector2i(cell + check[0] * (i + j)))
|
_sequence.append(Vector2i(cell + check[0] * (i + j)))
|
||||||
if same:
|
if same:
|
||||||
return state
|
return state
|
||||||
|
|
@ -118,7 +123,9 @@ func _check_win() -> String:
|
||||||
|
|
||||||
#Generiert die Zufallszahl von 1-6
|
#Generiert die Zufallszahl von 1-6
|
||||||
func _roll_dice() -> int:
|
func _roll_dice() -> int:
|
||||||
|
schnickLost = false
|
||||||
wuerfeln_erlaubt = false
|
wuerfeln_erlaubt = false
|
||||||
|
move_allowed = false
|
||||||
var zahl = randi() % 6 + 1
|
var zahl = randi() % 6 + 1
|
||||||
var animation_help
|
var animation_help
|
||||||
var zahl_davor
|
var zahl_davor
|
||||||
|
|
@ -150,7 +157,7 @@ func _roll_dice() -> int:
|
||||||
switch_to_game()
|
switch_to_game()
|
||||||
board.active = true
|
board.active = true
|
||||||
|
|
||||||
|
move_allowed = true
|
||||||
return zahl
|
return zahl
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -238,7 +245,6 @@ func _on_test_pressed():
|
||||||
|
|
||||||
func _spin_the_wheel(result: int) -> void:
|
func _spin_the_wheel(result: int) -> void:
|
||||||
wheel_spin_allowed = false
|
wheel_spin_allowed = false
|
||||||
move_allowed = true
|
|
||||||
ereignis.text = "Ereignis: "
|
ereignis.text = "Ereignis: "
|
||||||
if result <= 3:
|
if result <= 3:
|
||||||
ereignis.text += "Instant win!"
|
ereignis.text += "Instant win!"
|
||||||
|
|
@ -266,6 +272,8 @@ func _spin_the_wheel(result: int) -> void:
|
||||||
ereignis.text += "Zeile " + str(zeile_zum_loeschen) + " wird entfernt!"
|
ereignis.text += "Zeile " + str(zeile_zum_loeschen) + " wird entfernt!"
|
||||||
await get_tree().create_timer(6).timeout
|
await get_tree().create_timer(6).timeout
|
||||||
board.delete_column(zeile_zum_loeschen)
|
board.delete_column(zeile_zum_loeschen)
|
||||||
|
|
||||||
|
|
||||||
elif result <= 85:
|
elif result <= 85:
|
||||||
var spalte_zum_loeschen = randi() % 6 + 1
|
var spalte_zum_loeschen = randi() % 6 + 1
|
||||||
ereignis.text += "Spalte " + str(spalte_zum_loeschen) + " wird entfernt!"
|
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
|
var spalte = randi() % 6 + 1
|
||||||
ereignis.text += "Totes Feld in Spalte " + str(spalte)
|
ereignis.text += "Totes Feld in Spalte " + str(spalte)
|
||||||
_dead_zone(spalte)
|
_dead_zone(spalte)
|
||||||
|
move_allowed = true
|
||||||
|
|
||||||
|
|
||||||
func _dead_zone(spalte :int):
|
func _dead_zone(spalte :int):
|
||||||
var pos = board._calculate_drop_pos(Vector2(spalte-3,0))
|
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
|
#Am Glücksrad drehen
|
||||||
|
|
@ -315,10 +327,25 @@ func switch_to_game():
|
||||||
board.show()
|
board.show()
|
||||||
|
|
||||||
func _on_gewonnen_pressed():
|
func _on_gewonnen_pressed():
|
||||||
|
schnickLost = false
|
||||||
hide_schnick()
|
hide_schnick()
|
||||||
switch_to_game()
|
switch_to_game()
|
||||||
|
|
||||||
func _on_verloren_pressed():
|
func _on_verloren_pressed():
|
||||||
|
schnickLost = true
|
||||||
|
wuerfeln_erlaubt = true
|
||||||
switch_player()
|
switch_player()
|
||||||
hide_schnick()
|
hide_schnick()
|
||||||
switch_to_game()
|
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)
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,8 @@ offset_top = 638.0
|
||||||
offset_right = 1583.0
|
offset_right = 1583.0
|
||||||
offset_bottom = 758.0
|
offset_bottom = 758.0
|
||||||
theme_override_colors/font_color = Color(1, 0, 0, 1)
|
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
|
theme_override_font_sizes/font_size = 30
|
||||||
text = "Restart"
|
text = "Restart"
|
||||||
|
|
||||||
|
|
@ -148,8 +150,8 @@ offset_left = 573.0
|
||||||
offset_top = 909.0
|
offset_top = 909.0
|
||||||
offset_right = 778.0
|
offset_right = 778.0
|
||||||
offset_bottom = 978.0
|
offset_bottom = 978.0
|
||||||
|
theme_override_colors/font_color = Color(1, 0, 0, 1)
|
||||||
theme_override_font_sizes/font_size = 50
|
theme_override_font_sizes/font_size = 50
|
||||||
text = "Ereignis:"
|
|
||||||
|
|
||||||
[node name="Sequenz" type="Label" parent="GUI"]
|
[node name="Sequenz" type="Label" parent="GUI"]
|
||||||
offset_left = 108.0
|
offset_left = 108.0
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue