Plantación de Bayas

El sistema de plantación de bayas permite al jugador plantar, regar y cosechar bayas en puntos específicos del mapa. Las bayas atraviesan varias etapas de crecimiento basadas en el tiempo real del juego, y la cantidad cosechada puede variar según el cuidado del jugador.

Mecánicas de crecimiento

Cada baya tiene un ciclo de crecimiento dividido en etapas. El tiempo que tarda en crecer depende de las propiedades de cada baya, definidas en el PBS.

Etapas de crecimiento

Etapa Nombre Descripción
1 Plantada La baya acaba de ser plantada. Solo se ve tierra removida.
2 Brote Ha brotado un pequeño tallo verde de la tierra.
3 Tallo La planta ha crecido y tiene un tallo visible.
4 Floración La planta tiene flores. Es la última etapa antes de dar frutos.
5 Frutos La planta tiene bayas listas para ser cosechadas.

La duración total del ciclo se divide equitativamente entre las etapas. Por ejemplo, si una baya tarda 24 horas en crecer, cada etapa durará aproximadamente 6 horas.

Definición PBS de bayas para plantación

Las propiedades de crecimiento de las bayas se definen en el archivo PBS berry_plants.txt. Cada baya tiene los siguientes atributos:

Propiedad Descripción
HoursPerStage Número de horas que dura cada etapa de crecimiento.
DryingPerHour Velocidad a la que el suelo se seca por hora (afecta a cuánto hay que regar).
MinimumYield Cantidad mínima de bayas que produce la planta al cosechar.
MaximumYield Cantidad máxima de bayas que puede producir (depende del riego).

Ejemplo de definición en berry_plants.txt

[CHERIBERRY]
HoursPerStage = 3
DryingPerHour = 15
MinimumYield = 2
MaximumYield = 5

[CHESTOBERRY]
HoursPerStage = 3
DryingPerHour = 10
MinimumYield = 2
MaximumYield = 5

[PECHABERRY]
HoursPerStage = 3
DryingPerHour = 15
MinimumYield = 2
MaximumYield = 5

[RAWSTBERRY]
HoursPerStage = 3
DryingPerHour = 10
MinimumYield = 2
MaximumYield = 5

[ORANBERRY]
HoursPerStage = 4
DryingPerHour = 15
MinimumYield = 2
MaximumYield = 5

[SITRUSBERRY]
HoursPerStage = 8
DryingPerHour = 7
MinimumYield = 2
MaximumYield = 5

[LEPPABERRY]
HoursPerStage = 8
DryingPerHour = 7
MinimumYield = 1
MaximumYield = 5

Riego y cuidado

El riego es fundamental para maximizar la cosecha. La humedad del suelo disminuye con el tiempo según el valor de DryingPerHour, y cada vez que se riega, la humedad se restaura al máximo.

Cómo funciona el riego

Cálculo de cosecha

La cantidad de bayas cosechadas depende de cuántas etapas fueron regadas adecuadamente:

# Fórmula simplificada:
# etapas_regadas = número de etapas donde fue regada al menos una vez
# total_etapas = 4 (etapas 1-4, la 5 es la cosecha)
# cosecha = MinimumYield + (MaximumYield - MinimumYield) * etapas_regadas / total_etapas

Abono (Mulch)

El abono se puede aplicar a la tierra antes de plantar una baya para modificar el comportamiento del crecimiento:

Abono Efecto
GROWTHMULCH Reduce el tiempo de cada etapa en un 25%. La planta crece más rápido pero se seca más rápido.
DAMPMULCH Aumenta el tiempo de cada etapa en un 25%. La planta crece más lento pero se seca más lento.
STABLEMULCH La planta permanece en la etapa de frutos el doble de tiempo antes de marchitarse.
GOOEYMULCH La planta permanece en la etapa de frutos la mitad de tiempo, pero aumenta la cosecha.

Funciones principales

Las siguientes funciones se usan en los scripts de eventos para manejar la plantación de bayas:

pbPickBerry

Permite al jugador cosechar las bayas de una planta madura. Normalmente se llama desde el evento de la planta.

