split gravity logic, various bug fixes
fixed gravity strength being possibly strong at level beginning fixed restarting being allowed after getting the last ring fixed save file's "played_for" being reset or set to another file's fixed the displayed save file total play time not being updated on main menu maybe there's other stuff
This commit is contained in:
parent
38897c706a
commit
709ce8eea3
11 changed files with 131 additions and 106 deletions
24
index.tscn
24
index.tscn
|
@ -1,6 +1,7 @@
|
|||
[gd_scene load_steps=7 format=3 uid="uid://ccgnnif026wb4"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://ccgnnif026wb4"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://xd3nsiglcdfc" path="res://gui/timer.tscn" id="1_356j3"]
|
||||
[ext_resource type="PackedScene" uid="uid://dw0xl8644x166" path="res://gui/gravity.tscn" id="1_ir7so"]
|
||||
[ext_resource type="PackedScene" uid="uid://cckeamgkt8bqo" path="res://gui/speed.tscn" id="2_2gn6w"]
|
||||
[ext_resource type="PackedScene" uid="uid://cn55m5dqo3m6u" path="res://gui/rings.tscn" id="3_mbj17"]
|
||||
[ext_resource type="PackedScene" uid="uid://dkxtwpcy4moyo" path="res://menus/pause_menu.tscn" id="4_3bfj3"]
|
||||
|
@ -8,8 +9,8 @@
|
|||
[sub_resource type="GDScript" id="GDScript_8n212"]
|
||||
script/source = "extends Node
|
||||
|
||||
var playing: bool = false
|
||||
var changing_level: bool = false
|
||||
var playing := false
|
||||
var changing_level := false
|
||||
|
||||
var main_menu: Node
|
||||
var current_level: Level
|
||||
|
@ -17,6 +18,7 @@ var current_level_scene: PackedScene
|
|||
|
||||
const res_main_menu = preload(\"res://menus/main/main_menu.tscn\")
|
||||
|
||||
@onready var gui_gravity := $GUI/Gravity
|
||||
@onready var gui_timer := $GUI/TopLeft/Timer
|
||||
@onready var gui_speed := $GUI/TopRight/Speed
|
||||
@onready var gui_rings := $GUI/BottomRight/Rings
|
||||
|
@ -57,6 +59,7 @@ func start_level(level: Level, scene: PackedScene) -> void:
|
|||
current_level_scene = scene
|
||||
add_child(current_level)
|
||||
|
||||
current_level.connect(\"gravity_change\", gui_gravity.react_to_gravity_change)
|
||||
current_level.connect(\"completed\", finish_current_level)
|
||||
current_level.connect(\"ring_collected\", func():
|
||||
gui_rings.remaining_rings = len(current_level.rings) - current_level.finished_rings_count
|
||||
|
@ -68,18 +71,13 @@ func start_level(level: Level, scene: PackedScene) -> void:
|
|||
pause_game(false)
|
||||
|
||||
playing = true
|
||||
PhysicsServer3D.area_set_param(
|
||||
get_viewport().find_world_3d().space,
|
||||
PhysicsServer3D.AREA_PARAM_GRAVITY_VECTOR,
|
||||
Vector3.DOWN
|
||||
)
|
||||
changing_level = false
|
||||
gui_timer.seconds_spent_level_attempt = 0.0
|
||||
gui_timer.enabled = true
|
||||
|
||||
func finish_current_level() -> void:
|
||||
gui_timer.enabled = false
|
||||
PhysicsServer3D.area_set_param(get_viewport().find_world_3d().space, PhysicsServer3D.AREA_PARAM_GRAVITY, 1)
|
||||
PhysicsServer3D.area_set_param(get_viewport().find_world_3d().space, PhysicsServer3D.AREA_PARAM_GRAVITY, 0.5)
|
||||
playing = false
|
||||
changing_level = true
|
||||
|
||||
|
@ -102,19 +100,20 @@ func win_game() -> void:
|
|||
$VictoryScreen.hide()
|
||||
|
||||
func restart_level() -> void:
|
||||
if !current_level:
|
||||
if !current_level or changing_level:
|
||||
return
|
||||
if current_level_scene is not PackedScene:
|
||||
print(\"Tried to restart the level despite not having the level scene\")
|
||||
return
|
||||
SaveFiles.change_property(\"played_for\", gui_timer.seconds_spent_total, SaveFiles.selected_file)
|
||||
start_level(current_level_scene.instantiate(), current_level_scene)
|
||||
|
||||
func pause_game(to_pause: bool) -> void:
|
||||
if !is_instance_valid(current_level) or changing_level:
|
||||
return
|
||||
|
||||
SaveFiles.change_property(\"played_for\", gui_timer.seconds_spent_total, SaveFiles.selected_file)
|
||||
if to_pause:
|
||||
SaveFiles.change_property(\"played_for\", gui_timer.seconds_spent_total, SaveFiles.selected_file)
|
||||
current_level.process_mode = Node.PROCESS_MODE_DISABLED
|
||||
playing = false
|
||||
pause_menu.show()
|
||||
|
@ -161,6 +160,9 @@ grow_horizontal = 2
|
|||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Gravity" parent="GUI" instance=ExtResource("1_ir7so")]
|
||||
layout_mode = 1
|
||||
|
||||
[node name="TopLeft" type="MarginContainer" parent="GUI"]
|
||||
layout_mode = 1
|
||||
offset_right = 160.0
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue