diff --git a/Data/CommonEvents.rxdata b/Data/CommonEvents.rxdata index df28a8585..91bc01f3a 100644 Binary files a/Data/CommonEvents.rxdata and b/Data/CommonEvents.rxdata differ diff --git a/Data/Map086.rxdata b/Data/Map086.rxdata index 774ad1e59..34262bada 100644 Binary files a/Data/Map086.rxdata and b/Data/Map086.rxdata differ diff --git a/Data/Map221.rxdata b/Data/Map221.rxdata index 040e339e9..655d90b7d 100644 Binary files a/Data/Map221.rxdata and b/Data/Map221.rxdata differ diff --git a/Data/Map364.rxdata b/Data/Map364.rxdata index 941b4cc59..f73fcaa02 100644 Binary files a/Data/Map364.rxdata and b/Data/Map364.rxdata differ diff --git a/Data/Map437.rxdata b/Data/Map437.rxdata index 6d82050b6..2580541e7 100644 Binary files a/Data/Map437.rxdata and b/Data/Map437.rxdata differ diff --git a/Data/Map457.rxdata b/Data/Map457.rxdata index 5173ea452..974e87f0b 100644 Binary files a/Data/Map457.rxdata and b/Data/Map457.rxdata differ diff --git a/Data/Map502.rxdata b/Data/Map502.rxdata index e3b6c3fd9..384053fc6 100644 Binary files a/Data/Map502.rxdata and b/Data/Map502.rxdata differ diff --git a/Data/MapInfos.rxdata b/Data/MapInfos.rxdata index 4bc115022..ee4ee83e0 100644 Binary files a/Data/MapInfos.rxdata and b/Data/MapInfos.rxdata differ diff --git a/Data/Scripts/001_Settings.rb b/Data/Scripts/001_Settings.rb index f200ade66..528b58e8e 100644 --- a/Data/Scripts/001_Settings.rb +++ b/Data/Scripts/001_Settings.rb @@ -6,7 +6,7 @@ module Settings # The version of your game. It has to adhere to the MAJOR.MINOR.PATCH format. GAME_VERSION = '5.0.0' - GAME_VERSION_NUMBER = "5.0.35" + GAME_VERSION_NUMBER = "5.0.35.2" POKERADAR_LIGHT_ANIMATION_RED_ID = 17 POKERADAR_LIGHT_ANIMATION_GREEN_ID = 18 @@ -332,56 +332,56 @@ module Settings # * Minimum possible level. # * Maximum possible level (optional). POKE_RADAR_ENCOUNTERS = [ - [78, 30, :FLETCHLING,2,5], #Rt. 1 - [86, 30, :FLETCHLING,2,5], #Rt. 2 - [90, 30, :FLETCHLING,2,5], #Rt. 2 - [491, 30, :SHROOMISH,2,5], #Viridian Forest - [490, 30, :BUDEW,4,9], #Rt. 3 - [106, 30, :NINCADA,8,10], #Rt. 4 - [12, 30, :TOGEPI,10,10], #Rt. 5 - [16, 30, :SLAKOTH,12,15], #Rt. 6 - [413, 30, :DRIFLOON,17,20], #Rt. 7 - [409, 30, :SHINX,17,18], #Rt. 8 - [495, 30, :ARON,12,15], #Rt. 9 - [351, 30, :ARON,12,15], #Rt. 9 - [154, 30, :KLINK,14,17], #Rt. 10 - [155, 30, :NINCADA,12,15], #Rt. 11 - [159, 30, :COTTONEE,22,25], #Rt. 12 - [437, 30, :COTTONEE,22,25], #Rt. 13 - [437, 30, :JOLTIK,22,25], #Rt. 13 - [440, 30, :JOLTIK,22,25], #Rt. 14 - [444, 30, :SOLOSIS,22,25], #Rt. 15 - [438, 30, :NATU,22,25], #Rt. 16 - [146, 30, :KLEFKI,22,25], #Rt. 17 - [517, 30, :FERROSEED,22,25], #Rt. 18 - [445, 30, :BAGON,20,20], #Safari zone 1 - [484, 30, :AXEW,20,20], #Safari zone 2 - [485, 30, :DEINO,20,20], #Safari zone 3 - [486, 30, :LARVITAR,20,20], #Safari zone 4 - [487, 30, :BELDUM,20,20], #Safari zone 5 - [59, 30, :DUNSPARCE,25,30], #Rt. 21 - [171, 30, :BIDOOF,2,5], #Rt. 22 - [143, 30, :RIOLU,25,25], #Rt. 23 - [8, 30, :BUNEARY,12,13], #Rt. 24 - [145, 30, :ABSOL,30,35], #Rt. 26 - [147, 30, :ABSOL,30,35], #Rt. 27 - [311, 30, :BIDOOF,5,5], #Rt. 29 - [284, 30, :LUXIO,40,45], #Rt. 33 - [288, 30, :VIGOROTH,40,45], #Rt. 32 - [342, 30, :GOLETT,40,45], #Ruins of Alph - [261, 30, :BELLOSSOM,45,50], #Rt. 31 - [262, 30, :BIBAREL,45,50], #Rt. 30 - [265, 30, :KIRLIA,25,30], #Rt. 34 - [267, 30, :SUDOWOODO,25,30], #Rt. 36 - [300, 30, :ROSELIA,30,30], #National Park - [266, 30, :BRELOOM,30,30], #Ilex Forest - [670, 30, :WEAVILE,50,50], #Ice mountains - [528, 30, :PYUKUMUKU,20,20], #Treasure Beach - [690, 30, :OCTILLERY,32,45], #Deep Ocean - [561, 30, :FLETCHINDER,32,45], #Mt. Ember - [562, 30, :NINJASK,45,50], #Boon Island - [603, 30, :KECLEON,45,50], #Chrono Island - [654, 30, :WHIMSICOTT,32,45] #Brine Road + [78, 50, :FLETCHLING,2,5], #Rt. 1 + [86, 50, :FLETCHLING,2,5], #Rt. 2 + [90, 50, :FLETCHLING,2,5], #Rt. 2 + [491, 50, :SHROOMISH,2,5], #Viridian Forest + [490, 50, :BUDEW,4,9], #Rt. 3 + [106, 50, :NINCADA,8,10], #Rt. 4 + [12, 50, :TOGEPI,10,10], #Rt. 5 + [16, 50, :SLAKOTH,12,15], #Rt. 6 + [413, 50, :DRIFLOON,17,20], #Rt. 7 + [409, 50, :SHINX,17,18], #Rt. 8 + [495, 50, :ARON,12,15], #Rt. 9 + [351, 50, :ARON,12,15], #Rt. 9 + [154, 50, :KLINK,14,17], #Rt. 10 + [155, 50, :NINCADA,12,15], #Rt. 11 + [159, 50, :COTTONEE,22,25], #Rt. 12 + [437, 50, :COTTONEE,22,25], #Rt. 13 + [437, 50, :JOLTIK,22,25], #Rt. 13 + [440, 50, :JOLTIK,22,25], #Rt. 14 + [444, 50, :SOLOSIS,22,25], #Rt. 15 + [438, 50, :NATU,22,25], #Rt. 16 + [146, 50, :KLEFKI,22,25], #Rt. 17 + [517, 50, :FERROSEED,22,25], #Rt. 18 + [445, 50, :BAGON,20,20], #Safari zone 1 + [484, 50, :AXEW,20,20], #Safari zone 2 + [485, 50, :DEINO,20,20], #Safari zone 3 + [486, 50, :LARVITAR,20,20], #Safari zone 4 + [487, 50, :BELDUM,20,20], #Safari zone 5 + [59, 50, :DUNSPARCE,25,30], #Rt. 21 + [171, 50, :BIDOOF,2,5], #Rt. 22 + [143, 50, :RIOLU,25,25], #Rt. 23 + [8, 50, :BUNEARY,12,13], #Rt. 24 + [145, 50, :ABSOL,30,35], #Rt. 26 + [147, 50, :ABSOL,30,35], #Rt. 27 + [311, 50, :BIDOOF,5,5], #Rt. 29 + [284, 50, :LUXIO,40,45], #Rt. 33 + [288, 50, :VIGOROTH,40,45], #Rt. 32 + [342, 50, :GOLETT,40,45], #Ruins of Alph + [261, 50, :BELLOSSOM,45,50], #Rt. 31 + [262, 50, :BIBAREL,45,50], #Rt. 30 + [265, 50, :KIRLIA,25,30], #Rt. 34 + [267, 50, :SUDOWOODO,25,30], #Rt. 36 + [500, 50, :ROSELIA,30,30], #National Park + [266, 50, :BRELOOM,30,30], #Ilex Forest + [670, 50, :WEAVILE,50,50], #Ice mountains + [528, 50, :PYUKUMUKU,20,20], #Treasure Beach + [690, 50, :OCTILLERY,32,45], #Deep Ocean + [561, 50, :FLETCHINDER,32,45], #Mt. Ember + [562, 50, :NINJASK,45,50], #Boon Island + [603, 50, :KECLEON,45,50], #Chrono Island + [654, 50, :WHIMSICOTT,32,45] #Brine Road ] #============================================================================= diff --git a/Data/Scripts/007_Objects and windows/008_AnimatedBitmap.rb b/Data/Scripts/007_Objects and windows/008_AnimatedBitmap.rb index c5ea7eaf5..e7a352778 100644 --- a/Data/Scripts/007_Objects and windows/008_AnimatedBitmap.rb +++ b/Data/Scripts/007_Objects and windows/008_AnimatedBitmap.rb @@ -38,12 +38,8 @@ class AnimatedBitmap end end - MAX_SHIFT_VALUE = 360 - MINIMUM_OFFSET=40 + def shiftColors(offset = 0) - offset /= MAX_SHIFT_VALUE if offset > NB_POKEMON - offset = MINIMUM_OFFSET if offset < MINIMUM_OFFSET || MAX_SHIFT_VALUE - offset < MINIMUM_OFFSET - offset += pbGet(VAR_SHINY_HUE_OFFSET) #for testing - always 0 during normal gameplay @bitmap = GifBitmap.new(@path, @filename, offset) end diff --git a/Data/Scripts/014_Pokemon/001_Pokemon.rb b/Data/Scripts/014_Pokemon/001_Pokemon.rb index e40ed84d2..40648fd8c 100644 --- a/Data/Scripts/014_Pokemon/001_Pokemon.rb +++ b/Data/Scripts/014_Pokemon/001_Pokemon.rb @@ -35,6 +35,8 @@ class Pokemon attr_accessor :head_shiny attr_accessor :body_shiny attr_accessor :debug_shiny + attr_accessor :natural_shiny + # The index of this Pokémon's ability (0, 1 are natural abilities, 2+ are # hidden abilities)as defined for its species/form. An ability may not be # defined at this index. Is recalculated (as 0 or 1) if made nil. @@ -103,7 +105,7 @@ class Pokemon # Maximum number of moves a Pokémon can know at once MAX_MOVES = 4 - SHINY_CHANCE = 16 + S_CHANCE_VALIDATOR = 16 def self.play_cry(species, form = 0, volume = 90, pitch = 100) GameData::Species.play_cry_from_species(species, form, volume, pitch) @@ -170,13 +172,13 @@ class Pokemon def shiny=(value) @shiny=value - if value && Settings::SHINY_POKEMON_CHANCE != SHINY_CHANCE + if value && Settings::SHINY_POKEMON_CHANCE != S_CHANCE_VALIDATOR @debug_shiny=true end end def debugShiny? - return @debug_shiny + return !@natural_shiny || @debug_shiny end def bodyShiny? @@ -481,10 +483,16 @@ class Pokemon b = a & 0xFFFF c = (a >> 16) & 0xFFFF d = b ^ c - @shiny = d < Settings::SHINY_POKEMON_CHANCE + is_shiny = d < Settings::SHINY_POKEMON_CHANCE + if is_shiny + @shiny = true + @natural_shiny=true + end + end - if @shiny && Settings::SHINY_POKEMON_CHANCE != SHINY_CHANCE + if @shiny && Settings::SHINY_POKEMON_CHANCE != S_CHANCE_VALIDATOR @debug_shiny=true + @natural_shiny=false end return @shiny end diff --git a/Data/Scripts/016_UI/017_UI_PokemonStorage.rb b/Data/Scripts/016_UI/017_UI_PokemonStorage.rb index 4e5cf14f0..a8ef08564 100644 --- a/Data/Scripts/016_UI/017_UI_PokemonStorage.rb +++ b/Data/Scripts/016_UI/017_UI_PokemonStorage.rb @@ -2147,20 +2147,20 @@ class PokemonStorageScreen # def pbFuseFromPC(selected, heldpoke) - box = selected[0] - index = selected[1] - poke_body = @storage[box, index] - poke_head = heldpoke - if heldpoke - if dexNum(heldpoke.species) > NB_POKEMON - pbDisplay(_INTL("{1} is already fused!", heldpoke.name)) - return + box = selected[0] + index = selected[1] + poke_body = @storage[box, index] + poke_head = heldpoke + if heldpoke + if dexNum(heldpoke.species) > NB_POKEMON + pbDisplay(_INTL("{1} is already fused!", heldpoke.name)) + return + end + if(selected.egg? || heldpoke.egg?) + pbDisplay(_INTL("It's impossible to fuse an egg!")) + return + end end - if(selected.egg? || heldpoke.egg?) - pbDisplay(_INTL("It's impossible to fuse an egg!")) - return - end - end splicerItem = selectSplicer() if splicerItem == nil diff --git a/Data/Scripts/050_AddOns/FusionSprites.rb b/Data/Scripts/050_AddOns/FusionSprites.rb index fc922b054..1086bed11 100644 --- a/Data/Scripts/050_AddOns/FusionSprites.rb +++ b/Data/Scripts/050_AddOns/FusionSprites.rb @@ -21,16 +21,28 @@ module GameData return ret end + MAX_SHIFT_VALUE = 360 + MINIMUM_OFFSET=40 + ADDITIONAL_OFFSET_WHEN_TOO_CLOSE=40 + MINIMUM_DEX_DIF=20 def self.calculateShinyHueOffset(dex_number, isBodyShiny = false, isHeadShiny = false) dex_offset = dex_number + body_number = getBodyID(dex_number) + head_number=getHeadID(dex_number,body_number) + dex_diff = (body_number-head_number).abs if isBodyShiny && isHeadShiny dex_offset = dex_number elsif isHeadShiny - dex_offset = getHeadID(dex_number) + dex_offset = head_number elsif isBodyShiny - dex_offset = getBodyID(dex_number) + dex_offset = dex_diff > MINIMUM_DEX_DIF ? body_number : body_number+ADDITIONAL_OFFSET_WHEN_TOO_CLOSE end - return dex_offset + Settings::SHINY_HUE_OFFSET + offset = dex_offset + Settings::SHINY_HUE_OFFSET + offset /= MAX_SHIFT_VALUE if offset > NB_POKEMON + offset = MINIMUM_OFFSET if offset < MINIMUM_OFFSET + offset = MINIMUM_OFFSET if (MAX_SHIFT_VALUE - offset).abs < MINIMUM_OFFSET + offset += pbGet(VAR_SHINY_HUE_OFFSET) #for testing - always 0 during normal gameplay + return offset end def self.front_sprite_bitmap(dex_number, a = 0, b = 0, isShiny = false, bodyShiny = false, headShiny = false) diff --git a/Data/System.rxdata b/Data/System.rxdata index 9e1e8ea88..24d3428bd 100644 Binary files a/Data/System.rxdata and b/Data/System.rxdata differ diff --git a/Data/encounters_randomized.dat b/Data/encounters_randomized.dat index a8b399045..6cd0e3f41 100644 Binary files a/Data/encounters_randomized.dat and b/Data/encounters_randomized.dat differ