Factorize flowers code

This commit is contained in:
Adrien Ufferte
2025-12-16 13:49:42 +01:00
parent ffbd67ed87
commit 50d998e6e8
+31 -14
View File
@@ -209,26 +209,16 @@ func _handle_transition_sequences(transition_context: Dictionary) -> void:
func _apply_transition_flowers(transition_context: Dictionary) -> void:
# Reveal flowers for completed look and learn
if transition_data.has("look_and_learn_completed") and transition_data.look_and_learn_completed and transition_data.has("current_lesson_number"):
var lesson_number: int = transition_data.current_lesson_number as int
var flower_info: Dictionary = lesson_to_flower_index.get(lesson_number, {})
if flower_info and flower_info.has("garden") and flower_info.has("index"):
var target_garden: Garden = flower_info.garden
var target_index: int = flower_info.index
if target_index < target_garden.flowers_visible.size():
target_garden.flowers_visible[target_index] = true
if target_index < target_garden.flowers_sizes.size():
target_garden.flowers_sizes[target_index] = _get_flower_size_for_completion(_count_completed_minigames(lesson_number))
target_garden.update_flowers()
_reveal_completed_look_and_learn_flower()
# Play the flowers animation if needed
if transition_context.is_current_lesson and transition_context.is_first_clear and transition_context.is_minigame_completed and transition_data.has("current_lesson_number"):
# Wait a bit before any action to smooth the animations
await get_tree().create_timer(1).timeout
var lesson_number: int = transition_data.current_lesson_number as int
var flower_info: Dictionary = lesson_to_flower_index.get(lesson_number, {})
if flower_info and flower_info.has("garden") and flower_info.has("index"):
var flower_info: Dictionary = _get_flower_info(lesson_number)
if flower_info.is_empty():
return
var target_garden: Garden = flower_info.garden
var target_index: int = flower_info.index
var new_completed_count: int = _count_completed_minigames(lesson_number)
@@ -248,6 +238,33 @@ func _apply_transition_flowers(transition_context: Dictionary) -> void:
target_garden.update_flowers()
func _reveal_completed_look_and_learn_flower() -> void:
# Reveal flowers for completed look and learn
if not transition_data.get("look_and_learn_completed", false):
return
var lesson_number_variant: Variant = transition_data.get("current_lesson_number", null)
if lesson_number_variant == null:
return
var lesson_number: int = lesson_number_variant as int
var flower_info: Dictionary = _get_flower_info(lesson_number)
if flower_info.is_empty():
return
var target_garden: Garden = flower_info.garden
var target_index: int = flower_info.index
if target_index < target_garden.flowers_visible.size():
target_garden.flowers_visible[target_index] = true
if target_index < target_garden.flowers_sizes.size():
target_garden.flowers_sizes[target_index] = _get_flower_size_for_completion(_count_completed_minigames(lesson_number))
target_garden.update_flowers()
func _get_flower_info(lesson_number: int) -> Dictionary:
var flower_info: Dictionary = lesson_to_flower_index.get(lesson_number, {})
if flower_info and flower_info.has("garden") and flower_info.has("index"):
return flower_info
return {}
func _play_new_lesson_unlock_sequence() -> void:
var max_lesson: int = UserDataManager.student_progression.get_max_unlocked_lesson_index()
# Close the layout