Battle Frontier

El Battle Frontier es un conjunto de instalaciones de combate donde el jugador puede participar en desafíos especiales para ganar Puntos de Batalla (BP). Pokémon Essentials incluye de forma nativa la Torre Batalla (Battle Tower) y proporciona un marco para crear otras instalaciones como la Fábrica de Batalla.

Torre Batalla (Battle Tower)

La Torre Batalla es la instalación principal del Battle Frontier. El jugador elige un equipo reducido y se enfrenta a una serie de entrenadores generados aleatoriamente en rondas consecutivas. No se puede usar objetos de la mochila durante los combates.

Iniciar un desafío

Para iniciar un desafío de la Torre Batalla desde un evento, usa la función pbBattleTower:

# Iniciar la Torre Batalla
pbBattleTower

Esta función muestra el menú de la Torre Batalla donde el jugador puede elegir el tipo de desafío, seleccionar sus Pokémon y comenzar.

Flujo del desafío

  1. El jugador elige el modo de batalla (individual o doble).
  2. El jugador selecciona los Pokémon de su equipo que va a usar (normalmente 3 para individual, 4 para doble).
  3. Los Pokémon se ajustan al nivel del desafío (nivel 50 o abierto).
  4. El jugador se enfrenta a 7 entrenadores por ronda.
  5. Entre combates, los Pokémon se curan completamente.
  6. Tras completar la ronda, el jugador gana BP y puede continuar o retirarse.

Tipos de desafío

La Torre Batalla ofrece varios modos de juego:

Modo Pokémon del jugador Combate Descripción
Individual Lv. 50 3 1 vs 1 Todos los Pokémon se ajustan a nivel 50
Individual Abierto 3 1 vs 1 Los Pokémon mantienen su nivel real
Doble Lv. 50 4 2 vs 2 Combates dobles, todos ajustados a nivel 50
Doble Abierto 4 2 vs 2 Combates dobles con nivel real

Niveles de cap

En los desafíos de nivel 50, todos los Pokémon (tanto del jugador como de los rivales) se ajustan temporalmente al nivel 50. Si un Pokémon tiene nivel inferior a 50, se sube a 50. Si tiene nivel superior, se baja a 50. Los stats se recalculan en consecuencia.

Restricciones de Pokémon

No todos los Pokémon pueden participar en la Torre Batalla. Las restricciones por defecto son:

La lista de Pokémon prohibidos se puede configurar en las constantes del Battle Frontier:

# Lista de Pokémon prohibidos en la Torre Batalla
BATTLE_TOWER_BANNED_POKEMON = [
  :MEWTWO, :MEW, :LUGIA, :HOOH, :CELEBI,
  :KYOGRE, :GROUDON, :RAYQUAZA, :JIRACHI, :DEOXYS,
  :DIALGA, :PALKIA, :GIRATINA, :PHIONE, :MANAPHY,
  :DARKRAI, :SHAYMIN, :ARCEUS
]

Entrenadores de la Torre

Los entrenadores rivales se generan a partir del archivo PBS battle_tower_trainers.txt (o bttrainers.txt en versiones anteriores). Este archivo define los equipos posibles para los entrenadores.

Formato del archivo

# battle_tower_trainers.txt
#------Pokemon 1Pokemon 2Pokemon 3------
POKEFAN,Alejandro
STARMIE,THUNDERBOLT,ICE_BEAM,PSYCHIC,SURF,LEFTOVERS
SALAMENCE,DRAGON_DANCE,EARTHQUAKE,ROCK_SLIDE,AERIAL_ACE,LUM_BERRY
METAGROSS,METEOR_MASH,EARTHQUAKE,BULLET_PUNCH,ZEN_HEADBUTT,AIR_BALLOON

Cada entrenador tiene definido su tipo, nombre y los Pokémon con sus movimientos y objetos. El juego elige entrenadores apropiados según la racha de victorias actual del jugador.

Dificultad progresiva

Los entrenadores se vuelven más difíciles a medida que la racha de victorias aumenta. El juego selecciona entrenadores de secciones más avanzadas del archivo según la racha actual:

Puntos de Batalla (BP)

Los Puntos de Batalla son la moneda que se gana al completar rondas en las instalaciones del Battle Frontier.

Ganar BP

Ronda completada BP ganados
Rondas 1-6 (primera ronda)3 BP
Ronda 7 (jefe)5 BP
Rondas 8-134 BP
Ronda 14 (jefe)7 BP
Rondas 15+5 BP
Ronda 21 (super jefe)10 BP

Gastar BP

