6.7.1 patch fixes

This commit is contained in:
chardub
2025-10-01 11:28:13 -04:00
parent 1271d7e8f0
commit e5406179bf
49 changed files with 72 additions and 44 deletions

View File

@@ -5,8 +5,8 @@
#==============================================================================#
module Settings
# The version of your game. It has to adhere to the MAJOR.MINOR.PATCH format.
GAME_VERSION = '6.7.0'
GAME_VERSION_NUMBER = "6.7.0"
GAME_VERSION = '6.7.1'
GAME_VERSION_NUMBER = GAME_VERSION #kinda used interchangibly #todo: refactor
LATEST_GAME_RELEASE = "6.6"
KANTO = GAME_ID == :IF_KANTO

View File

@@ -634,7 +634,7 @@ class PokemonBattlerSprite < RPG::Sprite
@_iconBitmap.scale_bitmap(scale)
self.bitmap = (@_iconBitmap) ? @_iconBitmap.bitmap : nil
add_hat_to_bitmap(self.bitmap,pkmn.hat,pkmn.hat_x,pkmn.hat_y,scale,self.mirror) if self.bitmap && pkmn.hat
add_hat_to_bitmap(self.bitmap,pkmn.hat,pkmn.hat_x,pkmn.hat_y,scale,pkmn.hat_mirrored_horizontal,pkmn.hat_mirrored_vertical) if self.bitmap && pkmn.hat
pbSetPosition
end

View File

@@ -244,7 +244,7 @@ class PokeBattle_Scene
trainer = pbAddSprite("trainer_#{idxTrainer + 1}", spriteX, spriteY, trainerFile, @viewport)
spriteOverrideBitmap = setTrainerSpriteOverrides(trainerType)
trainer.bitmap = spriteOverrideBitmap if spriteOverrideBitmap
trainer.bitmap = generate_front_trainer_sprite_bitmap_from_appearance(custom_appearance).bitmap if custom_appearance
trainer.bitmap = generate_front_trainer_sprite_bitmap_from_appearance(custom_appearance,true).bitmap if custom_appearance
return if !trainer.bitmap
# Alter position of sprite
trainer.z = 7 + idxTrainer
@@ -254,7 +254,7 @@ class PokeBattle_Scene
def setTrainerSpriteOverrides(trainer_type)
if TYPE_EXPERTS_APPEARANCES.keys.include?(trainer_type)
return generate_front_trainer_sprite_bitmap_from_appearance(TYPE_EXPERTS_APPEARANCES[trainer_type]).bitmap
return generate_front_trainer_sprite_bitmap_from_appearance(TYPE_EXPERTS_APPEARANCES[trainer_type],false).bitmap
end
end

View File

@@ -59,7 +59,7 @@ class PokemonSprite < SpriteWrapper
if pokemon.hat
new_bitmap = Bitmap.new(base_bitmap.width, base_bitmap.height)
new_bitmap.blt(0, 0, base_bitmap.bitmap, base_bitmap.bitmap.rect)
add_hat_to_bitmap(new_bitmap, pokemon.hat, pokemon.hat_x, pokemon.hat_y)
add_hat_to_bitmap(new_bitmap, pokemon.hat, pokemon.hat_x, pokemon.hat_y, 1, pokemon.hat_mirrored_horizontal,pokemon.hat_mirrored_vertical)
@_iconbitmap = SpriteWrapper.new
@_iconbitmap.bitmap = new_bitmap
else

View File

