summaryrefslogtreecommitdiff
path: root/Scripts/GameLoop.gd
blob: 6446fbdef96235b45eaf339124e5e8187c439961 (plain)
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
extends Node
class_name GameLoop

@export var turns : int
@export var label : Label
@export var turn_label : Label
@export_file var level : String
@export var can_play : bool = true
@export var win_control : Control
@export var anim : AnimationPlayer
@export var anim_label : Label

var current_turns : int = 0
var prev_turn : int = -1

# Called when the node enters the scene tree for the first time.
func _ready():
	GlobalVariables.gameloop = self
	current_turns = 0

func _process(_delta):
	if prev_turn != current_turns:
		prev_turn = current_turns
		label.text = str(turns - current_turns)
		if current_turns != 0: 
			can_play = false
			turn_label.text = "ai's turn..."
			$"BetweenPlayerAndAI".start()

	if Input.is_action_just_pressed("reset"):
		get_tree().change_scene_to_file(level)

func _on_between_player_and_ai_timeout():
	GlobalVariables.ai.step()
	can_play = true
	if current_turns < turns: turn_label.text = "your turn!"
	else: turn_label.text = ""

	if current_turns >= turns:
		win_control.visible = true
		anim.play("win")
		if GlobalVariables.player.get_node("..").value > GlobalVariables.ai.get_node("..").value: 
			anim_label.text = "YOU won!"
		elif GlobalVariables.player.get_node("..").value < GlobalVariables.ai.get_node("..").value: 
			anim_label.text = "AI won!"
		else: 
			anim_label.text = "It's a TIE!"
		
		$"AudioDelay".start()

func _on_audio_delay_timeout():
		if GlobalVariables.player.get_node("..").value > GlobalVariables.ai.get_node("..").value: 
			win_control.get_node("Win").play()
		elif GlobalVariables.player.get_node("..").value < GlobalVariables.ai.get_node("..").value: 
			win_control.get_node("Lose").play()
		else: 
			win_control.get_node("Win").play()