Temps

From ZeldaMods (Breath of the Wild)
Revision as of 23:42, 10 May 2020 by Leoetlino (talk | contribs) (Created page with "== Détails ==")
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

Internally, time of day is stored as a float in the [0.0, 360.0] range. 0.0 is 00:00 and 359.x is 23:59.

When the game starts, time is set to 78.75 (05:15) and the Bloody Moon end reserve timer is set to 0. If you have an existing save file, the game timer is reloaded from your save.

Every game tick

If the Shrine of Resurrection exit cutscene (Demo103_0) hasn't played, time is reset to 78.75. This means that if you manage to clip out of the Shrine of Resurrection and skip that cutscene, the game clock will be stuck at 05:15.

Otherwise, if there is no active event/cutscene:

  • The game timer is incremented by 0.0083333 × elapsed frames. Effectively, this means that 1 in-game minute = 1 real-life second.
  • If Link hasn't received the The Isolated Plateau quest and if the current time is >= 165.0 (11:00), the time is forcefully set to 11:00. Effectively, this means that time will not get past 11:00 until the Great Plateau Tower is activated and the Old Man cutscene is triggered.
  • If the timer reaches 360.0 (midnight), the game performs special checks. See the next section.
  • A value called the blood moon timer is also incremented by 0.0083333 × elapsed frames.

Afterwards, if the "Bloody Moon end reserve timer" is non zero, it is decremented. If the new value is zero, the WM_BloodyDay flag is cleared.

Every time the timer reaches 360.0 (midnight)

First, WM_NumberOfDays is incremented. This has an effect on the moon cycle.

If a Blood Moon is scheduled:

If Blood Moons are "prohibited" (see below for a full list of conditions), the timer is set to 2880.0 and nothing happens. Otherwise, the Blood Moon cutscene (Demo011_0) is triggered and the timer is reset to 0.0.

The game then determines whether to schedule a Blood Moon or not:

If the player has left the Great Plateau and if the Blood Moon timer is > 2520.0 (7 in-game days):

  • The WM_BloodyDay flag is set to true, which means that a Blood Moon is scheduled for the next night.
  • The Blood Moon timer is reset to 0.0.

Otherwise, the "Bloody end reserve timer" is set to 150. This ensures that WM_BloodyDay is cleared 5 in-game minutes (= 5 seconds in real life) after a Blood Moon occurs.

Blood Moon inhibitors

If any of the following conditions are true, the Blood Moon cutscene will not be triggered.

  • Link is not in the main overworld (e.g. in a shrine or divine beast)
  • Link is in Hyrule Castle (i.e. the Hyrule Castle 3D minimap is visible)
  • Link is fighting Dark Beast Ganon
  • The BloodyMoonProhibition flag is set: Blood moons are prohibited by an event (cutscene, minigame, etc.)
  • Vah Medoh battle
  • Vah Naboris battle
  • Vah Ruta battle
  • Some condition involving the Sky Manager

However, these do not prevent the Blood Moon timer from advancing, or the WM_BloodyDay flag from being set.

Note: Vah Rudania is missing from the list. This is normal and blood moons still cannot happen during the Vah Rudania battle sequence because the BloodyMoonProhibition flag is set during it.

Special case: passing time at a campfire or sleeping

When you pass time at a campfire or sleep, the time is instantly set to the destination time. The game never speeds up or slows down the flow of time.

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]