@@ -139,29 +139,30 @@ def getCurrentPokeball(allowEasterEgg=true)
return nil
end
def generate_front_trainer_sprite_bitmap_from_appearance(trainerAppearance)
def generate_front_trainer_sprite_bitmap_from_appearance(trainerAppearance,is_trainer=true)
echoln trainerAppearance.hat
return generate_front_trainer_sprite_bitmap(false,nil,trainerAppearance.clothes,trainerAppearance.hat,trainerAppearance.hat2,
trainerAppearance.hair,trainerAppearance.skin_color,
trainerAppearance.hair_color,trainerAppearance.hat_color,trainerAppearance.clothes_color,
trainerAppearance.hat2_color)
trainerAppearance.hat2_color,
is_trainer)
end
def generate_front_trainer_sprite_bitmap(allowEasterEgg=true, pokeball = nil,
clothes_id = nil, hat_id = nil, hat2_id=nil, hair_id = nil,
skin_tone_id = nil, hair_color = nil, hat_color = nil, clothes_color = nil,
hat2_color = nil)
hat2_color = nil, is_trainer=true)
clothes_id = $Trainer.clothes if !clothes_id
hat_id = $Trainer.hat if !hat_id
hat2_id = $Trainer.hat2 if !hat2_id
clothes_id = $Trainer.clothes if !clothes_id && is_trainer
hat_id = $Trainer.hat if !hat_id && is_trainer
hat2_id = $Trainer.hat2 if !hat2_id && is_trainer
hair_id = $Trainer.hair if !hair_id
skin_tone_id = $Trainer.skin_tone if !skin_tone_id
hair_color = $Trainer.hair_color if !hair_color
hat_color = $Trainer.hat_color if !hat_color
hat2_color = $Trainer.hat2_color if !hat2_color
clothes_color = $Trainer.clothes_color if !clothes_color
hair_id = $Trainer.hair if !hair_id && is_trainer
skin_tone_id = $Trainer.skin_tone if !skin_tone_id && is_trainer
hair_color = $Trainer.hair_color if !hair_color && is_trainer
hat_color = $Trainer.hat_color if !hat_color && is_trainer
hat2_color = $Trainer.hat2_color if !hat2_color && is_trainer
clothes_color = $Trainer.clothes_color if !clothes_color && is_trainer
hairFilename = getTrainerSpriteHairFilename(hair_id) #_INTL(Settings::PLAYER_GRAPHICS_FOLDER + Settings::PLAYER_HAIR_FOLDER + "/hair_trainer_{1}", $Trainer.hair)
outfitFilename = getTrainerSpriteOutfitFilename(clothes_id) #_INTL(Settings::PLAYER_GRAPHICS_FOLDER + Settings::PLAYER_CLOTHES_FOLDER + "/clothes_trainer_{1}", $Trainer.clothes)
@@ -375,13 +376,14 @@ def duplicateHatForFrames(hatBitmap, frame_count)
return duplicatedBitmap
end
def add_hat_to_bitmap(bitmap, hat_id, x_pos, y_pos, scale = 1, mirrored = false)
def add_hat_to_bitmap(bitmap, hat_id, x_pos, y_pos, scale = 1, mirrored_horizontal = false, mirrored_vertical = false)
base_scale = 1.5 #coz hat & poke sprites aren't the same size
adjusted_scale = base_scale * scale
hat_filename = getTrainerSpriteHatFilename(hat_id)
hatBitmapWrapper = AnimatedBitmap.new(hat_filename, 0) if pbResolveBitmap(hat_filename)
hatBitmapWrapper.scale_bitmap(adjusted_scale) if hatBitmapWrapper
hatBitmapWrapper.mirror if hatBitmapWrapper && mirrored
hatBitmapWrapper.mirror_horizontally if hatBitmapWrapper && mirrored_horizontal
hatBitmapWrapper.mirror_vertically if hatBitmapWrapper && mirrored_vertical
bitmap.blt(x_pos * adjusted_scale, y_pos * adjusted_scale, hatBitmapWrapper.bitmap, hatBitmapWrapper.bitmap.rect) if hatBitmapWrapper
end

View File

@@ -24,6 +24,10 @@ CLOTHES_WAITER = "butler"
CLOTHES_LASS_YELLOW ="lass"
CLOTHES_LASS_BLUE ="lass2"
CLOTHES_ROCKET_WHITE_M ="RocketJames"
CLOTHES_ROCKET_WHITE_F ="RocketJessie"
DEFAULT_OUTFIT_MALE = "red"
DEFAULT_OUTFIT_FEMALE = "leaf"
STARTING_OUTFIT = "pikajamas"
@@ -47,7 +51,7 @@ HAT_ORAN = "orange"
HAT_FLOWERS = "grassexpert"
HAT_LUCHA = "hawluchamask"
HAT_EEVEE_EARS = "eeveeears"
HAT_PARASHROOM = "parashroom"
HAT_AERODACTYL = "aerodactylSkull"
HAT_DUSKULL_MASK = "duskullmask"

View File

