Reorders the left sidebar so risky actions sit at the bottom with a gap:
Dashboard, Synchronize, Logout | Change Language (red), Delete Account.
The new Change Language button opens a warning popup with a language
dropdown. On confirm, if the selected locale differs from the current
one, the client calls POST /reset_language. On success it wipes the
local teacher folder (progression, remediation, confusion matrix…),
applies the new language to device and teacher settings, logs out and
reloads from the splash screen. On error the user sees an error popup
and nothing local changes.
Removed code-side background.modulate override from set_background() —
background tint is now baked into each scene's Background node. Gardens
06-12 use placeholder colors pending final design specs.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Blue Jellyfish, Purple Turtle, Ant, Crab, Yellow Parakeet gardens
now use the final color values from the design spreadsheet.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Each garden (garden_01.tscn through garden_12.tscn) now has its own color
palette for lesson buttons (unlocked/completed fill and text colors).
Lesson count is validated to be between 12 and 60. The old dynamic
duplication of a single garden.tscn is replaced by instantiating the
correct scene per garden index.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Path now reads actual button positions and sizes from the visible
LessonButton nodes instead of SLOT_CENTERS constants. This means
editing button positions in the Godot editor automatically updates
the path line.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Buttons, pivot offsets and font size scaled down proportionally.
Same center positions preserved.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
All 8 plants are now TextureRect nodes in garden.tscn instead of being
instantiated at runtime. Positions, sizes and colors are editable
directly in the Godot editor. Buttons were already scene nodes.
Removed _create_plants(), PLANT_LAYOUTS, PLANT_PATH_MODEL and all
runtime instantiation code from garden.gd. Plants container is now
placed between Background and Buttons for correct z-ordering.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add 8 garden plant assets (garden_plant_01 to 08) from victory assets
- Remove entire old flower system (FlowerSizes enum, flower generation,
flower VFX transitions, flower_controls, flowers_visible, flowers_sizes)
- Remove Flower class from GardenLayout
- Plants are created programmatically in Garden._create_plants() at fixed
positions matching the Explanation.png mockup layout
- All plants hidden by default, revealed progressively based on completed
minigames ratio: 0 completed = 0 visible, all completed = all 8 visible
- Add lowercase file naming rule to CLAUDE.md
- Fix current_garden lookup to use _get_garden_index_for_lesson instead
of removed flower_info system
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Button size is fixed at 300x300 in the scene, no need to instantiate
and measure at runtime.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace dynamic button instantiation with 5 fixed LessonButton instances
(Slot1-Slot5) positioned at hardcoded coordinates in the garden scene.
Garden._configure_slots() shows/hides slots based on lesson count using
the SLOT_SELECTION mapping (5→all, 4→skip middle, 3→1,3,5, etc.).
- Add error log if lesson count exceeds MAX_LESSONS (5)
- Remove dynamic _ensure_button_controls_count from garden.gd
- Replace position generation functions with SLOT_CENTERS constant
- Buttons are clickable via existing _set_up_lessons signal wiring
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Buttons are placed at 5 fixed positions on a diagonal from bottom-left
to upper-right. When fewer lessons exist, evenly spaced slots are selected.
Reduced spread radius to keep all buttons inside the circle.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove dead functions: _get_garden_background_image, _is_position_on_garden_texture,
_get_garden_dimensions, and associated constants/caches
- Remove unused base_color/completed_color exports from LessonButton
(colors now driven by constants in _update_visual_state)
- Use LessonButton.UNLOCKED_FILL_COLOR instead of duplicate Color("176d78")
- Inline garden dimensions as constant expression
- Remove unused color parameter from _handle_lesson_button
- Fix missing blank line in garden.gd constant block
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Tint garden background #176d78 via modulate in set_background()
- Fix background as 1700x1700 centered square instead of stretched
- Make TextureButton self_modulate transparent so Center/Border are visible
- Diagonal lesson layout from bottom-left to upper-right matching mockup
- Center buttons on generated positions instead of top-left alignment
- Increase garden size back to 2400 with 850px circle radius
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace rectangular garden backgrounds with circular Garden_01.png asset,
arrange lesson buttons in a circular pattern instead of sine-wave layout,
and introduce three visual states for buttons (locked/unlocked/completed)
using the new lesson_circle.png texture. Add jellyfish mascot to gardens.
- Add new assets: Garden_01.png, lesson_circle.png, jellyfish.png
- Update garden background to use keep_aspect_centered circular display
- Implement circular lesson positioning with configurable radius
- Simplify position validation to circle-distance check
- Add layout cache versioning to invalidate old layouts
- Update boss_button.tscn to match new button design
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The button label and export presets now change depending on the
dropdown selection. Game exports to Autobuild/Kalulu_Game/<version>,
Prof Tool exports to Autobuild/Prof_Tool/<version>. Shows an alert
and aborts if the version folder already exists.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The export_tool_manager dropdown now applies project settings
immediately when toggling between "Kalulu Game" and "Prof Tool",
replacing the need to manually apply prof_tool_patch.diff.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>