Accueil Github ↗
Itération 3

Dynamo-Blocs (DB)

Économie du jeu : DBManager pour l'affichage temps réel et BankSystemCore pour le bilan final et la persistance des gains.

Le dossier Commons/DBManagement/ gère la monnaie du jeu : les Dynamo-Blocs (DB). L’architecture sépare l’affichage temps réel de la logique de bilan.

DBManager — distributeur visuel

Script statique utilisé pendant que le joueur navigue ou joue. Ajoute des DB en mémoire vive (PlayerData.PlayerDB) et déclenche les événements visuels associés.

MéthodeDescription
AddDynamoBloc(int amount, bool isAudioSfx)Ajoute l’argent et déclenche OnDynamoBlockAdded — l’événement qui anime les chiffres défilants et le bruitage.
AddInstantDynamoBloc(int amount)Ajoute l’argent sans déclencher l’événement. Utile pour initialiser une valeur au démarrage sans animation.

BankSystemCore — logique de bilan

Script statique appelé à la fin d’une activité. Contient toutes les règles mathématiques et s’assure que les gains sont répartis et sauvegardés dans tous les historiques (session, journée, global).

Taux internes

VariableValeurSignification
_DBSecondAP11 seconde d’activité physique = 1 DB
_DBLevel100Terminer un niveau rapporte 100 DB
_DBBatteryComplete150Remplir l’objectif de batterie du jour donne un bonus de 150 DB
_DBSupercharge5Bonus additionnel pour chaque seconde au-delà de l’objectif

Méthodes clés

MéthodeDescription
AddDB(int db)Sauvegarde profonde : injecte les gains dans la cagnotte du Jour (DailyDB), la cagnotte Totale (GlobalDB) et, pour un enseignant, la cagnotte de la Session.
CanBuy(int db) / RemoveDB(int db)Vérifie si le solde est suffisant (PlayerData.PlayerDB >= db) avant d’autoriser un achat, puis déduit et sauvegarde.
AddDBBySecondsOfActivity(int seconds)Multiplie le temps joué par _DBSecondAP pour un salaire proportionnel à l’effort.
AddDBGlobal(...)Facture finale appelée par le GameManager en fin de partie. Prend le temps, le niveau et l’état de la batterie, additionne tout et envoie l’argent au joueur.