diff --git a/Data/Actors.rxdata b/Data/Actors.rxdata index 41edc8e26..7967a5432 100644 Binary files a/Data/Actors.rxdata and b/Data/Actors.rxdata differ diff --git a/Data/Animations.rxdata b/Data/Animations.rxdata index 826e1e8a6..8e67182ba 100644 Binary files a/Data/Animations.rxdata and b/Data/Animations.rxdata differ diff --git a/Data/Armors.rxdata b/Data/Armors.rxdata index 901f2bb2b..2249bec14 100644 Binary files a/Data/Armors.rxdata and b/Data/Armors.rxdata differ diff --git a/Data/CommonEvents.rxdata b/Data/CommonEvents.rxdata index 531ae6477..f3c5ff5c1 100644 Binary files a/Data/CommonEvents.rxdata and b/Data/CommonEvents.rxdata differ diff --git a/Data/Enemies.rxdata b/Data/Enemies.rxdata index be622f513..004ee903d 100644 Binary files a/Data/Enemies.rxdata and b/Data/Enemies.rxdata differ diff --git a/Data/Items.rxdata b/Data/Items.rxdata index fe767fa0b..3e62ba6d2 100644 Binary files a/Data/Items.rxdata and b/Data/Items.rxdata differ diff --git a/Data/Map095.rxdata b/Data/Map095.rxdata index 7b360c74b..9d0b3b41b 100644 Binary files a/Data/Map095.rxdata and b/Data/Map095.rxdata differ diff --git a/Data/Map237.rxdata b/Data/Map237.rxdata index b4b3ac03c..4ff22275b 100644 Binary files a/Data/Map237.rxdata and b/Data/Map237.rxdata differ diff --git a/Data/Map788.rxdata b/Data/Map788.rxdata index 13f8d010b..9fbe3f4f8 100644 Binary files a/Data/Map788.rxdata and b/Data/Map788.rxdata differ diff --git a/Data/MapInfos.rxdata b/Data/MapInfos.rxdata index d9608f14e..0e70bab8e 100644 Binary files a/Data/MapInfos.rxdata and b/Data/MapInfos.rxdata differ diff --git a/Data/Scripts/016_UI/001_Non-interactive UI/003_UI_EggHatching.rb b/Data/Scripts/016_UI/001_Non-interactive UI/003_UI_EggHatching.rb index 14348a2d8..b6d014764 100644 --- a/Data/Scripts/016_UI/001_Non-interactive UI/003_UI_EggHatching.rb +++ b/Data/Scripts/016_UI/001_Non-interactive UI/003_UI_EggHatching.rb @@ -199,6 +199,13 @@ def pbHatch(pokemon) pokemon.timeEggHatched = pbGetTimeNow pokemon.obtain_method = 1 # hatched from egg pokemon.hatched_map = $game_map.map_id + if player_on_hidden_ability_map + chosenAbility = pokemon.getAbilityList.sample #format: [[:ABILITY, index],...] + pokemon.ability = chosenAbility[0] + pokemon.ability_index = chosenAbility[1] + end + + $Trainer.pokedex.register(pokemon) $Trainer.pokedex.set_owned(pokemon.species) pokemon.record_first_moves diff --git a/Data/Scripts/049_Compatibility/Constants.rb b/Data/Scripts/049_Compatibility/Constants.rb index 82ea7af75..231bb1508 100644 --- a/Data/Scripts/049_Compatibility/Constants.rb +++ b/Data/Scripts/049_Compatibility/Constants.rb @@ -127,6 +127,8 @@ VAR_BATTLE_TOWER_MAX_BST = 258 VAR_GALLERY_FEATURED_ARTIST = 259 VAR_GALLERY_FEATURED_SPRITES = 260 VAR_GALLERY_ALL_ARTIST_SPRITES = 261 +VAR_GALLERY_SELECTED_ARTIST = 263 +VAR_NEXT_ARTIST_FORMATTED = 264 #Randomizer diff --git a/Data/Scripts/050_AddOns/HiddenAbilityMaps.rb b/Data/Scripts/050_AddOns/HiddenAbilityMaps.rb index cfeabf716..fd1ce4d28 100644 --- a/Data/Scripts/050_AddOns/HiddenAbilityMaps.rb +++ b/Data/Scripts/050_AddOns/HiddenAbilityMaps.rb @@ -24,7 +24,7 @@ def changeHiddenMap() end Events.onWildPokemonCreate+=proc {|sender,e| - if $game_map.map_id== pbGet(226) || isAlwaysHiddenAbilityMap($game_map.map_id) + if player_on_hidden_ability_map || isAlwaysHiddenAbilityMap($game_map.map_id) pokemon=e[0] chosenAbility = pokemon.getAbilityList.sample #format: [[:ABILITY, index],...] pokemon.ability = chosenAbility[0] @@ -36,7 +36,9 @@ def isAlwaysHiddenAbilityMap(mapId) return HIDDEN_MAP_ALWAYS.include? mapId end - +def player_on_hidden_ability_map + return $game_map.map_id== pbGet(226) +end def Kernel.getMapName(id) mapinfos = pbLoadMapInfos diff --git a/Data/Scripts/050_AddOns/SpriteCreditsUtils.rb b/Data/Scripts/050_AddOns/SpriteCreditsUtils.rb index 04e9529e7..af6acf5fd 100644 --- a/Data/Scripts/050_AddOns/SpriteCreditsUtils.rb +++ b/Data/Scripts/050_AddOns/SpriteCreditsUtils.rb @@ -11,7 +11,7 @@ def map_sprites_by_artist return creditsMap end -def get_top_artists(nb_names=100) +def get_top_artists(nb_names = 100) filename = Settings::CREDITS_FILE_PATH name_counts = Hash.new(0) @@ -25,9 +25,7 @@ def get_top_artists(nb_names=100) .to_h end - - -def analyzeSpritesList(spritesList, mostPopularCallbackVariable=1) +def analyzeSpritesList(spritesList, mostPopularCallbackVariable = 1) pokemon_map = Hash.new for spritename in spritesList splitName = spritename.split(".") @@ -46,17 +44,18 @@ def analyzeSpritesList(spritesList, mostPopularCallbackVariable=1) pokemon_map[bodyNum] = 1 end end - most_popular = pokemon_map.max_by { |key, value| value } + most_popular = pokemon_map.max_by { |key, value| value } most_popular_poke = most_popular[0] most_popular_nb = most_popular[1] - pbSet(mostPopularCallbackVariable,most_popular_nb) + pbSet(mostPopularCallbackVariable, most_popular_nb) species = getSpecies(most_popular_poke) - return species + return species end def getPokemonSpeciesFromSprite(spritename) + return nil if !spritename splitName = spritename.split(".") headNum = splitName[0].to_i bodyNum = splitName[1].to_i @@ -68,7 +67,7 @@ def getPokemonSpeciesFromSprite(spritename) return species end -def doesCurrentExhibitionFeaturePokemon(displayedSprites,pokemon) +def doesCurrentExhibitionFeaturePokemon(displayedSprites, pokemon) for sprite in displayedSprites parts = sprite.split(".") headNum = parts[0].to_i @@ -78,7 +77,48 @@ def doesCurrentExhibitionFeaturePokemon(displayedSprites,pokemon) return false end -def generateArtGallery(nbSpritesDisplayed = 6, saveArtistNameInVariable = 1, saveSpritesInVariable = 2, saveAllArtistSpritesInVariable=3,artistName=nil) +def select_spriter(minNbSprites = 10, save_in_var = 1) + spriters_list = list_all_spriters_with_min_nb_of_sprites(minNbSprites) + commands = [] + spriters_list.each { |name, i| commands.push([i, name, name]) } + chosen = pbChooseList(commands, 0, nil, 1) + return nil if !chosen + return chosen +end + +def list_all_spriters_with_min_nb_of_sprites(minNbSprites) + return list_all_spriters() if !minNbSprites + filename = Settings::CREDITS_FILE_PATH + spriters_hash = Hash.new(0) + + File.readlines(filename).each do |line| + name = line.strip.split(',')[1] + spriters_hash[name] += 1 + end + + spriters_list = [] + for spriter_name in spriters_hash.keys + if spriters_hash[spriter_name] >= minNbSprites + spriters_list << spriter_name + end + end + return spriters_list +end + +def list_all_spriters() + filename = Settings::CREDITS_FILE_PATH + names_list = [] + File.readlines(filename).each do |line| + name = line.strip.split(',')[1] + if !names_list.include?(name) + names_list << name + end + end + return names_list +end + +def generateArtGallery(nbSpritesDisplayed = 6, saveArtistNameInVariable = 1, saveSpritesInVariable = 2, saveAllArtistSpritesInVariable = 3, artistName = nil) + artistName = nil if artistName == 0 creditsMap = map_sprites_by_artist featuredArtist = artistName ? artistName : getRandomSpriteArtist(creditsMap, nbSpritesDisplayed) if featuredArtist @@ -91,6 +131,10 @@ def generateArtGallery(nbSpritesDisplayed = 6, saveArtistNameInVariable = 1, sav return nil end +def format_artist_name(full_name) + return File.basename(full_name, '#*') +end + def getRandomSpriteArtist(creditsMap = nil, minimumNumberOfSprites = 1, giveUpAfterX = 50) creditsMap = map_sprites_by_artist if !creditsMap i = 0 @@ -111,30 +155,28 @@ def getSpriteCredits(spriteName) return nil end - -def formatList(list,separator) +def formatList(list, separator) formatted = "" - i =0 + i = 0 for element in list formatted << element formatted << separator if i < list.length - i+=1 + i += 1 end end - def format_names_for_game_credits() spriters_map = get_top_artists(100) formatted = "" - i =1 + i = 1 for spriter in spriters_map.keys formatted << spriter - if i%2 == 0 + if i % 2 == 0 formatted << "\n" else formatted << "" end - i+=1 + i += 1 end return formatted end diff --git a/Data/Skills.rxdata b/Data/Skills.rxdata index a45219f5e..61cba7ea2 100644 Binary files a/Data/Skills.rxdata and b/Data/Skills.rxdata differ diff --git a/Data/States.rxdata b/Data/States.rxdata index 868d49e59..0f9b4ae5d 100644 Binary files a/Data/States.rxdata and b/Data/States.rxdata differ diff --git a/Data/System.rxdata b/Data/System.rxdata index fecd24a7b..e90ffc5b3 100644 Binary files a/Data/System.rxdata and b/Data/System.rxdata differ diff --git a/Data/Tilesets.rxdata b/Data/Tilesets.rxdata index b5372acec..0ce401add 100644 Binary files a/Data/Tilesets.rxdata and b/Data/Tilesets.rxdata differ diff --git a/Data/Weapons.rxdata b/Data/Weapons.rxdata index c7ea19a7a..d9bd35260 100644 Binary files a/Data/Weapons.rxdata and b/Data/Weapons.rxdata differ