-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathLoonyLips.gd
63 lines (49 loc) · 1.44 KB
/
LoonyLips.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
extends Control
var player_words = []
var current_story
onready var PlayerText = $VBoxContainer/HBoxContainer/PlayerText
onready var DisplayText = $VBoxContainer/DisplayText
onready var ConfirmButtonText = $VBoxContainer/HBoxContainer/ButtonLabel
func _ready():
set_current_story()
check_player_words_length()
PlayerText.grab_focus()
func set_current_story():
var stories = get_from_json("StoryBook.json")
randomize()
current_story = stories[randi() % stories.size()]
func get_from_json(filename):
var file = File.new()
file.open(filename, File.READ)
var text = file.get_as_text()
var data = parse_json(text)
file.close()
return data
func _on_PlayerText_text_entered(new_text):
add_to_player_words()
func _on_TextureButton_pressed():
if is_story_done():
get_tree().reload_current_scene()
else:
add_to_player_words()
func add_to_player_words():
player_words.append(PlayerText.text)
PlayerText.clear()
check_player_words_length()
func is_story_done():
return player_words.size() == current_story.prompts.size()
func check_player_words_length():
if is_story_done():
end_game()
else:
prompt_player()
func tell_story():
DisplayText.text = current_story["story"] % player_words
func prompt_player():
DisplayText.text = "May I have " + current_story.prompts[player_words.size()] + " please?"
func change_confirm_label():
ConfirmButtonText.text = "Woo!"
func end_game():
PlayerText.queue_free()
change_confirm_label()
tell_story()