# Cosechar bayas de este evento
pbPickBerry(:ORANBERRY, 3)   # 3 bayas Aranja

pbPlantBerry

Planta una baya en el evento actual. El jugador selecciona qué baya plantar de su mochila.

# Plantar una baya en este punto
pbPlantBerry(:ORANBERRY)

pbBerryPlant

Esta es la función principal que gestiona toda la interacción con una planta de bayas. Maneja automáticamente todos los estados: terreno vacío, planta en crecimiento, planta lista para cosechar y planta marchita.

# Usar en el evento de la planta:
pbBerryPlant

Al interactuar con el evento, pbBerryPlant determina el estado actual y actúa en consecuencia:

Configurar eventos de plantación

Para crear un punto de plantación de bayas en el mapa, necesitas configurar un evento con las siguientes características:

Evento básico de planta de baya

  1. Crea un nuevo evento en el mapa donde quieras el punto de plantación.
  2. Configura una sola página con las siguientes propiedades:
Propiedad Valor
Nombre Cualquiera (ej: "BerryPlant")
Gráfico Ninguno (el script cambia el gráfico automáticamente según la etapa)
Trigger Acción (presionar botón de interacción)

Contenido del evento

# Script del evento:
pbBerryPlant

Eso es todo. La función pbBerryPlant gestiona todo internamente: el gráfico, la interacción, la plantación, el riego y la cosecha.

Planta con baya inicial

Si quieres que un punto de plantación ya tenga una baya plantada desde el inicio del juego (como en los juegos oficiales), puedes configurarlo así:

# En un evento de Autorun que se ejecuta una sola vez:
pbSetBerryPlant(event_id, :ORANBERRY)
# Donde event_id es el ID del evento de la planta en el mapa

Gráficos de las plantas

Los gráficos de las plantas de bayas se encuentran en:

Graphics/Characters/berry_

Cada baya necesita un gráfico con todas las etapas de crecimiento. El formato del nombre del archivo es:

Graphics/Characters/berry_NOMBRE.png

Por ejemplo:

El gráfico contiene todas las etapas en un formato de charset, donde cada fila representa una etapa de crecimiento diferente.

Planta marchita

Si una planta llega a la etapa de frutos y el jugador no la cosecha a tiempo, la planta se marchita. Cuando esto ocurre:

El tiempo que una planta permanece en la etapa de frutos antes de marchitarse se puede modificar con abonos.

Funciones adicionales

Función Descripción
pbBerryPlant Función principal para interactuar con una planta de baya. Gestiona todo el ciclo.
pbPickBerry(baya, cantidad) Cosecha una cantidad específica de una baya.
pbPlantBerry(baya) Planta una baya específica en el evento actual.
pbApplyMulch(abono) Aplica un abono al terreno antes de plantar.

Regadera (Wailmer Pail)

La regadera es un objeto clave necesario para regar las plantas. Debe estar definida en items.txt como un objeto clave de uso directo:

[WAILMERPAIL]
Name = Regadera
NamePlural = Regaderas
Pocket = 8
Price = 0
FieldUse = Direct
Consumable = false
Flags = KeyItem
Description = Una regadera para regar las plantas de bayas.

El efecto de la regadera se maneja automáticamente dentro de pbBerryPlant cuando el jugador interactúa con una planta que necesita riego. No necesitas crear un handler separado para la regadera en el contexto de plantación de bayas.

Consejos y buenas prácticas

Ejemplo: Ruta con varios puntos de plantación

Para crear una ruta con varios puntos de plantación, simplemente coloca varios eventos con el script pbBerryPlant en diferentes posiciones del mapa. Cada evento funciona de forma independiente.

Si quieres que algunos puntos ya tengan bayas plantadas al inicio del juego, usa un evento Autorun en el mapa:

# Evento Autorun (se ejecuta una vez)
# Plantar bayas iniciales en los eventos 5, 8 y 12
pbSetBerryPlant(5, :ORANBERRY)
pbSetBerryPlant(8, :PECHABERRY)
pbSetBerryPlant(12, :CHERIBERRY)
# Desactivar este Autorun
$game_switches[XX] = true   # Donde XX es el switch de condición