Temps

From ZeldaMods (Breath of the Wild)
Revision as of 00:33, 11 May 2020 by Leoetlino (talk | contribs) (Created page with "Lorsque vous passez le temps près d'un feu ou lorsque vous dormez, l'horloge est instantanément réglée à l'heure de destination. Jamais le jeu n'accélère ou ne ralentit...")
Jump to navigation Jump to search
Other languages:

Cet article documente comment le temps s'écoule dans Breath of the Wild.

Résumé

À propos du temps

L'horloge commence à 05:15 et le temps s'écoule normalement jusqu'à 11:00. L'activation de la Tour du Prélude règle l'horloge à 11:00, affiche l'heure sur l'interface utilisateur et rétablit l'écoulement normal du temps.

Cependant :

  • Si la scène cinématique de sortie du Sanctuaire de la Renaissance n'a pas été jouée, l'horloge est réglée à 05:15 et figée.
  • Si elle a été jouée mais que Link n'a pas reçu la quête Le plateau isolé, l'heure ne peut pas dépasser 11:00.

À propos des lunes de sang planifiées

Les lunes de sang peuvent se produire à minuit si et seulement si le flag WM_BloodyDay est activé. Il n'y a aucun moyen de forcer la planification d'une lune de sang par le biais d'actions provenant du joueur.

Ce flag est activé la nuit d'avant à minuit si Link a quitté le plateau et si le timer lune de sang a atteint 7 jours dans le jeu. Pas 7 jours et 15 minutes, mais exactement 7 jours (2520/360 = 7). Aussi, notez qu'après l'activation du flag WM_BloodyDay, Link n'a pas besoin d'attendre près d'un feu que le temps passe.

Le timer de la lune de sang commence à compter dès que Link a quitté le Sanctuaire de la Renaissance d'une façon normale. Tout moment passé dans un état où le timer principal du jeu est suspendu ne compte pas. Cependant, il n'est pas nécessaire que Link soit dans le monde ouvert : le temps que vous passez dans les sanctuaires, les créatures divines, etc. compte.

Passer le temps près d'un feu ou dormir à plusieurs reprises n'aide pas du tout pour provoquer une lune de sang. C'est en fait tout le contraire, car le timer n'avance pas pendant les cinématiques.

Détails

En interne, l'heure du jour est stockée sous la forme d'un flottant dans l'intervalle [0,0 ; 360,0]. 0,0 représente minuit et 359,x 23h59.

Quand le jeu démarre, l'heure est réglée à 78,75 (05h15) et le "Bloody Moon end reserve timer" est réglé à 0. Si vous avez déjà des données de jeu, le timer du jeu sera rechargé depuis votre sauvegarde.

À chaque tick du jeu

Si au moins l'une des conditions suivantes est vérifiée, la cinématique de la lune de sang ne sera pas déclenchée.

Sinon, s'il n'y a pas d'événement ou de cinématique actif :

  • Le timer du jeu est incrémenté de 0,0083333 × le nombre de frames écoulées. En pratique, cela signifie que 1 minute dans le jeu = 1 seconde dans la vraie vie.
  • Si Link n'a pas reçu la quête Le plateau isolé et si l'heure actuelle est >= 165,0 (11h00), l'heure est réglée à 11h00. En pratique, cela veut dire que l'horloge n'ira pas au-delà de 11h00 tant que la Tour du Prélude n'aura pas été activée et la cinématique avec le vieil homme activée.
  • Si le timer atteint 360,0 (minuit), le jeu effectue des vérifications spéciales. Cf la section suivante.
  • Une valeur appelée "le timer de la lune de lang" est aussi incrémentée de 0,0083333 × le nombre de frames écoulées.

Après, si le "Bloody Moon end reserve timer" est non nul, celui-ci est décrémenté. Si la nouvelle valeur est nulle, le flag WM_BloodyDay est désactivé.

À chaque fois que le timer atteint 360,0 (minuit)

D'abord, WM_NumberOfDays est incrémenté. Cela affecte la phase de la lune.

Si une lune de sang est planifiée :

Si les lunes de sang sont interdites (voir ci-dessous pour une liste complète de conditions), le timer est réglé à 2880,0 et rien ne se passe. Sinon, la cinématique de la lune de sang (Demo011_0) est activée et le timer est réinitialisé à 0,0.

Le jeu détermine ensuite s'il faut planifier une lune de sang ou non :

Si le joueur a quitté le plateau du Prélude et que le timer de la lune de sang est > 2520,0 (7 jours dans le jeu) :

  • Le flag WM_BloodyDay est activé, ce qui signifie qu'une lune de sang est prévue la nuit d'après.
  • Le timer lune de sang est réinitialisé à 0,0.

Sinon, le "Bloody end reserve timer" est réglé à 150 pour s'assurer que WM_BloodyDay est désactivé 5 minutes dans le jeu (= 5 secondes dans la vraie vie) après une lune de sang.

Inhibiteurs de la lune de sang

Si au moins l'une des conditions suivantes est vérifiée, la cinématique de la lune de sang ne sera pas déclenchée.

  • Link n'est pas dans le monde ouvert (par exemple, s'il est dans un sanctuaire ou une créature divine)
  • Link est dans le Château d'Hyrule (i.e. la mini-carte 3D du château d'Hyrule est visible)
  • Link est en train de battre Ganon (le boss final)
  • Le flag BloodyMoonProhibition est activé : les lunes de sang sont interdites par un événement (cinématique, mini-jeu, etc.)
  • Bataille contre Vah Medoh
  • Bataille contre Vah Naboris
  • Bataille contre Vah Ruta
  • Une certaine condition en rapport avec le Sky Manager

Cependant, celles-ci n'empêchent pas le timer lune de sang d'avancer, ou le flag WM_BloodyDay d'être activé.

Note : Vah Rudania n'est pas présent sur la liste. C'est normal et les lunes de sang ne peuvent quand même pas se produire durant la séquence Vah Rudania parce que le flag BloodyMoonProhibition est activé pendant celle-ci.

Cas spécial : passer le temps près d'un feu ou dormir

Lorsque vous passez le temps près d'un feu ou lorsque vous dormez, l'horloge est instantanément réglée à l'heure de destination. Jamais le jeu n'accélère ou ne ralentit l'écoulement du temps.

If the time change causes the clock to cross midnight, the game sets a special flag that causes the Time Manager to run the "handle new day" function once, even if it's not midnight. The game also explicitly checks[1] if a Blood Moon was scheduled to happen and triggers the cutscene if needed.

Moon type

The moon type is calculated based on the number of in-game days (WM_NumberOfDays). The exact formula is (numberOfDays + x + 1) % 8[2], where x is equal to 1 if the current time is > 180.0 (noon) and % is the modulo operator.

If a moon type was set manually (for instance using AIDef:Action/EventSetMoonType), that value will be used as the moon type. It is unclear whether the game ever sets the moon type manually.

The moon schedule has nothing to do with the blood moon schedule.

Moon phases

Here are the possible values and associated phases:

  • 0: Full Moon or Blood Moon or on a Bloody Day after 04:00
  • 1: Waning gibbous
  • 2: Third quarter
  • 3: "26th-day"
  • 4: New moon
  • 5: Waxing crescent
  • 6: "Seven-day"
  • 7: "13-day"

References

  • For more technical details, read the article on the WorldMgr. Sections of that article were extracted from it and simplified here.
  1. Demo007_1
  2. 0x71010E8200 [nx-1.5.0 executable]