Fixed not being able to detect a Pokémon being a Mega Evolution, fixed inadequate checking if a Mega Stone is unlosable

This commit is contained in:
Maruno17
2021-05-03 18:58:02 +01:00
parent 474281712b
commit c5cc1eadac
3 changed files with 13 additions and 6 deletions

View File

@@ -421,7 +421,15 @@ class PokeBattle_Battler
return true if GameData::Item.get(check_item).is_mail?
return false if @effects[PBEffects::Transform]
# Items that change a Pokémon's form
return true if @pokemon && @pokemon.getMegaForm(true) > 0 # Mega Stone
if mega? # Check if item was needed for this Mega Evolution
return true if @pokemon.species_data.mega_stone == check_item
else # Check if item could cause a Mega Evolution
GameData::Species.each do |data|
next if data.species != @species || data.unmega_form != @form
return true if data.mega_stone == check_item
end
end
# Other unlosable items
return GameData::Item.get(check_item).unlosable?(@species, self.ability)
end

View File

@@ -147,7 +147,7 @@ class PokeBattle_Battle
@scene.pbRefreshOne(idxBattler)
pbCommonAnimation("MegaEvolution2",battler)
megaName = battler.pokemon.megaName
megaName = _INTL("Mega {1}", battler.pokemon.speciesName) nil_or_empty?(megaName)
megaName = _INTL("Mega {1}", battler.pokemon.speciesName) if nil_or_empty?(megaName)
pbDisplay(_INTL("{1} has Mega Evolved into {2}!",battler.pbThis,megaName))
side = battler.idxOwnSide
owner = pbGetOwnerIndexFromBattlerIndex(idxBattler)

View File

@@ -3,14 +3,14 @@ class Pokemon
# Mega Evolution
# NOTE: These are treated as form changes in Essentials.
#=============================================================================
def getMegaForm(checkItemOnly = false)
def getMegaForm
ret = 0
GameData::Species.each do |data|
next if data.species != @species || data.unmega_form != form_simple
if data.mega_stone && hasItem?(data.mega_stone)
ret = data.form
break
elsif !checkItemOnly && data.mega_move && hasMove?(data.mega_move)
elsif data.mega_move && hasMove?(data.mega_move)
ret = data.form
break
end
@@ -28,8 +28,7 @@ class Pokemon
end
def mega?
megaForm = self.getMegaForm
return megaForm > 0 && megaForm == form_simple
return (species_data.mega_stone || species_data.mega_move) ? true : false
end
def makeMega