Remove all 160 warnings
This commit is contained in:
+10
-10
@@ -11,7 +11,7 @@ const garden_scene: = preload("res://resources/gardens/garden.tscn")
|
||||
const look_and_learn_scene: = preload("res://sources/look_and_learn/look_and_learn.tscn")
|
||||
const flower_fvx: = preload("res://sources/gardens/flower_particle.tscn")
|
||||
|
||||
const garden_size: = 2400
|
||||
const garden_size: int = 2400
|
||||
|
||||
@export_category("Layout")
|
||||
@export var gardens_layout: GardensLayout:
|
||||
@@ -48,7 +48,7 @@ const garden_size: = 2400
|
||||
@onready var minigame_background_center: TextureRect = %MinigameBackgroundCenter
|
||||
@onready var lock: Control = %Lock
|
||||
@onready var kalulu: Kalulu = %Kalulu
|
||||
@onready var kalulu_button: = %KaluluButton
|
||||
@onready var kalulu_button: CanvasItem = %KaluluButton
|
||||
|
||||
@onready var intro_speech: = Database.load_external_sound(Database.get_kalulu_speech_path("gardens_screen", "intro"))
|
||||
@onready var help_few_plants_speech: = Database.load_external_sound(Database.get_kalulu_speech_path("gardens_screen", "help_few_plants"))
|
||||
@@ -58,7 +58,7 @@ var curve: Curve2D
|
||||
var lessons: = {}
|
||||
var points: Array[Array]= []
|
||||
var is_scrolling: = false
|
||||
var scroll_beginning_garden: = 0
|
||||
var scroll_beginning_garden: int = 0
|
||||
var scroll_tween: Tween
|
||||
var is_locked: = false
|
||||
|
||||
@@ -283,7 +283,7 @@ func _ready() -> void:
|
||||
play_animation = true
|
||||
|
||||
if play_animation:
|
||||
var fvfx: = flower_fvx.instantiate()
|
||||
var fvfx: FlowerVFX = flower_fvx.instantiate()
|
||||
current_garden.flower_controls[flower_ind].add_child(fvfx)
|
||||
fvfx.anchor_bottom = 0.5
|
||||
fvfx.anchor_top = 0.5
|
||||
@@ -302,7 +302,7 @@ func _ready() -> void:
|
||||
await get_tree().create_timer(1).timeout
|
||||
|
||||
# Re-open the minigames layout
|
||||
await _open_minigames_layout(_get_current_lesson_button(transition_data.current_lesson_number), transition_data.current_lesson_number as int, transition_data.current_garden as int)
|
||||
await _open_minigames_layout(_get_current_lesson_button(transition_data.current_lesson_number as int), transition_data.current_lesson_number as int)
|
||||
|
||||
#region New lesson unlocked
|
||||
|
||||
@@ -350,9 +350,9 @@ func _ready() -> void:
|
||||
tween.set_ease(Tween.EASE_IN_OUT)
|
||||
tween.tween_property(scroll_container, "scroll_horizontal", target_scroll, 4)
|
||||
|
||||
@warning_ignore("integer_division")
|
||||
scroll_beginning_garden = target_scroll / garden_size
|
||||
|
||||
@warning_ignore("integer_division")
|
||||
current_garden = garden_parent.get_child(scroll_beginning_garden)
|
||||
|
||||
line_audio_stream_player.pitch_scale = 0.95
|
||||
@@ -392,7 +392,7 @@ func _process(_delta: float) -> void:
|
||||
parallax_background.scroll_offset.x = - scroll_container.scroll_horizontal
|
||||
|
||||
|
||||
func _open_minigames_layout(button: LessonButton, lesson_ind: int, garden_ind: int) -> void:
|
||||
func _open_minigames_layout(button: LessonButton, lesson_ind: int) -> void:
|
||||
if in_minigame_selection or not UserDataManager.student_progression:
|
||||
return
|
||||
|
||||
@@ -545,7 +545,7 @@ func _set_up_lessons() -> void:
|
||||
if not lesson_ind in lessons:
|
||||
break
|
||||
garden_control.set_lesson_label(i, lessons[lesson_ind][0].grapheme as String)
|
||||
garden_control.lesson_button_controls[i].pressed.connect(_on_garden_lesson_button_pressed.bind(garden_control.lesson_button_controls[i], lesson_ind, garden_ind))
|
||||
garden_control.lesson_button_controls[i].pressed.connect(_on_garden_lesson_button_pressed.bind(garden_control.lesson_button_controls[i], lesson_ind))
|
||||
lesson_ind += 1
|
||||
|
||||
|
||||
@@ -627,8 +627,8 @@ func _get_current_lesson_button(lesson: int) -> LessonButton:
|
||||
return null
|
||||
|
||||
|
||||
func _on_garden_lesson_button_pressed(button: LessonButton, lesson_ind: int, garden_ind: int, button_global_position: = Vector2.ZERO) -> void:
|
||||
_open_minigames_layout(button, lesson_ind, garden_ind)
|
||||
func _on_garden_lesson_button_pressed(button: LessonButton, lesson_ind: int) -> void:
|
||||
_open_minigames_layout(button, lesson_ind)
|
||||
|
||||
|
||||
func _on_lesson_button_pressed() -> void:
|
||||
|
||||
@@ -57,22 +57,18 @@ func setup() -> void:
|
||||
var gp_sound: = Database.get_gp_look_and_learn_sound(gp)
|
||||
var gp_video: = Database.get_gp_look_and_learn_video(gp)
|
||||
|
||||
var used: = false
|
||||
|
||||
if gp_video:
|
||||
videos.append(gp_video)
|
||||
used = true
|
||||
|
||||
if gp_image and gp_sound:
|
||||
images.append(gp_image)
|
||||
sounds.append(gp_sound)
|
||||
used = true
|
||||
|
||||
var tracing_data: = tracing_manager._get_letter_tracings(gp.Grapheme)
|
||||
var tracing_data: = tracing_manager._get_letter_tracings(gp.Grapheme as String)
|
||||
if tracing_data.upper:
|
||||
gp_display.append(gp.Grapheme.to_upper())
|
||||
gp_display.append((gp.Grapheme as String).to_upper())
|
||||
if tracing_data.lower:
|
||||
gp_display.append(gp.Grapheme.to_lower())
|
||||
gp_display.append((gp.Grapheme as String).to_lower())
|
||||
|
||||
if gp_display.is_empty():
|
||||
gp_display.append(gp_list[0].Grapheme)
|
||||
|
||||
@@ -10,7 +10,7 @@ const Kalulu: = preload("res://sources/minigames/base/kalulu.gd")
|
||||
@export var gardens_layout: GardensLayout
|
||||
|
||||
@onready var kalulu: Kalulu = $Kalulu
|
||||
@onready var kalulu_button: = %KaluluButton
|
||||
@onready var kalulu_button: TextureButton = %KaluluButton
|
||||
@onready var audio_stream_player: AudioStreamPlayer = $AudioStreamPlayer
|
||||
|
||||
@onready var garden_buttons: Array[TextureButton] = [
|
||||
|
||||
@@ -14,7 +14,7 @@ const Kalulu: = preload("res://sources/minigames/base/kalulu.gd")
|
||||
@onready var keyboard : CodeKeyboard = $CodeKeyboard
|
||||
@onready var teacher_timer : Timer = %TeacherTimer
|
||||
@onready var teacher_help_label: Label = %TeacherHelpLabel
|
||||
@onready var kalulu_button: = %KaluluButton
|
||||
@onready var kalulu_button: CanvasItem = %KaluluButton
|
||||
|
||||
var help_speech: AudioStream
|
||||
var wrong_password_speech: AudioStream
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
extends Area2D
|
||||
|
||||
@onready var animation_player: = $AnimationPlayer
|
||||
@onready var animation_player: AnimationPlayer = $AnimationPlayer
|
||||
@onready var anchor: = $Anchor
|
||||
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ const word_class: = preload("res://sources/minigames/ants/word.tscn")
|
||||
|
||||
const label_settings: = preload("res://resources/themes/minigames_label_settings.tres")
|
||||
|
||||
@onready var sentence: HFlowContainer = %Sentence
|
||||
@onready var sentence_container: HFlowContainer = %Sentence
|
||||
@onready var ants_spawn: Node2D = %AntsSpawn
|
||||
@onready var ants_start: Node2D = %AntsStart
|
||||
@onready var ants_end: Node2D = %AntsEnd
|
||||
@@ -31,11 +31,11 @@ func _find_stimuli_and_distractions() -> void:
|
||||
var current_lesson_sentences: = []
|
||||
var previous_lesson_sentences: = []
|
||||
|
||||
for sentence: Dictionary in sentences_list:
|
||||
if sentence.LessonNb == lesson_nb:
|
||||
current_lesson_sentences.append(sentence)
|
||||
for sentence_in_list: Dictionary in sentences_list:
|
||||
if sentence_in_list.LessonNb == lesson_nb:
|
||||
current_lesson_sentences.append(sentence_in_list)
|
||||
else:
|
||||
previous_lesson_sentences.append(sentence)
|
||||
previous_lesson_sentences.append(sentence_in_list)
|
||||
|
||||
# Shuffle everything
|
||||
current_lesson_sentences.shuffle()
|
||||
@@ -98,9 +98,9 @@ func _get_new_sentence() -> void:
|
||||
|
||||
func _next_sentence() -> void:
|
||||
var nodes: = []
|
||||
nodes.append_array(sentence.get_children())
|
||||
nodes.append_array(sentence_container.get_children())
|
||||
nodes.append_array(words.get_children())
|
||||
for node in nodes:
|
||||
for node: Node in nodes:
|
||||
node.queue_free()
|
||||
|
||||
for ant: Ant in ants.get_children():
|
||||
@@ -115,7 +115,7 @@ func _next_sentence() -> void:
|
||||
|
||||
current_sentence = stimuli.pop_front()
|
||||
|
||||
var current_words: PackedStringArray = current_sentence.Sentence.replace("'", " ' ").replace("-", " - ").split(" ")
|
||||
var current_words: PackedStringArray = (current_sentence.Sentence as String).replace("'", " ' ").replace("-", " - ").split(" ")
|
||||
|
||||
var inds_to_remove: = []
|
||||
for i in range(1, current_words.size()):
|
||||
@@ -129,7 +129,7 @@ func _next_sentence() -> void:
|
||||
inds_to_remove.append(i)
|
||||
|
||||
inds_to_remove.reverse()
|
||||
for ind in inds_to_remove:
|
||||
for ind: int in inds_to_remove:
|
||||
current_words.remove_at(ind)
|
||||
|
||||
var number_of_blanks: int = maxi(2, mini(difficulty, current_words.size()))
|
||||
@@ -143,19 +143,20 @@ func _next_sentence() -> void:
|
||||
for i in range(current_words.size()):
|
||||
var current_word: = current_words[i]
|
||||
if i in blanks:
|
||||
var blank: = blank_class.instantiate()
|
||||
var blank: Blank = blank_class.instantiate()
|
||||
blank.stimulus = current_word
|
||||
sentence.add_child(blank)
|
||||
sentence_container.add_child(blank)
|
||||
|
||||
var ant: = ant_class.instantiate()
|
||||
var ant: Node2D = ant_class.instantiate()
|
||||
ants.add_child(ant)
|
||||
ant.global_position = ants_spawn.global_position
|
||||
|
||||
var word: = word_class.instantiate()
|
||||
var word: Word = word_class.instantiate()
|
||||
words.add_child(word)
|
||||
|
||||
word.stimulus = current_word
|
||||
word.current_anchor = ant
|
||||
@warning_ignore("UNSAFE_METHOD_ACCESS")
|
||||
word.current_anchor.set_monitorable(false)
|
||||
|
||||
answered.append(false)
|
||||
@@ -165,7 +166,7 @@ func _next_sentence() -> void:
|
||||
word.no_answer.connect(_on_word_no_answer.bind(word))
|
||||
else:
|
||||
var label: = Label.new()
|
||||
sentence.add_child(label)
|
||||
sentence_container.add_child(label)
|
||||
|
||||
label.text = current_word + " "
|
||||
label.vertical_alignment = VERTICAL_ALIGNMENT_CENTER
|
||||
@@ -188,7 +189,11 @@ func _start_ants() -> void:
|
||||
ant.idle()
|
||||
|
||||
for word in words.get_children():
|
||||
word.disabled = false
|
||||
if word is Control:
|
||||
@warning_ignore("UNSAFE_PROPERTY_ACCESS")
|
||||
(word as Control).disabled = false
|
||||
else:
|
||||
push_error("Ants_Minigame: variable \"word\" is not of type Control")
|
||||
|
||||
|
||||
func _on_current_progression_changed() -> void:
|
||||
@@ -205,41 +210,51 @@ func _on_word_answer(stimulus: String, expected_stimulus: String, word: TextureB
|
||||
answered[word.get_index()] = true
|
||||
|
||||
var all_answered: = true
|
||||
for a in answered:
|
||||
for a: bool in answered:
|
||||
if not a:
|
||||
all_answered = false
|
||||
break
|
||||
|
||||
if all_answered:
|
||||
var is_right: = true
|
||||
for a in answers:
|
||||
for a: bool in answers:
|
||||
if not a:
|
||||
is_right = false
|
||||
break
|
||||
|
||||
for word_i in words.get_children():
|
||||
@warning_ignore("UNSAFE_PROPERTY_ACCESS")
|
||||
@warning_ignore("UNSAFE_METHOD_ACCESS")
|
||||
word_i.current_anchor.set_monitorable(true)
|
||||
@warning_ignore("UNSAFE_PROPERTY_ACCESS")
|
||||
word_i.disabled = true
|
||||
|
||||
if is_right:
|
||||
for i in range(words.get_child_count() - 1):
|
||||
@warning_ignore("UNSAFE_METHOD_ACCESS")
|
||||
words.get_child(i).right()
|
||||
@warning_ignore("UNSAFE_METHOD_ACCESS")
|
||||
await words.get_child(words.get_child_count() - 1).right()
|
||||
|
||||
current_progression += 1
|
||||
else:
|
||||
for i in range(words.get_child_count() - 1):
|
||||
@warning_ignore("UNSAFE_METHOD_ACCESS")
|
||||
words.get_child(i).wrong()
|
||||
@warning_ignore("UNSAFE_METHOD_ACCESS")
|
||||
await words.get_child(words.get_child_count() - 1).wrong()
|
||||
|
||||
current_lives -= 1
|
||||
|
||||
for i in range(ants.get_child_count()):
|
||||
answered[i] = false
|
||||
@warning_ignore("UNSAFE_PROPERTY_ACCESS")
|
||||
words.get_child(i).current_anchor = ants.get_child(i)
|
||||
@warning_ignore("UNSAFE_METHOD_ACCESS")
|
||||
ants.get_child(i).set_monitorable(false)
|
||||
|
||||
for word_i in words.get_children():
|
||||
@warning_ignore("UNSAFE_PROPERTY_ACCESS")
|
||||
word_i.disabled = false
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
extends TextureRect
|
||||
|
||||
class_name Blank
|
||||
|
||||
const images: = [
|
||||
"res://assets/minigames/ants/graphics/hole_02.png",
|
||||
"res://assets/minigames/ants/graphics/hole_03.png",
|
||||
@@ -8,11 +10,11 @@ const images: = [
|
||||
|
||||
var stimulus: String
|
||||
|
||||
@onready var area: = $Area2D
|
||||
@onready var area: Area2D = $Area2D
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
texture = load(images[randi() % images.size()])
|
||||
texture = load(images[randi() % images.size()] as String)
|
||||
|
||||
|
||||
func set_monitorable(p_monitorable: bool) -> void:
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
# TODO: Clean the reason why there is so much UNSAFE_PROPERTY_ACCESS in this script.
|
||||
extends TextureButton
|
||||
|
||||
class_name Word
|
||||
|
||||
const Ant: = preload("res://sources/minigames/ants/ant.gd")
|
||||
|
||||
signal answer(good: bool)
|
||||
signal no_answer()
|
||||
|
||||
@onready var area: = $Area2D
|
||||
@onready var label: = %Label
|
||||
@onready var right_fx: = $RightFX
|
||||
@onready var wrong_fx: = $WrongFX
|
||||
@onready var area: Area2D = $Area2D
|
||||
@onready var label: Label = %Label
|
||||
@onready var right_fx: RightFX = $RightFX
|
||||
@onready var wrong_fx: WrongFX = $WrongFX
|
||||
|
||||
var stimulus: String:
|
||||
set = _set_stimulus
|
||||
@@ -31,14 +34,15 @@ func _process(_delta: float) -> void:
|
||||
global_position = get_global_mouse_position() - size / 2.0
|
||||
else:
|
||||
if current_anchor is Area2D:
|
||||
@warning_ignore("UNSAFE_PROPERTY_ACCESS")
|
||||
global_position = current_anchor.anchor.global_position
|
||||
else:
|
||||
@warning_ignore("UNSAFE_PROPERTY_ACCESS")
|
||||
global_position = current_anchor.global_position
|
||||
|
||||
|
||||
func _set_stimulus(value: String) -> void:
|
||||
stimulus = value
|
||||
|
||||
label.text = stimulus
|
||||
|
||||
|
||||
@@ -50,21 +54,27 @@ func _on_button_up() -> void:
|
||||
follow_mouse = false
|
||||
|
||||
var destination: = current_anchor
|
||||
var min_distance: float = (current_anchor.global_position - global_position).length()
|
||||
@warning_ignore("UNSAFE_PROPERTY_ACCESS")
|
||||
var min_distance: float = ((current_anchor.global_position - global_position) as Vector2).length()
|
||||
for other_area in area.get_overlapping_areas():
|
||||
var other: CanvasItem = other_area
|
||||
if not other_area is Ant:
|
||||
other = other_area.owner
|
||||
var dist: float = (other.global_position - global_position).length()
|
||||
@warning_ignore("UNSAFE_PROPERTY_ACCESS")
|
||||
var dist: float = ((other.global_position - global_position ) as Vector2).length()
|
||||
if dist < min_distance:
|
||||
destination = other
|
||||
min_distance = dist
|
||||
|
||||
@warning_ignore("UNSAFE_METHOD_ACCESS")
|
||||
current_anchor.set_monitorable(true)
|
||||
current_anchor = destination
|
||||
if destination is Ant:
|
||||
@warning_ignore("UNSAFE_METHOD_ACCESS")
|
||||
destination.set_monitorable(false)
|
||||
no_answer.emit()
|
||||
else:
|
||||
@warning_ignore("UNSAFE_METHOD_ACCESS")
|
||||
destination.set_monitorable(false)
|
||||
@warning_ignore("UNSAFE_PROPERTY_ACCESS")
|
||||
answer.emit(stimulus, destination.stimulus)
|
||||
|
||||
@@ -170,7 +170,7 @@ func _curtains_and_kalulu() -> void:
|
||||
if not UserDataManager.is_speech_played(Type.keys()[minigame_name] as String):
|
||||
minigame_ui.play_kalulu_speech(intro_kalulu_speech)
|
||||
await minigame_ui.kalulu_speech_ended
|
||||
UserDataManager.mark_speech_as_played(Type.keys()[minigame_name])
|
||||
UserDataManager.mark_speech_as_played(Type.keys()[minigame_name] as String)
|
||||
|
||||
|
||||
# Launch the minigame
|
||||
|
||||
@@ -155,7 +155,7 @@ func _get_current_distractors() -> Array:
|
||||
# Get the current GP to find
|
||||
func _get_GP() -> Dictionary:
|
||||
var stimulus: = _get_current_stimulus()
|
||||
if not stimulus or not stimulus.has("GPs") or current_word_progression >= stimulus.GPs.size():
|
||||
if not stimulus or not stimulus.has("GPs") or current_word_progression >= (stimulus.GPs as Array).size():
|
||||
return {}
|
||||
return stimulus.GPs[current_word_progression]
|
||||
|
||||
|
||||
@@ -169,7 +169,7 @@ func _on_current_progression_changed() -> void:
|
||||
|
||||
# Show the word for some time and play the stimulus again
|
||||
await get_tree().create_timer(time_between_words/2).timeout
|
||||
await audio_player.play_word(_get_previous_stimulus().Word)
|
||||
await audio_player.play_word(_get_previous_stimulus().Word as String)
|
||||
await get_tree().create_timer(time_between_words/2).timeout
|
||||
|
||||
# Reset the caterpillar
|
||||
|
||||
@@ -4,19 +4,19 @@ signal beacon_fish_dropped(is_answered_real: bool)
|
||||
|
||||
const fish_texture_rect_scene: = preload("res://sources/minigames/fish/fish_texture_rect.tscn")
|
||||
|
||||
@onready var fish_start_zone: = %FishStartZone
|
||||
@onready var beacon1: = %Beacon1
|
||||
@onready var beacon2: = %Beacon2
|
||||
@onready var path_follow: = %PathFollow2D
|
||||
@onready var label: = %Label
|
||||
@onready var false_wrong_fx: = %FalseWrongFX
|
||||
@onready var false_right_fx: = %FalseRightFX
|
||||
@onready var real_wrong_fx: = %RealWrongFX
|
||||
@onready var real_right_fx: = %RealRightFX
|
||||
@onready var fish_animated_sprite: = %FishAnimatedSprite
|
||||
@onready var progress_gauge: = %ProgressionGaugePercentMarginContainer
|
||||
@onready var progress_gauge_goal: = %ProgressionGaugeGoalPercentMarginContainer2
|
||||
@onready var progress_gauge_internal: = %ProgressionGaugeInternal
|
||||
@onready var fish_start_zone: Control = %FishStartZone
|
||||
@onready var beacon1: SpriteControl = %Beacon1
|
||||
@onready var beacon2: SpriteControl = %Beacon2
|
||||
@onready var path_follow: PathFollow2D = %PathFollow2D
|
||||
@onready var label: Label = %Label
|
||||
@onready var false_wrong_fx: WrongFX = %FalseWrongFX
|
||||
@onready var false_right_fx: RightFX = %FalseRightFX
|
||||
@onready var real_wrong_fx: WrongFX = %RealWrongFX
|
||||
@onready var real_right_fx: RightFX = %RealRightFX
|
||||
@onready var fish_animated_sprite: AnimatedSprite2D = %FishAnimatedSprite
|
||||
@onready var progress_gauge: PercentMarginContainer = %ProgressionGaugePercentMarginContainer
|
||||
@onready var progress_gauge_goal: PercentMarginContainer = %ProgressionGaugeGoalPercentMarginContainer2
|
||||
@onready var progress_gauge_internal: NinePatchRect = %ProgressionGaugeInternal
|
||||
|
||||
|
||||
@export var game_duration: = 4 * 60
|
||||
@@ -42,12 +42,13 @@ func _fish_get_drag_data(_at_position: Vector2) -> Variant:
|
||||
func _ready() -> void:
|
||||
super()
|
||||
fish_start_zone.set_drag_forwarding(_fish_get_drag_data, Callable(), Callable())
|
||||
beacon1.set_drag_forwarding(Callable(), _beacon_can_drop_data, _beacon1_drop_data)
|
||||
beacon2.set_drag_forwarding(Callable(), _beacon_can_drop_data, _beacon2_drop_data)
|
||||
(beacon1 as Control).set_drag_forwarding(Callable(), _beacon_can_drop_data, _beacon1_drop_data)
|
||||
(beacon2 as Control).set_drag_forwarding(Callable(), _beacon_can_drop_data, _beacon2_drop_data)
|
||||
minigame_ui.lives_container.hide()
|
||||
minigame_ui.progression_container.hide()
|
||||
minigame_ui.progression_gauge.hide()
|
||||
label.hide()
|
||||
@warning_ignore("UNSAFE_PROPERTY_ACCESS")
|
||||
progress_gauge_max_margin = progress_gauge.margin_top_ratio
|
||||
|
||||
# Skips the whole tutorial
|
||||
@@ -98,7 +99,7 @@ func _present_next_word() -> void:
|
||||
label.show()
|
||||
label.text = words_to_present[0]
|
||||
if tutorial_count == 0:
|
||||
var speech: = Database.load_external_sound(Database.get_kalulu_speech_path(Type.keys()[minigame_name], "intro_test_game_first_word"))
|
||||
var speech: = Database.load_external_sound(Database.get_kalulu_speech_path(Type.keys()[minigame_name] as String, "intro_test_game_first_word"))
|
||||
minigame_ui.play_kalulu_speech(speech)
|
||||
await minigame_ui.kalulu_speech_ended
|
||||
|
||||
@@ -136,12 +137,12 @@ func _on_beacon_fish_dropped(is_answered_real: bool) -> void:
|
||||
false_right_fx.play()
|
||||
words_to_present.pop_front()
|
||||
if tutorial_count == 0:
|
||||
var speech: = Database.load_external_sound(Database.get_kalulu_speech_path(Type.keys()[minigame_name], "win_test_game_first_word"))
|
||||
var speech: = Database.load_external_sound(Database.get_kalulu_speech_path(Type.keys()[minigame_name] as String, "win_test_game_first_word"))
|
||||
minigame_ui.play_kalulu_speech(speech)
|
||||
await minigame_ui.kalulu_speech_ended
|
||||
tutorial_count += 1
|
||||
elif tutorial_count == 1:
|
||||
var speech: = Database.load_external_sound(Database.get_kalulu_speech_path(Type.keys()[minigame_name], "win_test_game_second_word"))
|
||||
var speech: = Database.load_external_sound(Database.get_kalulu_speech_path(Type.keys()[minigame_name] as String, "win_test_game_second_word"))
|
||||
minigame_ui.play_kalulu_speech(speech)
|
||||
await minigame_ui.kalulu_speech_ended
|
||||
tutorial_count += 1
|
||||
@@ -152,12 +153,12 @@ func _on_beacon_fish_dropped(is_answered_real: bool) -> void:
|
||||
false_wrong_fx.play()
|
||||
words_to_present_next.append(words_to_present.pop_front())
|
||||
if tutorial_count == 0:
|
||||
var speech: = Database.load_external_sound(Database.get_kalulu_speech_path(Type.keys()[minigame_name], "lose_test_game_first_word"))
|
||||
var speech: = Database.load_external_sound(Database.get_kalulu_speech_path(Type.keys()[minigame_name] as String, "lose_test_game_first_word"))
|
||||
minigame_ui.play_kalulu_speech(speech)
|
||||
await minigame_ui.kalulu_speech_ended
|
||||
tutorial_count += 1
|
||||
elif tutorial_count == 1:
|
||||
var speech: = Database.load_external_sound(Database.get_kalulu_speech_path(Type.keys()[minigame_name], "lose_test_game_second_word"))
|
||||
var speech: = Database.load_external_sound(Database.get_kalulu_speech_path(Type.keys()[minigame_name] as String, "lose_test_game_second_word"))
|
||||
minigame_ui.play_kalulu_speech(speech)
|
||||
await minigame_ui.kalulu_speech_ended
|
||||
tutorial_count += 1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
extends Control
|
||||
|
||||
@onready var aspect_ratio_container: = $AspectRatioContainer
|
||||
@onready var aspect_ratio_container: AspectRatioContainer = $AspectRatioContainer
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
extends Control
|
||||
|
||||
class_name Frog
|
||||
|
||||
signal drowned()
|
||||
signal jumped()
|
||||
|
||||
|
||||
@@ -28,15 +28,15 @@ var difficulty_settings: Array[DifficultySettings] = [
|
||||
]
|
||||
|
||||
|
||||
@onready var start: = %Start
|
||||
@onready var end: = %End
|
||||
@onready var start: Control = %Start
|
||||
@onready var end: Control = %End
|
||||
|
||||
@onready var frog_spawn_point: = %FrogSpawnPoint
|
||||
@onready var frog_despawn_point: = %FrogDespawnPoint
|
||||
@onready var frog_spawn_point: Control = %FrogSpawnPoint
|
||||
@onready var frog_despawn_point: Control = %FrogDespawnPoint
|
||||
|
||||
@onready var river: TextureRect = $GameRoot/Background/River
|
||||
@onready var lilypad_tracks_container: = %LilypadTracksContainer
|
||||
@onready var frog: = %Frog
|
||||
@onready var river: River = $GameRoot/Background/River
|
||||
@onready var lilypad_tracks_container: HBoxContainer = %LilypadTracksContainer
|
||||
@onready var frog: Frog = %Frog
|
||||
|
||||
|
||||
func _setup_word_progression() -> void:
|
||||
@@ -79,7 +79,7 @@ func _create_tracks() -> void:
|
||||
var current_word: = _get_current_stimulus()
|
||||
var current_distractors: = _get_current_distractors()
|
||||
|
||||
for i in range(current_word.GPs.size()):
|
||||
for i in range((current_word.GPs as Array).size()):
|
||||
var track: LilypadTrack = lilypad_track_scene.instantiate()
|
||||
lilypad_tracks_container.add_child(track)
|
||||
|
||||
@@ -158,7 +158,7 @@ func _on_current_progression_changed() -> void:
|
||||
track.right()
|
||||
|
||||
# Replay the stimulus
|
||||
await audio_player.play_word(_get_previous_stimulus().Word)
|
||||
await audio_player.play_word(_get_previous_stimulus().Word as String)
|
||||
|
||||
# Makes the frog jumps out of screen
|
||||
frog.jump_to(frog_despawn_point.global_position)
|
||||
|
||||
@@ -9,8 +9,8 @@ const lilypad_scene: = preload("res://sources/minigames/frog/lilypad.tscn")
|
||||
const lilypad_crossing_time: = 5.0
|
||||
|
||||
|
||||
@onready var audio_player: = $AudioStreamPlayer2D
|
||||
@onready var spawn_timer: = $SpawnTimer
|
||||
@onready var audio_player: AudioStreamPlayer2D = $AudioStreamPlayer2D
|
||||
@onready var spawn_timer: Timer = $SpawnTimer
|
||||
|
||||
var top_to_bottom: bool = false
|
||||
var is_stopped: bool = false
|
||||
@@ -35,7 +35,7 @@ var lilypads: Array[Lilypad] = []
|
||||
var lilypad_size: Vector2
|
||||
|
||||
|
||||
func _process(delta):
|
||||
func _process(delta: float) -> void:
|
||||
if is_stopped:
|
||||
return
|
||||
for lilypad: Lilypad in lilypads:
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
@tool
|
||||
extends TextureRect
|
||||
|
||||
class_name River
|
||||
|
||||
const water_ring_scene: PackedScene = preload("res://sources/utils/fx/water_ring.tscn")
|
||||
|
||||
func spawn_water_ring(pos: Vector2) -> void:
|
||||
|
||||
@@ -39,7 +39,7 @@ var stimulus: Dictionary :
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
button.set_drag_forwarding(_get_drag_data, _can_drop_data, _drop_data)
|
||||
(button as Control).set_drag_forwarding(_get_drag_data, _can_drop_data, _drop_data)
|
||||
|
||||
|
||||
func _on_button_pressed() -> void:
|
||||
|
||||
@@ -539,6 +539,7 @@ _data = {
|
||||
[sub_resource type="GDScript" id="GDScript_fxkfh"]
|
||||
script/source = "extends Button
|
||||
|
||||
@warning_ignore(\"UNUSED_SIGNAL\")
|
||||
signal dragging()
|
||||
|
||||
@onready var drag_preview_model: = $DragPreview
|
||||
|
||||
@@ -163,7 +163,7 @@ func _on_coconut_thrown(monkey: Monkey) -> void:
|
||||
_log_new_response_and_score(monkey.stimulus)
|
||||
|
||||
is_locked = true
|
||||
var coconut: = await _get_coconut_from_monkey_to_king(monkey)
|
||||
var coconut: Coconut = await _get_coconut_from_monkey_to_king(monkey)
|
||||
|
||||
# All monkeys talk but the sound is from a specific monkey
|
||||
var coroutine: = Coroutine.new()
|
||||
@@ -239,13 +239,14 @@ func _on_current_progression_changed() -> void:
|
||||
var coroutine: = Coroutine.new()
|
||||
for monkey in monkeys:
|
||||
coroutine.add_future(monkey.talk)
|
||||
audio_player.play_word(_get_previous_stimulus().Word)
|
||||
audio_player.play_word(_get_previous_stimulus().Word as String)
|
||||
if audio_player.playing:
|
||||
coroutine.add_future(audio_player.finished)
|
||||
await coroutine.join_all()
|
||||
await get_tree().create_timer(time_between_words/2).timeout
|
||||
|
||||
# Starts a new round
|
||||
@warning_ignore("redundant_await")
|
||||
await super()
|
||||
|
||||
# Reset the label
|
||||
|
||||
@@ -13,7 +13,7 @@ var is_pressed: bool = false
|
||||
func _ready() -> void:
|
||||
if gp:
|
||||
if capitalized:
|
||||
text = gp.Grapheme.capitalize()
|
||||
text = (gp.Grapheme as String).capitalize()
|
||||
else:
|
||||
text = gp.Grapheme
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ func _setup_minigame() -> void:
|
||||
# Setups the timer
|
||||
spawn_timer.wait_time = settings.spawn_rate
|
||||
|
||||
for s in stimuli:
|
||||
for s: Dictionary in stimuli:
|
||||
print(s.Word)
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
extends Control
|
||||
class_name WaterRingFX
|
||||
|
||||
@export_range(1, 10) var min: int = 1
|
||||
@export_range(1, 10) var max: int = 4
|
||||
@export_range(1, 10) var min_particle: int = 1
|
||||
@export_range(1, 10) var max_particle: int = 4
|
||||
|
||||
@onready var particles: GPUParticles2D = $GPUParticles2D
|
||||
|
||||
func play() -> void:
|
||||
particles.amount = randi_range(min, max)
|
||||
particles.amount = randi_range(min_particle, max_particle)
|
||||
particles.restart()
|
||||
await particles.finished
|
||||
|
||||
@@ -8,28 +8,28 @@ signal swipe(start_position: Vector2, end_position: Vector2)
|
||||
var current_preview: TextureRect
|
||||
var start_position: Vector2
|
||||
|
||||
func _ready():
|
||||
func _ready() -> void :
|
||||
set_drag_forwarding(
|
||||
# _get_drag_data
|
||||
func(at_position: Vector2):
|
||||
func(at_position: Vector2) -> Dictionary:
|
||||
current_preview = drag_preview.duplicate()
|
||||
current_preview.show()
|
||||
set_drag_preview(current_preview)
|
||||
start_position = global_position + at_position
|
||||
return {},
|
||||
# _can_drop_data
|
||||
func(_at_position: Vector2, _data):
|
||||
func(_at_position: Vector2, _data: Variant) -> bool:
|
||||
return false,
|
||||
# _drop_data
|
||||
func(at_position: Vector2, data):
|
||||
func(_at_position: Vector2, _data: Variant) -> void:
|
||||
pass
|
||||
)
|
||||
|
||||
|
||||
func _on_drag_preview_tree_exiting():
|
||||
func _on_drag_preview_tree_exiting() -> void:
|
||||
if current_preview:
|
||||
swipe.emit(start_position, current_preview.global_position)
|
||||
|
||||
|
||||
func _on_drag_preview_tree_exited():
|
||||
func _on_drag_preview_tree_exited() -> void:
|
||||
current_preview = null
|
||||
|
||||
Reference in New Issue
Block a user