Los BP se pueden gastar en tiendas especiales del Battle Frontier para comprar objetos valiosos:

# Verificar BP del jugador
pbMessage("Tienes #{$player.battle_points} BP.")

# Dar BP al jugador
$player.battle_points += 10

# Quitar BP al jugador (para compras)
if $player.battle_points >= 48
  $player.battle_points -= 48
  pbReceiveItem(:CHOICEBAND)
end

Objetos típicos con BP

Objeto Coste (BP)
Proteína, Hierro, Calcio, etc.1 BP
Cinta Elegida (Choice Band)48 BP
Gafas Elegidas (Choice Specs)48 BP
Pañuelo Elegido (Choice Scarf)48 BP
Chaleco Asalto (Assault Vest)48 BP
Restos (Leftovers)48 BP
Orbe Vida (Life Orb)48 BP
Banda Focus (Focus Sash)48 BP

Rachas de victorias y recompensas

La racha de victorias se acumula mientras el jugador siga ganando sin perder. Algunas rachas desbloquean recompensas especiales:

# Verificar la racha actual
streak = $player.battle_tower_win_streak
pbMessage("Tu racha actual es de #{streak} victorias.")

# Verificar la mejor racha
best = $player.battle_tower_best_streak
pbMessage("Tu mejor racha es de #{best} victorias.")

Fábrica de Batalla (Battle Factory)

La Fábrica de Batalla es una instalación donde el jugador no usa sus propios Pokémon, sino que elige de un grupo de Pokémon aleatorios proporcionados por la instalación. Después de cada combate, puede intercambiar uno de sus Pokémon por uno del equipo rival.

Nota: La Fábrica de Batalla no está completamente implementada en Pokémon Essentials por defecto. Requiere scripts adicionales o plugins para funcionar. Sin embargo, el marco básico existe y puede ser extendido.

Concepto básico

  1. Se presenta al jugador una selección de 6 Pokémon aleatorios.
  2. El jugador elige 3 (o 4 en dobles) de esos Pokémon para usar.
  3. Tras ganar un combate, el jugador puede intercambiar uno de sus Pokémon por uno del equipo rival.
  4. Se repite hasta completar la ronda de 7 combates.

Configurar una instalación

Para configurar tu propio Battle Frontier en el juego, necesitas:

1. Crear los mapas

Diseña el mapa del Battle Frontier con los edificios de cada instalación. Puedes crear un mapa exterior con las instalaciones y mapas interiores para cada una.

2. Evento de entrada

# Evento del NPC de recepción de la Torre Batalla
pbMessage("¡Bienvenido a la Torre Batalla!")
pbMessage("Aquí podrás poner a prueba tus habilidades como entrenador.")
choices = ["Desafío Individual", "Desafío Doble", "Ver registros", "Salir"]
choice = pbMessage("¿Qué deseas hacer?", choices, choices.length)
case choice
when 0   # Individual
  pbBattleTower
when 1   # Doble
  setBattleRule("double")
  pbBattleTower
when 2   # Ver registros
  streak = $player.battle_tower_win_streak
  best = $player.battle_tower_best_streak
  pbMessage("Racha actual: #{streak} victorias.")
  pbMessage("Mejor racha: #{best} victorias.")
end

3. Tienda de BP

# Evento del NPC vendedor de BP
pbMessage("¿Quieres intercambiar tus BP por objetos?")
pbMessage("Tienes #{$player.battle_points} BP actualmente.")

items = [
  ["Proteína",           :PROTEIN,     1],
  ["Hierro",             :IRON,        1],
  ["Cinta Elegida",      :CHOICEBAND,  48],
  ["Gafas Elegidas",     :CHOICESPECS, 48],
  ["Pañuelo Elegido",    :CHOICESCARF, 48],
  ["Orbe Vida",          :LIFEORB,     48],
  ["Banda Focus",        :FOCUSSASH,   48]
]

names = items.map { |i| "#{i[0]} (#{i[2]} BP)" }
names.push("Cancelar")

choice = pbMessage("¿Qué objeto quieres?", names, names.length)
if choice < items.length
  item = items[choice]
  if $player.battle_points >= item[2]
    $player.battle_points -= item[2]
    pbReceiveItem(item[1])
  else
    pbMessage("No tienes suficientes BP.")
  end
end

Archivos PBS relevantes

Archivo Contenido
battle_tower_trainers.txtDefine los entrenadores y sus equipos para la Torre Batalla
battle_tower_pokemon.txtDefine los Pokémon que pueden aparecer con sus sets de movimientos

Consejos y buenas prácticas