New evolution methods (Gen 6, 7, 8) and Ev. Method Battle_Deaths
Here's the list of evolution methods missing from gen 6 to gen 8:
Gen 6 1- Vivillon: There's no way to choose the Vivillon evolution on base games, as it depends of the geographic zone set on the 3DS. Don't know if this can be reproduced somehow.
Gen 7 All of them are working (yay)
Gen 8 Toxel to Toxtricity: :nature method needed. Toxel evolves to Toxtricity Amped Form if Adamant, Brave, Docile, Hardy, Hasty, Impish, Jolly, Lax, Naive, Naughty, Rash, Quirky or Sassy Nature. Rest of them make it evolve to Toxtricity Low Key Form.
Farfetch'd to Sirfetch'd: Something like :crits method needed. Galarian Farfetch'd evolves to Sirfetch'd after getting three critical hits in the same battle.
Yamask to Runerigus: Have 49+ damage taken by Yamask in one battle and walk under stone sculpture in Dusty Bowl/Wild Area Don't know exactly how to make this one, but I think that second condition (the one of walking under stone sculpture) could be done with a :switch.
Milcery to Alcremie: Sweet Item + Spin. As there are 63 different Alcremie forms, I just added one: Vanilla Cream. It would need something as :spin. On Sword and Shield, Milcery evolves to Alcremie if it is holding the sweet item and player spin over themselves. Here it will be to press right, down, left, up, I guess.
Battle_Death Method Description
First of all, this is mainly a new evolution method for my personal project.
This evo method will be triggered when a Pokémon faints an especific amount of times on battle. What I've done is this, after creating a new attr_accessor :battle_deaths and calling it on primary_data_initialize:
On PFM::Pokemon:
module PFM
class Pokemon
def battle_deaths_data_initialize(battle_deaths)
battle_deaths = 0
@battle_deaths = battle_deaths
end
def battle_deaths_up
@battle_deaths += 1 if @hp <= 0
end
def elv_battledeaths
battle_deaths == 20
end
end
end
and, on Scene_Battle, changed the phase4 to check the battle_deaths_up (Might be a better place to do so, tho)
def phase4_message_remove_hp(pokemon, hp)
pk_hp = pokemon.hp
max_time = (hp < 60 || pk_hp <= hp) ? 30 : 60
1.step(max_time) do |i|
pokemon.hp = pk_hp - (hp * i / max_time)
status_bar_update(pokemon)
break if pokemon.hp <= 0
Graphics.update
update_animated_sprites
end
phase4_animation_KO(pokemon) if (pk_hp - hp) <= 0
pokemon.battle_deaths_up if (pk_hp - hp) <= 0
end
In the end, evolution method works and gets triggered if the pokémon levels up. So, after dying 20 times in battle and using a rare candy on the Pokémon, it will evolve. What I'd love is to avoid this level up triggering, being able to trigger the evolution after dying, without needing the level up.