extends RichTextLabel

var shoBedroom = preload("res://scenes/house/assets/img/bg_shobedroom.jpg")
var dnum = 0
var currentlyDisplaying = ""
var displaying = false
var freeze = false
signal shounicTrigger
signal shounicExit
signal shoPhoneTrigger
signal shoPhoneExit
signal shoKnifeTrigger
signal shoKnifeExit
signal fadeToBlack
signal unfade

func _ready():
	dnum = 0
	displaySlow("Outside shounic's house")
	var save = FileAccess.open("user://chapter.sds", FileAccess.WRITE)
	save.store_string(Marshalls.utf8_to_base64(JSON.stringify({"chShoHouse": "1"})))
	unfade.emit()

func displaySlow(txt):
	currentlyDisplaying = txt
	displaying = true
	var doneChars = ""
	for character in txt:
		if displaying:
			doneChars = doneChars + character
			await get_tree().create_timer(0.015).timeout
			if displaying:
				text = doneChars
				if not get_child(0).playing:
					get_child(0).play()
			else:
				break
		else:
			break
	currentlyDisplaying = ""
	displaying = false

func _on_continue_pressed():
	if not currentlyDisplaying and not freeze:
		match dnum:
			0:
				displaySlow("...I must find a way to break into the house of that cat I saw earlier")
			1:
				displaySlow("They are too beautiful for me to not attempt to commit a serious federal crime")
			2:
				displaySlow("I've stolen a crowbar from the HL2 exhibit and I'm ready to break in")
			3:
				displaySlow("Do I really want to though?")
			4:
				displaySlow("Yes. Yes I do.")
				fadeToBlack.emit()
			5:
				displaySlow("*glass breaking noises*")
			6:
				displaySlow("I'm in")
				get_node("/root/Control/Background").set_texture(shoBedroom)
				unfade.emit()
			7:
				shounicTrigger.emit()
				get_parent().get_child(1).text = "Shounic"
				get_parent().get_child(1).visible = true
				displaySlow("What the hell are you doing here??")
			8:
				displaySlow("Aren't you that random homeless person from the trivia quiz yesterday?")
			9:
				displaySlow("I'm calling the police.")
				shoPhoneTrigger.emit()
			10:
				displaySlow("...")
			11:
				displaySlow("...")
			12:
				displaySlow("...")
			13:
				displaySlow("They are coming in 5 minutes.")
				shoPhoneExit.emit()
			14:
				displaySlow("You have exactly that amount of time to leave.")
			15:
				displaySlow("...")
			16:
				displaySlow("...")
			17:
				displaySlow("...")
			18:
				displaySlow("Still not leaving?")
			19:
				displaySlow("Then I will have to evict you...")
			20:
				displaySlow("By force.")
				shoKnifeTrigger.emit()
		dnum += 1
	elif not freeze:
		displaying = false
		text = currentlyDisplaying
		currentlyDisplaying = ""
