84 lines
3.3 KiB
GDScript
84 lines
3.3 KiB
GDScript
extends Control
|
|
|
|
@export var GoodJobStarQuotes: PackedStringArray
|
|
|
|
@onready var CurrentTime = Time.get_date_dict_from_system()
|
|
|
|
var Experience: float = 0
|
|
var Level: int = 1
|
|
|
|
func _process(_delta):
|
|
if !get_node("LoopingAnim").is_playing():
|
|
get_node("LoopingAnim").play("Loop")
|
|
|
|
get_node("ExperienceBar").value = Experience
|
|
|
|
func _ready():
|
|
randomize()
|
|
get_node("SaveNode").LoadVars("Tasks", 0)
|
|
get_node("SaveNode").LoadVars("Daily Task", 1)
|
|
get_node("SaveNode").SaveVars("Daily Task", 1)
|
|
|
|
if get_node("SaveNode").SideVars["System Time"] == CurrentTime.day && get_node("SaveNode").SideVars["Current Tasks"].front() != "":
|
|
# Don't do anything, just load!
|
|
Load()
|
|
else:
|
|
# Put the new stuff in before loading
|
|
get_node("SaveNode").SideVars["System Time"] = CurrentTime.day
|
|
# Store the fun fun stuff
|
|
var TempArray = get_node("SaveNode").MainVars.values()
|
|
var PlacementArray: Array = ["", "", ""]
|
|
for i in range(0, 3):
|
|
var random1 = randi_range(0, TempArray.size() - 1)
|
|
var random2 = randi_range(0, TempArray[random1].size() - 1)
|
|
PlacementArray[i] = TempArray[random1][random2]
|
|
get_node("SaveNode").SideVars["Current Tasks"] = PlacementArray
|
|
# Store incomplete nums
|
|
get_node("SaveNode").SaveVars("Daily Task", 1)
|
|
Load()
|
|
|
|
func Load():
|
|
# Load the current tasks.
|
|
var file = get_node("SaveNode").SideVars["Current Tasks"]
|
|
get_node("Task1/RichTextLabel").text = file[0]
|
|
get_node("Task2/RichTextLabel").text = file[1]
|
|
get_node("Task3/RichTextLabel").text = file[2]
|
|
# Experience stuff
|
|
Level = get_node("SaveNode").SideVars["Level"]
|
|
Experience = get_node("SaveNode").SideVars["Experience"]
|
|
# Play animation to give it some cool factor
|
|
get_node("SpecificAnim1").play("Beginning")
|
|
|
|
func _on_COMPLETE_pressed(extra_arg_0):
|
|
# I don't want animation to break.
|
|
var TaskThing = "Task" + str(extra_arg_0 + 1) + "/RichTextLabel"
|
|
if !get_node("SpecificAnim1").is_playing() && !get_node("SpecificAnim2").is_playing() && get_node(TaskThing).text != "COMPLETE":
|
|
get_node(TaskThing).text = "COMPLETE"
|
|
# do animation related things
|
|
get_node("SpecificAnim1").play(str(extra_arg_0))
|
|
var quote = GoodJobStarQuotes[randi_range(0, GoodJobStarQuotes.size() - 1)]
|
|
get_node("GoodJobStar/Label").text = quote
|
|
get_node("SpecificAnim2").play("Completion")
|
|
# Now save that crap so I know I completed it.
|
|
get_node("SaveNode").SideVars["Current Tasks"][extra_arg_0] = "COMPLETE"
|
|
get_node("SaveNode").SaveVars("Daily Task", 1)
|
|
|
|
func EarnExperience():
|
|
var ExperiencedGained = randf_range(21, 144)
|
|
if randf_range(0, 10) > 9:
|
|
ExperiencedGained = ExperiencedGained * 3
|
|
get_node("SpecificAnim1").play("ExperienceGainedCritical")
|
|
get_node("ExperienceEarned").text = "CRITICAL!\nGained " + str(round(ExperiencedGained)) + " EXP"
|
|
else:
|
|
get_node("SpecificAnim1").play("ExperienceGained")
|
|
get_node("ExperienceEarned").text = "Gained " + str(round(ExperiencedGained)) + " EXP"
|
|
Experience = Experience + ExperiencedGained
|
|
while Experience >= 250:
|
|
Level = Level + 1
|
|
Experience = Experience - 250
|
|
get_node("LevelGained").text = "LEVEL INCREASE!\nYour level: " + str(Level)
|
|
get_node("SpecificAnim2").play("LevelIncrease")
|
|
# Save the experience that was earned
|
|
get_node("SaveNode").SideVars["Level"] = Level
|
|
get_node("SaveNode").SideVars["Experience"] = Experience
|
|
get_node("SaveNode").SaveVars("Daily Task", 1)
|