class_name Random const MIN_WORD_LEN = 4 const MAX_WORD_LEN = 8 const VOWEL = ["a","e","i","o","u","y"] const CONSONANTS = ["b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "z"] static func generate_random_word(_random_seed = randi()) -> String: var word_len = randf_range(4,8) var word = '' var last_letter_is_vowel = false for i in range(word_len): if last_letter_is_vowel: word += CONSONANTS.pick_random() else: word += VOWEL.pick_random() last_letter_is_vowel = not last_letter_is_vowel return word.capitalize() static func mutate_word(word : String) -> String: var rand_int = randi() if len(word) > MIN_WORD_LEN and rand_int % 3 == 0: return shorten_word(word) elif len(word) < MAX_WORD_LEN and rand_int % 3 == 1: return elongate_word(word) return replace_character(word) static func shorten_word(word : String): if randi()%2 == 0: return word.left(len(word) - 1).capitalize() else : return word.right(len(word) - 1).capitalize() static func elongate_word(word : String): if randi()%2 == 0: var letter = CONSONANTS.pick_random() if word.left(1) in VOWEL else VOWEL.pick_random() return (letter + word).capitalize() else : var letter = CONSONANTS.pick_random() if word.right(1) in VOWEL else VOWEL.pick_random() return (word + letter).capitalize() static func replace_character(word : String): var character_id = randi_range(0, len(word)) var character = word[character_id] if character in VOWEL: character = VOWEL.pick_random() else: character = CONSONANTS.pick_random() word[character_id] = character return word