Concurso de Insectos

El Concurso de Insectos (Bug-Catching Contest) es un evento especial donde el jugador compite contra NPCs para capturar el mejor Pokémon tipo Bicho. Se basa en el evento clásico del Parque Nacional de los juegos de Pokémon Oro/Plata/Cristal.

Mecánicas del concurso

Las reglas del Concurso de Insectos son las siguientes:

Estado del concurso

El estado del Bug-Catching Contest se gestiona con pbBugContestState:

# Comprobar si el concurso está en progreso
if pbBugContestState.inProgress?
  pbMessage("El concurso está en marcha.")
  pbMessage("Sport Balls restantes: #{pbBugContestState.ballcount}")
end

# Obtener el Pokémon capturado actualmente
pkmn = pbBugContestState.lastPokemon
if pkmn
  pbMessage("Has capturado un #{pkmn.name}.")
end

Reglas del concurso

Parámetro Valor Descripción
Pokémon del equipo1El jugador elige un solo Pokémon para usar
Sport Balls20Bolas especiales proporcionadas para el concurso
Pokémon retenidos1Solo se puede guardar un Pokémon a la vez
Tiempo/PasosConfigurableLímite para explorar el área del concurso

NPCs participantes y puntuación

Los NPCs participantes capturan Pokémon "virtuales" cuyas puntuaciones se generan al finalizar el concurso. La puntuación de cada Pokémon se basa en:

Los NPCs se definen en los scripts del concurso y tienen nombres y puntuaciones predeterminadas que se generan aleatoriamente dentro de un rango.

Premios y clasificación

Al finalizar el concurso, se muestra la clasificación y se otorgan premios. Los premios se configuran por posición:

# Configuración típica de premios en el evento del concurso
# Primer puesto
if posicion == 1
  pbMessage("¡Felicidades! ¡Has ganado el primer puesto!")
  pbReceiveItem(:SUNSTONE)
# Segundo puesto  
elsif posicion == 2
  pbMessage("¡Buen trabajo! Has quedado en segundo lugar.")
  pbReceiveItem(:EVERSTONE)
# Tercer puesto
elsif posicion == 3
  pbMessage("Has quedado en tercer lugar. ¡No está mal!")
  pbReceiveItem(:SITRUSBERRY)
# Participación
else
  pbMessage("Gracias por participar en el concurso.")
  pbReceiveItem(:ORANBERRY)
end

Además, el jugador se queda con el Pokémon que capturó durante el concurso, independientemente de su posición.

Ejecutar el evento del concurso

Para implementar el Concurso de Insectos en tu juego, necesitas configurar varios eventos:

1. Evento de inicio

# NPC que inicia el concurso
pbMessage("¡Bienvenido al Concurso de Insectos!")
if pbConfirmMessage("¿Quieres participar?")
  if $player.party_full? && $player.party_count > 1
    pbMessage("Elige un Pokémon para llevar contigo.")
  end
  pbBugContestStart
  # El resto del equipo se guarda temporalmente
  # Transferir al jugador al mapa del concurso
end

2. Evento de finalización

# Cuando se acaba el tiempo o el jugador decide terminar
pbBugContestEnd
# Se muestra la clasificación automáticamente
# Se devuelve el resto del equipo al jugador
# Se otorgan los premios

Tipo de encuentro BugContest

Los encuentros en el mapa del concurso usan un tipo especial de encuentro llamado BugContest en el archivo PBS/encounters.txt:

# En PBS/encounters.txt
[030]   # Número de mapa del Parque Nacional (durante concurso)
BugContest
  CATERPIE,7,18
  WEEDLE,7,18
  PARAS,10,18
  VENONAT,10,16
  SCYTHER,13,14
  PINSIR,13,14
  BUTTERFREE,12,15
  BEEDRILL,12,15
  KAKUNA,9,18
  METAPOD,9,18

Este tipo de encuentro solo se activa cuando el Concurso de Insectos está en progreso. Fuera del concurso, el mapa usará los encuentros normales (Land, Water, etc.) si están definidos.

Consejo: Puedes personalizar completamente los premios, los participantes NPC y la puntuación del concurso editando los scripts correspondientes. Revisa la sección 012_Overworld en los scripts de Essentials para encontrar las funciones del Bug Contest.