UI et prefabs By Year
Socle commun
Assets/Src/UI/SimByYear/ contient l'UI réutilisée par les jeux annuels. Le contenu métier propre à ENT1/HR1/MGT1/MK1/MK2 reste dans Assets/GameSpecific/<gameUid>/Src/UI et leurs prefabs Resources.
Contrôles principaux
| Domaine | Classes |
|---|---|
| Simulation sync/async | SimByYearControlBase, SimByYearSyncControl, SimByYearAsyncControl |
| Années | ActivityYearsControl, YearItemControl, WaitSimStartPopupControl |
| Décisions | DecisionsByYearControl, DecisionsPanelByYear |
| Évaluation | EvaluationByYearSyncControl, EvaluationByYearAsyncControl, StudentEval lines |
| Reports | DetailedReport*, ActPerfEval* |
| Logbook | LogBookControl, LogbookEvalPopupControl, LogbookRoleControl |
| Rankings | RankingsPanelControl, HiScoresPopupControl, FinalSequenceRankingsControl |
| Events | EventHistoryPopupControl + rows game-specific |
Final sequence
Les contrôles FinalSequence* gèrent la fin de simulation, les équipes, classements et trophées. Ils consomment les rankings/résultats générés côté serveur.
Règle de maintenance
Une UI qui ne connaît ni segment MK, ni employee HR, ni factory ENT, ni feature MGT appartient ici. Dès qu'un écran manipule une structure propre à un jeu, le code et le prefab doivent rester dans GameSpecific.
Ajouter un écran de décision ou un report By Year
Écran réellement commun
Les contrôles de cycle, années, eval, rankings, logbook et final sequence peuvent vivre sous Assets/Src/UI/SimByYear. Une UI qui connaît un type métier game-specific doit rester sous Assets/GameSpecific/<gameUid>/Src/UI.
Nouvel écran de décision game-specific
- Créer le contrôle sous
GameSpecific/<gameUid>/Src/UI. - Créer/mettre à jour le prefab dans les Resources du jeu.
- Lire la décision depuis
TeamController<Game>/TeamDecisions<Game>. - Envoyer les changements via la custom command game-specific, pas en modifiant seulement le modèle local.
- Écouter le message game-specific pour les modifications d'un coéquipier.
- Ajouter les textes.
- Ajouter un
TutorialUIObjectsi l'écran participe à un tutoriel.
Nouveau report de résultats
- Ajouter le champ dans le modèle
Results<Game>. - Créer le contrôle/report UI.
- Brancher le report panel/detailed report du jeu.
- Gérer année sélectionnée, équipe sélectionnée et teacher/student permissions.
- Tester résultat absent (année non générée), année courante et années historiques.
Sync vs async
Les écrans communs ont souvent des variantes SimByYearSyncControl et SimByYearAsyncControl, ainsi que des contrôles d'évaluation sync/async. Avant d'ajouter un bouton “commun”, vérifier s'il est valide dans les deux modes.
Checklist prefab/UI By Year
- student + teacher;
- sync + async si applicable;
- année 1 + historique;
- avant résultats + après résultats;
- RTT coéquipier;
- textes FR/EN;
- tutorial target si requis;
- WebGL.