89 lines
1.8 KiB
GDScript
89 lines
1.8 KiB
GDScript
extends Node
|
|
|
|
var jumpscareScreen = preload("res://jumpscare.tscn")
|
|
var gameOverScreen = preload("res://shrek death screen.tscn")
|
|
|
|
var playerControlled = false
|
|
|
|
var gameRunning = false
|
|
|
|
var playerInitPos: Vector3
|
|
|
|
var playerInitRotation: Vector3
|
|
|
|
var playerPos: Vector3
|
|
|
|
var shrekInitPos: Vector3
|
|
|
|
var shrekInitRotation: Vector3
|
|
|
|
var shrekPos: Vector3
|
|
|
|
var huntMode = -1
|
|
|
|
var onionsFound = 0
|
|
var onionsToFind = 8
|
|
|
|
var difficulty = 2
|
|
|
|
var task = 0
|
|
|
|
var runTo: Vector2
|
|
|
|
var dead = false
|
|
|
|
func reinit():
|
|
dead = false
|
|
onionsFound = 0
|
|
huntMode = 0
|
|
task = 0
|
|
makePlayerControlled()
|
|
|
|
func foundOnion():
|
|
onionsFound+=1
|
|
if huntMode != 1:
|
|
huntMode = 0
|
|
if onionsFound >= onionsToFind:
|
|
task = 1
|
|
|
|
func gameOver(_dead):
|
|
dead = _dead
|
|
gameRunning = false
|
|
if dead:
|
|
get_tree().change_scene_to_packed(jumpscareScreen)
|
|
else:
|
|
makeNotPlayerControlled()
|
|
get_tree().change_scene_to_packed(gameOverScreen)
|
|
|
|
|
|
func _notification(what):
|
|
match what:
|
|
NOTIFICATION_APPLICATION_FOCUS_OUT:
|
|
makeNotPlayerControlled()
|
|
|
|
func _input(event):
|
|
if event is InputEventMouseButton:
|
|
if gameRunning:
|
|
makePlayerControlled()
|
|
|
|
func _ready():
|
|
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
func _process(_delta):
|
|
if Input.is_action_just_released("fullscreen"):
|
|
if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN:
|
|
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
|
|
else:
|
|
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
|
|
|
|
func makePlayerControlled():
|
|
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
|
playerControlled = true
|
|
gameRunning = true
|
|
|
|
func makeNotPlayerControlled():
|
|
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
|
playerControlled = false
|
|
|