Add mission scoring, rewards collection and save schema v2

Phase "score et récompenses" of the post-0.1.0 plan (user feedback:
wants a more game-like experience with scoring and rewards).

- MissionScoring: 1-3 stars from how each exercise was solved (never
  speed; a finished mission always gives at least one star).
- Save schema v2: mission_results (best/last stars, completions) with a
  v1->v2 migration that keeps existing stars and items.
- Total only grows by the improvement over a mission's best score.
- Data-driven collection (data/rewards, reward_item schema, validated
  incl. mission cross-check) unlocked by RewardRules.
- Reward screen, collection screen, stars on the world map.
- Version 0.2.0.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Denis Defolie
2026-10-11 22:20:59 +02:00
parent 57182172a9
commit 65a0cb46f9
47 changed files with 897 additions and 36 deletions
+29
View File
@@ -34,6 +34,35 @@ unique_name_in_owner = true
layout_mode = 2
horizontal_alignment = 1
[node name="MessageLabel" type="Label" parent="CenterContainer/VBox"]
unique_name_in_owner = true
layout_mode = 2
horizontal_alignment = 1
autowrap_mode = 2
custom_minimum_size = Vector2(480, 0)
[node name="RecordLabel" type="Label" parent="CenterContainer/VBox"]
unique_name_in_owner = true
layout_mode = 2
horizontal_alignment = 1
[node name="TotalLabel" type="Label" parent="CenterContainer/VBox"]
unique_name_in_owner = true
layout_mode = 2
horizontal_alignment = 1
[node name="NewItemsLabel" type="Label" parent="CenterContainer/VBox"]
unique_name_in_owner = true
layout_mode = 2
horizontal_alignment = 1
autowrap_mode = 2
custom_minimum_size = Vector2(480, 0)
[node name="CollectionButton" type="Button" parent="CenterContainer/VBox"]
unique_name_in_owner = true
layout_mode = 2
custom_minimum_size = Vector2(200, 56)
[node name="ContinueButton" type="Button" parent="CenterContainer/VBox"]
unique_name_in_owner = true
layout_mode = 2