extends Control var tryNum = 1 var playing = true var todaysWord = "" var validWords = [""] func _ready(): $Try1._ready() $Message.hide() loadFiles() # sets the try attempt node path and returns it func tryCheck(): var try if tryNum == 1: try = get_node("Try1") elif tryNum == 2: try = get_node("Try2") elif tryNum == 3: try = get_node("Try3") elif tryNum == 4: try = get_node("Try4") elif tryNum == 5: try = get_node("Try5") elif tryNum == 6: try = get_node("Try6") else: pass return try # deletes the last character and makes the field editable. func _on_Delete_pressed(): var try = tryCheck() var check = try.get_node("char1").get_text() + try.get_node("char2").get_text() + try.get_node("char3").get_text() + try.get_node("char4").get_text() + try.get_node("char5").get_text() var letterNumber = check.length() if playing == true: if letterNumber == 1: try.get_node("char1").clear() try.get_node("char1").editable = true try.get_node("char1").grab_focus() elif letterNumber == 2: try.get_node("char2").clear() try.get_node("char2").editable = true try.get_node("char2").grab_focus() elif letterNumber == 3: try.get_node("char3").clear() try.get_node("char3").editable = true try.get_node("char3").grab_focus() elif letterNumber == 4: try.get_node("char4").clear() try.get_node("char4").editable = true try.get_node("char4").grab_focus() elif letterNumber == 5: try.get_node("char5").clear() try.get_node("char5").editable = true try.get_node("char5").grab_focus() elif letterNumber < 1: try.get_node("char1").grab_focus() # The submit button grabs all the fields. Makes sure it's 5 characters long. Increases the try number. Loops back to the # input loop. If pressed on the 5th try the game is over and stops the using from deleteing anything. func _on_Submit_pressed(): var try = tryCheck() var setWord = todaysWord var check = try.get_node("char1").get_text() + try.get_node("char2").get_text() + try.get_node("char3").get_text() + try.get_node("char4").get_text() + try.get_node("char5").get_text() #print(setWord) if check.length() == 5: if check.to_lower() in validWords || check.to_upper() == "ASDFA": if tryNum < 6: if wordCheck(setWord.to_upper(), check.to_upper()) == true: playing = false show_message("You Win") print("you win") else: $Message.hide() tryNum += 1 try = tryCheck() try._ready() elif tryNum == 6: if wordCheck(setWord.to_upper(), check.to_upper()) == true: print("you win") show_message("You win") playing = false else: playing = false show_message(todaysWord) else: show_message("not a valid word") print("Not a valid word") else: print("Must be 5 words long") show_message("Must be 5 letters long") func wordCheck(setWord, userWord): var outcome = false var try = tryCheck() #try.get_node("char1").get_text() #print(validWords) # This block sets the background color overrides # Green Box var green = $Try1/char1.get_stylebox("read_only").duplicate() green.bg_color = Color8(0, 225, 0) # Yellow Box var yellow = $Try1/char1.get_stylebox("read_only").duplicate() yellow.bg_color = Color8(255, 255, 0) # Grey var grey = $Try1/char1.get_stylebox("read_only").duplicate() grey.bg_color = Color8(98, 98, 98,50) var x = 0 # loop through each letter in the user submited word. If the placement matches the set word turn it green # if it doesn't match but is in the word set it yellow. If it isn't in the word set it grey. for each in userWord: if each == setWord[x]: #print(each) var nodeSet = "char"+str(x+1) try.get_node(nodeSet).add_stylebox_override("read_only", green) $Keyboard.get_node(each).add_stylebox_override("normal", green) elif each in setWord: var nodeSet = "char"+str(x+1) if try.get_node(nodeSet).has_stylebox_override("green") != true: #print("already green") try.get_node(nodeSet).add_stylebox_override("read_only", yellow) $Keyboard.get_node(each).add_stylebox_override("normal", yellow) else: var nodeSet = "char"+str(x+1) try.get_node(nodeSet).add_stylebox_override("read_only", grey) $Keyboard.get_node(each).add_stylebox_override("normal", grey) x+=1 if userWord == setWord: outcome = true return outcome func show_message(text): $Message.text = text $Message.show() $MessageTimer.start() func loadFiles(): var file = File.new() file.open("res://config.game", file.READ) var data = file.get_var() var today = data["today"] var rng = RandomNumberGenerator.new() rng.randomize() today = rng.randi_range(0, 300) todaysWord = data["wordList"][today] validWords = data["validWords"]+data["wordList"]