-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgame.gd
123 lines (101 loc) · 3.46 KB
/
game.gd
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
extends Node
export(bool) var mute = false
var active_cores = 0
var winner = false
func _ready():
# reset globals
global.reset()
add_to_group("core_listeners")
$win_gate.connect("body_entered", self, "win_gate_entered")
$fade_layer/CenterContainer.show()
$fade_layer/AnimationPlayer.play("fadein")
if mute:
$AudioStreamPlayer.set_volume_db(-50)
$AudioStreamPlayer2.set_volume_db(-50)
$AudioStreamPlayer3.set_volume_db(-50)
$AudioStreamPlayer4.set_volume_db(-50)
$AudioStreamPlayer5.set_volume_db(-50)
$AudioStreamPlayer6.set_volume_db(-50)
func _unhandled_input(event):
if event.is_action_pressed("ui_cancel"):
get_tree().quit()
func core_activated(core_name):
active_cores += 1
update_music()
if core_name == "weapon":
$player.enable_shooting()
elif core_name == "shooter":
get_tree().call_group("tower_access", "tower_access_granted", global.TOWER_TYPE.SHOOTER)
elif core_name == "speed":
$player.speed_up()
elif core_name == "amp":
get_tree().call_group("tower_access", "tower_access_granted", global.TOWER_TYPE.AMP)
elif core_name == "aoe_slow":
get_tree().call_group("tower_access", "tower_access_granted", global.TOWER_TYPE.AOE_SLOW)
elif core_name == "blast":
$player.enable_booms()
global.booms = true
else:
print("new core: " + str(core_name))
func core_deactivated(core_name):
active_cores -= 1
update_music()
if core_name == "weapon":
$player.disable_shooting()
elif core_name == "shooter":
get_tree().call_group("tower_access", "tower_access_revoked", global.TOWER_TYPE.SHOOTER)
elif core_name == "speed":
$player.slow_down()
elif core_name == "amp":
get_tree().call_group("tower_access", "tower_access_revoked", global.TOWER_TYPE.AMP)
elif core_name == "aoe_slow":
get_tree().call_group("tower_access", "tower_access_revoked", global.TOWER_TYPE.AOE_SLOW)
elif core_name == "blast":
$player.disable_booms()
global.booms = false
else:
print("new core: " + str(core_name))
# get_tree().call_group("tower_access", "tower_access_granted", SHOOTER)
# get_tree().call_group("tower_access", "tower_access_revoked", SHOOTER)
func update_music():
if winner:
return
if active_cores == 1:
if not $AudioStreamPlayer.is_playing():
$AudioStreamPlayer.play()
$AudioStreamPlayer2.stop()
$AudioStreamPlayer3.stop()
$AudioStreamPlayer4.stop()
$AudioStreamPlayer5.stop()
$AudioStreamPlayer6.stop()
elif active_cores == 2:
if not $AudioStreamPlayer2.is_playing():
$AudioStreamPlayer2.play($AudioStreamPlayer.get_playback_position())
$AudioStreamPlayer3.stop()
$AudioStreamPlayer4.stop()
$AudioStreamPlayer5.stop()
$AudioStreamPlayer6.stop()
elif active_cores == 3:
if not $AudioStreamPlayer3.is_playing():
$AudioStreamPlayer3.play($AudioStreamPlayer.get_playback_position())
$AudioStreamPlayer4.stop()
$AudioStreamPlayer5.stop()
$AudioStreamPlayer6.stop()
elif active_cores == 4:
if not $AudioStreamPlayer4.is_playing():
$AudioStreamPlayer4.play($AudioStreamPlayer.get_playback_position())
$AudioStreamPlayer5.stop()
$AudioStreamPlayer6.stop()
elif active_cores == 5:
if not $AudioStreamPlayer5.is_playing():
$AudioStreamPlayer5.play($AudioStreamPlayer.get_playback_position())
$AudioStreamPlayer6.stop()
elif active_cores == 6:
if not $AudioStreamPlayer6.is_playing():
$AudioStreamPlayer6.play($AudioStreamPlayer.get_playback_position())
func win_gate_entered(body):
if body.get_name() == "player":
winner = true
$player.lose_control()
$win_screen.win()
$HUD.win()