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//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//Src/UI. Nouvel écran de décision game-specific Créer le contrôle sous GameSpecific//Src/UI. Créer/mettre à jour le prefab dans les Resources du jeu. Lire la décision depuis TeamController/ TeamDecisions. 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 TutorialUIObject si l'écran participe à un tutoriel. Nouveau report de résultats Ajouter le champ dans le modèle Results. 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.