Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b85e72cb2 | ||
|
|
e5406179bf | ||
|
|
1271d7e8f0 |
5
.gitignore
vendored
@@ -3,13 +3,8 @@ Graphics/Battlers/Shiny/*
|
||||
|
||||
Graphics/CustomBattlers/spritesheets/*
|
||||
Graphics/CustomBattlers/*
|
||||
Data/sprites/*
|
||||
Data/VERSION
|
||||
infinitefusion.sh
|
||||
Data/sprites/CUSTOM_SPRITES
|
||||
Data/sprites
|
||||
Data/sprites/updated_spritesheets_cache
|
||||
Data/sprites/sprites_rate_limit.log
|
||||
.gitignore
|
||||
Game.rxproj
|
||||
.DS_Store
|
||||
|
||||
BIN
Data/.DS_Store
vendored
@@ -5,8 +5,7 @@
|
||||
#==============================================================================#
|
||||
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_NUMBER = "6.7.2"
|
||||
LATEST_GAME_RELEASE = "6.6"
|
||||
|
||||
KANTO = GAME_ID == :IF_KANTO
|
||||
|
||||
@@ -203,7 +203,7 @@ module SaveData
|
||||
end
|
||||
echoln '' if conversions_to_run.length > 0
|
||||
save_data[:essentials_version] = Essentials::VERSION
|
||||
save_data[:game_version] = Settings::GAME_VERSION
|
||||
save_data[:game_version] = Settings::GAME_VERSION_NUMBER
|
||||
return true
|
||||
end
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ end
|
||||
SaveData.register(:game_version) do
|
||||
load_in_bootup
|
||||
ensure_class :String
|
||||
save_value { Settings::GAME_VERSION }
|
||||
save_value { Settings::GAME_VERSION_NUMBER }
|
||||
load_value { |value| $game_version = value }
|
||||
new_game_value { Settings::GAME_VERSION }
|
||||
new_game_value { Settings::GAME_VERSION_NUMBER }
|
||||
end
|
||||
|
||||
@@ -8,7 +8,7 @@ SaveData.register_conversion(:v19_define_versions) do
|
||||
save_data[:essentials_version] = Essentials::VERSION
|
||||
end
|
||||
unless save_data.has_key?(:game_version)
|
||||
save_data[:game_version] = Settings::GAME_VERSION
|
||||
save_data[:game_version] = Settings::GAME_VERSION_NUMBER
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -60,7 +60,7 @@ class Sprite_Player < Sprite_Character
|
||||
@charbitmap.bitmap.clone #nekkid sprite
|
||||
baseBitmap = @charbitmap.bitmap.clone #nekkid sprite
|
||||
|
||||
if $game_player.hasGraphicsOverride?
|
||||
if $game_player.hasGraphicsOverride? && @character_name != "fish"
|
||||
@hair.update(@character_name, "", 0) if @hair
|
||||
@hat.update(@character_name, "", 0) if @hat
|
||||
@hat2.update(@character_name, "", 0) if @hat2
|
||||
@@ -84,6 +84,7 @@ class Sprite_Player < Sprite_Character
|
||||
hat2_color_shift = 0 if !hat2_color_shift
|
||||
|
||||
clothes_color_shift = 0 if !clothes_color_shift
|
||||
|
||||
@hair.update(@character_name, hairFilename, hair_color_shift) if @hair
|
||||
@hat.update(@character_name, hatFilename, hat_color_shift) if @hat
|
||||
@hat2.update(@character_name, hat2Filename, hat2_color_shift) if @hat2
|
||||
|
||||
@@ -745,6 +745,7 @@ def addBackgroundPlane(sprites,planename,background,viewport=nil)
|
||||
end
|
||||
end
|
||||
end
|
||||
return sprites[planename]
|
||||
end
|
||||
|
||||
# Adds a background to the sprite hash.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -48,8 +48,10 @@ class HallOfFame_Scene
|
||||
@viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
||||
@viewport.z = 99999
|
||||
# Comment the below line to doesn't use a background
|
||||
bgFile = @singlerow ? "hallfamebg" : "hallfamebg_multiline"
|
||||
addBackgroundPlane(@sprites, "bg", bgFile, @viewport)
|
||||
@sprites["bg"] = IconSprite.new(@viewport)
|
||||
@sprites["bg"].setBitmap(getHallOfFameBackground)
|
||||
@sprites["bg"].z = 0
|
||||
|
||||
@sprites["hallbars"] = IconSprite.new(@viewport)
|
||||
@sprites["hallbars"].setBitmap("Graphics/Pictures/hallfamebars")
|
||||
@sprites["overlay"] = BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
|
||||
@@ -73,12 +75,25 @@ class HallOfFame_Scene
|
||||
pbFadeInAndShow(@sprites) { pbUpdate }
|
||||
end
|
||||
|
||||
def getHallOfFameBackground
|
||||
if @singlerow #in the e4
|
||||
rank = pbGet(VAR_LEAGUE_REMATCH_TIER)
|
||||
background = "Graphics/Pictures/HallOfFame/hallfamebg"
|
||||
else #from PC
|
||||
rank = $PokemonGlobal.hallOfFame[@hallIndex][:TIER]
|
||||
background = "Graphics/Pictures/HallOfFame/hallfamebg_multiline"
|
||||
end
|
||||
if rank && rank.to_i > 0
|
||||
background += "_#{rank}"
|
||||
end
|
||||
return background
|
||||
end
|
||||
|
||||
def pbStartScenePC
|
||||
@singlerow = false
|
||||
pbStartScene
|
||||
@hallIndex = $PokemonGlobal.hallOfFame.size - 1
|
||||
|
||||
echoln $PokemonGlobal.hallOfFame[-1]
|
||||
pbStartScene
|
||||
@hallEntry = $PokemonGlobal.hallOfFame[-1][:TEAM]
|
||||
createBattlers(false)
|
||||
pbFadeInAndShow(@sprites) { pbUpdate }
|
||||
@@ -136,6 +151,7 @@ class HallOfFame_Scene
|
||||
entryData[:DIFFICULTY] = getDifficulty
|
||||
entryData[:MODE] = getCurrentGameMode()
|
||||
entryData[:DATE] = getCurrentDate()
|
||||
entryData[:TIER] = getCurrentE4Tier()
|
||||
|
||||
#Save trainer data (unused for now)
|
||||
entryData[:TRAINER_HAT] = $Trainer.hat
|
||||
@@ -381,7 +397,12 @@ class HallOfFame_Scene
|
||||
def writeWelcomePC
|
||||
overlay = @sprites["overlay"].bitmap
|
||||
overlay.clear
|
||||
pbDrawTextPositions(overlay, [[_INTL("Entered the Hall of Fame!"),
|
||||
text = _INTL("Entered the Hall of Fame!")
|
||||
rank = $PokemonGlobal.hallOfFame[@hallIndex][:TIER]
|
||||
if rank && rank.to_i > 0
|
||||
text += _INTL(" (Rematch Tier {1})",rank.to_i)
|
||||
end
|
||||
pbDrawTextPositions(overlay, [[text,
|
||||
Graphics.width / 2, Graphics.height - 80, 2, BASECOLOR, SHADOWCOLOR]])
|
||||
|
||||
date = $PokemonGlobal.hallOfFame[@hallIndex][:DATE]
|
||||
@@ -397,11 +418,17 @@ class HallOfFame_Scene
|
||||
pbDrawTextPositions(overlay, [[_INTL("{1}", timeString), x, y, 2, BASECOLOR, SHADOWCOLOR]])
|
||||
end
|
||||
|
||||
|
||||
def getCurrentDate()
|
||||
currentTime = Time.new
|
||||
return currentTime.year.to_s + "-" + ("%02d" % currentTime.month) + "-" + ("%02d" % currentTime.day)
|
||||
end
|
||||
|
||||
def getCurrentE4Tier()
|
||||
return pbGet(VAR_LEAGUE_REMATCH_TIER)
|
||||
end
|
||||
|
||||
|
||||
def getCurrentGameMode()
|
||||
gameMode = "Classic mode"
|
||||
if $game_switches[SWITCH_MODERN_MODE]
|
||||
@@ -563,6 +590,7 @@ class HallOfFame_Scene
|
||||
@battlerIndex = @hallEntry.size - 1
|
||||
createBattlers(false)
|
||||
end
|
||||
@sprites["bg"].setBitmap(getHallOfFameBackground)
|
||||
# Change the pokemon
|
||||
@hallEntry[@battlerIndex].play_cry
|
||||
setPokemonSpritesOpacity(@battlerIndex, OPACITY)
|
||||
|
||||
@@ -24,7 +24,11 @@ class MoveRelearner_Scene
|
||||
@pokemon=pokemon
|
||||
@moves=moves
|
||||
moveCommands=[]
|
||||
moves.each { |m| moveCommands.push(GameData::Move.get(m).name) }
|
||||
echoln moves
|
||||
moves.each do |m|
|
||||
echoln m.name
|
||||
moveCommands.push(GameData::Move.get(m).name)
|
||||
end
|
||||
# Create sprite hash
|
||||
@viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
|
||||
@viewport.z=99999
|
||||
@@ -169,7 +173,9 @@ class MoveRelearnerScreen
|
||||
end
|
||||
|
||||
pkmn.learned_moves.each do |move|
|
||||
moves.push(move) if !moves.include?(move)
|
||||
move_id = move.is_a?(Symbol) ? move : move.id
|
||||
next if pkmn.hasMove?(move_id)
|
||||
moves.push(move_id) if !moves.include?(move_id)
|
||||
end
|
||||
|
||||
tmoves = []
|
||||
@@ -178,6 +184,7 @@ class MoveRelearnerScreen
|
||||
tmoves.push(i) if !pkmn.hasMove?(i) && !moves.include?(i)
|
||||
end
|
||||
end
|
||||
|
||||
moves = tmoves + moves
|
||||
return moves | [] # remove duplicates
|
||||
end
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -41,6 +41,7 @@ SWITCH_GOT_BADGE_14 = 44
|
||||
SWITCH_GOT_BADGE_15 = 45
|
||||
SWITCH_GOT_BADGE_16 = 50
|
||||
|
||||
SWITCH_LEAGUE_TIER_1= 1155
|
||||
SWITCH_LEAGUE_TIER_2= 1151
|
||||
SWITCH_LEAGUE_TIER_3= 1152
|
||||
SWITCH_LEAGUE_TIER_4= 1153
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -43,7 +43,7 @@ end
|
||||
def getCurrentLevelCap()
|
||||
current_max_level = Settings::LEVEL_CAPS[$Trainer.badge_count]
|
||||
current_max_level *= Settings::HARD_MODE_LEVEL_MODIFIER if $game_switches[SWITCH_GAME_DIFFICULTY_HARD]
|
||||
return current_max_level
|
||||
return current_max_level.floor
|
||||
end
|
||||
|
||||
def pokemonExceedsLevelCap(pokemon)
|
||||
|
||||
@@ -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
|
||||
@@ -156,7 +156,7 @@ def addLegendaryEggsToPC()
|
||||
legendaries_species = LEGENDARIES_LIST.shuffle
|
||||
legendaries_species.each do |species|
|
||||
pokemon = Pokemon.new(species, Settings::EGG_LEVEL)
|
||||
pokemon.steps_to_hatch = pokemon.species_data.hatch_steps
|
||||
pokemon.steps_to_hatch = pokemon.species_data.hatch_steps/2
|
||||
pokemon.name = "Egg"
|
||||
$PokemonStorage.pbStoreCaught(pokemon)
|
||||
end
|
||||
|
||||
@@ -225,7 +225,7 @@ module SaveData
|
||||
end
|
||||
echoln '' if conversions_to_run.length > 0
|
||||
save_data[:essentials_version] = Essentials::VERSION
|
||||
save_data[:game_version] = Settings::GAME_VERSION
|
||||
save_data[:game_version] = Settings::GAME_VERSION_NUMBER
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
@@ -99,7 +99,7 @@ end
|
||||
|
||||
def list_unlocked_league_tiers
|
||||
unlocked_tiers =[]
|
||||
unlocked_tiers << 1 if $game_switches[SWITCH_BEAT_THE_LEAGUE]
|
||||
unlocked_tiers << 1 if $game_switches[SWITCH_LEAGUE_TIER_1]
|
||||
unlocked_tiers << 2 if $game_switches[SWITCH_LEAGUE_TIER_2]
|
||||
unlocked_tiers << 3 if $game_switches[SWITCH_LEAGUE_TIER_3]
|
||||
unlocked_tiers << 4 if $game_switches[SWITCH_LEAGUE_TIER_4]
|
||||
@@ -111,7 +111,7 @@ def select_league_tier
|
||||
#validateE4Data
|
||||
available_tiers = list_unlocked_league_tiers
|
||||
return 0 if available_tiers.empty?
|
||||
return available_tiers[0] if available_tiers.length == 1
|
||||
#return available_tiers[0] if available_tiers.length == 1
|
||||
|
||||
available_tiers.reverse!
|
||||
commands = []
|
||||
@@ -139,17 +139,16 @@ def unlock_new_league_tiers
|
||||
tiers_to_unlock << 3 if current_tier == 2 && $game_switches[SWITCH_BEAT_MT_SILVER]
|
||||
tiers_to_unlock << 4 if current_tier == 3 && $game_variables[VAR_NB_GYM_REMATCHES] >= 16
|
||||
tiers_to_unlock << 5 if current_tier == 4
|
||||
|
||||
tiers_to_unlock.each do |tier|
|
||||
next if tier == 1 || tier == 0
|
||||
|
||||
next if tier == 0
|
||||
$game_switches[SWITCH_LEAGUE_TIER_1] = true if tiers_to_unlock.include?(1)
|
||||
$game_switches[SWITCH_LEAGUE_TIER_2] = true if tiers_to_unlock.include?(2)
|
||||
$game_switches[SWITCH_LEAGUE_TIER_3] = true if tiers_to_unlock.include?(3)
|
||||
$game_switches[SWITCH_LEAGUE_TIER_4] = true if tiers_to_unlock.include?(4)
|
||||
$game_switches[SWITCH_LEAGUE_TIER_5] = true if tiers_to_unlock.include?(5)
|
||||
unless currently_unlocked_tiers.include?(tier)
|
||||
pbMEPlay("Key item get")
|
||||
pbMessage(_INTL("{1} unlocked the \\C[1]Tier {2} League Rematches\\C[0]!",$Trainer.name,tier))
|
||||
pbMessage(_INTL("{1} unlocked \\C[1]Tier {2} League Rematches\\C[0]!",$Trainer.name,tier))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
BIN
Data/items.dat
|
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 |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
BIN
Graphics/Pictures/HallOfFame/hallfamebg_1.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
Graphics/Pictures/HallOfFame/hallfamebg_2.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
Graphics/Pictures/HallOfFame/hallfamebg_3.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
Graphics/Pictures/HallOfFame/hallfamebg_4.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
Graphics/Pictures/HallOfFame/hallfamebg_5.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 743 B After Width: | Height: | Size: 743 B |
BIN
Graphics/Pictures/HallOfFame/hallfamebg_multiline_1.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
Graphics/Pictures/HallOfFame/hallfamebg_multiline_2.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
Graphics/Pictures/HallOfFame/hallfamebg_multiline_3.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
Graphics/Pictures/HallOfFame/hallfamebg_multiline_4.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
Graphics/Pictures/HallOfFame/hallfamebg_multiline_5.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
Graphics/Pokemon/FusionIcons/icon502.png
Normal file
|
After Width: | Height: | Size: 671 B |