Pues es lo que ya dije, no creo que hayan muchas más palabras para expresar la idea. Es reimplementar la habilidad de Castform, Forecast, haciendo que actue de exactamente la misma forma que las otras habilidades que cambian la forma de un Pokémon.
Dentro del battle_engine, el aspecto de cambio de forma que tienen habilidades tales como Zen Mode, Shields Down, o Schooling, utiliza 2 funciones clave;
ShouldChangeFormHpBased
y
UndoFormChange
, ambas ubicadas en
src/battle_util.c
.
La primera se encarga de hacer el cambio de forma cuando hay una habilidad que la llame dentro de la instrucción
switch
presente en la función
AbilityBattleEffects
, y la segunda se encarga de revertir el cambio de forma una vez finalizada la batalla, antes de volver al overworld como tal.
El asunto es añadir codigo en estas funciones, siguiendo el ejemplo del codigo que ya está escrito ahi, para que el juego reconozca a Castform como un Pokémon que puede cambiar de forma, y como cambiarle la forma a Castform requiere leer el clima, pues tocaria añadir un parametro adicional al array dentro de
ShouldChangeFormHpBased
para comprobar el clima, y así cambiar la forma del Pokémon consecuentemente.
Tengan, lo implementé todo un poco rapidito y creé un diff para que puedan revisarlo ustedes mismos.
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
pastebin.com