Refactored checking whether a Pokémon/species is single gendered, tweaked console message.

This commit is contained in:
Maruno17
2021-08-31 00:17:30 +01:00
parent 0405497868
commit 3c88c897f0
7 changed files with 38 additions and 24 deletions

View File

@@ -5,22 +5,19 @@ module Console
def self.setup_console
return unless $DEBUG
echoln "GPU Cache Max: #{Bitmap.max_size}"
echoln "--------------------------------"
echoln "-------------------------------------------------------------------------------"
echoln "#{System.game_title} Output Window"
echoln "--------------------------------"
echoln "If you are seeing this window, you are running"
echoln "#{System.game_title} in Debug Mode. This means"
echoln "that you're either playing a Debug Version, or"
echoln "you are playing from within RPG Maker XP."
echoln "-------------------------------------------------------------------------------"
echoln "If you can see this window, you are running the game in Debug Mode. This means"
echoln "that you're either playing a debug version of the game, or you're playing from"
echoln "within RPG Maker XP."
echoln ""
echoln "Closing this window will close the game. If"
echoln "you want to get rid of this window, run the"
echoln "program from the Shell, or download a Release"
echoln "version."
echoln "Closing this window will close the game. If you want to get rid of this window,"
echoln "run the program from the Shell, or download a release version of the game."
echoln ""
echoln "--------------------------------"
echoln "-------------------------------------------------------------------------------"
echoln "Debug Output:"
echoln "--------------------------------"
echoln "-------------------------------------------------------------------------------"
echoln ""
end

View File

@@ -26,6 +26,12 @@ module GameData
def name
return _INTL(@real_name)
end
# @return [Boolean] whether a Pokémon with this gender ratio can only ever
# be a single gender
def single_gendered?
return @female_chance.nil?
end
end
end

View File

@@ -216,6 +216,10 @@ module GameData
return pbGetMessageFromHash(MessageTypes::Entries, @real_pokedex_entry)
end
def single_gendered?
return GameData::GenderRatio.get(@gender_ratio).single_gendered?
end
def apply_metrics_to_sprite(sprite, index, shadow = false)
if shadow
if (index & 1) == 1 # Foe Pokémon

View File

@@ -331,11 +331,12 @@ class Pokemon
# @return [0, 1, 2] this Pokémon's gender (0 = male, 1 = female, 2 = genderless)
def gender
if !@gender
gender_ratio = species_data.gender_ratio
case gender_ratio
when :AlwaysMale then @gender = 0
when :AlwaysFemale then @gender = 1
when :Genderless then @gender = 2
if species_data.single_gendered?
case species_data.gender_ratio
when :AlwaysMale then @gender = 0
when :AlwaysFemale then @gender = 1
else @gender = 2
end
else
female_chance = GameData::GenderRatio.get(gender_ratio).female_chance
@gender = ((@personalID & 0xFF) < female_chance) ? 1 : 0
@@ -369,8 +370,7 @@ class Pokemon
# @return [Boolean] whether this Pokémon species is restricted to only ever being one
# gender (or genderless)
def singleGendered?
gender_ratio = species_data.gender_ratio
return [:AlwaysMale, :AlwaysFemale, :Genderless].include?(gender_ratio)
return species_data.single_gendered?
end
#=============================================================================
@@ -1109,8 +1109,8 @@ class Pokemon
# @param species [Symbol, String, GameData::Species] Pokémon species
# @param level [Integer] Pokémon level
# @param owner [Owner, Player, NPCTrainer] Pokémon owner (the player by default)
# @param withMoves [TrueClass, FalseClass] whether the Pokémon should have moves
# @param recheck_form [TrueClass, FalseClass] whether to auto-check the form
# @param withMoves [Boolean] whether the Pokémon should have moves
# @param recheck_form [Boolean] whether to auto-check the form
def initialize(species, level, owner = $Trainer, withMoves = true, recheck_form = true)
species_data = GameData::Species.get(species)
@species = species_data.species

View File

@@ -151,8 +151,7 @@ class PokemonPokedexInfo_Scene
next if sp.form != 0 && (!sp.real_form_name || sp.real_form_name.empty?)
next if sp.pokedex_form != sp.form
multiple_forms = true if sp.form > 0
case sp.gender_ratio
when :AlwaysMale, :AlwaysFemale, :Genderless
if sp.single_gendered?
real_gender = (sp.gender_ratio == :AlwaysFemale) ? 1 : 0
next if !$Trainer.pokedex.seen_form?(@species, real_gender, sp.form) && !Settings::DEX_SHOWS_ALL_FORMS
real_gender = 2 if sp.gender_ratio == :Genderless

View File

@@ -619,7 +619,7 @@ DebugMenuCommands.register("fillboxes", {
f = species_data.form
# Record each form of each species as seen and owned
if f == 0
if [:AlwaysMale, :AlwaysFemale, :Genderless].include?(species_data.gender_ratio)
if species_data.single_gendered?
g = (species_data.gender_ratio == :AlwaysFemale) ? 1 : 0
$Trainer.pokedex.register(sp, g, f, false)
else # Both male and female

View File

@@ -69,6 +69,14 @@ Maybe have multiple sets of Pickup items for multiple Gens. Probably not. Gens
Add a newer type of berry tree mechanics? Have a separate setting that prevents
deterioration?
The happiness evolution threshold value has lowered from 220 to 160. This is
because, in Gen 8, you have to use Pokémon Camp or berries to raise a Pokémon's
happiness above 179, which in turn is because affection effects have been added
(chance of resisting a KO, chance of shaking off a status problem, etc.) that
apply above 179 happiness. Pokémon Camp will not be added. Affection effects and
the 179 soft cap/160 evolution threshold may be added (the latter two should be
treated as related rather than separate settings).
#===============================================================================
# Implemented
#===============================================================================