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
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
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 TutorialUIObject si l'écran participe à un tutoriel.
Nouveau report de résultats
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.