10 Commits

Author SHA1 Message Date
infinitefusion
172797184e Fixes crash when sending bait in safari zone 2023-07-09 16:04:54 -04:00
infinitefusion
172180790b Eusine give back stolen pokemon in goldenrod 2023-07-09 10:52:35 -04:00
infinitefusion
fc243c6ac7 Removes option to fuse from PC while holding a pokemon (the option did nothing) 2023-07-08 12:18:27 -04:00
infinitefusion
95779bfccb adds missing several sound effects 2023-07-08 10:09:11 -04:00
infinitefusion
78caa8fc21 Fixes crash when trying to revive fossil after updating from older version 2023-07-08 09:07:18 -04:00
infinitefusion
0bbbbea686 Added more prizes to fusion quiz and adjusted prize exchange prices 2023-07-04 20:41:24 -04:00
infinitefusion
45bb8d5946 Fix fusion icons 2023-07-03 18:41:46 -04:00
infinitefusion
6e1dd22df8 FIxes mareanie doll not working 2023-07-03 12:42:40 -04:00
infinitefusion
0fca95c637 Fixes boon island warps 2023-07-03 07:48:27 -04:00
infinitefusion
dbfaf352bc Fixes abilities activating twice 2023-07-02 22:26:07 -04:00
76 changed files with 41 additions and 32 deletions

3
.gitignore vendored
View File

