-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathGameManager.tscn
91 lines (72 loc) · 2.36 KB
/
GameManager.tscn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
[gd_scene load_steps=3 format=2]
[ext_resource path="res://Main Menu.tscn" type="PackedScene" id=1]
[sub_resource type="GDScript" id=1]
script/source = "extends Node
var scrap_count: int
var time_elapsed : int
var start_time
var count_time: bool
var start_position : Vector2
var level
var player
var hud
# Called when the node enters the scene tree for the first time.
func _ready():
scrap_count = 0
time_elapsed = 0
count_time = false
start_position = get_viewport().get_visible_rect().size / 2
$MainMenu.connect(\"quit_game\", self, \"_on_quit_game\")
$MainMenu.connect(\"new_game\", self, \"_on_new_game\")
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
if count_time:
$HUD._on_time_elapsed( OS.get_ticks_msec() - start_time)
func _on_quit_game():
get_tree().quit()
func _on_new_game():
print(\"Start new game\")
# Remove main menu
var main_menu = get_node(\"MainMenu\")
remove_child(main_menu)
main_menu.call_deferred(\"free\")
# Add the first level
var first_level_resource = load(\"res://Levels/Level1.tscn\")
level = first_level_resource.instance()
add_child(level)
print(\"First Level Loaded\")
# Spawn Player
var player_resource = load(\"res://Player/Player.tscn\")
player = player_resource.instance()
player.position = start_position
add_child(player)
print(\"Player Loaded\")
# Load HUD
var hud_resource = load(\"res://Player/HUD.tscn\")
hud = hud_resource.instance()
add_child(hud)
hud.set_max_scrap_ammount(level.scrap_amount)
print(\"HUD Loaded\")
start_time = OS.get_ticks_msec()
count_time = true
connect_player_signals()
func connect_player_signals():
player.connect(\"armor_changed\", hud, \"_on_Player_armor_changed\")
player.connect(\"shield_changed\", hud, \"_on_Player_shield_changed\")
player.connect(\"armor_changed\", self, \"_on_player_armor_changed\")
func _on_player_armor_changed(value):
if value <= 0:
# yield(player, \"player_destroyed\")
print(\"Game Over\")
func _on_level_complete():
print(\"Level Complete\")
func increase_scrap_count(value):
scrap_count += value
$HUD._on_progress_increased(scrap_count)
check_if_level_is_complete()
func check_if_level_is_complete():
if scrap_count >= $Level.max_scrap_count:
_on_level_complete()"
[node name="GameManager" type="Node"]
script = SubResource( 1 )
[node name="MainMenu" parent="." instance=ExtResource( 1 )]