Update drone placement logic, level loading functionality, and UI behavior. Set visibility of labels, manage mouse cursor changes, and handle game state for placing drones.

This commit is contained in:
Dan 2024-05-10 18:49:51 +01:00
parent b6cdb68b4e
commit f9865cf1fa
8 changed files with 31 additions and 13 deletions

View file

@ -107,6 +107,7 @@ color = Color(0.703926, 0.656042, 0.441124, 1)
polygon = PackedVector2Array(-28, -25, 25, -28, 26, 33, -32, 19)
[node name="Label" type="Label" parent="."]
visible = false
offset_left = 16.0
offset_top = 25.0
offset_right = 56.0

View file

@ -20,17 +20,20 @@ func update_label_value():
$Label.text = str(visit_order)
func _on_click_detection_mouse_entered():
if GameState.placing_drone == false:
Log.pr("Mouse entered the director drone!")
label.visible = true
Input.set_custom_mouse_cursor(edit_cursor, Input.CURSOR_ARROW, Vector2(32, 32))
func _on_click_detection_mouse_exited():
if GameState.placing_drone == false:
Log.pr("Mouse exited the director drone!")
label.visible = false
Input.set_custom_mouse_cursor(null)
func _on_click_detection_input_event(_viewport:Node, event:InputEvent, _shape_idx:int):
if GameState.placing_drone == false:
if (event is InputEventMouseButton && event.button_index == MOUSE_BUTTON_RIGHT && event.pressed):
Input.set_custom_mouse_cursor(null)
queue_free()

View file

@ -173,9 +173,10 @@ unique_name_in_owner = true
[node name="UiComponent" parent="." instance=ExtResource("13_cw1ps")]
unique_name_in_owner = true
z_index = 20
z_index = 1000
offset_right = 1280.0
offset_bottom = 720.0
mouse_filter = 1
[node name="DroneManager" parent="." instance=ExtResource("14_mtjsg")]
unique_name_in_owner = true

View file

@ -82,6 +82,7 @@ func place_drone(drone_type : String) -> void:
drone_controls.disable_buttons()
Log.pr("Placing " + drone_type + "...")
spawning_drone = true
GameState.placing_drone = true # This should probably be rolled into the above line
spawning_type = drone_type
func cancel_spawning() -> void:
@ -89,6 +90,7 @@ func cancel_spawning() -> void:
drone_controls.reset_button_focus()
drone_controls.enable_buttons()
spawning_drone = false
GameState.placing_drone = false
spawning_type = ""
reset_node_highlights()

View file

@ -20,13 +20,21 @@ func _on_item_menu_pressed(id):
1:
# Load level 1
SceneMgr.load_scene("LEVEL1")
#get_tree().change_scene_to_file("res://levels/level_1.tscn")
2:
# Load level 2
SceneMgr.load_scene("LEVEL2")
3:
# Load level 3
SceneMgr.load_scene("LEVEL3")
4:
# Load level 4
SceneMgr.load_scene("LEVEL4")
5:
# Load level 5
SceneMgr.load_scene("LEVEL5")
6:
# Load level 6
SceneMgr.load_scene("LEVEL6")
func on_high_scores_pressed():
## Load the high scores screen

View file

@ -15,6 +15,7 @@ script = ExtResource("1_6lnte")
[node name="PauseMenu" type="Control" parent="."]
unique_name_in_owner = true
process_mode = 2
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0

View file

@ -26,7 +26,7 @@ func _ready():
func _process(delta):
last_update += delta
disable_pause = false
disable_pause = false # This is a mega hacky way to stop the game instantly repausing after unpausing
if last_update > update_interval:
last_update = 0

View file

@ -1,5 +1,7 @@
class_name GameStateManager extends Node
var placing_drone : bool = false
var level_timer : float = 0.0
var level_started : bool = false