6.7.1 patch fixes
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -63,8 +63,8 @@ TYPE_EXPERT_TRAINERS = {
|
||||
:ROCK => ["Slate", _INTL("Looks like I’ve hit rock bottom...")],
|
||||
:WATER => ["Marina", _INTL("You really made a splash!")],
|
||||
:FLYING => ["Gale", _INTL("I guess I’m grounded for now.")],
|
||||
:DARK => ["Raven", _INTL("I’ll 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!")],
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
})
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
Graphics/Pokemon/FusionIcons/icon502.png
Normal file
|
After Width: | Height: | Size: 671 B |