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
- Se presenta un tablero de 5×5 casillas ocultas.
- Cada casilla contiene un número (×1, ×2, ×3) o un Voltorb (×0).
- El jugador debe descubrir casillas para multiplicar sus monedas.
- Si descubre un Voltorb, pierde todas las monedas del nivel actual.
- Las pistas en los bordes indican la suma de números y la cantidad de Voltorbs en cada fila/columna.
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
- Se muestra una pared de roca con objetos ocultos debajo.
- El jugador usa un martillo (quita más roca, más daño a la pared) o un pico (menos roca, menos daño).
- La pared tiene un medidor de resistencia. Si llega a cero, el juego termina.
- Los objetos encontrados se añaden a la mochila del jugador.
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
- Se juega en un tablero de 3×3.
- Cada jugador tiene 5 cartas con valores numéricos en los 4 lados.
- Al colocar una carta junto a otra del oponente, si tu valor es mayor, capturas la carta rival.
- Gana quien tenga más cartas al llenar el tablero.
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
- El jugador inserta monedas (1, 2 o 3 por tirada).
- Tres carretes giran y el jugador intenta detenerlos.
- Si los símbolos se alinean en las líneas de pago activas, el jugador gana monedas.
- Diferentes combinaciones ofrecen diferentes premios.
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:
- Una clase de escena: Gestiona los gráficos, la entrada del jugador y la lógica del juego.
- Sprites y gráficos: Recursos visuales almacenados en
Graphics/Pictures/. - 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