shinifixes

This commit is contained in:
infinitefusion
2022-10-19 19:27:23 -04:00
parent 689b1f09df
commit 49f7edb06a
15 changed files with 93 additions and 77 deletions

View File

@@ -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
]
#=============================================================================

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)