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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.