-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgrasp_upper.gd
More file actions
53 lines (37 loc) · 1.64 KB
/
grasp_upper.gd
File metadata and controls
53 lines (37 loc) · 1.64 KB
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
extends Node
onready var boss = owner.get_node("Nhizi")
onready var player = owner.get_node("Emma")
onready var cutscenes = owner.get_node("Cutscenes")
onready var upper_left_area = $AreaUL
onready var upper_right_area = $AreaUR
onready var area_to_state = {
upper_left_area: "upper_left_grasp",
upper_right_area: "upper_right_grasp"
}
onready var grasp_center_position = get_parent().get_node("GraspCenterPosition").global_transform.origin
func do():
if grasp_center_position.z < player.global_transform.origin.z:
boss.get_node("States")._change_state(area_to_state[upper_left_area])
else:
boss.get_node("States")._change_state(area_to_state[upper_right_area])
func _ready():
boss.connect("upper_left_grasp", self, "on_upper_left_grasp")
boss.connect("upper_right_grasp", self, "on_upper_right_grasp")
func on_upper_left_grasp():
if upper_left_area.overlaps_body(player) and player.is_alive():
boss.get_node("States")._change_state("upper_left_grasp_success")
cutscenes.get_node("Camera").make_current()
var anim_player = cutscenes.get_node("AnimationPlayer")
anim_player.play("L_grasp", 0)
anim_player.queue("swallow")
player.get_node("Sounds/OhVoice").play_random()
player.get_node("BurningTimer").cancel()
func on_upper_right_grasp():
if upper_right_area.overlaps_body(player) and player.is_alive():
boss.get_node("States")._change_state("upper_right_grasp_success")
cutscenes.get_node("Camera").make_current()
var anim_player = cutscenes.get_node("AnimationPlayer")
anim_player.play("R_grasp", 0)
anim_player.queue("swallow")
player.get_node("Sounds/OhVoice").play_random()
player.get_node("BurningTimer").cancel()