Revanchas
El sistema de revanchas permite al jugador volver a luchar contra entrenadores que ya ha derrotado. En Pokémon Essentials, las revanchas se implementan mediante el sistema de teléfono (Pokégear) y versiones progresivas de los entrenadores, de forma similar a los juegos originales de Pokémon Gold/Silver/Crystal y sus remakes.
Cómo funciona el sistema
El flujo general del sistema de revanchas es:
- El jugador derrota a un entrenador por primera vez.
- El entrenador se registra en el teléfono del jugador (Pokégear).
- Después de cierto tiempo o número de pasos, el entrenador llama al jugador para pedirle una revancha.
- El jugador vuelve al mapa del entrenador y lucha contra él con un equipo mejorado.
- El proceso se repite con versiones progresivamente más fuertes del entrenador.
Registrar un entrenador para revanchas
Para que un entrenador pueda ofrecer revanchas, primero debe registrarse en el teléfono del jugador. Esto se hace en el evento del entrenador, después de la batalla inicial.
Funciones principales
| Función | Descripción |
|---|---|
pbRegisterForRematch(event_id) |
Registra al entrenador del evento con el ID indicado para revanchas y lo agrega al teléfono. |
pbTrainerIsRegistered?(trainer_type, trainer_name) |
Devuelve true si el entrenador ya está registrado en el teléfono. |
pbPhoneRegisterBattle(message, event_id, trainer_type, trainer_name, max_battles) |
Registra al entrenador y define cuántas versiones de revancha tiene. |
Ejemplo: Evento de entrenador con registro
# Página 1 del evento (antes de la batalla):
# Condición: Self Switch A está OFF
# Script:
pbTrainerBattle(:YOUNGSTER, "Miguel", 0, "¡No puedo creer que perdí!")
# Después de la batalla, registrar para revancha
pbRegisterForRematch(@event_id)
pbSetSelfSwitch("A", true)
# Página 2 del evento (después de la batalla, esperando revancha):
# Condición: Self Switch A está ON
# Script (si el entrenador quiere revancha):
if pbPhoneRematchReady?(@event_id)
pbMessage("¡Oye, he estado entrenando! ¡Vamos a luchar de nuevo!")
pbPhoneTrainerBattle(@event_id)
else
pbMessage("Estoy entrenando duro para nuestra próxima batalla.")
end
Versiones progresivas de entrenadores
Cada entrenador puede tener múltiples versiones con equipos progresivamente más fuertes. Las versiones se
definen en el archivo PBS trainers.txt con diferentes números de versión:
# trainers.txt
# Versión 0 (primera batalla)
[YOUNGSTER,Miguel,0]
Pokemon = RATTATA,10
# Versión 1 (primera revancha)
[YOUNGSTER,Miguel,1]
Pokemon = RATICATE,25
Pokemon = PIDGEOTTO,24
# Versión 2 (segunda revancha)
[YOUNGSTER,Miguel,2]
Pokemon = RATICATE,35
Pokemon = PIDGEOT,34
Pokemon = FEAROW,33
# Versión 3 (tercera revancha)
[YOUNGSTER,Miguel,3]
Pokemon = RATICATE,45
Pokemon = PIDGEOT,44
Pokemon = FEAROW,43
Pokemon = NOCTOWL,42
El sistema avanza automáticamente a la siguiente versión cada vez que el jugador gana una revancha, hasta llegar a la última versión disponible. Si no hay más versiones, se usa la última definida.
Cuántas versiones crear
- Mínimo: 2 versiones (batalla inicial + 1 revancha).
- Recomendado: 3-4 versiones para dar sensación de progresión.
- Máximo: No hay límite, pero más de 5 puede ser excesivo.
Sistema de teléfono
Las revanchas están integradas con el sistema de teléfono del Pokégear. Los entrenadores registrados pueden llamar al jugador para:
- Pedir una revancha: El entrenador indica que quiere volver a luchar.
- Dar información: Comentarios sobre Pokémon, rutas, etc.
- Avisar de enjambres: Notificar sobre apariciones especiales de Pokémon.
Configurar llamadas de revancha
# En el archivo phone.txt o en Settings:
# Definir los mensajes del entrenador para las llamadas
# El sistema usa estas variables para las llamadas:
# - Mensajes genéricos de batalla
# - Mensajes de solicitud de revancha
# - Mensajes informativos
Forzar una llamada de revancha
# Forzar que un entrenador específico esté listo para revancha
pbSetReadyForRematch(@event_id)
# Verificar si un entrenador está listo para revancha
if pbPhoneRematchReady?(@event_id)
pbMessage("¡Este entrenador quiere la revancha!")
end
Mecánicas de cooldown
Las revanchas no están disponibles inmediatamente después de ganar una batalla. Hay un sistema de enfriamiento (cooldown) que controla cuándo un entrenador está listo para otra revancha:
Factores que afectan el cooldown
| Factor | Descripción |
|---|---|
| Pasos caminados | El jugador debe caminar un número mínimo de pasos entre revanchas. |
| Batallas realizadas | El jugador debe completar cierto número de combates. |
| Tiempo transcurrido | Puede haber un tiempo mínimo entre llamadas del mismo entrenador. |
Configuración del cooldown
# En Settings
REMATCH_POKEMON_BATTLES = 4 # Número de batallas entre revanchas
REMATCH_POKEMON_STEPS = 250 # Número de pasos entre revanchas
Cuando se cumplen las condiciones de cooldown, el entrenador puede llamar al jugador (si tiene teléfono registrado) o estar listo para luchar si el jugador vuelve a hablarle.
Configurar entrenadores revanchables
Guía paso a paso para hacer que un entrenador ofrezca revanchas:
Paso 1: Definir las versiones en trainers.txt
# Versión inicial (0)
[ACE_TRAINER,Laura,0]
Pokemon = ARCANINE,32
Moves = FLAMETHROWER,EXTREME_SPEED,CRUNCH,WILL_O_WISP
Pokemon = STARMIE,32
Moves = SURF,PSYCHIC,THUNDERBOLT,ICE_BEAM
# Primera revancha (1)
[ACE_TRAINER,Laura,1]
Pokemon = ARCANINE,42
Moves = FLARE_BLITZ,EXTREME_SPEED,CRUNCH,WILD_CHARGE
Item = LIFE_ORB
Pokemon = STARMIE,42
Moves = HYDRO_PUMP,PSYCHIC,THUNDERBOLT,ICE_BEAM
Item = CHOICE_SPECS
Pokemon = ROSERADE,41
Moves = SLUDGE_BOMB,GIGA_DRAIN,SHADOW_BALL,SLEEP_POWDER
# Segunda revancha (2)
[ACE_TRAINER,Laura,2]
Pokemon = ARCANINE,55
Moves = FLARE_BLITZ,EXTREME_SPEED,CLOSE_COMBAT,WILD_CHARGE
Item = LIFE_ORB
Pokemon = STARMIE,55
Moves = HYDRO_PUMP,PSYCHIC,THUNDERBOLT,ICE_BEAM
Item = CHOICE_SPECS
Pokemon = ROSERADE,54
Moves = SLUDGE_BOMB,ENERGY_BALL,SHADOW_BALL,SLEEP_POWDER
Item = BLACK_SLUDGE
Pokemon = LUCARIO,55
Moves = CLOSE_COMBAT,METEOR_MASH,EXTREME_SPEED,SWORDS_DANCE
Item = FOCUS_SASH
Paso 2: Crear el evento en RPG Maker
El evento del entrenador necesita al menos dos páginas:
Página 1 — Batalla inicial
# Condición: Self Switch A está OFF
# Trigger: El jugador interactúa con el evento
pbTrainerBattle(:ACE_TRAINER, "Laura", 0, "¡Impresionante! Eres muy fuerte.")
pbMessage("Laura: Toma mi número. Me encantaría luchar contigo otra vez.")
pbRegisterForRematch(@event_id)
pbSetSelfSwitch("A", true)
Página 2 — Esperando revancha / Revancha disponible
# Condición: Self Switch A está ON
# Trigger: El jugador interactúa con el evento
if pbPhoneRematchReady?(@event_id)
pbMessage("Laura: ¡Al fin nos vemos! ¡He mejorado mucho!")
pbPhoneTrainerBattle(@event_id)
else
pbMessage("Laura: Sigo entrenando. Espera mi llamada.")
end
Revanchas sin teléfono
Si prefieres no usar el sistema de teléfono, puedes implementar un sistema de revanchas más simple usando variables y versiones de entrenador directamente:
# Sistema de revancha simple sin teléfono
# Usa una variable del juego para rastrear la versión
version = $game_variables[50] # Variable que almacena la versión actual
if version == 0
# Primera batalla
if pbTrainerBattle(:HIKER, "Roberto", 0)
$game_variables[50] = 1
end
elsif version == 1 && pbGet(20) > 4 # Var 20 = contador de medallas
# Primera revancha (disponible después de 4 medallas)
pbMessage("Roberto: ¡He entrenado mucho desde la última vez!")
if pbTrainerBattle(:HIKER, "Roberto", 1)
$game_variables[50] = 2
end
elsif version == 2 && pbGet(20) > 7 # Después de 7 medallas
# Segunda revancha
pbMessage("Roberto: ¡Esta vez no perderé!")
if pbTrainerBattle(:HIKER, "Roberto", 2)
$game_variables[50] = 3
end
else
pbMessage("Roberto: Buen combate la última vez.")
end
Revanchas de líderes de gimnasio
Los líderes de gimnasio también pueden ofrecer revanchas. Es común que estén disponibles en post-game con equipos mejorados:
# En el gimnasio, después de la Liga Pokémon
# Condición: El jugador ya es campeón (Game Switch para post-game)
pbMessage("Líder Brock: Has llegado muy lejos. ¿Quieres luchar de nuevo?")
choices = ["Sí", "No"]
if pbMessage("¿Aceptas el desafío?", choices, 2) == 0
pbTrainerBattle(:LEADER_Brock, "Brock", 1) # Versión 1 = equipo post-game
end
Consejos y buenas prácticas
- Aumenta gradualmente la dificultad de cada versión: más Pokémon, niveles más altos, mejores objetos y movimientos.
- Haz que las revanchas den más dinero y experiencia que la batalla original para incentivar al jugador.
- No hagas que todos los entrenadores del juego tengan revanchas — selecciona los más memorables o importantes.
- Proporciona al jugador una forma de saber qué entrenadores están listos para revancha (teléfono, marcador visual en el mapa, etc.).
- Las versiones de revancha son una excelente oportunidad para que los entrenadores usen estrategias más sofisticadas (objetos held, movimientos de cobertura, etc.).
- Considera vincular la disponibilidad de revanchas al progreso de la historia (número de medallas, post-game, etc.).
- Utiliza el menú Debug para probar las diferentes versiones de los entrenadores durante el desarrollo.