@@ -21,7 +21,8 @@ class PokemonHatPresenter
@min_y, @max_y = -120, 120 # Safe symmetric range
@hatBitmapWrapper = AnimatedBitmap.new(@hatFilename, 0) if pbResolveBitmap(@hatFilename)
@hatBitmapWrapper.mirror_horizontally if @hatBitmapWrapper && @hat_mirrored_horizontal
@hatBitmapWrapper.mirror_vertically if @hatBitmapWrapper && @hat_mirrored_vertical
end
def pbStartScreen
@@ -66,7 +67,7 @@ class PokemonHatPresenter
return false if Input.trigger?(Input::BACK)
@view.update()
end
@pokemon.hat = @hat_id
updatePokemonHatPosition
@view.hide_select_arrows
end
@@ -89,13 +90,21 @@ class PokemonHatPresenter
return false if Input.trigger?(Input::BACK)
@view.update()
end
resetHatVisualFlip
@view.hide_move_arrows
return true
end
#Let the sprite display stuff handle the actual flipping
def resetHatVisualFlip
return unless @hatBitmapWrapper
@hatBitmapWrapper.mirror_horizontally if @hat_mirrored_horizontal
@hatBitmapWrapper.mirror_vertically if @hat_mirrored_vertical
end
def flipHatHorizontally()
return unless @hatBitmapWrapper
@hat_mirrored_horizontal = !@hat_mirrored_horizontal
pbSEPlay("GUI storage pick up")
@hatBitmapWrapper.mirror_horizontally
@@ -104,6 +113,7 @@ class PokemonHatPresenter
def flipHatVertically()
return unless @hatBitmapWrapper
pbSEPlay("GUI storage pick up")
@hat_mirrored_vertical = !@hat_mirrored_vertical
@hatBitmapWrapper.mirror_vertically

View File

