Compare commits
33 Commits
main
...
871045ca46
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
871045ca46 | ||
|
|
0c918bbfcb | ||
|
|
2488a2575e | ||
|
|
2c5b161029 | ||
|
|
32dc832b5c | ||
|
|
9fa7dac43f | ||
|
|
d3e4fd3d33 | ||
|
|
16b2deeefb | ||
|
|
b8d479b801 | ||
|
|
38377b703e | ||
|
|
1fed55f7fa | ||
|
|
3ebd3fd68a | ||
|
|
2fcc7fc9cd | ||
|
|
692a25bd8e | ||
|
|
24943e092f | ||
|
|
935c548016 | ||
|
|
44f114b5e0 | ||
|
|
1809d246b6 | ||
|
|
a9de6b6c97 | ||
|
|
1499465ce0 | ||
|
|
f72c7fff7b | ||
|
|
a9267b7bad | ||
|
|
fed8490fc3 | ||
|
|
a62544e8d8 | ||
|
|
9d30b0e0fb | ||
|
|
5640871dcd | ||
|
|
e7d2330a2f | ||
|
|
71894707b1 | ||
|
|
727bccfe61 | ||
|
|
e0201bf021 | ||
|
|
8f1f4a0f9b | ||
|
|
8bcc4f226b | ||
|
|
5fc4935a0c |
13
.gitignore
vendored
@@ -1,7 +1,14 @@
|
||||
Graphics/CustomBattlers/local_sprites/*
|
||||
Graphics/Pokemon/FusionIcons/*
|
||||
|
||||
Graphics/CustomBattlers/spritesheets/*
|
||||
Graphics/CustomBattlers/spritesheets
|
||||
Data/sprites/*
|
||||
Data/VERSION
|
||||
|
||||
infinitefusion.sh
|
||||
Data/sprites/CUSTOM_SPRITES
|
||||
Data/sprites
|
||||
Data/sprites/updated_spritesheets_cache
|
||||
Data/sprites/sprites_rate_limit.log
|
||||
.gitignore
|
||||
PBS
|
||||
Game.rxproj
|
||||
.DS_Store
|
||||
BIN
Audio/BGM/Hall of Fame.mp3
Normal file
BIN
Audio/SE/Cries/MINIOR_M.ogg
Normal file
BIN
Data/.DS_Store
vendored
Normal file
@@ -5,8 +5,8 @@
|
||||
#==============================================================================#
|
||||
module Settings
|
||||
# The version of your game. It has to adhere to the MAJOR.MINOR.PATCH format.
|
||||
GAME_VERSION = '6.4.5'
|
||||
GAME_VERSION_NUMBER = "6.4.5"
|
||||
GAME_VERSION = '6.4.6'
|
||||
GAME_VERSION_NUMBER = "6.4.7"
|
||||
LATEST_GAME_RELEASE = "6.4"
|
||||
|
||||
POKERADAR_LIGHT_ANIMATION_RED_ID = 17
|
||||
@@ -63,6 +63,8 @@ module Settings
|
||||
SPRITES_FILE_URL = "https://raw.githubusercontent.com/infinitefusion/infinitefusion-e18/main/Data/sprites/CUSTOM_SPRITES"
|
||||
BASE_SPRITES_FILE_URL = "https://raw.githubusercontent.com/infinitefusion/infinitefusion-e18/main/Data/sprites/BASE_SPRITES"
|
||||
|
||||
CREDITS_FILE_URL = "https://infinitefusion.net/Sprite Credits.csv"
|
||||
CUSTOM_DEX_FILE_URL = "https://raw.githubusercontent.com/infinitefusion/pif-downloadables/refs/heads/master/dex.json"
|
||||
|
||||
STARTUP_MESSAGES = ""
|
||||
|
||||
|
||||
@@ -21,8 +21,7 @@ module SaveData
|
||||
# @param file_path [String] path of the file to load from
|
||||
# @return [Hash, Array] loaded save data
|
||||
# @raise [IOError, SystemCallError] if file opening fails
|
||||
def self.get_data_from_file(file_path)
|
||||
validate file_path => String
|
||||
def self.get_data_from_file(file_path) validate file_path => String
|
||||
save_data = nil
|
||||
File.open(file_path) do |file|
|
||||
data = Marshal.load(file)
|
||||
|
||||
@@ -750,6 +750,7 @@ Events.onEndBattle += proc { |_sender,e|
|
||||
pbHoneyGather(pkmn)
|
||||
end
|
||||
pickUpTypeItemSetBonus()
|
||||
qmarkMaskCheck()
|
||||
when 2, 5 # Lose, draw
|
||||
if !canLose
|
||||
$game_system.bgm_unpause
|
||||
|
||||
@@ -32,6 +32,8 @@ class Player < Trainer
|
||||
attr_accessor :card_background
|
||||
attr_accessor :unlocked_card_backgrounds
|
||||
|
||||
attr_accessor :seen_qmarks_sprite
|
||||
|
||||
|
||||
# @return [Array<Boolean>] the player's Gym Badges (true if owned)
|
||||
attr_accessor :badges
|
||||
@@ -293,5 +295,7 @@ class Player < Trainer
|
||||
|
||||
@card_background = Settings::DEFAULT_TRAINER_CARD_BG
|
||||
@unlocked_card_backgrounds = [@card_background]
|
||||
|
||||
@seen_qmarks_sprite = false
|
||||
end
|
||||
end
|
||||
|
||||
@@ -33,8 +33,8 @@ class PokemonSystem
|
||||
@screensize = (Settings::SCREEN_SCALE * 2).floor - 1 # 0=half size, 1=full size, 2=full-and-a-half size, 3=double size
|
||||
@language = 0 # Language (see also Settings::LANGUAGES in script PokemonSystem)
|
||||
@runstyle = 0 # Default movement speed (0=walk, 1=run)
|
||||
@bgmvolume = 100 # Volume of background music and ME
|
||||
@sevolume = 100 # Volume of sound effects
|
||||
@bgmvolume = 40 # Volume of background music and ME
|
||||
@sevolume = 40 # Volume of sound effects
|
||||
@textinput = 1 # Text input mode (0=cursor, 1=keyboard)
|
||||
@quicksurf = 0
|
||||
@battle_type = 0
|
||||
|
||||
@@ -115,14 +115,16 @@ end
|
||||
# selected (or nil if the selection was canceled). "default", if specified, is
|
||||
# the ID of the species to initially select. Pressing Input::ACTION will toggle
|
||||
# the list sorting between numerical and alphabetical.
|
||||
def pbChooseSpeciesList(default = nil)
|
||||
def pbChooseSpeciesList(default = nil,max=nil)
|
||||
# commands = []
|
||||
# GameData::Species.each { |s| commands.push([s.id_number, s.real_name, s.id]) if s.form == 0 }
|
||||
# return pbChooseList(commands, default, nil, -1)
|
||||
#
|
||||
defaultNumber = default == nil ? 1 : getDexNumberForSpecies(default)
|
||||
params = ChooseNumberParams.new
|
||||
params.setRange(1,PBSpecies.maxValue)
|
||||
|
||||
max = max ? max : PBSpecies.maxValue
|
||||
params.setRange(1,max)
|
||||
params.setInitialValue(defaultNumber)
|
||||
dexNum = pbMessageChooseNumber("dex number?",params)
|
||||
return GameData::Species.get(dexNum)
|
||||
|
||||
@@ -858,8 +858,7 @@ PokemonDebugMenuCommands.register("speciesform", {
|
||||
_INTL("Species {1}, form {2} (forced).", pkmn.speciesName, pkmn.form)][(pkmn.forced_form.nil?) ? 0 : 1]
|
||||
cmd = screen.pbShowCommands(msg, [
|
||||
_INTL("Set species"),
|
||||
_INTL("Set form"),
|
||||
_INTL("Remove form override")], cmd)
|
||||
_INTL("Set fusion species")], cmd)
|
||||
break if cmd < 0
|
||||
case cmd
|
||||
when 0 # Set species
|
||||
@@ -871,9 +870,31 @@ PokemonDebugMenuCommands.register("speciesform", {
|
||||
end
|
||||
pkmn.calc_stats
|
||||
$Trainer.pokedex.register(pkmn) if !settingUpBattle
|
||||
$Trainer.pokedex.set_owned(pkmn.species) if !settingUpBattle
|
||||
screen.pbRefreshSingle(pkmnid)
|
||||
end
|
||||
when 1 # Set form
|
||||
old_head_dex = get_head_number_from_symbol(pkmn.species)
|
||||
old_body_dex = get_body_number_from_symbol(pkmn.species)
|
||||
pbMessage('Head species?')
|
||||
head_species = pbChooseSpeciesList(old_head_dex,NB_POKEMON)
|
||||
pbMessage('Body species?')
|
||||
body_species = pbChooseSpeciesList(old_body_dex,NB_POKEMON)
|
||||
|
||||
fused_species_dex = getFusionSpecies(body_species.species,head_species.species)
|
||||
species = GameData::Species.get(fused_species_dex)
|
||||
|
||||
if species && species != pkmn.species
|
||||
pkmn.species = species
|
||||
if pkmn.shiny?
|
||||
pkmn.debug_shiny=true
|
||||
end
|
||||
pkmn.calc_stats
|
||||
$Trainer.pokedex.register(pkmn) if !settingUpBattle
|
||||
$Trainer.pokedex.set_owned(pkmn.species) if !settingUpBattle
|
||||
screen.pbRefreshSingle(pkmnid)
|
||||
end
|
||||
|
||||
# cmd2 = 0
|
||||
# formcmds = [[], []]
|
||||
# GameData::Species.each do |sp|
|
||||
@@ -901,9 +922,9 @@ PokemonDebugMenuCommands.register("speciesform", {
|
||||
# screen.pbRefreshSingle(pkmnid)
|
||||
# end
|
||||
# end
|
||||
when 2 # Remove form override
|
||||
pkmn.forced_form = nil
|
||||
screen.pbRefreshSingle(pkmnid)
|
||||
# when 2 # Remove form override
|
||||
# pkmn.forced_form = nil
|
||||
# screen.pbRefreshSingle(pkmnid)
|
||||
end
|
||||
end
|
||||
next false
|
||||
|
||||
@@ -22,7 +22,7 @@ HELD_ITEMS = [:AIRBALLOON, :BRIGHTPOWDER, :EVIOLITE, :FLOATSTONE, :DESTINYKNOT,
|
||||
|
||||
INVALID_ITEMS = [:COVERFOSSIL, :PLUMEFOSSIL, :ACCURACYUP, :DAMAGEUP, :ANCIENTSTONE, :ODDKEYSTONE_FULL,
|
||||
:DEVOLUTIONSPRAY, :INVISIBALL]
|
||||
RANDOM_ITEM_EXCEPTIONS = [:DNASPLICERS,:POKEBALL, :DYNAMITE]
|
||||
RANDOM_ITEM_EXCEPTIONS = [:DNASPLICERS,:POKEBALL, :DYNAMITE, :PINKANBERRY]
|
||||
|
||||
def getRandomGivenTM(item)
|
||||
return item if item == nil
|
||||
|
||||
@@ -119,6 +119,7 @@ class BattleSpriteLoader
|
||||
new_extractor = get_sprite_extractor_instance(:AUTOGEN)
|
||||
return new_extractor.load_sprite(pif_sprite)
|
||||
else
|
||||
$Trainer.seen_qmarks_sprite=true if $Trainer
|
||||
#If autogen or base sprite aren't able to load a sprite then we have nothing else to load -> show a ? instead.
|
||||
return AnimatedBitmap.new(Settings::DEFAULT_SPRITE_PATH)
|
||||
end
|
||||
|
||||
@@ -10,8 +10,10 @@ CLOTHES_ADVENTURER = "fantasyadventurersoutfit"
|
||||
CLOTHES_EMERALD = "emeraldSPE"
|
||||
CLOTHES_PIKACHU_ONESIE = "pikaonesie"
|
||||
|
||||
CLOTHES_GLITCH = "glitzerset"
|
||||
CLOTHES_BREEDER="PKMBreeder"
|
||||
|
||||
|
||||
CLOTHES_LASS_YELLOW ="lass"
|
||||
CLOTHES_LASS_BLUE ="lass2"
|
||||
|
||||
@@ -48,7 +50,7 @@ HAT_SLOWKING_SHELL = "slowking"
|
||||
HAT_ZOROARK = "banefulfoxmask"
|
||||
HAT_FROG = "froghat"
|
||||
HAT_SANTA = "santa"
|
||||
|
||||
HAT_QMARKS = "glitzerset"
|
||||
|
||||
HAT_BREEDER_1="breedervisor"
|
||||
HAT_BREEDER_2="breederbandana"
|
||||
@@ -67,6 +69,9 @@ HAT_BIANCA = "bianca"
|
||||
HAT_CLEFAIRY = "clefairyearheadband"
|
||||
HAT_FLOWER = "mikufairy"
|
||||
|
||||
HAT_SKITTY_TV = "skittyTV"
|
||||
HAT_TVHEAD = "tvhead"
|
||||
|
||||
|
||||
HAT_CARDBOARD_BOX = "box"
|
||||
HAT_CAPTAIN = "seacaptain"
|
||||
@@ -116,3 +121,9 @@ HAIR_CHUCK = "chuck" #does not exist yet
|
||||
HAIR_PRYCE = "pryce" #does not exist yet
|
||||
HAIR_MORTY = "morty" #does not exist yet
|
||||
HAIR_JASMINE = "jasmine" #does not exist yet
|
||||
|
||||
HAIR_HOOH = "ho-oh"
|
||||
HAIR_CRESSELIA = "lunarbob"
|
||||
HAIR_LYCANROC="lycanrocshorthair"
|
||||
HAIR_HAPPINY="happinysuit"
|
||||
HAIR_LATIAS="SpecialLatias"
|
||||
@@ -43,32 +43,49 @@ def selectHairstyle(all_unlocked = false)
|
||||
$Trainer.hat = hat
|
||||
end
|
||||
|
||||
def swapToNextHairVersion()
|
||||
split_hair = getSplitHairFilenameAndVersionFromID($Trainer.hair)
|
||||
hair_version = split_hair[0]
|
||||
hair_style = split_hair[1]
|
||||
current_version = hair_version
|
||||
pbSEPlay("GUI party switch", 80, 100)
|
||||
newVersion = current_version.to_i + 1
|
||||
lastVersion = findLastHairVersion(hair_style)
|
||||
newVersion = lastVersion if newVersion <= 0
|
||||
newVersion = 1 if newVersion > lastVersion
|
||||
$Trainer.hair = getFullHairId(hair_style,newVersion)
|
||||
end
|
||||
|
||||
def selectHairColor
|
||||
original_color = $Trainer.hair_color
|
||||
original_hair = $Trainer.hair
|
||||
$game_switches[SWITCH_SELECTING_CLOTHES]=true
|
||||
$game_map.update
|
||||
display_outfit_preview()
|
||||
hat = $Trainer.hat
|
||||
commands = ["Shift up", "Shift down", "Toggle hat", "Reset", "Confirm", "Never Mind"]
|
||||
commands = ["Swap base color", "Shift up", "Shift down", "Toggle hat", "Remove dye", "Confirm", "Never Mind"]
|
||||
previous_input = 0
|
||||
|
||||
while (true)
|
||||
choice = pbShowCommands(nil, commands, commands.length, previous_input)
|
||||
previous_input = choice
|
||||
case choice
|
||||
when 0 #NEXT
|
||||
when 0 #change base
|
||||
swapToNextHairVersion()
|
||||
display_outfit_preview()
|
||||
ret = false
|
||||
when 1 #NEXT
|
||||
#playOutfitChangeAnimation()
|
||||
pbSEPlay("GUI storage pick up", 80, 100)
|
||||
shiftHairColor(10)
|
||||
display_outfit_preview()
|
||||
ret = true
|
||||
when 1 #PREVIOUS
|
||||
when 2 #PREVIOUS
|
||||
pbSEPlay("GUI storage pick up", 80, 100)
|
||||
shiftHairColor(-10)
|
||||
display_outfit_preview()
|
||||
ret = true
|
||||
when 2 #Toggle hat
|
||||
when 3 #Toggle hat
|
||||
pbSEPlay("GUI storage put down", 80, 100)
|
||||
if hat == $Trainer.hat
|
||||
$Trainer.hat = nil
|
||||
@@ -76,15 +93,16 @@ def selectHairColor
|
||||
$Trainer.hat = hat
|
||||
end
|
||||
display_outfit_preview()
|
||||
when 3 #Reset
|
||||
when 4 #Reset
|
||||
pbSEPlay("GUI storage put down", 80, 100)
|
||||
$Trainer.hair_color = 0
|
||||
display_outfit_preview()
|
||||
ret = false
|
||||
when 4 #Confirm
|
||||
when 5 #Confirm
|
||||
break
|
||||
else
|
||||
$Trainer.hair_color = original_color
|
||||
$Trainer.hair = original_hair
|
||||
ret = false
|
||||
break
|
||||
end
|
||||
|
||||
@@ -156,6 +156,8 @@ def findLastHairVersion(hairId)
|
||||
last_version = 0
|
||||
possible_versions.each { |version|
|
||||
hair_id = getFullHairId(hairId, version)
|
||||
echoln hair_id
|
||||
echoln pbResolveBitmap(getOverworldHairFilename(hair_id))
|
||||
if pbResolveBitmap(getOverworldHairFilename(hair_id))
|
||||
last_version = version
|
||||
else
|
||||
|
||||
@@ -9,7 +9,7 @@ module GameData
|
||||
else
|
||||
ret = self.front_sprite_bitmap(species, pkmn.shiny?, pkmn.bodyShiny?, pkmn.headShiny?)
|
||||
end
|
||||
ret.scale_bitmap(pkmn.sprite_scale) #for pokemon with size differences
|
||||
ret.scale_bitmap(pkmn.sprite_scale) if ret #for pokemon with size differences
|
||||
return ret
|
||||
end
|
||||
|
||||
|
||||
@@ -759,7 +759,7 @@ def give_date_specific_hats()
|
||||
current_date = Time.new
|
||||
if (current_date.day == 24 || current_date.day == 25) && current_date.month == 12
|
||||
if !$Trainer.unlocked_hats.include?(HAT_SANTA)
|
||||
pbCallBub(2,@event_id,true)
|
||||
pbCallBub(2, @event_id, true)
|
||||
pbMessage("Hi! We're giving out a special hat today for the holidays season. Enjoy!")
|
||||
obtainHat(HAT_SANTA)
|
||||
end
|
||||
@@ -851,7 +851,6 @@ def replaceFusionSpecies(pokemon, speciesToChange, newSpecies)
|
||||
echoln currentBody
|
||||
echoln currentHead
|
||||
|
||||
|
||||
return if !should_update_body && !should_update_head
|
||||
|
||||
newSpeciesBody = should_update_body ? newSpecies : currentBody
|
||||
@@ -897,26 +896,35 @@ end
|
||||
#@formatter:off
|
||||
def get_constellation_variable(pokemon)
|
||||
case pokemon
|
||||
when :IVYSAUR; return VAR_CONSTELLATION_IVYSAUR
|
||||
when :WARTORTLE; return VAR_CONSTELLATION_WARTORTLE
|
||||
when :ARCANINE; return VAR_CONSTELLATION_ARCANINE
|
||||
when :MACHOKE; return VAR_CONSTELLATION_MACHOKE
|
||||
when :RAPIDASH; return VAR_CONSTELLATION_RAPIDASH
|
||||
when :GYARADOS; return VAR_CONSTELLATION_GYARADOS
|
||||
when :ARTICUNO; return VAR_CONSTELLATION_ARTICUNO
|
||||
when :MEW; return VAR_CONSTELLATION_MEW
|
||||
# when :POLITOED; return VAR_CONSTELLATION_POLITOED
|
||||
# when :URSARING; return VAR_CONSTELLATION_URSARING
|
||||
# when :LUGIA; return VAR_CONSTELLATION_LUGIA
|
||||
# when :HOOH; return VAR_CONSTELLATION_HOOH
|
||||
# when :CELEBI; return VAR_CONSTELLATION_CELEBI
|
||||
# when :SLAKING; return VAR_CONSTELLATION_SLAKING
|
||||
# when :JIRACHI; return VAR_CONSTELLATION_JIRACHI
|
||||
# when :TYRANTRUM; return VAR_CONSTELLATION_TYRANTRUM
|
||||
# when :SHARPEDO; return VAR_CONSTELLATION_SHARPEDO
|
||||
# when :ARCEUS; return VAR_CONSTELLATION_ARCEUS
|
||||
when :IVYSAUR;
|
||||
return VAR_CONSTELLATION_IVYSAUR
|
||||
when :WARTORTLE;
|
||||
return VAR_CONSTELLATION_WARTORTLE
|
||||
when :ARCANINE;
|
||||
return VAR_CONSTELLATION_ARCANINE
|
||||
when :MACHOKE;
|
||||
return VAR_CONSTELLATION_MACHOKE
|
||||
when :RAPIDASH;
|
||||
return VAR_CONSTELLATION_RAPIDASH
|
||||
when :GYARADOS;
|
||||
return VAR_CONSTELLATION_GYARADOS
|
||||
when :ARTICUNO;
|
||||
return VAR_CONSTELLATION_ARTICUNO
|
||||
when :MEW;
|
||||
return VAR_CONSTELLATION_MEW
|
||||
# when :POLITOED; return VAR_CONSTELLATION_POLITOED
|
||||
# when :URSARING; return VAR_CONSTELLATION_URSARING
|
||||
# when :LUGIA; return VAR_CONSTELLATION_LUGIA
|
||||
# when :HOOH; return VAR_CONSTELLATION_HOOH
|
||||
# when :CELEBI; return VAR_CONSTELLATION_CELEBI
|
||||
# when :SLAKING; return VAR_CONSTELLATION_SLAKING
|
||||
# when :JIRACHI; return VAR_CONSTELLATION_JIRACHI
|
||||
# when :TYRANTRUM; return VAR_CONSTELLATION_TYRANTRUM
|
||||
# when :SHARPEDO; return VAR_CONSTELLATION_SHARPEDO
|
||||
# when :ARCEUS; return VAR_CONSTELLATION_ARCEUS
|
||||
end
|
||||
end
|
||||
|
||||
#@formatter:on
|
||||
|
||||
def promptCaughtPokemonAction(pokemon)
|
||||
@@ -1398,7 +1406,7 @@ def get_mart_exclusive_items(city)
|
||||
return items_list
|
||||
end
|
||||
|
||||
def calculate_pokemon_weight(pokemon,nerf=0)
|
||||
def calculate_pokemon_weight(pokemon, nerf = 0)
|
||||
|
||||
base_weight = pokemon.weight
|
||||
ivs = []
|
||||
@@ -1426,18 +1434,18 @@ def calculate_pokemon_weight(pokemon,nerf=0)
|
||||
|
||||
# Cap the weight between min and max values
|
||||
weight = [[weight, min_weight].max, max_weight].min
|
||||
weight -= nerf if weight- nerf > min_weight
|
||||
weight -= nerf if weight - nerf > min_weight
|
||||
return weight.round(2) # Round to 2 decimal places
|
||||
end
|
||||
|
||||
#nerf: remove x kg from each generated pokemon
|
||||
def generate_weight_contest_entries(species, level, resultsVariable,nerf=0)
|
||||
def generate_weight_contest_entries(species, level, resultsVariable, nerf = 0)
|
||||
#echoln "Generating Pokemon"
|
||||
pokemon1 = pbGenerateWildPokemon(species, level) #Pokemon.new(species,level)
|
||||
pokemon2 = pbGenerateWildPokemon(species, level) #Pokemon.new(species,level)
|
||||
new_weights = []
|
||||
new_weights << calculate_pokemon_weight(pokemon1,nerf)
|
||||
new_weights << calculate_pokemon_weight(pokemon2,nerf)
|
||||
new_weights << calculate_pokemon_weight(pokemon1, nerf)
|
||||
new_weights << calculate_pokemon_weight(pokemon2, nerf)
|
||||
echoln new_weights
|
||||
echoln "(nerfed by -#{nerf})"
|
||||
pbSet(resultsVariable, new_weights.max)
|
||||
@@ -1493,8 +1501,6 @@ def isPlayerFemale()
|
||||
return pbGet(VAR_TRAINER_GENDER) == GENDER_FEMALE
|
||||
end
|
||||
|
||||
|
||||
|
||||
def optionsMenu(options = [], cmdIfCancel = -1, startingOption = 0)
|
||||
cmdIfCancel = -1 if !cmdIfCancel
|
||||
result = pbShowCommands(nil, options, cmdIfCancel, startingOption)
|
||||
@@ -1529,13 +1535,12 @@ QUEST_REWARDS = [
|
||||
QuestReward.new(10, :LANTERN, 1, "This will allow you to illuminate caves without having to use a HM! Practical, isn't it?"),
|
||||
QuestReward.new(15, :LINKINGCORD, 3, "This strange cable triggers the evolution of Pokémon that typically evolve via trade. I know you'll put it to good use!"),
|
||||
QuestReward.new(20, :SLEEPINGBAG, 1, "This handy item will allow you to sleep anywhere you want. You won't even need hotels anymore!"),
|
||||
QuestReward.new(30, :MISTSTONE, 1, "This rare stone can evolve any Pokémon, regardless of their level or evolution method. Use it wisely!",true),
|
||||
QuestReward.new(45, :MASTERBALL, 1, "This rare ball can catch any Pokémon. Don't waste it!",true),
|
||||
QuestReward.new(60, :GSBALL, 1, "This mysterious ball is rumored to be the key to call upon the protector of Ilex Forest. It's a precious relic."),
|
||||
QuestReward.new(30, :MISTSTONE, 1, "This rare stone can evolve any Pokémon, regardless of their level or evolution method. Use it wisely!", true),
|
||||
QuestReward.new(50, :GSBALL, 1, "This mysterious ball is rumored to be the key to call upon the protector of Ilex Forest. It's a precious relic."),
|
||||
QuestReward.new(60, :MASTERBALL, 1, "This rare ball can catch any Pokémon. Don't waste it!", true),
|
||||
]
|
||||
|
||||
|
||||
def turnEventTowardsEvent(turning,turnedTowards)
|
||||
def turnEventTowardsEvent(turning, turnedTowards)
|
||||
event_x = turnedTowards.x
|
||||
event_y = turnedTowards.y
|
||||
if turning.x < event_x
|
||||
@@ -1563,8 +1568,7 @@ def turnPlayerTowardsEvent(event)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def displaySpriteWindowWithMessage(pif_sprite, message = "", x = 0, y = 0,z=0)
|
||||
def displaySpriteWindowWithMessage(pif_sprite, message = "", x = 0, y = 0, z = 0)
|
||||
spriteLoader = BattleSpriteLoader.new
|
||||
sprite_bitmap = spriteLoader.load_pif_sprite_directly(pif_sprite)
|
||||
pictureWindow = PictureWindow.new(sprite_bitmap.bitmap)
|
||||
@@ -1586,13 +1590,12 @@ def select_any_pokemon()
|
||||
return pbChooseList(commands, 0, nil, 1)
|
||||
end
|
||||
|
||||
|
||||
SWITCH_SS_ANNE_DEPARTED=88
|
||||
SWITCH_SNORLAX_GONE_ROUTE_12=110
|
||||
SWITCH_SS_ANNE_DEPARTED = 88
|
||||
SWITCH_SNORLAX_GONE_ROUTE_12 = 110
|
||||
SWITCH_TELEPORT_NPC = 122
|
||||
SWITCH_GOT_DIVE=317
|
||||
SWITCH_GOT_ROCK_CLIMB=661
|
||||
SWITCH_GOT_WATERFALL=388
|
||||
SWITCH_GOT_DIVE = 317
|
||||
SWITCH_GOT_ROCK_CLIMB = 661
|
||||
SWITCH_GOT_WATERFALL = 388
|
||||
|
||||
def fixMissedHMs()
|
||||
#Flash
|
||||
@@ -1611,7 +1614,7 @@ def fixMissedHMs()
|
||||
end
|
||||
|
||||
#Surf
|
||||
if $PokemonBag.pbQuantity(:HM03) < 1 && $game_self_switches[[107, 1, "A"]]
|
||||
if $PokemonBag.pbQuantity(:HM03) < 1 && $game_self_switches[[107, 1, "A"]]
|
||||
pbReceiveItem(:HM03)
|
||||
end
|
||||
|
||||
@@ -1621,22 +1624,87 @@ def fixMissedHMs()
|
||||
end
|
||||
|
||||
#Fly
|
||||
if $PokemonBag.pbQuantity(:HM02) < 1 && $game_self_switches[[439, 1, "B"]]
|
||||
if $PokemonBag.pbQuantity(:HM02) < 1 && $game_self_switches[[439, 1, "B"]]
|
||||
pbReceiveItem(:HM02)
|
||||
end
|
||||
|
||||
#Waterfall
|
||||
if $PokemonBag.pbQuantity(:HM05) < 1 && $game_switches[SWITCH_GOT_WATERFALL]
|
||||
if $PokemonBag.pbQuantity(:HM05) < 1 && $game_switches[SWITCH_GOT_WATERFALL]
|
||||
pbReceiveItem(:HM05)
|
||||
end
|
||||
|
||||
#Dive
|
||||
if $PokemonBag.pbQuantity(:HM06) < 1 && $game_switches[SWITCH_GOT_DIVE]
|
||||
if $PokemonBag.pbQuantity(:HM06) < 1 && $game_switches[SWITCH_GOT_DIVE]
|
||||
pbReceiveItem(:HM06)
|
||||
end
|
||||
|
||||
#Rock Climb
|
||||
if $PokemonBag.pbQuantity(:HM10) < 1 && $game_switches[SWITCH_GOT_ROCK_CLIMB]
|
||||
if $PokemonBag.pbQuantity(:HM10) < 1 && $game_switches[SWITCH_GOT_ROCK_CLIMB]
|
||||
pbReceiveItem(:HM10)
|
||||
end
|
||||
end
|
||||
|
||||
def fixFinishedRocketQuests()
|
||||
fix_broken_TR_quests()
|
||||
|
||||
var_tr_missions_cerulean = 288
|
||||
|
||||
switch_tr_mission_cerulean_4 = 1116
|
||||
switch_tr_mission_celadon_1 = 1084
|
||||
switch_tr_mission_celadon_2 = 1086
|
||||
switch_tr_mission_celadon_3 = 1088
|
||||
switch_tr_mission_celadon_4 = 1110
|
||||
switch_pinkan_done = 1119
|
||||
|
||||
nb_cerulean_missions = pbGet(var_tr_missions_cerulean)
|
||||
|
||||
finishTRQuest("tr_cerulean_1", :SUCCESS, true) if nb_cerulean_missions >= 1 && !pbCompletedQuest?("tr_cerulean_1")
|
||||
echoln pbCompletedQuest?("tr_cerulean_1")
|
||||
finishTRQuest("tr_cerulean_2", :SUCCESS, true) if nb_cerulean_missions >= 2 && !pbCompletedQuest?("tr_cerulean_2")
|
||||
finishTRQuest("tr_cerulean_3", :SUCCESS, true) if nb_cerulean_missions >= 3 && !pbCompletedQuest?("tr_cerulean_3")
|
||||
finishTRQuest("tr_cerulean_4", :SUCCESS, true) if $game_switches[switch_tr_mission_cerulean_4] && !pbCompletedQuest?("tr_cerulean_4")
|
||||
|
||||
finishTRQuest("tr_celadon_1", :SUCCESS, true) if $game_switches[switch_tr_mission_celadon_1] && !pbCompletedQuest?("tr_celadon_1")
|
||||
finishTRQuest("tr_celadon_2", :SUCCESS, true) if $game_switches[switch_tr_mission_celadon_2] && !pbCompletedQuest?("tr_celadon_2")
|
||||
finishTRQuest("tr_celadon_3", :SUCCESS, true) if $game_switches[switch_tr_mission_celadon_3] && !pbCompletedQuest?("tr_celadon_3")
|
||||
finishTRQuest("tr_celadon_4", :SUCCESS, true) if $game_switches[switch_tr_mission_celadon_4] && !pbCompletedQuest?("tr_celadon_4")
|
||||
|
||||
finishTRQuest("tr_pinkan", :SUCCESS, true) if $game_switches[switch_pinkan_done] && !pbCompletedQuest?("tr_pinkan")
|
||||
end
|
||||
|
||||
def fix_broken_TR_quests()
|
||||
for trainer_quest in $Trainer.quests
|
||||
if trainer_quest.id == 0 #tr quests were all set to ID 0 instead of their real ID in v 6.4.0
|
||||
for rocket_quest_id in TR_QUESTS.keys
|
||||
rocket_quest = TR_QUESTS[rocket_quest_id]
|
||||
next if !rocket_quest
|
||||
if trainer_quest.name == rocket_quest.name
|
||||
trainer_quest.id = rocket_quest_id
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def failAllIncompleteRocketQuests()
|
||||
for trainer_quest in $Trainer.quests
|
||||
finishTRQuest("tr_cerulean_1", :FAILURE) if trainer_quest.id == "tr_cerulean_1" && !pbCompletedQuest?("tr_cerulean_1")
|
||||
finishTRQuest("tr_cerulean_2", :FAILURE) if trainer_quest.id == "tr_cerulean_2" && !pbCompletedQuest?("tr_cerulean_2")
|
||||
finishTRQuest("tr_cerulean_3", :FAILURE) if trainer_quest.id == "tr_cerulean_3" && !pbCompletedQuest?("tr_cerulean_3")
|
||||
finishTRQuest("tr_cerulean_4", :FAILURE) if trainer_quest.id == "tr_cerulean_4" && !pbCompletedQuest?("tr_cerulean_4")
|
||||
|
||||
finishTRQuest("tr_celadon_1", :FAILURE) if trainer_quest.id == "tr_celadon_1" && !pbCompletedQuest?("tr_celadon_1")
|
||||
finishTRQuest("tr_celadon_2", :FAILURE) if trainer_quest.id == "tr_celadon_2" && !pbCompletedQuest?("tr_celadon_2")
|
||||
finishTRQuest("tr_celadon_3", :FAILURE) if trainer_quest.id == "tr_celadon_3" && !pbCompletedQuest?("tr_celadon_3")
|
||||
finishTRQuest("tr_celadon_4", :FAILURE) if trainer_quest.id == "tr_celadon_4" && !pbCompletedQuest?("tr_celadon_4")
|
||||
end
|
||||
end
|
||||
|
||||
def qmarkMaskCheck()
|
||||
if $Trainer.seen_qmarks_sprite
|
||||
unless hasHat?(HAT_QMARKS)
|
||||
obtainHat(HAT_QMARKS)
|
||||
obtainClothes(CLOTHES_GLITCH)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -227,7 +227,11 @@ class GenOneStyle
|
||||
@sprites["2poke"].y = 100
|
||||
|
||||
@sprites["fpoke"] = Sprite.new(@viewport)
|
||||
@sprites["fpoke"].bitmap = @spriteLoader.load_pif_sprite(random_fusion).bitmap
|
||||
|
||||
fusedPoke = @spriteLoader.load_pif_sprite(random_fusion)
|
||||
if fusedPoke
|
||||
@sprites["fpoke"].bitmap = fusedPoke.bitmap
|
||||
end
|
||||
@sprites["fpoke"].x = 125
|
||||
@sprites["fpoke"].y = 100
|
||||
@sprites["fpoke"].z = 999
|
||||
@@ -401,8 +405,10 @@ class GenOneStyle
|
||||
@sprites["2poke"].bitmap = @spriteLoader.load_base_sprite(random_fusion_head).bitmap
|
||||
|
||||
wait(150)
|
||||
|
||||
@sprites["fpoke"].bitmap = @spriteLoader.load_pif_sprite(random_fusion).bitmap
|
||||
fusedPoke = @spriteLoader.load_pif_sprite(random_fusion)
|
||||
if fusedPoke
|
||||
@sprites["fpoke"].bitmap = fusedPoke.bitmap
|
||||
end
|
||||
end
|
||||
|
||||
@sprites["fpoke"].opacity -= 10
|
||||
|
||||
@@ -92,7 +92,7 @@ QUESTS = {
|
||||
#Cerulean hotel
|
||||
3 => Quest.new(3, "Playing Cupid", "A boy in Cerulean City wants you bring a love letter to a Pokémon Breeder named Maude. She's probably somewhere in one of the routes near Cerulean City", QuestBranchHotels, "BW (18)", "Cerulean City", HotelQuestColor),
|
||||
4 => Quest.new(4, "Fishing for Sole", "A fisherman wants you to fish up an old boot. Hook it up with the old rod in any body of water.", QuestBranchHotels, "BW (71)", "Cerulean City", HotelQuestColor),
|
||||
5 => Quest.new(5, "Johto Pokémon", "An traveler in the PokéMart wants you to show him a Pokémon native to the Johto region.", QuestBranchHotels, "traveler_johto", "Cerulean City", HotelQuestColor),
|
||||
5 => Quest.new(5, "Johto Pokémon", "A traveler in the PokéMart wants you to show him a Pokémon native to the Johto region.", QuestBranchHotels, "traveler_johto", "Cerulean City", HotelQuestColor),
|
||||
"cerulean_2" => Quest.new(5, "Type Experts", "Defeat all of the Type Experts scattered around the Kanto region (#{pbGet(VAR_TYPE_EXPERTS_BEATEN)}/#{TOTAL_NB_TYPE_EXPERTS})", QuestBranchHotels, "expert-normal", "Cerulean City", HotelQuestColor),
|
||||
|
||||
#Route 24
|
||||
@@ -267,6 +267,10 @@ end
|
||||
def pbSetQuest(id, completed)
|
||||
$Trainer.quests = [] if $Trainer.quests.class == NilClass
|
||||
for q in $Trainer.quests
|
||||
echoln id
|
||||
echoln q.id
|
||||
echoln q.completed
|
||||
echoln "----"
|
||||
q.completed = completed if q.id == id
|
||||
end
|
||||
end
|
||||
@@ -328,12 +332,16 @@ class Questlog
|
||||
@box = 0
|
||||
@completed = []
|
||||
@ongoing = []
|
||||
|
||||
|
||||
fix_broken_TR_quests()
|
||||
for q in $Trainer.quests
|
||||
@ongoing << q if !q.completed && @ongoing.include?(q)
|
||||
@completed << q if q.completed && @completed.include?(q)
|
||||
end
|
||||
|
||||
for q in $Trainer.quests
|
||||
echoln "#{q.id}: #{q.completed}"
|
||||
@ongoing << q if !q.completed
|
||||
@completed << q if q.completed
|
||||
end
|
||||
@@ -376,6 +384,7 @@ class Questlog
|
||||
pbUpdate
|
||||
end
|
||||
|
||||
|
||||
def pbUpdate
|
||||
@frame = 0
|
||||
loop do
|
||||
@@ -385,13 +394,13 @@ class Questlog
|
||||
if @scene == 0
|
||||
break if Input.trigger?(Input::B)
|
||||
pbList(@sel_one) if Input.trigger?(Input::C)
|
||||
pbSwitch(:DOWN) if Input.trigger?(Input::DOWN)
|
||||
pbSwitch(:DOWN) if Input.press?(Input::DOWN)
|
||||
pbSwitch(:UP) if Input.trigger?(Input::UP)
|
||||
end
|
||||
if @scene == 1
|
||||
pbMain if Input.trigger?(Input::B)
|
||||
pbMove(:DOWN) if Input.trigger?(Input::DOWN)
|
||||
pbMove(:UP) if Input.trigger?(Input::UP)
|
||||
pbMove(:DOWN) if Input.press?(Input::DOWN)
|
||||
pbMove(:UP) if Input.press?(Input::UP)
|
||||
pbLoad(0) if Input.trigger?(Input::C)
|
||||
pbArrows
|
||||
end
|
||||
@@ -640,7 +649,6 @@ class Questlog
|
||||
end
|
||||
|
||||
def pbMove(dir)
|
||||
pbWait(1)
|
||||
if dir == :DOWN
|
||||
return if @sel_two == @ongoing.size - 1 && @mode == 0
|
||||
return if @sel_two == @completed.size - 1 && @mode == 1
|
||||
@@ -743,10 +751,11 @@ class Questlog
|
||||
end
|
||||
end
|
||||
end
|
||||
pbWait(4)
|
||||
end
|
||||
|
||||
def pbList(id)
|
||||
pbWait(1)
|
||||
pbWait(2)
|
||||
@sel_two = 0
|
||||
@page = 0
|
||||
@scene = 1
|
||||
|
||||
@@ -29,12 +29,9 @@ def acceptTRQuest(id, show_description = true)
|
||||
end
|
||||
|
||||
def addRocketQuest(id)
|
||||
echoln $Trainer.quests.length
|
||||
|
||||
$Trainer.quests = [] if $Trainer.quests.class == NilClass
|
||||
quest = TR_QUESTS[id]
|
||||
$Trainer.quests << quest if quest
|
||||
echoln $Trainer.quests.length
|
||||
end
|
||||
|
||||
def showNewTRMissionMessage(title, description, show_description)
|
||||
@@ -65,17 +62,17 @@ def finishTRQuest(id, status, silent = false)
|
||||
end
|
||||
|
||||
TR_QUESTS = {
|
||||
"tr_cerulean_1" => Quest.new(0, "Creepy Crawlies", "The Team Rocket Captain has tasked you with clearing the bug infestation in the temporary Rocket HQ in Cerulean City", QuestBranchRocket, "rocket_petrel", "Cerulean City", TRQuestColor),
|
||||
"tr_cerulean_2" => Quest.new(0, "No Fishing Zone", "Intimidate the fishermen at Nugget Bridge until they leave the area.", QuestBranchRocket, "rocket_petrel", "Cerulean City", TRQuestColor),
|
||||
"tr_cerulean_3" => Quest.new(0, "Disobedient Pokémon", "Bring back the Pokémon given by the Team Rocket Captain fainted to teach it a lesson.", QuestBranchRocket, "rocket_petrel", "Cerulean City", TRQuestColor),
|
||||
"tr_cerulean_4" => Quest.new(0, "Gran Theft Pokémon!", "Follow Petrel and go steal a rare Pokémon from a young girl.", QuestBranchRocket, "rocket_petrel", "Cerulean City", TRQuestColor),
|
||||
"tr_cerulean_1" => Quest.new("tr_cerulean_1", "Creepy Crawlies", "The Team Rocket Captain has tasked you with clearing the bug infestation in the temporary Rocket HQ in Cerulean City", QuestBranchRocket, "rocket_petrel", "Cerulean City", TRQuestColor),
|
||||
"tr_cerulean_2" => Quest.new("tr_cerulean_2", "No Fishing Zone", "Intimidate the fishermen at Nugget Bridge until they leave the area.", QuestBranchRocket, "rocket_petrel", "Cerulean City", TRQuestColor),
|
||||
"tr_cerulean_3" => Quest.new("tr_cerulean_3", "Disobedient Pokémon", "Bring back the Pokémon given by the Team Rocket Captain fainted to teach it a lesson.", QuestBranchRocket, "rocket_petrel", "Cerulean City", TRQuestColor),
|
||||
"tr_cerulean_4" => Quest.new("tr_cerulean_4", "Gran Theft Pokémon!", "Follow Petrel and go steal a rare Pokémon from a young girl.", QuestBranchRocket, "rocket_petrel", "Cerulean City", TRQuestColor),
|
||||
|
||||
"tr_celadon_1" => Quest.new(0, "Supplying the new grunts", "Catch 4 Pokémon with Rocket Balls in the outskirts of Celadon City.", QuestBranchRocket, "rocket_archer", "Celadon City", TRQuestColor),
|
||||
"tr_celadon_2" => Quest.new(0, "Interception!", "Intercept the TMs shipment to the Celadon Store and pose as the delivery person to deliver fake TMs.", QuestBranchRocket, "rocket_archer", "Celadon City", TRQuestColor),
|
||||
"tr_celadon_3" => Quest.new(0, "Pokémon Collector", "Go meet a Pokémon collector on Route 22, near Viridian City and get his rare Pokémon.", QuestBranchRocket, "rocket_archer", "Celadon City", TRQuestColor),
|
||||
"tr_celadon_4" => Quest.new(0, "Operation Shutdown", "The Team Rocket HQ is being raided! Regroup with the rest of the grunts in Goldenrod Tunnel!", QuestBranchRocket, "rocket_archer", "Goldenrod City", TRQuestColor),
|
||||
"tr_celadon_1" => Quest.new("tr_celadon_1", "Supplying the new grunts", "Catch 4 Pokémon with Rocket Balls in the outskirts of Celadon City.", QuestBranchRocket, "rocket_archer", "Celadon City", TRQuestColor),
|
||||
"tr_celadon_2" => Quest.new("tr_celadon_2", "Interception!", "Intercept the TMs shipment to the Celadon Store and pose as the delivery person to deliver fake TMs.", QuestBranchRocket, "rocket_archer", "Celadon City", TRQuestColor),
|
||||
"tr_celadon_3" => Quest.new( "tr_celadon_3", "Pokémon Collector", "Go meet a Pokémon collector on Route 22, near Viridian City and get his rare Pokémon.", QuestBranchRocket, "rocket_archer", "Celadon City", TRQuestColor),
|
||||
"tr_celadon_4" => Quest.new("tr_celadon_4", "Operation Shutdown", "The Team Rocket HQ is being raided! Regroup with the rest of the grunts in Goldenrod Tunnel!", QuestBranchRocket, "rocket_archer", "Goldenrod City", TRQuestColor),
|
||||
|
||||
"tr_pinkan" => Quest.new(0, "Pinkan Island!", "Help Team Rocket with a heist on a Pokémon nature preserve!", QuestBranchRocket, "rocket_archer", "Goldenrod City", TRQuestColor),
|
||||
"tr_pinkan" => Quest.new("tr_pinkan", "Pinkan Island!", "Help Team Rocket with a heist on a Pokémon nature preserve!", QuestBranchRocket, "rocket_archer", "Goldenrod City", TRQuestColor),
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -476,9 +476,6 @@ RandPokeNick = [
|
||||
"Carlos",
|
||||
"hm_slave",
|
||||
"Varicelle",
|
||||
"Google",
|
||||
"Twitter",
|
||||
"Facebook",
|
||||
"Mia",
|
||||
"miam",
|
||||
"Lame-o",
|
||||
|
||||
@@ -14,7 +14,7 @@ module Settings
|
||||
|
||||
|
||||
VERSION_FILE_URL = "https://raw.githubusercontent.com/infinitefusion/infinitefusion-e18/main/Data/VERSION"
|
||||
CUSTOM_DEX_FILE_URL = "https://raw.githubusercontent.com/infinitefusion/infinitefusion-e18/main/Data/dex.json"
|
||||
CUSTOM_DEX_FILE_URL = "https://raw.githubusercontent.com/infinitefusion/pif-downloadables/refs/heads/master/dex.json"
|
||||
|
||||
# CUSTOM SPRITES
|
||||
AUTOGEN_SPRITES_REPO_URL = ""
|
||||
@@ -24,11 +24,13 @@ module Settings
|
||||
BASE_POKEMON_ALT_SPRITES_REPO_URL = ""
|
||||
BASE_POKEMON_ALT_SPRITES_NEW_URL = ""
|
||||
|
||||
BASE_POKEMON_SPRITESHEET_URL = "https://infinitefusion.net/spritesheets/spritesheets_base/"
|
||||
CUSTOM_FUSIONS_SPRITESHEET_URL = "https://infinitefusion.net/spritesheets/spritesheets_custom/"
|
||||
|
||||
BASE_POKEMON_SPRITESHEET_RESIZED_URL = "https://infinitefusion.net/spritesheets_resized/spritesheets_base/"
|
||||
CUSTOM_FUSIONS_SPRITESHEET_RESIZED_URL = "https://infinitefusion.net/spritesheets_resized/spritesheets_custom/"
|
||||
BASE_POKEMON_SPRITESHEET_URL = "https://infinitefusion.net/spritesheets/spritesheets_base/" #legacy
|
||||
CUSTOM_FUSIONS_SPRITESHEET_URL = "https://infinitefusion.net/spritesheets/spritesheets_custom/" #legacy
|
||||
BASE_POKEMON_SPRITESHEET_RESIZED_URL = "https://infinitefusion.net/spritesheets_resized/spritesheets_base/" #legacy
|
||||
CUSTOM_FUSIONS_SPRITESHEET_RESIZED_URL = "https://infinitefusion.net/spritesheets_resized/spritesheets_custom/" #legacy
|
||||
|
||||
BASE_POKEMON_SPRITESHEET_TRUE_SIZE_URL = "https://infinitefusion.net/customsprites/spritesheets/spritesheets_base/"
|
||||
CUSTOM_FUSIONS_SPRITESHEET_TRUE_SIZE_URL = "https://infinitefusion.net/customsprites/spritesheets/spritesheets_custom/"
|
||||
|
||||
CUSTOMSPRITES_RATE_MAX_NB_REQUESTS = 5 #Nb. requests allowed in each time window
|
||||
CUSTOMSPRITES_ENTRIES_RATE_TIME_WINDOW = 120 # In seconds
|
||||
@@ -42,8 +44,8 @@ module Settings
|
||||
AI_ENTRIES_RATE_LOG_FILE = 'Data/pokedex/rate_limit.log' # Path to the log file
|
||||
|
||||
#Spritepack
|
||||
NEWEST_SPRITEPACK_MONTH = 12
|
||||
NEWEST_SPRITEPACK_YEAR = 2024
|
||||
NEWEST_SPRITEPACK_MONTH = 1
|
||||
NEWEST_SPRITEPACK_YEAR = 2025
|
||||
|
||||
|
||||
end
|
||||
|
||||
BIN
Data/items.dat
@@ -220,6 +220,13 @@
|
||||
"tags": "celadon",
|
||||
"howToGet": "city-exclusive outfit"
|
||||
},
|
||||
{
|
||||
"id": "flying",
|
||||
"name": "Flying Outfit",
|
||||
"description": "An aerodynamic outfit for gliding through the air. It captures the essence of Flying-type Pokémon.",
|
||||
"price": 10000,
|
||||
"tags": "type-flying,special"
|
||||
},
|
||||
{
|
||||
"id": "fusionnerd",
|
||||
"name": "Fusion Outfit",
|
||||
@@ -228,6 +235,11 @@
|
||||
"tags": "pokemon-fused,special,",
|
||||
"howToGet": "cinnabar lab after fusing 100 times"
|
||||
},
|
||||
{
|
||||
"id": "glitzerset",
|
||||
"name": "Glitzer",
|
||||
"price": 2550
|
||||
},
|
||||
{
|
||||
"id": "gothhoodie",
|
||||
"name": "Goth Hoodie",
|
||||
@@ -306,8 +318,8 @@
|
||||
},
|
||||
{
|
||||
"id": "lady",
|
||||
"name": "Summer Dress",
|
||||
"description": "An elegant white dress with a ribbon at the waist, radiating a sense of grace and sophistication.",
|
||||
"name": "Elegant Dress",
|
||||
"description": "An elegant summer dress with a ribbon at the waist, radiating a sense of grace and sophistication.",
|
||||
"done": "yes",
|
||||
"price": 1500,
|
||||
"tags": "cerulean",
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"name": "Bald",
|
||||
"description": "A completely bald look - no hair, no fuss, just pure, unadulterated scalp!",
|
||||
"done": "yes",
|
||||
"price": 0,
|
||||
"price": 500,
|
||||
"tags": "no-hair"
|
||||
},
|
||||
{
|
||||
@@ -87,6 +87,7 @@
|
||||
},
|
||||
{
|
||||
"id": "dancer",
|
||||
"name": "Dancer",
|
||||
"done": "yes",
|
||||
"price": 500,
|
||||
"tags": "fuchsia",
|
||||
@@ -151,12 +152,19 @@
|
||||
"tags": "medium, untied, spiky, thick, npc,",
|
||||
"howToGet": "garys mom in their house (lol)?"
|
||||
},
|
||||
{
|
||||
"id": "glitzerset",
|
||||
"name": "Pomeg Cut",
|
||||
"description": "A cute cut that is styled like a Pomeg berry!",
|
||||
"price": 2000,
|
||||
"tags": "kin"
|
||||
},
|
||||
{
|
||||
"id": "happinysuit",
|
||||
"name": "Curled Happiny Ponytail",
|
||||
"name": "Playhouse Ponytail",
|
||||
"description": "A cute curly ponytail styled just like a Happiny. A wonderfully charming style for any fans of Baby Pokémon.",
|
||||
"len": 108,
|
||||
"price": 5000,
|
||||
"price": 3000,
|
||||
"tags": "long, tied, smooth, pokemon,",
|
||||
"howToGet": "quest?"
|
||||
},
|
||||
@@ -172,6 +180,7 @@
|
||||
},
|
||||
{
|
||||
"id": "highbun",
|
||||
"name": "High-bun",
|
||||
"done": "yes",
|
||||
"price": 500,
|
||||
"tags": "default"
|
||||
@@ -194,7 +203,10 @@
|
||||
},
|
||||
{
|
||||
"id": "ho-oh",
|
||||
"price": 5000
|
||||
"name": "Phoenix Crest",
|
||||
"description": "A bold, fiery style featuring a high, curved ponytail resembling the sweeping feathers of Ho-Oh.",
|
||||
"price": 5000,
|
||||
"howToGet": "saffron boutique"
|
||||
},
|
||||
{
|
||||
"id": "janine",
|
||||
@@ -207,7 +219,10 @@
|
||||
"howToGet": "fuchsia city salon"
|
||||
},
|
||||
{
|
||||
"id": "jessie"
|
||||
"id": "jessie",
|
||||
"name": "Rocket Wave",
|
||||
"description": "A dramatic, sleek style with ultra-long hair swept back into a high, gravity-defying wave.",
|
||||
"price": 2000
|
||||
},
|
||||
{
|
||||
"id": "kurt",
|
||||
@@ -294,10 +309,15 @@
|
||||
"name": "Lunar Cut",
|
||||
"description": "A bob cut shaped like a crescent moon, with a sleek, curved silhouette.",
|
||||
"price": 5000,
|
||||
"tags": "special",
|
||||
"howToGet": "quest? cresselia outfit"
|
||||
},
|
||||
{
|
||||
"id": "lycanrocshorthair"
|
||||
"id": "lycanrocshorthair",
|
||||
"name": "Lupine Cut",
|
||||
"description": "A sleek cut that is reminiscent of a Lycanroc's mane",
|
||||
"price": 3000,
|
||||
"tags": "special"
|
||||
},
|
||||
{
|
||||
"id": "mawile",
|
||||
@@ -429,7 +449,7 @@
|
||||
"tags": "default,"
|
||||
},
|
||||
{
|
||||
"id": "pompadourdelinquentoutfit",
|
||||
"id": "pompadour",
|
||||
"name": "Pompadour",
|
||||
"price": 2000,
|
||||
"tags": "violet,"
|
||||
@@ -483,7 +503,8 @@
|
||||
"howToGet": "Celadon special"
|
||||
},
|
||||
{
|
||||
"id": "samurai"
|
||||
"id": "samurai",
|
||||
"name": "Samurai"
|
||||
},
|
||||
{
|
||||
"id": "short1",
|
||||
@@ -505,12 +526,16 @@
|
||||
},
|
||||
{
|
||||
"id": "shortspike",
|
||||
"name": "Short Spikes",
|
||||
"done": "yes",
|
||||
"price": 500,
|
||||
"tags": "default,"
|
||||
},
|
||||
{
|
||||
"id": "SpecialLatias"
|
||||
"id": "SpecialLatias",
|
||||
"name": "Eon Bob",
|
||||
"description": "A layered bob with long, outward curls, exuding a gentle and mysterious charm.",
|
||||
"price": 5000
|
||||
},
|
||||
{
|
||||
"id": "vetf",
|
||||
|
||||
@@ -142,6 +142,7 @@
|
||||
"id": "carbink",
|
||||
"name": "Carbink Headband",
|
||||
"description": "A cute, rock-solid headband resembling Carbink.",
|
||||
"done": "yes",
|
||||
"price": 5000,
|
||||
"tags": "hat,pokemon-carbink"
|
||||
},
|
||||
@@ -333,6 +334,7 @@
|
||||
"id": "firefigther",
|
||||
"name": "Firefighter Hat",
|
||||
"description": "A safety helmet made for brave heroes who put their lives on the line every day.",
|
||||
"done": "yes",
|
||||
"price": 0,
|
||||
"tags": "hat, cinnabar,",
|
||||
"howToGet": "type trainer"
|
||||
@@ -366,6 +368,15 @@
|
||||
"tags": "hat,trainer",
|
||||
"howToGet": "gym reward"
|
||||
},
|
||||
{
|
||||
"id": "glitzerset",
|
||||
"name": "Glitched Mask",
|
||||
"description": "An odd mask that makes you look like you just stepped out of a corrupted save file. ",
|
||||
"done": "yes",
|
||||
"price": 10000,
|
||||
"tags": "mask,special,",
|
||||
"howToGet": "Obtained by defeating a Pokemon without a sprite"
|
||||
},
|
||||
{
|
||||
"id": "glasses",
|
||||
"name": "Round Glasses",
|
||||
@@ -432,9 +443,17 @@
|
||||
"done": "yes",
|
||||
"len": 63,
|
||||
"price": 10000,
|
||||
"tags": "floating,",
|
||||
"tags": "floating,pokemon-shedinja",
|
||||
"howToGet": "reward for beating the ilex forest shedinja encounter? reward for showing a shedinja to someone?"
|
||||
},
|
||||
{
|
||||
"id": "headlacecovering",
|
||||
"name": "Lace Covering",
|
||||
"description": "A delicate see-through lace covering that is worn over the head.",
|
||||
"done": "yes",
|
||||
"price": 4500,
|
||||
"tags": "hat,vermillion"
|
||||
},
|
||||
{
|
||||
"id": "headparas",
|
||||
"name": "Head Paras",
|
||||
@@ -590,6 +609,7 @@
|
||||
"id": "ludicolosombrero",
|
||||
"name": "Ludicolo Sombrero",
|
||||
"description": "A festive Sombrero that is often worn during fiestas.",
|
||||
"done": "yes",
|
||||
"len": 53,
|
||||
"price": 18000,
|
||||
"tags": "hat,pokemon-lotad,pokemon-lombre,pokemon-ludicolo,weather-warm,"
|
||||
@@ -608,6 +628,7 @@
|
||||
"id": "lycanrochooddown",
|
||||
"name": "Lycanroc Hood (down)",
|
||||
"description": "A fluffy hood. Down for those who want a little sun.",
|
||||
"done": "yes",
|
||||
"price": 12000,
|
||||
"tags": "pokemon-rockruff,pokemon-lycanroc_d,pokemon-lycanroc_n,"
|
||||
},
|
||||
@@ -615,6 +636,7 @@
|
||||
"id": "lycanrochoodup",
|
||||
"name": "Lycanroc Hood (up)",
|
||||
"description": "A fluffy hood. Up for those who shy away from the sun",
|
||||
"done": "yes",
|
||||
"price": 12000,
|
||||
"tags": "pokemon-rockruff,pokemon-lycanroc_d,pokemon-lycanroc_n,"
|
||||
},
|
||||
@@ -813,7 +835,7 @@
|
||||
},
|
||||
{
|
||||
"id": "pikhatchuf",
|
||||
"name": "Head Pikachu",
|
||||
"name": "Head Pikachu (F)",
|
||||
"description": "A female Pikachu that has taken a liking to perching atop a trainer's head.",
|
||||
"done": "yes",
|
||||
"len": 75,
|
||||
@@ -823,7 +845,7 @@
|
||||
},
|
||||
{
|
||||
"id": "pikhatchum",
|
||||
"name": "Head Pikachu",
|
||||
"name": "Head Pikachu (M)",
|
||||
"description": "A male Pikachu that has taken a liking to perching atop a trainer's head.",
|
||||
"done": "yes",
|
||||
"len": 73,
|
||||
@@ -958,6 +980,14 @@
|
||||
"price": 4500,
|
||||
"tags": "glasses,mask,pokemon-budew,pokemon-roselia,pokemon-roserade,celadon"
|
||||
},
|
||||
{
|
||||
"id": "sableyemask",
|
||||
"name": "Sableye Mask",
|
||||
"description": "A creepy, gem-eyed disguise that lets you channel your inner trickster.",
|
||||
"done": "yes",
|
||||
"price": 4500,
|
||||
"tags": "mask,pokemon-sableye"
|
||||
},
|
||||
{
|
||||
"id": "sabrinasballs",
|
||||
"name": "Levitating Balls",
|
||||
@@ -981,6 +1011,7 @@
|
||||
"id": "santa",
|
||||
"name": "Festive Hat",
|
||||
"description": "A warm, snug stocking cap worn during a festive holiday season.",
|
||||
"done": "yes",
|
||||
"price": 25000,
|
||||
"tags": "hat,"
|
||||
},
|
||||
@@ -1023,6 +1054,14 @@
|
||||
"price": 3500,
|
||||
"tags": "hat,weather-cold,blackthorn,mahogany"
|
||||
},
|
||||
{
|
||||
"id": "skittyTV",
|
||||
"name": "Skitty TV",
|
||||
"description": "A wearable TV themed like a Skitty. Use it to watch your battle replays!",
|
||||
"price": 5000,
|
||||
"tags": "hat,",
|
||||
"howToGet": "goldenrod radio tower"
|
||||
},
|
||||
{
|
||||
"id": "sleepmask",
|
||||
"name": "Mareep Sleep Mask",
|
||||
@@ -1140,6 +1179,14 @@
|
||||
"price": 2500,
|
||||
"tags": "glasses,violet,"
|
||||
},
|
||||
{
|
||||
"id": "tvhead",
|
||||
"name": "TV Head",
|
||||
"description": "A TV worn as a helmet that could probably be used to watch replays of your battles... If only it worked!",
|
||||
"done": "yes",
|
||||
"price": 4500,
|
||||
"tags": "hat,"
|
||||
},
|
||||
{
|
||||
"id": "veteranM",
|
||||
"name": "Black Flat Cap",
|
||||
@@ -1163,6 +1210,7 @@
|
||||
"id": "waterdress",
|
||||
"name": "Straw Hat",
|
||||
"description": "A simple hat made out of straw that is typically worn by bug-catchers.",
|
||||
"done": "yes",
|
||||
"price": 1500,
|
||||
"tags": "hat,pewter,",
|
||||
"howToGet": "trainer clothing store?"
|
||||
|
||||
BIN
Data/species.dat
@@ -1,5 +1,4 @@
|
||||
1737558625
|
||||
1737558626
|
||||
1737558626
|
||||
1737558656
|
||||
1737558656
|
||||
1739029866
|
||||
1739029866
|
||||
1739029866
|
||||
1739029871
|
||||
@@ -1,55 +1,79 @@
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/315.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/206.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/206/206.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/240.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/296.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/296/296.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/219.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/457.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/457/457.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/298.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/390.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/174.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/311.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/311/311.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/115.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/129.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/129/129.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/67.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/329.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/53.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/358.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/358/358b.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/9.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/4.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/16.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/475.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/250.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/250/250.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/420/420.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/25/25.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/135.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/209.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/209/209a.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/232/232.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/47/47b.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/227/227.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/137/137.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/47/47a.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/47/47.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/248.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/449.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/449/449.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/137/137a.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/222/222a.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/43.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/301.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/114.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/114/114.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/294/294.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/25.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/199.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/321.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/321/321.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/451/451.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/287.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/155.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/155/155.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/461.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/84.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/84/84.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/98.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/180.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/139.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/245.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/245/245.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/331.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/3.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/3/3.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/286.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/410.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/410/410.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/181.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/469.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/469/469.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/380.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/260.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/358/358.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/498.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/429.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/124.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/124/124a.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/267.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/374.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/374/374b.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/233/233.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/161/161.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/260/260.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/240.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/46.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/46/46.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/418.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/412.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/412/412.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/315.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/371.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/371/371.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/386.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/1.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/1/1.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/254.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/255.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/170.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/398.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/398/398.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/413.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/263.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/100.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/448.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/448/448.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/263/263.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/242.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/411.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/411/411.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/19.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/163.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/255.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/34.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/34/34.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/163/163.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/233/233.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/185.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/344.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/344/344.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/184.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/385.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/424.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/339.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/339/339.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/83.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/468.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_base/225.png
|
||||
Graphics/CustomBattlers/spritesheets/spritesheets_custom/225/225.png
|
||||
|
||||
BIN
Graphics/.DS_Store
vendored
Normal file
BIN
Graphics/Battlers/.DS_Store
vendored
Normal file
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 12 KiB |
BIN
Graphics/Characters/.DS_Store
vendored
Normal file
BIN
Graphics/Characters/player/.DS_Store
vendored
Normal file
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
BIN
Graphics/Characters/player/clothes/flying/clothes_run_flying.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
@@ -0,0 +1,5 @@
|
||||
IMPORTANT:
|
||||
- The items are named this way to note they are a set but in game it'd be good to clarify what all three are
|
||||
Outfit - "Glitzer" (due to being based on the "Glitzer Popping" exploit)
|
||||
Hair - "Pomeg Cut" (Pomeg berries are related to the exploit)
|
||||
Hat - "Decamark" (also related)
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
BIN
Graphics/Characters/player/hair/.DS_Store
vendored
Normal file
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.8 KiB |