Updates the export configuration for the prof tool. Parakeets are clickable earlier during the right answer animation. The animation of repeat button has been disabled. Tracing will use uppercase first then lowercase. Look And Learn now show the right title at the top.
This commit is contained in:
+1
-1
@@ -49,7 +49,7 @@ advanced_options=false
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter="language_resources/model_database.db"
|
||||
include_filter="model_database.db"
|
||||
exclude_filter=""
|
||||
export_path="../Export/prof_tool.dmg"
|
||||
encryption_include_filters=""
|
||||
|
||||
Binary file not shown.
Binary file not shown.
+1
-1
@@ -12,7 +12,7 @@ config_version=5
|
||||
|
||||
config/name="Kalulu"
|
||||
config/version="2.0.8"
|
||||
run/main_scene="res://sources/language_tool/prof_tool_menu.tscn"
|
||||
run/main_scene="res://sources/menus/splash_screen/splash_screen.tscn"
|
||||
config/features=PackedStringArray("4.3", "Forward Plus")
|
||||
boot_splash/bg_color=Color(0.141176, 0.141176, 0.141176, 1)
|
||||
config/icon="res://assets/kalulu_icon.png"
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -15,6 +15,7 @@ var save_file: ProfToolSave
|
||||
|
||||
func _ready() -> void:
|
||||
MusicManager.stop()
|
||||
Database.load_additional_word_list()
|
||||
_update_add_word_list_button()
|
||||
if not ResourceLoader.exists(save_file_path):
|
||||
save_file = ProfToolSave.new()
|
||||
|
||||
@@ -199,13 +199,13 @@ func _on_word_gui_input(event: InputEvent) -> void:
|
||||
func _on_list_title_import_path_selected(path: String, match_to_file: bool) -> void:
|
||||
var file: = FileAccess.open(path, FileAccess.READ)
|
||||
var line: = file.get_csv_line()
|
||||
if line.size() < 1 or line[0] != "ORTHO":
|
||||
error_label.text = "Column names should be ORTHO"
|
||||
if line.size() < 1 or line[0] != "ORTHO" and line[1] != "GPMATCH":
|
||||
error_label.text = "Column names should be ORTHO, GPMATCH"
|
||||
return
|
||||
var all_data = {}
|
||||
while not file.eof_reached():
|
||||
line = file.get_csv_line()
|
||||
if line.size() < 1:
|
||||
if line.size() < 2:
|
||||
continue
|
||||
_e._try_to_complete_from_word(line[0])
|
||||
all_data[line[0]] = true
|
||||
|
||||
@@ -294,12 +294,12 @@ func _add_from_additional_word_list(new_text: String) -> int:
|
||||
func _try_to_complete_from_word(new_text: String) -> int:
|
||||
var id: = _already_in_database(new_text)
|
||||
if id >= 0:
|
||||
print("Already in DB " + new_text)
|
||||
return id
|
||||
|
||||
id = _add_from_additional_word_list(new_text)
|
||||
if id >= 0:
|
||||
return id
|
||||
|
||||
return -1
|
||||
|
||||
|
||||
|
||||
@@ -68,17 +68,20 @@ func setup() -> void:
|
||||
sounds.append(gp_sound)
|
||||
used = true
|
||||
|
||||
if used:
|
||||
gp_display.append(gp)
|
||||
var tracing_data: = tracing_manager._get_letter_tracings(gp.Grapheme)
|
||||
if tracing_data.upper:
|
||||
gp_display.append(gp.Grapheme.to_upper())
|
||||
if tracing_data.lower:
|
||||
gp_display.append(gp.Grapheme.to_lower())
|
||||
|
||||
if gp_display.is_empty():
|
||||
gp_display.append(gp_list[0])
|
||||
gp_display.append(gp_list[0].Grapheme)
|
||||
|
||||
grapheme_label.text = ""
|
||||
for gp: Dictionary in gp_display:
|
||||
for gp: String in gp_display:
|
||||
if grapheme_label.text:
|
||||
grapheme_label.text += " - "
|
||||
grapheme_label.text += "%s" % gp.Grapheme
|
||||
grapheme_label.text += "%s" % gp
|
||||
|
||||
|
||||
func play_videos() -> void:
|
||||
|
||||
@@ -788,7 +788,6 @@ anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_12st1")
|
||||
lesson_nb = 24
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
@@ -852,7 +851,6 @@ theme_override_font_sizes/font_size = 175
|
||||
text = "o"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
uppercase = true
|
||||
|
||||
[node name="LeftContainer" type="VBoxContainer" parent="."]
|
||||
layout_mode = 1
|
||||
|
||||
@@ -13,8 +13,8 @@ const tracing_data_folder: = "tracing_data/"
|
||||
const extension: = ".csv"
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
place_segments(lower_labels.get_children())
|
||||
place_segments(upper_labels.get_children())
|
||||
place_segments(lower_labels.get_children())
|
||||
|
||||
|
||||
func place_segments(labels: Array) -> void:
|
||||
@@ -24,12 +24,12 @@ func place_segments(labels: Array) -> void:
|
||||
|
||||
|
||||
func reset() -> void:
|
||||
for child in lower_labels.get_children():
|
||||
child.queue_free()
|
||||
for child in upper_labels.get_children():
|
||||
child.queue_free()
|
||||
for child in lower_labels.get_children():
|
||||
child.queue_free()
|
||||
|
||||
lower_labels.visible = true
|
||||
lower_labels.visible = false
|
||||
upper_labels.visible = false
|
||||
await get_tree().process_frame
|
||||
|
||||
@@ -41,11 +41,11 @@ func setup(grapheme: String) -> void:
|
||||
for letter in grapheme:
|
||||
var tracings: = _get_letter_tracings(letter)
|
||||
|
||||
if tracings.lower:
|
||||
setup_tracing(letter, tracings["lower"] as Array, lower_labels, true)
|
||||
|
||||
if tracings.upper:
|
||||
setup_tracing(letter, tracings["upper"] as Array, upper_labels, false)
|
||||
|
||||
if tracings.lower:
|
||||
setup_tracing(letter, tracings["lower"] as Array, lower_labels, true)
|
||||
|
||||
|
||||
func setup_tracing(letter: String, letter_tracings: Array, parent: Control, lower: bool) -> void:
|
||||
@@ -116,9 +116,6 @@ func _real_path(path: String) -> String:
|
||||
|
||||
|
||||
func start() -> void:
|
||||
await demo_labels(lower_labels)
|
||||
await start_labels(lower_labels)
|
||||
|
||||
if upper_labels.get_child_count(false) > 0:
|
||||
lower_labels.visible = false
|
||||
upper_labels.visible = true
|
||||
@@ -126,6 +123,13 @@ func start() -> void:
|
||||
await demo_labels(upper_labels)
|
||||
await start_labels(upper_labels)
|
||||
|
||||
if lower_labels.get_child_count(false) > 0:
|
||||
lower_labels.visible = true
|
||||
upper_labels.visible = false
|
||||
|
||||
await demo_labels(lower_labels)
|
||||
await start_labels(lower_labels)
|
||||
|
||||
finished.emit()
|
||||
|
||||
|
||||
|
||||
@@ -362,12 +362,12 @@ func _on_minigame_ui_stimulus_button_pressed() -> void:
|
||||
_pause_game()
|
||||
minigame_ui.lock()
|
||||
|
||||
await minigame_ui.repeat_stimulus_animation(true)
|
||||
#await minigame_ui.repeat_stimulus_animation(true)
|
||||
|
||||
@warning_ignore("redundant_await")
|
||||
await _play_stimulus()
|
||||
|
||||
await minigame_ui.repeat_stimulus_animation(false)
|
||||
#await minigame_ui.repeat_stimulus_animation(false)
|
||||
|
||||
minigame_ui.unlock()
|
||||
_pause_game()
|
||||
|
||||
@@ -158,10 +158,10 @@ anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -1179.0
|
||||
offset_top = -460.0
|
||||
offset_right = -929.0
|
||||
offset_bottom = -74.0
|
||||
offset_left = -466.0
|
||||
offset_top = -575.0
|
||||
offset_right = -216.0
|
||||
offset_bottom = -189.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
@@ -85,6 +85,7 @@ func _find_stimuli_and_distractions() -> void:
|
||||
for GP: Dictionary in stimulus.GPs:
|
||||
grapheme_distractions.append(Database.get_distractors_for_grapheme(GP.ID as int, lesson_nb))
|
||||
distractions.append(grapheme_distractions)
|
||||
|
||||
|
||||
|
||||
# Launch the minigame
|
||||
|
||||
@@ -8,7 +8,14 @@
|
||||
[ext_resource type="PackedScene" uid="uid://bgio7muqck2bu" path="res://sources/utils/auto_size_label.tscn" id="4_26xiq"]
|
||||
[ext_resource type="SpriteFrames" uid="uid://dquynn3nx52o" path="res://sources/minigames/jellyfish/red_jellyfish_animations.tres" id="5_js27p"]
|
||||
[ext_resource type="PackedScene" uid="uid://dlmbxcgiv8tpr" path="res://sources/utils/fx/wrong.tscn" id="6_w1tlu"]
|
||||
[ext_resource type="LabelSettings" uid="uid://bguqnhiblwick" path="res://resources/themes/minigames_label_settings.tres" id="8_x6vke"]
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_qqnw2"]
|
||||
font_size = 140
|
||||
outline_size = 8
|
||||
outline_color = Color(0, 0, 0, 1)
|
||||
shadow_size = 4
|
||||
shadow_color = Color(0, 0, 0, 0.639216)
|
||||
shadow_offset = Vector2(3, 3)
|
||||
|
||||
[node name="Jellyfish" type="Control"]
|
||||
custom_minimum_size = Vector2(400, 400)
|
||||
@@ -16,7 +23,7 @@ layout_mode = 3
|
||||
anchors_preset = 0
|
||||
offset_right = 400.0
|
||||
offset_bottom = 400.0
|
||||
scale = Vector2(1.0829, 1.0829)
|
||||
scale = Vector2(1.10523, 1.10523)
|
||||
script = ExtResource("1_06uwq")
|
||||
|
||||
[node name="BackFX" type="Control" parent="."]
|
||||
@@ -69,7 +76,6 @@ unique_name_in_owner = true
|
||||
scale = Vector2(2.15054, 2.15054)
|
||||
sprite_frames = ExtResource("5_js27p")
|
||||
animation = &"idle"
|
||||
frame_progress = 0.433302
|
||||
centered = false
|
||||
offset = Vector2(-0.000205994, 0.00019455)
|
||||
|
||||
@@ -95,7 +101,7 @@ layout_mode = 2
|
||||
|
||||
[node name="Label" parent="PercentMarginContainer/AspectRatioContainer/AutoSizeLabel" index="0"]
|
||||
text = ""
|
||||
label_settings = ExtResource("8_x6vke")
|
||||
label_settings = SubResource("LabelSettings_qqnw2")
|
||||
|
||||
[node name="FrontFX" type="Control" parent="."]
|
||||
custom_minimum_size = Vector2(0, 220)
|
||||
|
||||
@@ -20,7 +20,6 @@ base_font = ExtResource("8_fem7m")
|
||||
spacing_glyph = 20
|
||||
|
||||
[node name="MonkeysMinigame" instance=ExtResource("1_6nhsm")]
|
||||
process_mode = 1
|
||||
script = ExtResource("2_12lw5")
|
||||
throw_to_king_duration = 1.2
|
||||
throw_to_monkey_duration = 0.8
|
||||
@@ -29,7 +28,7 @@ max_number_of_GPs = 6
|
||||
distractors_queue_size = 6
|
||||
time_between_words = 3.0
|
||||
minigame_name = 3
|
||||
lesson_nb = 7
|
||||
lesson_nb = 6
|
||||
difficulty = 4
|
||||
max_number_of_lives = 5
|
||||
max_progression = 5
|
||||
|
||||
@@ -27,9 +27,8 @@ offset_bottom = -104.0
|
||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||
scale = Vector2(2, 2)
|
||||
sprite_frames = ExtResource("2_k0dcm")
|
||||
animation = &"idle_front"
|
||||
animation = &"idle_front_blink"
|
||||
autoplay = "idle_front"
|
||||
frame_progress = 0.444126
|
||||
offset = Vector2(2.08165e-12, -82)
|
||||
|
||||
[node name="Label" type="Label" parent="."]
|
||||
|
||||
@@ -155,7 +155,7 @@ func _correct() -> void:
|
||||
|
||||
await _make_selected_coo()
|
||||
|
||||
await _fly_to(fly_away_positions)
|
||||
_fly_to(fly_away_positions)
|
||||
|
||||
|
||||
state = State.Idle
|
||||
@@ -229,8 +229,9 @@ func _fly_to(targets: Array[Vector2]) -> void:
|
||||
|
||||
|
||||
func _turn(parakeet: Parakeet, to_back: bool) -> void:
|
||||
audio_player.stream = audio_streams[Audio.Turn]
|
||||
audio_player.play()
|
||||
if not audio_player.playing:
|
||||
audio_player.stream = audio_streams[Audio.Turn]
|
||||
audio_player.play()
|
||||
if to_back:
|
||||
await parakeet.turn_to_back()
|
||||
else:
|
||||
|
||||
@@ -19,7 +19,7 @@ shader_parameter/direction = Vector2(0.015, 0)
|
||||
script = ExtResource("2_x6xn5")
|
||||
fly_duration = 3.0
|
||||
minigame_name = 2
|
||||
lesson_nb = 10
|
||||
lesson_nb = 8
|
||||
difficulty = 4
|
||||
max_number_of_lives = 5
|
||||
|
||||
|
||||
Reference in New Issue
Block a user