Respuesta: (pokeruby) Implementando habilidades nuevas
Flower Gift (Gen. 4)
Tras definir la habilidad y opcionalmente darle un nombre y una descripción, añadimos el siguiente check a la lista ordenada de distintos calculos en la función CalculateBaseDamage del archivo src\battle\calculate_base_damage.c
Basicamente, debe quedar algo tal que asi.
Es muy sencilo de leer.
Si el pokémon que se está defendiendo tiene Flower Gift como habilidad y el clima es soleado, aumenta su Defensa Especial x1.5
Si el pokémon que está atacando tiene Flower Gift como habilidad y el clima es soleado, aumenta su Ataque x1.5
https://streamable.com/vjvjo
Nota: Las ridiculas cantidades de daño mostradas en este video son efecto de testear la habilidad con distintos valores.
EDITO:
En mi caso, yo dormí a Seedot usando Spore con mi Torchic que tiene Blaze como habilidad, y al final del turno Seedot perdió vida supuestamente debido a causa de la habilidad Blaze, cosa que no deberia pasar.
https://streamable.com/mvwq7
Yo seguí tus imagenes al pie de la letra, si de algo sirve.
https://imgur.com/a/YJRc7ZE
Basicamente, Bad Dreams está actuando pese a que ningun pokémon tiene la habilidad en batalla.
Flower Gift (Gen. 4)
Tras definir la habilidad y opcionalmente darle un nombre y una descripción, añadimos el siguiente check a la lista ordenada de distintos calculos en la función CalculateBaseDamage del archivo src\battle\calculate_base_damage.c
Código:
if (defender->ability == ABILITY_FLOWER_GIFT && (gBattleWeather & WEATHER_SUN_ANY))
spDefense = (150 * spDefense) / 100;
if (attacker->ability == ABILITY_FLOWER_GIFT && (gBattleWeather & WEATHER_SUN_ANY))
attack = (150 * attack) / 100;
Es muy sencilo de leer.
Si el pokémon que se está defendiendo tiene Flower Gift como habilidad y el clima es soleado, aumenta su Defensa Especial x1.5
Si el pokémon que está atacando tiene Flower Gift como habilidad y el clima es soleado, aumenta su Ataque x1.5
https://streamable.com/vjvjo
Nota: Las ridiculas cantidades de daño mostradas en este video son efecto de testear la habilidad con distintos valores.
EDITO:
Puees.. no está yendo muy bien que digamos. Probé la habilidad en una rama totalmente limpia, al dia con el repositorio de Pokeruby de Pret, y parece estar actuando pese a que ninguno de los pokémon en batalla tenga Bad Dreams.¡Buenas!
Viendo que os estaba costando tanto el tema de Bad Dreams me he puesto un ratito a hacerlo todo desde cero y he conseguido que funcione tanto en individuales como en dobles, aquí dos GIF's que lo demuestran (en los siguientes turnos funciona también correctamente)
Bien, una vez demostrado que funciona, paso a dejar el BattleScript (que es muy importante) y la función.
En "data/battle_scripts_1.s" añadiremos
Y en "src/battle/battle_util.c" añadiremos al principio del archivoCódigo:BattleScript_BadDreamsActivates:: @ 81D8C43 healthbarupdate USER datahpupdate USER printstring BATTLE_TEXT_HurtOther waitmessage 64 end3
Entre los demás de su tipoCódigo:extern u8 BattleScript_BadDreamsActivates[];
Y luego, muy importante donde colocamos esto, si no, no funcionará.
Debe estar dentro del "case ABILITYEFFECT_ENDTURN:", esta función
Código:case ABILITY_BAD_DREAMS: if ((gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) && gBattleMons[gBankAttacker].hp != 0) { gLastUsedAbility = ABILITY_BAD_DREAMS; BattleScriptPushCursorAndCallback(BattleScript_BadDreamsActivates); gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 8; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; effect++; } break;
Sabéis que antes de todo esto hay que definir la habilidad
Definir su nombre in-game
Y su descripción
¡Espero que os sirva para futuras habilidades!
En mi caso, yo dormí a Seedot usando Spore con mi Torchic que tiene Blaze como habilidad, y al final del turno Seedot perdió vida supuestamente debido a causa de la habilidad Blaze, cosa que no deberia pasar.
https://streamable.com/mvwq7
Yo seguí tus imagenes al pie de la letra, si de algo sirve.
https://imgur.com/a/YJRc7ZE
Basicamente, Bad Dreams está actuando pese a que ningun pokémon tiene la habilidad en batalla.
Última edición: