Adds art gallery

This commit is contained in:
infinitefusion
2023-04-09 16:57:26 -04:00
parent a2416d7055
commit f855f8e951
17 changed files with 42925 additions and 25 deletions

View File

@@ -0,0 +1 @@
Charles Dubois,DESKTOP-U5METSR/charl,DESKTOP-U5METSR,09.04.2023 12:52,file:///C:/Users/charl/AppData/Roaming/OpenOffice/4;

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Data/Map788.rxdata Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -27,6 +27,7 @@ module Settings
DOWNLOADED_SPRITES_FOLDER = "Graphics/temp/" DOWNLOADED_SPRITES_FOLDER = "Graphics/temp/"
DEFAULT_SPRITE_PATH = "Graphics/Battlers/Special/000.png" DEFAULT_SPRITE_PATH = "Graphics/Battlers/Special/000.png"
CREDITS_FILE_PATH = "Data/credits.csv" CREDITS_FILE_PATH = "Data/credits.csv"
CREDITS_FILE_URL = "https://raw.githubusercontent.com/infinitefusion/sprites/main/Sprite Credits.csv"
FRONTSPRITE_POSITION_OFFSET = 20 FRONTSPRITE_POSITION_OFFSET = 20
FRONTSPRITE_SCALE = 0.6666666666 FRONTSPRITE_SCALE = 0.6666666666
BACKRPSPRITE_SCALE = 1 BACKRPSPRITE_SCALE = 1

View File

@@ -228,7 +228,7 @@ def pbBattleOnStepTaken(repel_active)
if isFusedEncounter() if isFusedEncounter()
encounter_fusedWith = getEncounter(encounter_type) encounter_fusedWith = getEncounter(encounter_type)
if encounter[0] != encounter_fusedWith[0] if encounter[0] != encounter_fusedWith[0]
encounter[0] = getFusionSpecies(encounter[0], encounter_fusedWith[0]) encounter[0] = getFusionSpeciesSymbol(encounter[0], encounter_fusedWith[0])
end end
end end

View File

@@ -122,6 +122,10 @@ VAR_FUSE_COUNTER = 126
VAR_BATTLE_TOWER_MIN_BST = 257 VAR_BATTLE_TOWER_MIN_BST = 257
VAR_BATTLE_TOWER_MAX_BST = 258 VAR_BATTLE_TOWER_MAX_BST = 258
VAR_GALLERY_FEATURED_ARTIST = 259
VAR_GALLERY_FEATURED_SPRITES = 260
VAR_GALLERY_ALL_ARTIST_SPRITES = 261
#Randomizer #Randomizer
VAR_RANDOMIZER_WILD_POKE_BST=197 VAR_RANDOMIZER_WILD_POKE_BST=197

View File

@@ -163,7 +163,7 @@ def generateSameEggGroupFusionsTeam(eggGroup_id)
while !foundFusionPartner while !foundFusionPartner
species2 = rand(Settings::NB_POKEMON) + 1 species2 = rand(Settings::NB_POKEMON) + 1
if getPokemonEggGroups(species2).include?(eggGroup) if getPokemonEggGroups(species2).include?(eggGroup)
generatedTeam << getFusionSpecies(species1, species2) generatedTeam << getFusionSpeciesSymbol(species1, species2)
foundFusionPartner = true foundFusionPartner = true
end end
end end

View File

@@ -1,4 +1,3 @@
def test_http_get def test_http_get
url = "http://localhost:8080" url = "http://localhost:8080"
response = HTTPLite.get(url) response = HTTPLite.get(url)
@@ -7,22 +6,42 @@ def test_http_get
end end
end end
def downloadCustomSprite(head_id,body_id) def downloadCustomSprite(head_id, body_id)
base_custom_path = "https://raw.githubusercontent.com/Aegide/custom-fusion-sprites/main/CustomBattlers/{1}.{2}.png" base_custom_path = "https://raw.githubusercontent.com/infinitefusion/sprites/main/Sprite%20Credits.csv"
end end
def download_sprite(base_path, head_id, body_id, saveLocation="Graphics/temp") def updateCreditsFile
return if $PokemonSystem.download_sprites != 0
download_file(Settings::CREDITS_FILE_URL,Settings::CREDITS_FILE_PATH,)
end
def download_file(url, saveLocation)
begin begin
downloaded_file_name = _INTL("{1}/{2}.{3}.png",saveLocation,head_id,body_id) response = HTTPLite.get(url)
if response[:status] == 200
File.open(saveLocation, "wb") do |file|
file.write(response[:body])
end
echo _INTL("\nDownloaded file {1} to {2}", url, saveLocation)
return saveLocation
end
return nil
rescue MKXPError
return nil
end
end
def download_sprite(base_path, head_id, body_id, saveLocation = "Graphics/temp")
begin
downloaded_file_name = _INTL("{1}/{2}.{3}.png", saveLocation, head_id, body_id)
return downloaded_file_name if pbResolveBitmap(downloaded_file_name) return downloaded_file_name if pbResolveBitmap(downloaded_file_name)
url = _INTL(base_path,head_id,body_id) url = _INTL(base_path, head_id, body_id)
response = HTTPLite.get(url) response = HTTPLite.get(url)
if response[:status] == 200 if response[:status] == 200
File.open(downloaded_file_name, "wb") do |file| File.open(downloaded_file_name, "wb") do |file|
file.write(response[:body]) file.write(response[:body])
end end
echo _INTL("\nDownloaded file {1} to {2}",downloaded_file_name,saveLocation) echo _INTL("\nDownloaded file {1} to {2}", downloaded_file_name, saveLocation)
return downloaded_file_name return downloaded_file_name
end end
return nil return nil
@@ -34,8 +53,8 @@ end
def download_autogen_sprite(head_id, body_id) def download_autogen_sprite(head_id, body_id)
return nil if $PokemonSystem.download_sprites != 0 return nil if $PokemonSystem.download_sprites != 0
url = "https://raw.githubusercontent.com/Aegide/autogen-fusion-sprites/master/Battlers/{1}/{1}.{2}.png" url = "https://raw.githubusercontent.com/Aegide/autogen-fusion-sprites/master/Battlers/{1}/{1}.{2}.png"
destPath = _INTL("{1}{2}",Settings::BATTLERS_FOLDER,head_id) destPath = _INTL("{1}{2}", Settings::BATTLERS_FOLDER, head_id)
sprite = download_sprite(_INTL(url,head_id,body_id),head_id,body_id,destPath) sprite = download_sprite(_INTL(url, head_id, body_id), head_id, body_id, destPath)
return sprite if sprite return sprite if sprite
return nil return nil
end end
@@ -44,8 +63,8 @@ def download_custom_sprite(head_id, body_id)
return nil if $PokemonSystem.download_sprites != 0 return nil if $PokemonSystem.download_sprites != 0
#base_path = "https://raw.githubusercontent.com/Aegide/custom-fusion-sprites/main/CustomBattlers/{1}.{2}.png" #base_path = "https://raw.githubusercontent.com/Aegide/custom-fusion-sprites/main/CustomBattlers/{1}.{2}.png"
url = "https://raw.githubusercontent.com/infinitefusion/sprites/main/CustomBattlers/{1}.{2}.png" url = "https://raw.githubusercontent.com/infinitefusion/sprites/main/CustomBattlers/{1}.{2}.png"
destPath= _INTL("{1}{2}",Settings::CUSTOM_BATTLERS_FOLDER_INDEXED,head_id) destPath = _INTL("{1}{2}", Settings::CUSTOM_BATTLERS_FOLDER_INDEXED, head_id)
sprite = download_sprite(_INTL(url,head_id,body_id),head_id,body_id,destPath) sprite = download_sprite(_INTL(url, head_id, body_id), head_id, body_id, destPath)
return sprite if sprite return sprite if sprite
return nil return nil
end end

View File

@@ -320,6 +320,7 @@ class PokemonLoadScreen
end end
def pbStartLoadScreen def pbStartLoadScreen
updateCreditsFile
if ($game_temp.unimportedSprites && $game_temp.unimportedSprites.size > 0) if ($game_temp.unimportedSprites && $game_temp.unimportedSprites.size > 0)
handleReplaceExistingSprites() handleReplaceExistingSprites()
end end

View File

@@ -0,0 +1,92 @@
def map_sprites_by_artist
creditsMap = Hash.new
File.foreach(Settings::CREDITS_FILE_PATH) do |line|
row = line.split(',')
spritename = row[0]
artist = row[1].chomp
sprites = creditsMap.key?(artist) ? creditsMap[artist] : []
sprites << spritename
creditsMap[artist] = sprites
end
return creditsMap
end
def analyzeSpritesList(spritesList)
pokemon_map = Hash.new
for spritename in spritesList
splitName = spritename.split(".")
headNum = splitName[0].to_i
bodyNum = splitName[1].to_i
if pokemon_map.key?(headNum)
pokemon_map[headNum] += 1
else
pokemon_map[headNum] = 1
end
if pokemon_map.key?(bodyNum)
pokemon_map[bodyNum] += 1
else
pokemon_map[bodyNum] = 1
end
end
most_popular = pokemon_map.max_by { |key, value| value }[0]
species = getSpecies(most_popular)
return species
end
def getPokemonSpeciesFromSprite(spritename)
splitName = spritename.split(".")
headNum = splitName[0].to_i
bodyNum = splitName[1].to_i
#call this to make sure that the sprite is downloaded
get_fusion_sprite_path(headNum, bodyNum)
species = getFusionSpecies(bodyNum, headNum)
return species
end
def doesCurrentExhibitionFeaturePokemon(displayedSprites,pokemon)
for sprite in displayedSprites
parts = sprite.split(".")
headNum = parts[0].to_i
bodyNum = parts[1].to_i
return true if headNum == pokemon.id_number || bodyNum == pokemon.id_number
end
return false
end
def generateArtGallery(nbSpritesDisplayed = 6, saveArtistNameInVariable = 1, saveSpritesInVariable = 2, saveAllArtistSpritesInVariable=3,artistName=nil)
creditsMap = map_sprites_by_artist
featuredArtist = artistName ? artistName : getRandomSpriteArtist(creditsMap, nbSpritesDisplayed)
if featuredArtist
featuredSprites = creditsMap[featuredArtist].shuffle.take(nbSpritesDisplayed)
pbSet(saveArtistNameInVariable, File.basename(featuredArtist, '#*'))
pbSet(saveSpritesInVariable, featuredSprites)
pbSet(saveAllArtistSpritesInVariable, creditsMap[featuredArtist])
return featuredSprites
end
return nil
end
def getRandomSpriteArtist(creditsMap = nil, minimumNumberOfSprites = 1, giveUpAfterX = 50)
creditsMap = map_sprites_by_artist if !creditsMap
i = 0
while i < giveUpAfterX
artist = creditsMap.keys.sample
return artist if creditsMap[artist].length >= minimumNumberOfSprites
end
return nil
end
def getSpriteCredits(spriteName)
File.foreach(Settings::CREDITS_FILE_PATH) do |line|
row = line.split(',')
if row[0].include?(spriteName)
return row[1]
end
end
return nil
end

View File

@@ -208,13 +208,20 @@ def getEvolution(speciesParam, halfToEvolve=nil)
end end
end end
def getFusionSpecies(body, head) def getFusionSpeciesSymbol(body, head)
body_num = dexNum(body) body_num = dexNum(body)
head_num = dexNum(head) head_num = dexNum(head)
id = body_num * Settings::NB_POKEMON + head_num id = body_num * Settings::NB_POKEMON + head_num
return GameData::Species.get(id).species return GameData::Species.get(id).species
end end
def getFusionSpecies(body, head)
body_num = dexNum(body)
head_num = dexNum(head)
id = body_num * Settings::NB_POKEMON + head_num
return GameData::Species.get(id)
end
# #
def evolveHead(species) def evolveHead(species)
species_id = getDexNumberForSpecies(species) species_id = getDexNumberForSpecies(species)
@@ -225,7 +232,7 @@ def evolveHead(species)
head = getBasePokemonID(species_id, false) head = getBasePokemonID(species_id, false)
body = getBasePokemonID(species_id) body = getBasePokemonID(species_id)
headEvo = getEvolution(head) headEvo = getEvolution(head)
return headEvo == -1 ? species_id : getFusionSpecies(body, headEvo) return headEvo == -1 ? species_id : getFusionSpeciesSymbol(body, headEvo)
end end
def evolveBody(species) def evolveBody(species)
@@ -237,7 +244,7 @@ def evolveBody(species)
head = getBasePokemonID(species_id, false) head = getBasePokemonID(species_id, false)
body = getBasePokemonID(species_id) body = getBasePokemonID(species_id)
bodyEvo = getEvolution(body) bodyEvo = getEvolution(body)
return bodyEvo == -1 ? species_id : getFusionSpecies(bodyEvo, head) return bodyEvo == -1 ? species_id : getFusionSpeciesSymbol(bodyEvo, head)
end end
def getCorrectEvolvedSpecies(pokemon) def getCorrectEvolvedSpecies(pokemon)

Binary file not shown.

Binary file not shown.

42775
Data/credits - Copie.csv Normal file

File diff suppressed because it is too large Load Diff