level 4 noodling

This commit is contained in:
mehbark 2025-05-05 13:18:37 -04:00
parent 4d72bd910f
commit d6a045c43b
3 changed files with 165 additions and 6 deletions

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
.DS_Store
# Godot 4+ specific ignores
.godot/
/android/

155
level/level_04.tscn Normal file
View file

@ -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)

15
main.gd
View file

@ -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():