diff --git a/.gitignore b/.gitignore index 0af181c..865561a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.DS_Store # Godot 4+ specific ignores .godot/ /android/ diff --git a/level/level_04.tscn b/level/level_04.tscn new file mode 100644 index 0000000..71a1bf9 --- /dev/null +++ b/level/level_04.tscn @@ -0,0 +1,155 @@ +[gd_scene load_steps=7 format=3 uid="uid://dxsyddfmbb8sj"] + +[ext_resource type="Script" uid="uid://c8ywa33v3jq7t" path="res://board.gd" id="1_bkp38"] +[ext_resource type="PackedScene" uid="uid://bkaa4sl1n2f5w" path="res://piece/wall.tscn" id="2_wavu4"] +[ext_resource type="PackedScene" uid="uid://bghr6ew34loyb" path="res://piece/ball.tscn" id="3_gjkxd"] +[ext_resource type="PackedScene" uid="uid://cnjmu3qesbndk" path="res://piece/player.tscn" id="4_57q7h"] +[ext_resource type="PackedScene" uid="uid://uf8vnylfqal1" path="res://piece/goal.tscn" id="5_v45xf"] +[ext_resource type="PackedScene" uid="uid://cyi67vbw8e0iy" path="res://piece/floor_ice.tscn" id="6_afjb4"] + +[node name="Level1" type="Node3D"] +script = ExtResource("1_bkp38") +metadata/_custom_type_script = "uid://c8ywa33v3jq7t" + +[node name="Wall" parent="." instance=ExtResource("2_wavu4")] + +[node name="Wall2" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0.6, 0.5) + +[node name="Wall3" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.6, 0.5) + +[node name="Wall4" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.6, 0.5) + +[node name="Wall5" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 0.5) + +[node name="Wall6" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0.6, 0.5) + +[node name="Wall7" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 0.5) + +[node name="Wall8" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 1.5) + +[node name="Wall9" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 2.5) + +[node name="Wall10" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 3.5) + +[node name="Wall11" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0.6, 3.5) + +[node name="Wall12" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 3.5) + +[node name="Wall13" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 4.5) + +[node name="Wall14" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 5.5) + +[node name="Wall15" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 6.5) + +[node name="Wall16" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.6, 6.5) + +[node name="Wall17" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.6, 6.5) + +[node name="Wall18" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0.6, 6.5) + +[node name="Wall19" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 6.5) + +[node name="Wall20" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 5.5) + +[node name="Wall21" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 4.5) + +[node name="Wall22" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 3.5) + +[node name="Wall23" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 2.5) + +[node name="Wall24" parent="." instance=ExtResource("2_wavu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 1.5) + +[node name="Ball" parent="." instance=ExtResource("3_gjkxd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.3, 2.5) + +[node name="Ball2" parent="." instance=ExtResource("3_gjkxd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.254827, 3.5) + +[node name="Player" parent="." instance=ExtResource("4_57q7h")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 1, 2.5) + +[node name="Goal" parent="." instance=ExtResource("5_v45xf")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0, 5.5) + +[node name="Goal2" parent="." instance=ExtResource("5_v45xf")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0, 2.5) + +[node name="FloorIce" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 1.5) + +[node name="FloorIce2" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0, 1.5) + +[node name="FloorIce3" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0, 1.5) + +[node name="FloorIce4" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 2.5) + +[node name="FloorIce5" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0, 2.5) + +[node name="FloorIce6" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0, 2.5) + +[node name="FloorIce16" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 1.5) + +[node name="FloorIce17" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 2.5) + +[node name="FloorIce18" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0, 1.5) + +[node name="FloorIce19" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0, 2.5) + +[node name="FloorIce7" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 3.5) + +[node name="FloorIce8" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0, 3.5) + +[node name="FloorIce9" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0, 3.5) + +[node name="FloorIce10" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 4.5) + +[node name="FloorIce11" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0, 4.5) + +[node name="FloorIce12" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0, 4.5) + +[node name="FloorIce13" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 5.5) + +[node name="FloorIce14" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0, 5.5) + +[node name="FloorIce15" parent="." instance=ExtResource("6_afjb4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0, 5.5) diff --git a/main.gd b/main.gd index 72e9738..1f055a9 100644 --- a/main.gd +++ b/main.gd @@ -12,10 +12,11 @@ var board: Board var player: Piece var level_num := -1 var levels: Array[PackedScene] = [ - preload("res://level/level_00.tscn"), - preload("res://level/level_01.tscn"), - preload("res://level/level_02.tscn"), - preload("res://level/level_03.tscn"), + preload("res://level/level_04.tscn"), + #preload("res://level/level_00.tscn"), + #preload("res://level/level_01.tscn"), + #preload("res://level/level_02.tscn"), + #preload("res://level/level_03.tscn"), ] var time := 0 var advancing := false @@ -88,14 +89,14 @@ func board_step(): func step(move: Vector2i): if advancing: return + if won(): + advance_level() # the ability to wait removes some parity stuff # but that stuff kinda sucks if move == Vector2i.ZERO: hist.create_action("wait") board_step() hist.commit_action() - if won(): - advance_level() return var pos := player.lpos @@ -115,6 +116,8 @@ func step(move: Vector2i): else: sound.stream = sounds_hit sound.play() + if won(): + advance_level() func won() -> bool: for piece in board.pieces():