Tiempo

La base obtiene la hora de Time.now mediante pbGetTimeNow. Por tanto, usa el reloj del sistema. El día y la noche afectan al sombreado de exteriores, a los tipos de encuentro y a las evoluciones que comprueban la hora.

Períodos y métodos

Las comprobaciones están definidas en el módulo PBDayNight. Los límites son inclusivos al inicio y exclusivos al final:

ComprobaciónHoras
PBDayNight.isDay?05:00 a 19:59
PBDayNight.isNight?20:00 a 04:59
PBDayNight.isMorning?05:00 a 09:59
PBDayNight.isAfternoon?14:00 a 16:59
PBDayNight.isEvening?17:00 a 19:59

isDay? es una comprobación amplia: también devuelve verdadero durante mañana, tarde y atardecer. No la uses antes de esas comprobaciones más específicas en una cadena if/elsif, porque ocultaría sus ramas.

if PBDayNight.isMorning?
  pbMessage("Es por la mañana.")
elsif PBDayNight.isAfternoon?
  pbMessage("Es por la tarde.")
elsif PBDayNight.isEvening?
  pbMessage("Está atardeciendo.")
elsif PBDayNight.isNight?
  pbMessage("Es de noche.")
else
  pbMessage("Es de día.")
end

Sombreado de exteriores

Los metadatos de mapa usan Outdoor = true para marcar un mapa exterior. Si además Settings::TIME_SHADING está activado, el motor aplica el tono horario de forma gradual, interpolando los valores de la tabla horaria. La opción está en Data/Scripts/001_Settings/002_Settings.rb.

[012]
Outdoor = true

Los mapas sin Outdoor = true no reciben el tinte horario por este sistema. Los tonos horarios se definen en Data/Scripts/037_Overworld/004_Overworld_Time.rb.

Encuentros por hora

El PBS de encuentros admite tipos como LandDay, LandNight y LandMorning. Define la lista bajo la sección del mapa en PBS/encounters.txt:

[010]
Land,21
  RATTATA,3,5
LandNight,21
  HOOTHOOT,3,5
LandMorning,21
  LEDYBA,3,5

También existen LandAfternoon y LandEvening. Usa las entradas que necesite el mapa y verifica los resultados dentro del juego.

Calendario y fases lunares

El juego también consulta el calendario del sistema. pbIsWeekday comprueba días de la semana, pbIsMonth comprueba meses, y pbGetSeason devuelve una estación en ciclos de cuatro meses: enero, mayo y septiembre son primavera; febrero, junio y octubre son verano; marzo, julio y noviembre son otoño; abril, agosto y diciembre son invierno. moonphase devuelve un índice de 0 a 7 para las fases lunares.

Evoluciones por hora

El motor incluye los métodos de evolución LevelDay, LevelNight, LevelMorning, LevelAfternoon y LevelEvening. Cada uno recibe como parámetro el nivel mínimo y consulta el período correspondiente:

Evolutions = ESPECIEDESTINO,LevelEvening,20

Configura el método y el nivel en la entrada de la especie correspondiente de PBS/pokemon.txt. La sintaxis general de evoluciones está explicada en Pokémon.

Artículos relacionados