parent
37d1a0e1ab
commit
9f910aba7d
BIN
assets/skull.png
BIN
assets/skull.png
Binary file not shown.
Before Width: | Height: | Size: 8.9 KiB |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://cxsd3rd3k3eaj"
|
|
||||||
path="res://.godot/imported/skull.png-b3e3a5526e5abbe508c3491f9d549a8b.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/skull.png"
|
|
||||||
dest_files=["res://.godot/imported/skull.png-b3e3a5526e5abbe508c3491f9d549a8b.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
|
@ -16,11 +16,10 @@ var off_limits: String = ""
|
||||||
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
print("Initializing board...")
|
|
||||||
_index_atlas_coordinates_by_name()
|
_index_atlas_coordinates_by_name()
|
||||||
_index_layers_by_name()
|
_index_layers_by_name()
|
||||||
$Highlight.size = tile_set.tile_size
|
$Highlight.size = tile_set.tile_size
|
||||||
print("Tiles: ", ", ".join(tile_by_name.keys()))
|
|
||||||
|
|
||||||
|
|
||||||
func get_state(grid_pos: Vector2) -> String:
|
func get_state(grid_pos: Vector2) -> String:
|
||||||
|
@ -82,7 +81,7 @@ func _calculate_drop_pos(grid_pos: Vector2) -> Vector2:
|
||||||
#Löscht eine Zeile nach dem Glücksrad ereignis
|
#Löscht eine Zeile nach dem Glücksrad ereignis
|
||||||
func delete_column(column: int) -> void:
|
func delete_column(column: int) -> void:
|
||||||
for i in range(-2, 4, 1):
|
for i in range(-2, 4, 1):
|
||||||
self.set_cell(tile_map_layer, Vector2i(i, column - 1), 1, Vector2i(1, 2), 0)
|
self.set_cell(tile_map_layer, Vector2i(i, column - 1), 1, Vector2i(3,0), 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(i, column - 1))
|
self.set_cell(tile_map_layer, Vector2i(i, column - 1))
|
||||||
|
@ -94,9 +93,6 @@ func delete_column(column: int) -> void:
|
||||||
var tile_map_cell_source_id = self.get_cell_source_id(tile_map_layer, tile_map_cell_position);
|
var tile_map_cell_source_id = self.get_cell_source_id(tile_map_layer, tile_map_cell_position);
|
||||||
var tile_map_cell_atlas_coords = self.get_cell_atlas_coords(tile_map_layer, tile_map_cell_position)
|
var tile_map_cell_atlas_coords = self.get_cell_atlas_coords(tile_map_layer, tile_map_cell_position)
|
||||||
var tile_map_cell_alternative = self.get_cell_alternative_tile(tile_map_layer, tile_map_cell_position)
|
var tile_map_cell_alternative = self.get_cell_alternative_tile(tile_map_layer, tile_map_cell_position)
|
||||||
print(tile_map_cell_source_id)
|
|
||||||
print(tile_map_cell_atlas_coords)
|
|
||||||
print(tile_map_cell_alternative)
|
|
||||||
var new_tile_map_cell_position = Vector2i(i, j + 1)
|
var new_tile_map_cell_position = Vector2i(i, j + 1)
|
||||||
self.set_cell(tile_map_layer, new_tile_map_cell_position, tile_map_cell_source_id, tile_map_cell_atlas_coords, tile_map_cell_alternative)
|
self.set_cell(tile_map_layer, new_tile_map_cell_position, tile_map_cell_source_id, tile_map_cell_atlas_coords, tile_map_cell_alternative)
|
||||||
if j == 0:
|
if j == 0:
|
||||||
|
@ -106,13 +102,13 @@ func delete_column(column: int) -> void:
|
||||||
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(3,0), 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(3,0), 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, grid_pos)
|
self.set_cell(tile_map_layer, grid_pos)
|
||||||
|
|
59
game.gd
59
game.gd
|
@ -41,7 +41,7 @@ func _ready():
|
||||||
sequence_needed = 4
|
sequence_needed = 4
|
||||||
board.reset()
|
board.reset()
|
||||||
won = ""
|
won = ""
|
||||||
ereignis.text = "Ereignis: "
|
ereignis.text = ""
|
||||||
sequenz.text = "4 - Gewinnt!"
|
sequenz.text = "4 - Gewinnt!"
|
||||||
wonPlayer.hide()
|
wonPlayer.hide()
|
||||||
nextPlayer.region_rect.position.x = current_player * 300
|
nextPlayer.region_rect.position.x = current_player * 300
|
||||||
|
@ -61,27 +61,40 @@ func _process(_delta):
|
||||||
if Input.is_action_just_pressed("Click") and move_allowed:
|
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)
|
|
||||||
board._clear_enemy_tile(grid_pos)
|
board._clear_enemy_tile(grid_pos)
|
||||||
enable_remove = false
|
enable_remove = false
|
||||||
elif board.get_state(Vector2(grid_pos.x, 0)) == board.empty_state:
|
elif board.get_state(Vector2(grid_pos.x, 0)) == board.empty_state:
|
||||||
var new_pos = board._calculate_drop_pos(grid_pos)
|
var new_pos = board._calculate_drop_pos(grid_pos)
|
||||||
if board.set_state(new_pos, player_states[current_player]):
|
if board.set_state(new_pos, player_states[current_player]):
|
||||||
if zuege >= 1:
|
if zuege >= 1:
|
||||||
move_allowed = false #Damit vor jedem Zug gewürfelt wird (Ab Runde 2)
|
move_allowed = false
|
||||||
wuerfeln_erlaubt = true
|
wuerfeln_erlaubt = true
|
||||||
zuege += 1
|
zuege += 1
|
||||||
blindBoard.visible = false
|
blindBoard.visible = false
|
||||||
|
ereignis.text = ""
|
||||||
won = _check_win()
|
won = _check_win()
|
||||||
if won=="":
|
if won=="":
|
||||||
switch_player()
|
switch_player()
|
||||||
else:
|
else:
|
||||||
print("Winner: ", won)
|
|
||||||
wonPlayer.region_rect.position.x = player_states.find(won) * 300
|
wonPlayer.region_rect.position.x = player_states.find(won) * 300
|
||||||
if won == player_states[0]:
|
if won == player_states[0]:
|
||||||
|
print(str(_sequence))
|
||||||
|
_sequence = _sort_array(_sequence)
|
||||||
|
print(str(_sequence))
|
||||||
|
var umgerechnet = _umrechnung(_sequence)
|
||||||
|
_sequence = _lol(umgerechnet, _sequence)
|
||||||
|
print(str(umgerechnet))
|
||||||
|
print(str(_sequence))
|
||||||
for tile in _sequence:
|
for tile in _sequence:
|
||||||
board.set_cell(1, tile, 1, Vector2i(0, 2), 0)
|
board.set_cell(1, tile, 1, Vector2i(0, 2), 0)
|
||||||
else:
|
else:
|
||||||
|
print(str(_sequence))
|
||||||
|
_sequence = _sort_array(_sequence)
|
||||||
|
print(str(_sequence))
|
||||||
|
var umgerechnet = _umrechnung(_sequence)
|
||||||
|
_sequence = _lol(umgerechnet, _sequence)
|
||||||
|
print(str(umgerechnet))
|
||||||
|
print(str(_sequence))
|
||||||
for tile in _sequence:
|
for tile in _sequence:
|
||||||
board.set_cell(1, tile, 1, Vector2i(3, 2), 0)
|
board.set_cell(1, tile, 1, Vector2i(3, 2), 0)
|
||||||
wonPlayer.show()
|
wonPlayer.show()
|
||||||
|
@ -121,10 +134,37 @@ func _check_win() -> String:
|
||||||
break
|
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
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
|
func _sort_array(arr :Array) -> Array:
|
||||||
|
arr.sort_custom(func(a,b): return a < b)
|
||||||
|
return arr
|
||||||
|
|
||||||
|
func _umrechnung(arr :Array) -> Array:
|
||||||
|
var newArr = []
|
||||||
|
for i in range(1,arr.size()-1,1):
|
||||||
|
newArr.append(arr[i-1]-arr[i])
|
||||||
|
return newArr
|
||||||
|
|
||||||
|
#(-1, 0)_ (0,-1)| (-1,-1)\, (-1,1)/
|
||||||
|
func _lol(arr :Array, shortArr :Array) -> Array:
|
||||||
|
var bedingung
|
||||||
|
var vektoren = [Vector2i(-1,0),Vector2i(0,-1), Vector2i(-1,-1), Vector2i(-1,1)]
|
||||||
|
var newArr = []
|
||||||
|
for e in vektoren:
|
||||||
|
if arr.count(e) >= 2:
|
||||||
|
bedingung = e
|
||||||
|
for i in range(1,arr.size()+1,1):
|
||||||
|
if (shortArr[i-1] - shortArr[i]) == e:
|
||||||
|
newArr.append(shortArr[i-1])
|
||||||
|
newArr.append(shortArr[i])
|
||||||
|
return newArr
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#Generiert die Zufallszahl von 1-6
|
#Generiert die Zufallszahl von 1-6
|
||||||
func _roll_dice() -> int:
|
func _roll_dice() -> int:
|
||||||
schnickLost = false
|
schnickLost = false
|
||||||
|
@ -141,7 +181,7 @@ func _roll_dice() -> int:
|
||||||
|
|
||||||
await get_tree().create_timer(0.25).timeout
|
await get_tree().create_timer(0.25).timeout
|
||||||
_update_dice_sprite(zahl)
|
_update_dice_sprite(zahl)
|
||||||
print(zahl) #Debug ausgabe, später löschen
|
|
||||||
|
|
||||||
if zahl == 1:
|
if zahl == 1:
|
||||||
switch_to_schnick()
|
switch_to_schnick()
|
||||||
|
@ -172,8 +212,6 @@ func _on_dice_button_pressed():
|
||||||
move_allowed = true
|
move_allowed = true
|
||||||
_roll_dice()
|
_roll_dice()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#Sucht sich für die entsprechende Augenzahl
|
#Sucht sich für die entsprechende Augenzahl
|
||||||
#die X und Y-Koordinaten in der Tilemap
|
#die X und Y-Koordinaten in der Tilemap
|
||||||
func _update_dice_sprite(result :int):
|
func _update_dice_sprite(result :int):
|
||||||
|
@ -208,12 +246,10 @@ func _get_dice_pos_y(result: int) -> int:
|
||||||
|
|
||||||
#Nach dem Glücksradereignis wird die Siegesbedingung auf 5 gewinnt geändert
|
#Nach dem Glücksradereignis wird die Siegesbedingung auf 5 gewinnt geändert
|
||||||
func _five_wins() -> void:
|
func _five_wins() -> void:
|
||||||
print("5 Gewinnt aktiv") #Debug
|
|
||||||
sequence_needed = 5
|
sequence_needed = 5
|
||||||
|
|
||||||
#Nach dem Glücksradereignis tauschen die Spieler die Symbole
|
#Nach dem Glücksradereignis tauschen die Spieler die Symbole
|
||||||
func _change_symbols():
|
func _change_symbols():
|
||||||
print("tausch") #debug
|
|
||||||
current_player = 1 - current_player
|
current_player = 1 - current_player
|
||||||
nextPlayer.region_rect.position.x = current_player * 300
|
nextPlayer.region_rect.position.x = current_player * 300
|
||||||
var tempX = player1Sprite.region_rect.position.x
|
var tempX = player1Sprite.region_rect.position.x
|
||||||
|
@ -226,7 +262,6 @@ func _change_symbols():
|
||||||
#Nach dem Glücksradereignis gewinnt der Spieler sofort
|
#Nach dem Glücksradereignis gewinnt der Spieler sofort
|
||||||
func _instant_win():
|
func _instant_win():
|
||||||
won = player_states[current_player]
|
won = player_states[current_player]
|
||||||
print("Winner: ", won)
|
|
||||||
wonPlayer.region_rect.position.x = player_states.find(won) * 300
|
wonPlayer.region_rect.position.x = player_states.find(won) * 300
|
||||||
wonPlayer.show()
|
wonPlayer.show()
|
||||||
nextPlayer.hide()
|
nextPlayer.hide()
|
||||||
|
@ -235,7 +270,6 @@ func _instant_win():
|
||||||
func _instant_loose():
|
func _instant_loose():
|
||||||
current_player = 1 - current_player
|
current_player = 1 - current_player
|
||||||
won = player_states[current_player]
|
won = player_states[current_player]
|
||||||
print("Winner: ", won)
|
|
||||||
wonPlayer.region_rect.position.x = player_states.find(won) * 300
|
wonPlayer.region_rect.position.x = player_states.find(won) * 300
|
||||||
wonPlayer.show()
|
wonPlayer.show()
|
||||||
nextPlayer.hide()
|
nextPlayer.hide()
|
||||||
|
@ -243,8 +277,7 @@ func _instant_loose():
|
||||||
|
|
||||||
#Zum Testen der Events
|
#Zum Testen der Events
|
||||||
func _on_test_pressed():
|
func _on_test_pressed():
|
||||||
var rand = randi() % 6 + 1
|
_spin_the_wheel(14)
|
||||||
_dead_zone(rand)
|
|
||||||
|
|
||||||
|
|
||||||
func _spin_the_wheel(result: int) -> void:
|
func _spin_the_wheel(result: int) -> void:
|
||||||
|
|
Loading…
Reference in New Issue