@@ -63,8 +63,8 @@ TYPE_EXPERT_TRAINERS = {
:ROCK => ["Slate", _INTL("Looks like Ive hit rock bottom...")],
:WATER => ["Marina", _INTL("You really made a splash!")],
:FLYING => ["Gale", _INTL("I guess Im grounded for now.")],
:DARK => ["Raven", _INTL("Ill slip back into the shadows")],
:STEEL => ["Silvia", _INTL("I guess I was a bit rusty...")],
:DARK => ["Gerard", _INTL("I guess I'll slip back into the shadows...")],
:STEEL => ["Silvia", _INTL("I was a bit rusty...")],
:PSYCHIC => ["Carl", _INTL("I could not foresee this defeat.")],
:GHOST => ["Evangeline", _INTL("I can feel myself disappearing into thin air!")],
:POISON => ["Marie", _INTL("I got a taste of my own medicine!")],

View File

@@ -94,7 +94,7 @@ VAR_ROCKET_NAME=25
VAR_NB_CRIMES_REPORTED=300
VAR_EXOTIC_POKEMON_ID=327
VAR_TYPE_EXPERTS_BEATEN=332
TOTAL_NB_TYPE_EXPERTS=331
#TOTAL_NB_TYPE_EXPERTS=331
#Randomizer
VAR_RANDOMIZER_WILD_POKE_BST=197

View File

@@ -1118,8 +1118,8 @@ ItemHandlers::UseOnPokemon.add(:POISONMUSHROOM, proc { |item, pkmn, scene|
next pbHPItem(pkmn, 10, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:POISONMUSHROOM, proc { |item, pokemon, battler, choices, scene|
if battler.status != :POISON
battler.status = :POISON
if pokemon.status != :POISON
pokemon.status = :POISON
scene.pbRefresh
scene.pbDisplay(_INTL("{1} was poisoned from eating the mushroom.", pokemon.name))
end
@@ -1331,6 +1331,7 @@ ItemHandlers::BattleUseOnPokemon.add(:ROCKETMEAL, proc { |item, pokemon, battler
})
ItemHandlers::UseOnPokemon.add(:FANCYMEAL, proc { |item, pokemon, scene|
next pbHPItem(pokemon, 100, scene)
})
@@ -1343,6 +1344,7 @@ ItemHandlers::UseOnPokemon.add(:COFFEE, proc { |item, pokemon, scene|
})
ItemHandlers::BattleUseOnPokemon.add(:COFFEE, proc { |item, pokemon, battler, choices, scene|
battler.pbRaiseStatStage(:SPEED,(Settings::X_STAT_ITEMS_RAISE_BY_TWO_STAGES) ? 2 : 1,battler) if battler
pbBattleHPItem(pokemon, battler, 50, scene)
})

View File

@@ -50,7 +50,7 @@ QUESTS = {
#Celadon City
"celadon_1" => Quest.new("celadon_1", _INTL("Sun or Moon"), _INTL("Show the Pokémon that Eevee evolves when exposed to a Moon or Sun stone to help the scientist with her research."), "BW (82)", _INTL("Celadon City"), HotelQuestColor),
"celadon_2" => Quest.new("celadon_2", _INTL("For Whom the Bell Tolls"), _INTL("Ring Lavender Town's bell when the time is right to reveal its secret."), "BW (40)", _INTL("Lavender Town"), HotelQuestColor),
"celadon_3" => Quest.new("celadon_3", _INTL("Hardboiled"), _INTL("A lady wants you to give her an egg to make an omelette.", "BW (24)"), _INTL("Celadon City"), HotelQuestColor),
"celadon_3" => Quest.new("celadon_3", _INTL("Hardboiled"), _INTL("A lady wants you to give her an egg to make an omelette."), "BW (24)", _INTL("Celadon City"), HotelQuestColor),
"celadon_field_1" => Quest.new("celadon_field_1", _INTL("A stroll with Eevee!"), _INTL("Walk Eevee around for a while until it gets tired."), "BW (37)", _INTL("Celadon City"), FieldQuestColor),
#Fuchsia City

View File

@@ -2,7 +2,7 @@ def spriteOptionsMenu
commands = []
cmd_manual_update= _INTL("Update sprites manually")
cmd_clear_sprite_cache = _INTL("Clear sprite cache")
cmd_reset_alt_sprites = _INTL("Reset selected sprites")
cmd_reset_alt_sprites = _INTL("Reset displayed alt sprites")
cmd_cancel = _INTL("Cancel")
commands << cmd_manual_update
commands << cmd_clear_sprite_cache

View File

@@ -133,25 +133,26 @@ class PokemonStorageScreen
def multipleSelectedPokemonCommands(selected, pokemonCount)
commands = []
cmdMove = -1
cmdRelease = -1
cmdCancel = -1
cmdSort = -1
cmdMove = _INTL("Move")
cmdRelease = _INTL("Release")
cmdCancel = _INTL("Cancel")
cmdSort = _INTL("Sort")
helptext = _INTL("Selected {1} Pokémon.", pokemonCount)
commands[cmdMove = commands.length] = _INTL("Move")
commands[cmdSort = commands.length] = _INTL("Sort")
commands[cmdRelease = commands.length] = _INTL("Release") if $DEBUG
commands[cmdCancel = commands.length] = _INTL("Cancel")
commands << cmdMove
commands << cmdSort
commands << cmdRelease if $DEBUG
commands << cmdCancel
command = pbShowCommands(helptext, commands)
chosen = pbShowCommands(helptext, commands)
if command == cmdMove
case commands[chosen]
when cmdMove
pbHoldMulti(selected[0], selected[1])
elsif command == cmdSort
when cmdSort
pbSortMulti(selected[0])
elsif command == cmdRelease
when cmdRelease
pbReleaseMulti(selected[0])
end
end

View File

@@ -1,4 +1,13 @@
def exportTeamForShowdown()
message = ""
for pokemon in $Trainer.party
message << exportFusedPokemonForShowdown(pokemon)
message << "\n"
end
Input.clipboard = message
end
# Output example
# Clefnair (Clefable) @ Life Orb
# Ability: Magic Guard

View File

@@ -27,7 +27,7 @@ def initializeLegendaryMode()
$game_switches[SWITCH_GYM_RANDOM_EACH_BATTLE] = false
$game_switches[SWITCH_RANDOM_GYM_PERSIST_TEAMS] = true
$game_switches[SWITCH_LEGENDARY_MODE] = true
$game_switches[SWITCH_RANDOMIZED_AT_LEAST_ONCE] = true
addLegendaryEggsToPC
$PokemonSystem.hide_custom_eggs = true
$PokemonSystem.type_icons = true

View File

@@ -47,7 +47,7 @@ module Settings
AI_ENTRIES_RATE_LOG_FILE = 'Data/pokedex/rate_limit.log' # Path to the log file
#Spritepack
NEWEST_SPRITEPACK_MONTH = 8
NEWEST_SPRITEPACK_MONTH = 9
NEWEST_SPRITEPACK_YEAR = 2025