Minijuegos

Pokémon Essentials v21.1 incluye varios minijuegos incorporados que puedes usar en tu proyecto. Esta página describe los minijuegos disponibles, cómo activarlos y cómo crear los tuyos propios.

Voltorb Flip

El Voltorb Flip es un minijuego de puzzle basado en el juego de las máquinas de la Zona de Juegos de Pokémon HeartGold/SoulSilver. El jugador debe descubrir casillas con multiplicadores evitando las casillas con Voltorb.

Cómo funciona

Iniciar el minijuego

# Iniciar Voltorb Flip desde un script de evento
pbVoltorbFlip

Las monedas ganadas se almacenan en el monedero del jugador ($player.coins). Asegúrate de que el jugador tenga un monedero antes de iniciar el juego.

# Dar un monedero al jugador si no tiene uno
if !$player.has_coin_case
  pbReceiveItem(:COINCASE)
end
pbVoltorbFlip

Minijuego de minería (Mining Game)

El minijuego de minería replica el Underground de Pokémon Diamante/Perla. El jugador debe excavar en una pared para encontrar objetos ocultos antes de que la pared se derrumbe.

Cómo funciona

Iniciar el minijuego

# Iniciar el minijuego de minería
pbMiningGame

Los objetos que se pueden encontrar se configuran en los scripts del minijuego. Incluyen piedras evolutivas, fósiles, gemas y otros objetos valiosos.

Triple Triad (Juego de cartas)

Triple Triad es un juego de cartas coleccionables basado en el minijuego de Final Fantasy VIII, adaptado con Pokémon. Cada carta tiene valores en sus cuatro lados y los jugadores compiten por controlar el tablero.

Cómo funciona

Iniciar el minijuego

# Iniciar una partida de Triple Triad contra un oponente
# Los parámetros definen las cartas del oponente
pbTripleTriad("NPC_Name")

Máquinas tragamonedas

Las máquinas tragamonedas son un minijuego clásico de los juegos Pokémon, disponible en la Zona de Juegos. El jugador apuesta monedas para intentar alinear símbolos ganadores.

Cómo funciona

Iniciar el minijuego

# Iniciar las máquinas tragamonedas
pbSlotMachine

Crear minijuegos personalizados

Puedes crear tus propios minijuegos usando los scripts de Ruby de Essentials. Un minijuego personalizado típicamente incluye:

  1. Una clase de escena: Gestiona los gráficos, la entrada del jugador y la lógica del juego.
  2. Sprites y gráficos: Recursos visuales almacenados en Graphics/Pictures/.
  3. Una función de entrada: Un método global que inicia el minijuego.
# Estructura básica de un minijuego personalizado
class MiMinijuego
  def initialize
    @sprites = {}
    @viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
    @viewport.z = 99999
    # Crear sprites y configurar la escena
    pbBGMPlay("Minigame BGM")
  end

  def main
    loop do
      Graphics.update
      Input.update
      update
      break if @finished
    end
    dispose
  end

  def update
    # Lógica del minijuego
    if Input.trigger?(Input::BACK)
      @finished = true
    end
  end

  def dispose
    pbDisposeSpriteHash(@sprites)
    @viewport.dispose
    pbBGMStop
  end
end

# Función para iniciar el minijuego
def pbMiMinijuego
  scene = MiMinijuego.new
  scene.main
end

Canje de premios

Los minijuegos que otorgan monedas pueden vincularse a un sistema de canje de premios. Puedes configurar un NPC que intercambie monedas por objetos o Pokémon:

# Ejemplo de NPC de canje de premios
opciones = [
  "Piedra Fuego (1000 monedas)",
  "Piedra Agua (1000 monedas)",
  "Piedra Trueno (1000 monedas)",
  "TM Ice Beam (4000 monedas)",
  "TM Thunderbolt (4000 monedas)",
  "Cancelar"
]
eleccion = pbShowCommands(nil, opciones, opciones.length)

case eleccion
when 0
  pbCoinExchange(:FIRESTONE, 1000)
when 1
  pbCoinExchange(:WATERSTONE, 1000)
when 2
  pbCoinExchange(:THUNDERSTONE, 1000)
when 3
  pbCoinExchange(:TM13, 4000)
when 4
  pbCoinExchange(:TM24, 4000)
end

# Función auxiliar para el intercambio
def pbCoinExchange(item, cost)
  if $player.coins >= cost
    if pbConfirmMessage("¿Cambiar #{cost} monedas por #{GameData::Item.get(item).name}?")
      $player.coins -= cost
      pbReceiveItem(item)
    end
  else
    pbMessage("No tienes suficientes monedas...")
  end
end
Consejo: Los minijuegos incluidos en Essentials son completamente funcionales, pero puedes personalizarlos o crear nuevos usando el sistema de plugins. Esto te permite añadir minijuegos sin modificar los scripts base. Consulta la página de Plugins para más información.