@@ -1,3 +0,0 @@
/*
!/Data/Scripts/
!/Data/Scripts/**

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.

BIN
Audio/SE/Battle flee.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
Audio/SE/Battle recall.ogg Normal file

Binary file not shown.

BIN
Audio/SE/Battle throw.ogg Normal file

Binary file not shown.

BIN
Audio/SE/Exclaim.wav Normal file

Binary file not shown.

BIN
Audio/SE/GUI menu close.ogg Normal file

Binary file not shown.

BIN
Audio/SE/GUI menu open.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Audio/SE/GUI sel buzzer.ogg Normal file

Binary file not shown.

BIN
Audio/SE/GUI sel cancel.ogg Normal file

Binary file not shown.

BIN
Audio/SE/GUI sel cursor.ogg Normal file

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.

BIN
Audio/SE/Mart buy item.ogg Normal file

Binary file not shown.

BIN
Audio/SE/PC access.ogg Normal file

Binary file not shown.

BIN
Audio/SE/PC close.ogg Normal file

Binary file not shown.

BIN
Audio/SE/PC open.ogg Normal file

Binary file not shown.

BIN
Audio/SE/Pkmn exp full.ogg Normal file

Binary file not shown.

BIN
Audio/SE/Pkmn exp gain.ogg Normal file

Binary file not shown.

BIN
Audio/SE/Pkmn faint.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
Audio/SE/Player bump.ogg Normal file

Binary file not shown.

BIN
Audio/SE/Player jump.ogg Normal file

Binary file not shown.

BIN
Audio/SE/Rock Smash.ogg Normal file

Binary file not shown.

BIN
Audio/SE/Vs flash.ogg Normal file

Binary file not shown.

BIN
Audio/SE/Vs sword.ogg Normal file

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

@@ -6,7 +6,7 @@
module Settings module Settings
# The version of your game. It has to adhere to the MAJOR.MINOR.PATCH format. # The version of your game. It has to adhere to the MAJOR.MINOR.PATCH format.
GAME_VERSION = '5.0.0' GAME_VERSION = '5.0.0'
GAME_VERSION_NUMBER = "5.3.0" GAME_VERSION_NUMBER = "5.3.0.5"
POKERADAR_LIGHT_ANIMATION_RED_ID = 17 POKERADAR_LIGHT_ANIMATION_RED_ID = 17
POKERADAR_LIGHT_ANIMATION_GREEN_ID = 18 POKERADAR_LIGHT_ANIMATION_GREEN_ID = 18

View File

@@ -32,7 +32,7 @@ class Game_Player < Game_Character
def bump_into_object def bump_into_object
return if @bump_se && @bump_se>0 return if @bump_se && @bump_se>0
pbSEPlay("Player bump") pbSEPlay("Player bump")
@bump_se = Graphics.frame_rate/4 @bump_se = Graphics.frame_rate/2
end end
def move_generic(dir, turn_enabled = true) def move_generic(dir, turn_enabled = true)

View File

@@ -734,7 +734,7 @@ def pbMessageDisplay(msgwindow, message, letterbyletter = true, commandProc = ni
head = getBasePokemonID(param.to_i, false) head = getBasePokemonID(param.to_i, false)
body = getBasePokemonID(param.to_i, true) body = getBasePokemonID(param.to_i, true)
facewindow.dispose if facewindow facewindow.dispose if facewindow
path = obtainPokemonSpritePath(body, head, $game_variables[VAR_CUSTOM_SPRITES_ENABLED] == 0) path = obtainPokemonSpritePath(body, head, true)
facewindow = isFusion ? PictureWindow.new(path) : PictureWindow.new("Graphics/Battlers/#{head}/#{head}.png") facewindow = isFusion ? PictureWindow.new(path) : PictureWindow.new("Graphics/Battlers/#{head}/#{head}.png")
pbPositionNearMsgWindow(facewindow, msgwindow, :left) pbPositionNearMsgWindow(facewindow, msgwindow, :left)
facewindow.viewport = msgwindow.viewport facewindow.viewport = msgwindow.viewport

View File

@@ -621,7 +621,7 @@ class BattlerDamageAnimation < PokeBattle_Animation
# Animation # Animation
delay = 0 delay = 0
case @effectiveness case @effectiveness
when 0 then battler.setSE(delay, "Battle damage normal") when 0 then battler.setSE(delay, "Battle damage normal");
when 1 then battler.setSE(delay, "Battle damage weak") when 1 then battler.setSE(delay, "Battle damage weak")
when 2 then battler.setSE(delay, "Battle damage super") when 2 then battler.setSE(delay, "Battle damage super")
end end

View File

@@ -150,7 +150,7 @@ class ThrowBaitAnimation < PokeBattle_Animation
# Show Pokémon jumping before eating the bait # Show Pokémon jumping before eating the bait
delay = ball.totalDuration+3 delay = ball.totalDuration+3
2.times do 2.times do
battler.setSE(delay,"player jump") battler.setSE(delay,"Player jump")
battler.moveDelta(delay,3,0,-16) battler.moveDelta(delay,3,0,-16)
battler.moveDelta(delay+4,3,0,16) battler.moveDelta(delay+4,3,0,16)
delay = battler.totalDuration+1 delay = battler.totalDuration+1

View File

@@ -657,6 +657,7 @@ def pbRockSmash
pbMessage(_INTL("{1} used {2}!", speciesname, GameData::Move.get(move).name)) pbMessage(_INTL("{1} used {2}!", speciesname, GameData::Move.get(move).name))
pbHiddenMoveAnimation(movefinder) pbHiddenMoveAnimation(movefinder)
facingEvent = $game_player.pbFacingEvent(true) facingEvent = $game_player.pbFacingEvent(true)
pbSEPlay("Rock Smash", 80)
$scene.spriteset.addUserAnimation(Settings::ROCK_SMASH_ANIMATION_ID, facingEvent.x, facingEvent.y, false) $scene.spriteset.addUserAnimation(Settings::ROCK_SMASH_ANIMATION_ID, facingEvent.x, facingEvent.y, false)
return true return true
end end

View File

@@ -111,8 +111,9 @@ class PokeRadar_UI
bitmap1 = AnimatedBitmap.new(GameData::Species.icon_filename(headPoke)) bitmap1 = AnimatedBitmap.new(GameData::Species.icon_filename(headPoke))
bitmap2 = AnimatedBitmap.new(GameData::Species.icon_filename(bodyPoke)) bitmap2 = AnimatedBitmap.new(GameData::Species.icon_filename(bodyPoke))
dexNum = getDexNumberForSpecies(@pokemon.species)
ensureFusionIconExists() ensureFusionIconExists()
bitmapFileName = sprintf("Graphics/Pokemon/FusionIcons/icon%03d", headPoke_number) bitmapFileName = sprintf("Graphics/Pokemon/FusionIcons/icon%03d", dexNum)
headPokeFileName = GameData::Species.icon_filename(headPoke) headPokeFileName = GameData::Species.icon_filename(headPoke)
bitmapPath = sprintf("%s.png", bitmapFileName) bitmapPath = sprintf("%s.png", bitmapFileName)
IO.copy_stream(headPokeFileName, bitmapPath) IO.copy_stream(headPokeFileName, bitmapPath)

View File

@@ -186,9 +186,9 @@ class PokemonIconSprite < SpriteWrapper
icon1 = AnimatedBitmap.new(GameData::Species.icon_filename(headPoke)) icon1 = AnimatedBitmap.new(GameData::Species.icon_filename(headPoke))
icon2 = AnimatedBitmap.new(GameData::Species.icon_filename(bodyPoke)) icon2 = AnimatedBitmap.new(GameData::Species.icon_filename(bodyPoke))
dexNum = getDexNumberForSpecies(@pokemon.species)
ensureFusionIconExists ensureFusionIconExists
bitmapFileName = sprintf("Graphics/Pokemon/FusionIcons/icon%03d", headPoke_number) bitmapFileName = sprintf("Graphics/Pokemon/FusionIcons/icon%03d", dexNum)
headPokeFileName = GameData::Species.icon_filename(headPoke) headPokeFileName = GameData::Species.icon_filename(headPoke)
bitmapPath = sprintf("%s.png", bitmapFileName) bitmapPath = sprintf("%s.png", bitmapFileName)
IO.copy_stream(headPokeFileName, bitmapPath) IO.copy_stream(headPokeFileName, bitmapPath)

View File

@@ -33,8 +33,9 @@ class PokemonBoxIcon < IconSprite
icon1 = AnimatedBitmap.new(GameData::Species.icon_filename(headPoke)) icon1 = AnimatedBitmap.new(GameData::Species.icon_filename(headPoke))
icon2 = AnimatedBitmap.new(GameData::Species.icon_filename(bodyPoke)) icon2 = AnimatedBitmap.new(GameData::Species.icon_filename(bodyPoke))
dexNum = getDexNumberForSpecies(species)
ensureFusionIconExists ensureFusionIconExists
bitmapFileName = sprintf("Graphics/Pokemon/FusionIcons/icon%03d", headPoke_number) bitmapFileName = sprintf("Graphics/Pokemon/FusionIcons/icon%03d", dexNum)
headPokeFileName = GameData::Species.icon_filename(headPoke) headPokeFileName = GameData::Species.icon_filename(headPoke)
bitmapPath = sprintf("%s.png", bitmapFileName) bitmapPath = sprintf("%s.png", bitmapFileName)
IO.copy_stream(headPokeFileName, bitmapPath) IO.copy_stream(headPokeFileName, bitmapPath)
@@ -1670,10 +1671,10 @@ class PokemonStorageScreen
commands[cmdUnfuse = commands.length] = _INTL("Unfuse") commands[cmdUnfuse = commands.length] = _INTL("Unfuse")
commands[cmdReverse = commands.length] = _INTL("Reverse") if $PokemonBag.pbQuantity(:DNAREVERSER) > 0 || $PokemonBag.pbQuantity(:INFINITEREVERSERS) > 0 commands[cmdReverse = commands.length] = _INTL("Reverse") if $PokemonBag.pbQuantity(:DNAREVERSER) > 0 || $PokemonBag.pbQuantity(:INFINITEREVERSERS) > 0
else else
commands[cmdFuse = commands.length] = _INTL("Fuse") commands[cmdFuse = commands.length] = _INTL("Fuse") if !@heldpkmn
end end
end end
commands[cmdNickname = commands.length] = _INTL("Nickname") commands[cmdNickname = commands.length] = _INTL("Nickname") if !@heldpkmn
commands[cmdWithdraw = commands.length] = (selected[0] == -1) ? _INTL("Store") : _INTL("Withdraw") commands[cmdWithdraw = commands.length] = (selected[0] == -1) ? _INTL("Store") : _INTL("Withdraw")
commands[cmdItem = commands.length] = _INTL("Item") commands[cmdItem = commands.length] = _INTL("Item")
@@ -2200,7 +2201,6 @@ class PokemonStorageScreen
pbDisplay(_INTL("{1} is already fused!", heldpoke.name)) pbDisplay(_INTL("{1} is already fused!", heldpoke.name))
return return
end end
p selected
if(heldpoke.egg?) if(heldpoke.egg?)
pbDisplay(_INTL("It's impossible to fuse an egg!")) pbDisplay(_INTL("It's impossible to fuse an egg!"))
return return

View File

@@ -303,7 +303,9 @@ end
def tryRandomizeGiftPokemon(pokemon, dontRandomize = false) def tryRandomizeGiftPokemon(pokemon, dontRandomize = false)
if $game_switches[SWITCH_RANDOM_GIFT_POKEMON] && $game_switches[SWITCH_RANDOM_WILD] && !dontRandomize if $game_switches[SWITCH_RANDOM_GIFT_POKEMON] && $game_switches[SWITCH_RANDOM_WILD] && !dontRandomize
oldSpecies = dexNum(pokemon.species) oldSpecies = pokemon.is_a?(Pokemon) ? dexNum(pokemon) : dexNum(pokemon.species)
if $PokemonGlobal.psuedoBSTHash[oldSpecies]
pokemon.species = getSpecies($PokemonGlobal.psuedoBSTHash[oldSpecies]) pokemon.species = getSpecies($PokemonGlobal.psuedoBSTHash[oldSpecies])
end end
end end
end

View File

@@ -730,6 +730,7 @@ class PokemonFusionScene
@pokemon1.steps_to_hatch = @pokemon1.species_data.hatch_steps @pokemon1.steps_to_hatch = @pokemon1.species_data.hatch_steps
end end
#@pokemon1.ability = pbChooseAbility(@pokemon1, hiddenAbility1, hiddenAbility2) #@pokemon1.ability = pbChooseAbility(@pokemon1, hiddenAbility1, hiddenAbility2)
#
pbChooseAbility(@pokemon1, hiddenAbility1, hiddenAbility2) pbChooseAbility(@pokemon1, hiddenAbility1, hiddenAbility2)
setFusionMoves(@pokemon1, @pokemon2, firstOptionSelected) if !noMoves setFusionMoves(@pokemon1, @pokemon2, firstOptionSelected) if !noMoves

View File

@@ -19,10 +19,12 @@ class PokeBattle_Battler
#Secondary ability utility methods for battlers class #Secondary ability utility methods for battlers class
def ability2 def ability2
return nil if !$game_switches[SWITCH_DOUBLE_ABILITIES]
return GameData::Ability.try_get(@ability2_id) return GameData::Ability.try_get(@ability2_id)
end end
def ability2=(value) def ability2=(value)
return if !$game_switches[SWITCH_DOUBLE_ABILITIES]
new_ability = GameData::Ability.try_get(value) new_ability = GameData::Ability.try_get(value)
@ability2_id = (new_ability) ? new_ability.id : nil @ability2_id = (new_ability) ? new_ability.id : nil
end end
@@ -42,6 +44,7 @@ class PokeBattle_Battler
end end
def hasActiveAbilityDouble?(check_ability, ignore_fainted = false) def hasActiveAbilityDouble?(check_ability, ignore_fainted = false)
return false if !$game_switches[SWITCH_DOUBLE_ABILITIES]
return false if !abilityActive?(ignore_fainted) return false if !abilityActive?(ignore_fainted)
if check_ability.is_a?(Array) if check_ability.is_a?(Array)
return check_ability.include?(@ability_id) || check_ability.include?(@ability2_id) return check_ability.include?(@ability_id) || check_ability.include?(@ability2_id)
@@ -148,15 +151,18 @@ class Pokemon
#Secondary ability utility methods for pokemon class #Secondary ability utility methods for pokemon class
def ability2_index def ability2_index
return nil if !$game_switches[SWITCH_DOUBLE_ABILITIES]
@ability2_index = (@personalID & 1) if !@ability2_index @ability2_index = (@personalID & 1) if !@ability2_index
return @ability2_index return @ability2_index
end end
def ability2 def ability2
return nil if !$game_switches[SWITCH_DOUBLE_ABILITIES]
return GameData::Ability.try_get(ability2_id()) return GameData::Ability.try_get(ability2_id())
end end
def ability2=(value) def ability2=(value)
return if !$game_switches[SWITCH_DOUBLE_ABILITIES]
return if value && !GameData::Ability.exists?(value) return if value && !GameData::Ability.exists?(value)
@ability2 = (value) ? GameData::Ability.get(value).id : value @ability2 = (value) ? GameData::Ability.get(value).id : value
end end
@@ -183,6 +189,7 @@ class Pokemon
end end
def ability2_id def ability2_id
return nil if !$game_switches[SWITCH_DOUBLE_ABILITIES]
if !@ability2 if !@ability2
sp_data = species_data sp_data = species_data
abil_index = ability_index abil_index = ability_index
@@ -244,10 +251,6 @@ class PokemonFusionScene
if scene.hasNickname if scene.hasNickname
@pokemon1.name = scene.nickname @pokemon1.name = scene.nickname
end end
p @pokemon1.ability.real_name
p @pokemon1.ability2.real_name
end end
end end

View File

@@ -36,15 +36,15 @@ class ExperimentalOptionsScene < PokemonOption_Scene
proc { |value| proc { |value|
$game_switches[SWITCH_NO_LEVELS_MODE] = value == 0 $game_switches[SWITCH_NO_LEVELS_MODE] = value == 0
}, "All Pokémon use their base stats, regardless of levels." }, "All Pokémon use their base stats, regardless of levels."
), )#,
EnumOption.new(_INTL("Double abilities"), [_INTL("On"), _INTL("Off")], # EnumOption.new(_INTL("Double abilities"), [_INTL("On"), _INTL("Off")],
proc { # proc {
$game_switches[SWITCH_DOUBLE_ABILITIES] ? 0 : 1 # $game_switches[SWITCH_DOUBLE_ABILITIES] ? 0 : 1
}, # },
proc { |value| # proc { |value|
$game_switches[SWITCH_DOUBLE_ABILITIES] = value == 0 # $game_switches[SWITCH_DOUBLE_ABILITIES] = value == 0
}, "Fused Pokémon have two abilities at the same time" # }, "Fused Pokémon have two abilities at the same time"
) #)
] ]
return options return options

View File

@@ -191,12 +191,16 @@ class FusionQuiz
def current_streak_dialog() def current_streak_dialog()
return if @current_streak ==0 return if @current_streak ==0
streak_base_worth= @difficulty == :REGULAR ? 25 : 100
if @current_streak % 4 == 0 if @current_streak % 4 == 0
extra_points = (@current_streak/4)*streak_base_worth
if @current_streak >= 8 if @current_streak >= 8
pbMessage(_INTL("That's {1} correct answers in a row. You're on a roll!", @current_streak)) pbMessage(_INTL("That's {1} correct answers in a row. You're on a roll!", @current_streak))
else else
pbMessage(_INTL("That's {1} correct answers in a row. You're doing great!", @current_streak)) pbMessage(_INTL("That's {1} correct answers in a row. You're doing great!", @current_streak))
end end
pbMessage(_INTL("Here's {1} extra points for maintaining a streak!",extra_points))
award_points(extra_points)
end end
end end
@@ -229,7 +233,6 @@ class FusionQuiz
def give_answer(prompt_message, answer_id, should_generate_new_choices) def give_answer(prompt_message, answer_id, should_generate_new_choices)
question_answered = false question_answered = false
answer_pokemon_name = getPokemon(answer_id).real_name answer_pokemon_name = getPokemon(answer_id).real_name
while !question_answered while !question_answered
if @difficulty == :ADVANCED if @difficulty == :ADVANCED
player_answer = prompt_pick_answer_advanced(prompt_message, answer_id) player_answer = prompt_pick_answer_advanced(prompt_message, answer_id)

View File

@@ -1870,7 +1870,8 @@ ItemHandlers::UseInField.add(:BOXLINK, proc { |item|
blacklisted_maps = [ blacklisted_maps = [
315,316,317,318,328,343,#Elite Four 315,316,317,318,328,343,#Elite Four
776,777,778,779,780,781,782,783,784, #Mt. Silver 776,777,778,779,780,781,782,783,784, #Mt. Silver
722,723,724,720 #Dream sequence 722,723,724,720, #Dream sequence
304,306,307 #Victory road
] ]
if blacklisted_maps.include?($game_map.map_id) if blacklisted_maps.include?($game_map.map_id)
Kernel.pbMessage("There doesn't seem to be any network coverage here...") Kernel.pbMessage("There doesn't seem to be any network coverage here...")

Binary file not shown.

BIN
x64-msvcrt-ruby300.dll Normal file

Binary file not shown.