1 Commits

Author SHA1 Message Date
infinitefusion
5657d28c78 whirl islands map 2025-01-13 21:14:15 -05:00
321 changed files with 533682 additions and 54771 deletions

BIN
.DS_Store vendored

Binary file not shown.

13
.gitignore vendored
View File

@@ -1,14 +1,5 @@
Graphics/CustomBattlers/local_sprites/*
Graphics/Pokemon/FusionIcons/* Graphics/Pokemon/FusionIcons/*
Graphics/CustomBattlers/spritesheets
Data/sprites/* Data/sprites/*
Data/VERSION 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

Binary file not shown.

Binary file not shown.

BIN
Data/.DS_Store vendored

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Data/Map099.rxdata Normal file

Binary file not shown.

BIN
Data/Map101.rxdata Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -5,8 +5,8 @@
#==============================================================================# #==============================================================================#
module Settings module Settings
# The version of your game. It has to adhere to the MAJOR.MINOR.PATCH format. # The version of your game. It has to adhere to the MAJOR.MINOR.PATCH format.
GAME_VERSION = '6.4.6' GAME_VERSION = '6.4.5'
GAME_VERSION_NUMBER = "6.4.7" GAME_VERSION_NUMBER = "6.4.5"
LATEST_GAME_RELEASE = "6.4" LATEST_GAME_RELEASE = "6.4"
POKERADAR_LIGHT_ANIMATION_RED_ID = 17 POKERADAR_LIGHT_ANIMATION_RED_ID = 17
@@ -63,8 +63,6 @@ module Settings
SPRITES_FILE_URL = "https://raw.githubusercontent.com/infinitefusion/infinitefusion-e18/main/Data/sprites/CUSTOM_SPRITES" 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" 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 = "" STARTUP_MESSAGES = ""
@@ -488,7 +486,7 @@ module Settings
[562, 50, :NINJASK,45,50], #Boon Island [562, 50, :NINJASK,45,50], #Boon Island
[603, 50, :KECLEON,45,50], #Chrono Island [603, 50, :KECLEON,45,50], #Chrono Island
[654, 50, :WHIMSICOTT,32,45], #Brine Road [654, 50, :WHIMSICOTT,32,45], #Brine Road
[559, 50, :SCRAGGY,32,45] #Kindle Road [654, 50, :SCRAGGY,32,45] #Kindle Road
] ]
#============================================================================= #=============================================================================

View File

@@ -21,7 +21,8 @@ module SaveData
# @param file_path [String] path of the file to load from # @param file_path [String] path of the file to load from
# @return [Hash, Array] loaded save data # @return [Hash, Array] loaded save data
# @raise [IOError, SystemCallError] if file opening fails # @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 save_data = nil
File.open(file_path) do |file| File.open(file_path) do |file|
data = Marshal.load(file) data = Marshal.load(file)

View File

@@ -750,7 +750,6 @@ Events.onEndBattle += proc { |_sender,e|
pbHoneyGather(pkmn) pbHoneyGather(pkmn)
end end
pickUpTypeItemSetBonus() pickUpTypeItemSetBonus()
qmarkMaskCheck()
when 2, 5 # Lose, draw when 2, 5 # Lose, draw
if !canLose if !canLose
$game_system.bgm_unpause $game_system.bgm_unpause

View File

@@ -32,8 +32,6 @@ class Player < Trainer
attr_accessor :card_background attr_accessor :card_background
attr_accessor :unlocked_card_backgrounds attr_accessor :unlocked_card_backgrounds
attr_accessor :seen_qmarks_sprite
# @return [Array<Boolean>] the player's Gym Badges (true if owned) # @return [Array<Boolean>] the player's Gym Badges (true if owned)
attr_accessor :badges attr_accessor :badges
@@ -295,7 +293,5 @@ class Player < Trainer
@card_background = Settings::DEFAULT_TRAINER_CARD_BG @card_background = Settings::DEFAULT_TRAINER_CARD_BG
@unlocked_card_backgrounds = [@card_background] @unlocked_card_backgrounds = [@card_background]
@seen_qmarks_sprite = false
end end
end end

View File

@@ -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 @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) @language = 0 # Language (see also Settings::LANGUAGES in script PokemonSystem)
@runstyle = 0 # Default movement speed (0=walk, 1=run) @runstyle = 0 # Default movement speed (0=walk, 1=run)
@bgmvolume = 40 # Volume of background music and ME @bgmvolume = 100 # Volume of background music and ME
@sevolume = 40 # Volume of sound effects @sevolume = 100 # Volume of sound effects
@textinput = 1 # Text input mode (0=cursor, 1=keyboard) @textinput = 1 # Text input mode (0=cursor, 1=keyboard)
@quicksurf = 0 @quicksurf = 0
@battle_type = 0 @battle_type = 0

View File

@@ -115,16 +115,14 @@ end
# selected (or nil if the selection was canceled). "default", if specified, is # 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 ID of the species to initially select. Pressing Input::ACTION will toggle
# the list sorting between numerical and alphabetical. # the list sorting between numerical and alphabetical.
def pbChooseSpeciesList(default = nil,max=nil) def pbChooseSpeciesList(default = nil)
# commands = [] # commands = []
# GameData::Species.each { |s| commands.push([s.id_number, s.real_name, s.id]) if s.form == 0 } # GameData::Species.each { |s| commands.push([s.id_number, s.real_name, s.id]) if s.form == 0 }
# return pbChooseList(commands, default, nil, -1) # return pbChooseList(commands, default, nil, -1)
# #
defaultNumber = default == nil ? 1 : getDexNumberForSpecies(default) defaultNumber = default == nil ? 1 : getDexNumberForSpecies(default)
params = ChooseNumberParams.new params = ChooseNumberParams.new
params.setRange(1,PBSpecies.maxValue)
max = max ? max : PBSpecies.maxValue
params.setRange(1,max)
params.setInitialValue(defaultNumber) params.setInitialValue(defaultNumber)
dexNum = pbMessageChooseNumber("dex number?",params) dexNum = pbMessageChooseNumber("dex number?",params)
return GameData::Species.get(dexNum) return GameData::Species.get(dexNum)

View File

@@ -858,7 +858,8 @@ PokemonDebugMenuCommands.register("speciesform", {
_INTL("Species {1}, form {2} (forced).", pkmn.speciesName, pkmn.form)][(pkmn.forced_form.nil?) ? 0 : 1] _INTL("Species {1}, form {2} (forced).", pkmn.speciesName, pkmn.form)][(pkmn.forced_form.nil?) ? 0 : 1]
cmd = screen.pbShowCommands(msg, [ cmd = screen.pbShowCommands(msg, [
_INTL("Set species"), _INTL("Set species"),
_INTL("Set fusion species")], cmd) _INTL("Set form"),
_INTL("Remove form override")], cmd)
break if cmd < 0 break if cmd < 0
case cmd case cmd
when 0 # Set species when 0 # Set species
@@ -870,31 +871,9 @@ PokemonDebugMenuCommands.register("speciesform", {
end end
pkmn.calc_stats pkmn.calc_stats
$Trainer.pokedex.register(pkmn) if !settingUpBattle $Trainer.pokedex.register(pkmn) if !settingUpBattle
$Trainer.pokedex.set_owned(pkmn.species) if !settingUpBattle
screen.pbRefreshSingle(pkmnid) screen.pbRefreshSingle(pkmnid)
end end
when 1 # Set form 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 # cmd2 = 0
# formcmds = [[], []] # formcmds = [[], []]
# GameData::Species.each do |sp| # GameData::Species.each do |sp|
@@ -922,9 +901,9 @@ PokemonDebugMenuCommands.register("speciesform", {
# screen.pbRefreshSingle(pkmnid) # screen.pbRefreshSingle(pkmnid)
# end # end
# end # end
# when 2 # Remove form override when 2 # Remove form override
# pkmn.forced_form = nil pkmn.forced_form = nil
# screen.pbRefreshSingle(pkmnid) screen.pbRefreshSingle(pkmnid)
end end
end end
next false next false

View File

@@ -22,7 +22,7 @@ HELD_ITEMS = [:AIRBALLOON, :BRIGHTPOWDER, :EVIOLITE, :FLOATSTONE, :DESTINYKNOT,
INVALID_ITEMS = [:COVERFOSSIL, :PLUMEFOSSIL, :ACCURACYUP, :DAMAGEUP, :ANCIENTSTONE, :ODDKEYSTONE_FULL, INVALID_ITEMS = [:COVERFOSSIL, :PLUMEFOSSIL, :ACCURACYUP, :DAMAGEUP, :ANCIENTSTONE, :ODDKEYSTONE_FULL,
:DEVOLUTIONSPRAY, :INVISIBALL] :DEVOLUTIONSPRAY, :INVISIBALL]
RANDOM_ITEM_EXCEPTIONS = [:DNASPLICERS,:POKEBALL, :DYNAMITE, :PINKANBERRY] RANDOM_ITEM_EXCEPTIONS = [:DNASPLICERS,:POKEBALL, :DYNAMITE]
def getRandomGivenTM(item) def getRandomGivenTM(item)
return item if item == nil return item if item == nil

View File

@@ -119,7 +119,6 @@ class BattleSpriteLoader
new_extractor = get_sprite_extractor_instance(:AUTOGEN) new_extractor = get_sprite_extractor_instance(:AUTOGEN)
return new_extractor.load_sprite(pif_sprite) return new_extractor.load_sprite(pif_sprite)
else 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. #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) return AnimatedBitmap.new(Settings::DEFAULT_SPRITE_PATH)
end end

View File

@@ -221,7 +221,6 @@ VAR_NB_ROCKET_MISSIONS = 286
VAR_BOUTIQUE_OUTFIT=290 VAR_BOUTIQUE_OUTFIT=290
VAR_FISHING_CONTEST_RECORD=294 VAR_FISHING_CONTEST_RECORD=294
VAR_FISHING_CONTEST_NERF=333

View File

@@ -10,10 +10,8 @@ CLOTHES_ADVENTURER = "fantasyadventurersoutfit"
CLOTHES_EMERALD = "emeraldSPE" CLOTHES_EMERALD = "emeraldSPE"
CLOTHES_PIKACHU_ONESIE = "pikaonesie" CLOTHES_PIKACHU_ONESIE = "pikaonesie"
CLOTHES_GLITCH = "glitzerset"
CLOTHES_BREEDER="PKMBreeder" CLOTHES_BREEDER="PKMBreeder"
CLOTHES_LASS_YELLOW ="lass" CLOTHES_LASS_YELLOW ="lass"
CLOTHES_LASS_BLUE ="lass2" CLOTHES_LASS_BLUE ="lass2"
@@ -50,7 +48,7 @@ HAT_SLOWKING_SHELL = "slowking"
HAT_ZOROARK = "banefulfoxmask" HAT_ZOROARK = "banefulfoxmask"
HAT_FROG = "froghat" HAT_FROG = "froghat"
HAT_SANTA = "santa" HAT_SANTA = "santa"
HAT_QMARKS = "glitzerset"
HAT_BREEDER_1="breedervisor" HAT_BREEDER_1="breedervisor"
HAT_BREEDER_2="breederbandana" HAT_BREEDER_2="breederbandana"
@@ -69,9 +67,6 @@ HAT_BIANCA = "bianca"
HAT_CLEFAIRY = "clefairyearheadband" HAT_CLEFAIRY = "clefairyearheadband"
HAT_FLOWER = "mikufairy" HAT_FLOWER = "mikufairy"
HAT_SKITTY_TV = "skittyTV"
HAT_TVHEAD = "tvhead"
HAT_CARDBOARD_BOX = "box" HAT_CARDBOARD_BOX = "box"
HAT_CAPTAIN = "seacaptain" HAT_CAPTAIN = "seacaptain"
@@ -121,9 +116,3 @@ HAIR_CHUCK = "chuck" #does not exist yet
HAIR_PRYCE = "pryce" #does not exist yet HAIR_PRYCE = "pryce" #does not exist yet
HAIR_MORTY = "morty" #does not exist yet HAIR_MORTY = "morty" #does not exist yet
HAIR_JASMINE = "jasmine" #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"

View File

@@ -43,49 +43,32 @@ def selectHairstyle(all_unlocked = false)
$Trainer.hat = hat $Trainer.hat = hat
end 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 def selectHairColor
original_color = $Trainer.hair_color original_color = $Trainer.hair_color
original_hair = $Trainer.hair
$game_switches[SWITCH_SELECTING_CLOTHES]=true $game_switches[SWITCH_SELECTING_CLOTHES]=true
$game_map.update $game_map.update
display_outfit_preview() display_outfit_preview()
hat = $Trainer.hat hat = $Trainer.hat
commands = ["Swap base color", "Shift up", "Shift down", "Toggle hat", "Remove dye", "Confirm", "Never Mind"] commands = ["Shift up", "Shift down", "Toggle hat", "Reset", "Confirm", "Never Mind"]
previous_input = 0 previous_input = 0
while (true) while (true)
choice = pbShowCommands(nil, commands, commands.length, previous_input) choice = pbShowCommands(nil, commands, commands.length, previous_input)
previous_input = choice previous_input = choice
case choice case choice
when 0 #change base when 0 #NEXT
swapToNextHairVersion()
display_outfit_preview()
ret = false
when 1 #NEXT
#playOutfitChangeAnimation() #playOutfitChangeAnimation()
pbSEPlay("GUI storage pick up", 80, 100) pbSEPlay("GUI storage pick up", 80, 100)
shiftHairColor(10) shiftHairColor(10)
display_outfit_preview() display_outfit_preview()
ret = true ret = true
when 2 #PREVIOUS when 1 #PREVIOUS
pbSEPlay("GUI storage pick up", 80, 100) pbSEPlay("GUI storage pick up", 80, 100)
shiftHairColor(-10) shiftHairColor(-10)
display_outfit_preview() display_outfit_preview()
ret = true ret = true
when 3 #Toggle hat when 2 #Toggle hat
pbSEPlay("GUI storage put down", 80, 100) pbSEPlay("GUI storage put down", 80, 100)
if hat == $Trainer.hat if hat == $Trainer.hat
$Trainer.hat = nil $Trainer.hat = nil
@@ -93,16 +76,15 @@ def selectHairColor
$Trainer.hat = hat $Trainer.hat = hat
end end
display_outfit_preview() display_outfit_preview()
when 4 #Reset when 3 #Reset
pbSEPlay("GUI storage put down", 80, 100) pbSEPlay("GUI storage put down", 80, 100)
$Trainer.hair_color = 0 $Trainer.hair_color = 0
display_outfit_preview() display_outfit_preview()
ret = false ret = false
when 5 #Confirm when 4 #Confirm
break break
else else
$Trainer.hair_color = original_color $Trainer.hair_color = original_color
$Trainer.hair = original_hair
ret = false ret = false
break break
end end

View File

@@ -156,8 +156,6 @@ def findLastHairVersion(hairId)
last_version = 0 last_version = 0
possible_versions.each { |version| possible_versions.each { |version|
hair_id = getFullHairId(hairId, version) hair_id = getFullHairId(hairId, version)
echoln hair_id
echoln pbResolveBitmap(getOverworldHairFilename(hair_id))
if pbResolveBitmap(getOverworldHairFilename(hair_id)) if pbResolveBitmap(getOverworldHairFilename(hair_id))
last_version = version last_version = version
else else

View File

@@ -9,7 +9,7 @@ module GameData
else else
ret = self.front_sprite_bitmap(species, pkmn.shiny?, pkmn.bodyShiny?, pkmn.headShiny?) ret = self.front_sprite_bitmap(species, pkmn.shiny?, pkmn.bodyShiny?, pkmn.headShiny?)
end end
ret.scale_bitmap(pkmn.sprite_scale) if ret #for pokemon with size differences ret.scale_bitmap(pkmn.sprite_scale) #for pokemon with size differences
return ret return ret
end end

View File

@@ -851,6 +851,7 @@ def replaceFusionSpecies(pokemon, speciesToChange, newSpecies)
echoln currentBody echoln currentBody
echoln currentHead echoln currentHead
return if !should_update_body && !should_update_head return if !should_update_body && !should_update_head
newSpeciesBody = should_update_body ? newSpecies : currentBody newSpeciesBody = should_update_body ? newSpecies : currentBody
@@ -896,22 +897,14 @@ end
#@formatter:off #@formatter:off
def get_constellation_variable(pokemon) def get_constellation_variable(pokemon)
case pokemon case pokemon
when :IVYSAUR; when :IVYSAUR; return VAR_CONSTELLATION_IVYSAUR
return VAR_CONSTELLATION_IVYSAUR when :WARTORTLE; return VAR_CONSTELLATION_WARTORTLE
when :WARTORTLE; when :ARCANINE; return VAR_CONSTELLATION_ARCANINE
return VAR_CONSTELLATION_WARTORTLE when :MACHOKE; return VAR_CONSTELLATION_MACHOKE
when :ARCANINE; when :RAPIDASH; return VAR_CONSTELLATION_RAPIDASH
return VAR_CONSTELLATION_ARCANINE when :GYARADOS; return VAR_CONSTELLATION_GYARADOS
when :MACHOKE; when :ARTICUNO; return VAR_CONSTELLATION_ARTICUNO
return VAR_CONSTELLATION_MACHOKE when :MEW; return VAR_CONSTELLATION_MEW
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 :POLITOED; return VAR_CONSTELLATION_POLITOED
# when :URSARING; return VAR_CONSTELLATION_URSARING # when :URSARING; return VAR_CONSTELLATION_URSARING
# when :LUGIA; return VAR_CONSTELLATION_LUGIA # when :LUGIA; return VAR_CONSTELLATION_LUGIA
@@ -924,7 +917,6 @@ def get_constellation_variable(pokemon)
# when :ARCEUS; return VAR_CONSTELLATION_ARCEUS # when :ARCEUS; return VAR_CONSTELLATION_ARCEUS
end end
end end
#@formatter:on #@formatter:on
def promptCaughtPokemonAction(pokemon) def promptCaughtPokemonAction(pokemon)
@@ -1406,7 +1398,7 @@ def get_mart_exclusive_items(city)
return items_list return items_list
end end
def calculate_pokemon_weight(pokemon, nerf = 0) def calculate_pokemon_weight(pokemon)
base_weight = pokemon.weight base_weight = pokemon.weight
ivs = [] ivs = []
@@ -1434,20 +1426,18 @@ def calculate_pokemon_weight(pokemon, nerf = 0)
# Cap the weight between min and max values # Cap the weight between min and max values
weight = [[weight, min_weight].max, max_weight].min weight = [[weight, min_weight].max, max_weight].min
weight -= nerf if weight - nerf > min_weight
return weight.round(2) # Round to 2 decimal places return weight.round(2) # Round to 2 decimal places
end end
#nerf: remove x kg from each generated pokemon def generate_weight_contest_entries(species, level, resultsVariable)
def generate_weight_contest_entries(species, level, resultsVariable, nerf = 0)
#echoln "Generating Pokemon" #echoln "Generating Pokemon"
pokemon1 = pbGenerateWildPokemon(species, level) #Pokemon.new(species,level) pokemon1 = pbGenerateWildPokemon(species, level) #Pokemon.new(species,level)
pokemon2 = pbGenerateWildPokemon(species, level) #Pokemon.new(species,level) pokemon2 = pbGenerateWildPokemon(species, level) #Pokemon.new(species,level)
new_weights = [] new_weights = []
new_weights << calculate_pokemon_weight(pokemon1, nerf) new_weights << calculate_pokemon_weight(pokemon1)
new_weights << calculate_pokemon_weight(pokemon2, nerf) new_weights << calculate_pokemon_weight(pokemon2)
echoln new_weights echoln new_weights
echoln "(nerfed by -#{nerf})"
pbSet(resultsVariable, new_weights.max) pbSet(resultsVariable, new_weights.max)
end end
@@ -1501,6 +1491,8 @@ def isPlayerFemale()
return pbGet(VAR_TRAINER_GENDER) == GENDER_FEMALE return pbGet(VAR_TRAINER_GENDER) == GENDER_FEMALE
end end
def optionsMenu(options = [], cmdIfCancel = -1, startingOption = 0) def optionsMenu(options = [], cmdIfCancel = -1, startingOption = 0)
cmdIfCancel = -1 if !cmdIfCancel cmdIfCancel = -1 if !cmdIfCancel
result = pbShowCommands(nil, options, cmdIfCancel, startingOption) result = pbShowCommands(nil, options, cmdIfCancel, startingOption)
@@ -1536,10 +1528,11 @@ QUEST_REWARDS = [
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(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(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(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(45, :MASTERBALL, 1, "This rare ball can catch any Pokémon. Don't waste it!",true),
QuestReward.new(60, :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."),
] ]
def turnEventTowardsEvent(turning,turnedTowards) def turnEventTowardsEvent(turning,turnedTowards)
event_x = turnedTowards.x event_x = turnedTowards.x
event_y = turnedTowards.y event_y = turnedTowards.y
@@ -1568,6 +1561,7 @@ def turnPlayerTowardsEvent(event)
end end
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 spriteLoader = BattleSpriteLoader.new
sprite_bitmap = spriteLoader.load_pif_sprite_directly(pif_sprite) sprite_bitmap = spriteLoader.load_pif_sprite_directly(pif_sprite)
@@ -1590,6 +1584,7 @@ def select_any_pokemon()
return pbChooseList(commands, 0, nil, 1) return pbChooseList(commands, 0, nil, 1)
end end
SWITCH_SS_ANNE_DEPARTED=88 SWITCH_SS_ANNE_DEPARTED=88
SWITCH_SNORLAX_GONE_ROUTE_12=110 SWITCH_SNORLAX_GONE_ROUTE_12=110
SWITCH_TELEPORT_NPC = 122 SWITCH_TELEPORT_NPC = 122
@@ -1643,68 +1638,3 @@ def fixMissedHMs()
pbReceiveItem(:HM10) pbReceiveItem(:HM10)
end end
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

View File

@@ -227,11 +227,7 @@ class GenOneStyle
@sprites["2poke"].y = 100 @sprites["2poke"].y = 100
@sprites["fpoke"] = Sprite.new(@viewport) @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"].x = 125
@sprites["fpoke"].y = 100 @sprites["fpoke"].y = 100
@sprites["fpoke"].z = 999 @sprites["fpoke"].z = 999
@@ -405,10 +401,8 @@ class GenOneStyle
@sprites["2poke"].bitmap = @spriteLoader.load_base_sprite(random_fusion_head).bitmap @sprites["2poke"].bitmap = @spriteLoader.load_base_sprite(random_fusion_head).bitmap
wait(150) wait(150)
fusedPoke = @spriteLoader.load_pif_sprite(random_fusion)
if fusedPoke @sprites["fpoke"].bitmap = @spriteLoader.load_pif_sprite(random_fusion).bitmap
@sprites["fpoke"].bitmap = fusedPoke.bitmap
end
end end
@sprites["fpoke"].opacity -= 10 @sprites["fpoke"].opacity -= 10

View File

@@ -92,7 +92,7 @@ QUESTS = {
#Cerulean hotel #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), 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), 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", "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), 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),
"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), "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 #Route 24
@@ -267,10 +267,6 @@ end
def pbSetQuest(id, completed) def pbSetQuest(id, completed)
$Trainer.quests = [] if $Trainer.quests.class == NilClass $Trainer.quests = [] if $Trainer.quests.class == NilClass
for q in $Trainer.quests for q in $Trainer.quests
echoln id
echoln q.id
echoln q.completed
echoln "----"
q.completed = completed if q.id == id q.completed = completed if q.id == id
end end
end end
@@ -332,16 +328,12 @@ class Questlog
@box = 0 @box = 0
@completed = [] @completed = []
@ongoing = [] @ongoing = []
fix_broken_TR_quests()
for q in $Trainer.quests for q in $Trainer.quests
@ongoing << q if !q.completed && @ongoing.include?(q) @ongoing << q if !q.completed && @ongoing.include?(q)
@completed << q if q.completed && @completed.include?(q) @completed << q if q.completed && @completed.include?(q)
end end
for q in $Trainer.quests for q in $Trainer.quests
echoln "#{q.id}: #{q.completed}"
@ongoing << q if !q.completed @ongoing << q if !q.completed
@completed << q if q.completed @completed << q if q.completed
end end
@@ -384,7 +376,6 @@ class Questlog
pbUpdate pbUpdate
end end
def pbUpdate def pbUpdate
@frame = 0 @frame = 0
loop do loop do
@@ -394,13 +385,13 @@ class Questlog
if @scene == 0 if @scene == 0
break if Input.trigger?(Input::B) break if Input.trigger?(Input::B)
pbList(@sel_one) if Input.trigger?(Input::C) pbList(@sel_one) if Input.trigger?(Input::C)
pbSwitch(:DOWN) if Input.press?(Input::DOWN) pbSwitch(:DOWN) if Input.trigger?(Input::DOWN)
pbSwitch(:UP) if Input.trigger?(Input::UP) pbSwitch(:UP) if Input.trigger?(Input::UP)
end end
if @scene == 1 if @scene == 1
pbMain if Input.trigger?(Input::B) pbMain if Input.trigger?(Input::B)
pbMove(:DOWN) if Input.press?(Input::DOWN) pbMove(:DOWN) if Input.trigger?(Input::DOWN)
pbMove(:UP) if Input.press?(Input::UP) pbMove(:UP) if Input.trigger?(Input::UP)
pbLoad(0) if Input.trigger?(Input::C) pbLoad(0) if Input.trigger?(Input::C)
pbArrows pbArrows
end end
@@ -649,6 +640,7 @@ class Questlog
end end
def pbMove(dir) def pbMove(dir)
pbWait(1)
if dir == :DOWN if dir == :DOWN
return if @sel_two == @ongoing.size - 1 && @mode == 0 return if @sel_two == @ongoing.size - 1 && @mode == 0
return if @sel_two == @completed.size - 1 && @mode == 1 return if @sel_two == @completed.size - 1 && @mode == 1
@@ -751,11 +743,10 @@ class Questlog
end end
end end
end end
pbWait(4)
end end
def pbList(id) def pbList(id)
pbWait(2) pbWait(1)
@sel_two = 0 @sel_two = 0
@page = 0 @page = 0
@scene = 1 @scene = 1

View File

@@ -29,9 +29,12 @@ def acceptTRQuest(id, show_description = true)
end end
def addRocketQuest(id) def addRocketQuest(id)
echoln $Trainer.quests.length
$Trainer.quests = [] if $Trainer.quests.class == NilClass $Trainer.quests = [] if $Trainer.quests.class == NilClass
quest = TR_QUESTS[id] quest = TR_QUESTS[id]
$Trainer.quests << quest if quest $Trainer.quests << quest if quest
echoln $Trainer.quests.length
end end
def showNewTRMissionMessage(title, description, show_description) def showNewTRMissionMessage(title, description, show_description)
@@ -62,17 +65,17 @@ def finishTRQuest(id, status, silent = false)
end end
TR_QUESTS = { TR_QUESTS = {
"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_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("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_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("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_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("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_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_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_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("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_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( "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_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("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_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_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), "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),
} }

View File

@@ -476,6 +476,9 @@ RandPokeNick = [
"Carlos", "Carlos",
"hm_slave", "hm_slave",
"Varicelle", "Varicelle",
"Google",
"Twitter",
"Facebook",
"Mia", "Mia",
"miam", "miam",
"Lame-o", "Lame-o",

View File

@@ -14,7 +14,7 @@ module Settings
VERSION_FILE_URL = "https://raw.githubusercontent.com/infinitefusion/infinitefusion-e18/main/Data/VERSION" VERSION_FILE_URL = "https://raw.githubusercontent.com/infinitefusion/infinitefusion-e18/main/Data/VERSION"
CUSTOM_DEX_FILE_URL = "https://raw.githubusercontent.com/infinitefusion/pif-downloadables/refs/heads/master/dex.json" CUSTOM_DEX_FILE_URL = "https://raw.githubusercontent.com/infinitefusion/infinitefusion-e18/main/Data/dex.json"
# CUSTOM SPRITES # CUSTOM SPRITES
AUTOGEN_SPRITES_REPO_URL = "" AUTOGEN_SPRITES_REPO_URL = ""
@@ -24,13 +24,11 @@ module Settings
BASE_POKEMON_ALT_SPRITES_REPO_URL = "" BASE_POKEMON_ALT_SPRITES_REPO_URL = ""
BASE_POKEMON_ALT_SPRITES_NEW_URL = "" BASE_POKEMON_ALT_SPRITES_NEW_URL = ""
BASE_POKEMON_SPRITESHEET_URL = "https://infinitefusion.net/spritesheets/spritesheets_base/" #legacy BASE_POKEMON_SPRITESHEET_URL = "https://infinitefusion.net/spritesheets/spritesheets_base/"
CUSTOM_FUSIONS_SPRITESHEET_URL = "https://infinitefusion.net/spritesheets/spritesheets_custom/" #legacy CUSTOM_FUSIONS_SPRITESHEET_URL = "https://infinitefusion.net/spritesheets/spritesheets_custom/"
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/" BASE_POKEMON_SPRITESHEET_RESIZED_URL = "https://infinitefusion.net/spritesheets_resized/spritesheets_base/"
CUSTOM_FUSIONS_SPRITESHEET_TRUE_SIZE_URL = "https://infinitefusion.net/customsprites/spritesheets/spritesheets_custom/" CUSTOM_FUSIONS_SPRITESHEET_RESIZED_URL = "https://infinitefusion.net/spritesheets_resized/spritesheets_custom/"
CUSTOMSPRITES_RATE_MAX_NB_REQUESTS = 5 #Nb. requests allowed in each time window CUSTOMSPRITES_RATE_MAX_NB_REQUESTS = 5 #Nb. requests allowed in each time window
CUSTOMSPRITES_ENTRIES_RATE_TIME_WINDOW = 120 # In seconds CUSTOMSPRITES_ENTRIES_RATE_TIME_WINDOW = 120 # In seconds
@@ -44,8 +42,8 @@ module Settings
AI_ENTRIES_RATE_LOG_FILE = 'Data/pokedex/rate_limit.log' # Path to the log file AI_ENTRIES_RATE_LOG_FILE = 'Data/pokedex/rate_limit.log' # Path to the log file
#Spritepack #Spritepack
NEWEST_SPRITEPACK_MONTH = 1 NEWEST_SPRITEPACK_MONTH = 12
NEWEST_SPRITEPACK_YEAR = 2025 NEWEST_SPRITEPACK_YEAR = 2024
end end

Binary file not shown.

Binary file not shown.

View File

@@ -220,13 +220,6 @@
"tags": "celadon", "tags": "celadon",
"howToGet": "city-exclusive outfit" "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", "id": "fusionnerd",
"name": "Fusion Outfit", "name": "Fusion Outfit",
@@ -235,11 +228,6 @@
"tags": "pokemon-fused,special,", "tags": "pokemon-fused,special,",
"howToGet": "cinnabar lab after fusing 100 times" "howToGet": "cinnabar lab after fusing 100 times"
}, },
{
"id": "glitzerset",
"name": "Glitzer",
"price": 2550
},
{ {
"id": "gothhoodie", "id": "gothhoodie",
"name": "Goth Hoodie", "name": "Goth Hoodie",
@@ -318,8 +306,8 @@
}, },
{ {
"id": "lady", "id": "lady",
"name": "Elegant Dress", "name": "Summer Dress",
"description": "An elegant summer dress with a ribbon at the waist, radiating a sense of grace and sophistication.", "description": "An elegant white dress with a ribbon at the waist, radiating a sense of grace and sophistication.",
"done": "yes", "done": "yes",
"price": 1500, "price": 1500,
"tags": "cerulean", "tags": "cerulean",

View File

@@ -12,7 +12,7 @@
"name": "Bald", "name": "Bald",
"description": "A completely bald look - no hair, no fuss, just pure, unadulterated scalp!", "description": "A completely bald look - no hair, no fuss, just pure, unadulterated scalp!",
"done": "yes", "done": "yes",
"price": 500, "price": 0,
"tags": "no-hair" "tags": "no-hair"
}, },
{ {
@@ -87,7 +87,6 @@
}, },
{ {
"id": "dancer", "id": "dancer",
"name": "Dancer",
"done": "yes", "done": "yes",
"price": 500, "price": 500,
"tags": "fuchsia", "tags": "fuchsia",
@@ -152,19 +151,12 @@
"tags": "medium, untied, spiky, thick, npc,", "tags": "medium, untied, spiky, thick, npc,",
"howToGet": "garys mom in their house (lol)?" "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", "id": "happinysuit",
"name": "Playhouse Ponytail", "name": "Curled Happiny Ponytail",
"description": "A cute curly ponytail styled just like a Happiny. A wonderfully charming style for any fans of Baby Pokémon.", "description": "A cute curly ponytail styled just like a Happiny. A wonderfully charming style for any fans of Baby Pokémon.",
"len": 108, "len": 108,
"price": 3000, "price": 5000,
"tags": "long, tied, smooth, pokemon,", "tags": "long, tied, smooth, pokemon,",
"howToGet": "quest?" "howToGet": "quest?"
}, },
@@ -180,7 +172,6 @@
}, },
{ {
"id": "highbun", "id": "highbun",
"name": "High-bun",
"done": "yes", "done": "yes",
"price": 500, "price": 500,
"tags": "default" "tags": "default"
@@ -203,10 +194,7 @@
}, },
{ {
"id": "ho-oh", "id": "ho-oh",
"name": "Phoenix Crest", "price": 5000
"description": "A bold, fiery style featuring a high, curved ponytail resembling the sweeping feathers of Ho-Oh.",
"price": 5000,
"howToGet": "saffron boutique"
}, },
{ {
"id": "janine", "id": "janine",
@@ -219,10 +207,7 @@
"howToGet": "fuchsia city salon" "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", "id": "kurt",
@@ -309,15 +294,10 @@
"name": "Lunar Cut", "name": "Lunar Cut",
"description": "A bob cut shaped like a crescent moon, with a sleek, curved silhouette.", "description": "A bob cut shaped like a crescent moon, with a sleek, curved silhouette.",
"price": 5000, "price": 5000,
"tags": "special",
"howToGet": "quest? cresselia outfit" "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", "id": "mawile",
@@ -449,7 +429,7 @@
"tags": "default," "tags": "default,"
}, },
{ {
"id": "pompadour", "id": "pompadourdelinquentoutfit",
"name": "Pompadour", "name": "Pompadour",
"price": 2000, "price": 2000,
"tags": "violet," "tags": "violet,"
@@ -503,8 +483,7 @@
"howToGet": "Celadon special" "howToGet": "Celadon special"
}, },
{ {
"id": "samurai", "id": "samurai"
"name": "Samurai"
}, },
{ {
"id": "short1", "id": "short1",
@@ -526,16 +505,12 @@
}, },
{ {
"id": "shortspike", "id": "shortspike",
"name": "Short Spikes",
"done": "yes", "done": "yes",
"price": 500, "price": 500,
"tags": "default," "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", "id": "vetf",

View File

@@ -142,7 +142,6 @@
"id": "carbink", "id": "carbink",
"name": "Carbink Headband", "name": "Carbink Headband",
"description": "A cute, rock-solid headband resembling Carbink.", "description": "A cute, rock-solid headband resembling Carbink.",
"done": "yes",
"price": 5000, "price": 5000,
"tags": "hat,pokemon-carbink" "tags": "hat,pokemon-carbink"
}, },
@@ -334,7 +333,6 @@
"id": "firefigther", "id": "firefigther",
"name": "Firefighter Hat", "name": "Firefighter Hat",
"description": "A safety helmet made for brave heroes who put their lives on the line every day.", "description": "A safety helmet made for brave heroes who put their lives on the line every day.",
"done": "yes",
"price": 0, "price": 0,
"tags": "hat, cinnabar,", "tags": "hat, cinnabar,",
"howToGet": "type trainer" "howToGet": "type trainer"
@@ -368,15 +366,6 @@
"tags": "hat,trainer", "tags": "hat,trainer",
"howToGet": "gym reward" "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", "id": "glasses",
"name": "Round Glasses", "name": "Round Glasses",
@@ -443,17 +432,9 @@
"done": "yes", "done": "yes",
"len": 63, "len": 63,
"price": 10000, "price": 10000,
"tags": "floating,pokemon-shedinja", "tags": "floating,",
"howToGet": "reward for beating the ilex forest shedinja encounter? reward for showing a shedinja to someone?" "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", "id": "headparas",
"name": "Head Paras", "name": "Head Paras",
@@ -609,7 +590,6 @@
"id": "ludicolosombrero", "id": "ludicolosombrero",
"name": "Ludicolo Sombrero", "name": "Ludicolo Sombrero",
"description": "A festive Sombrero that is often worn during fiestas.", "description": "A festive Sombrero that is often worn during fiestas.",
"done": "yes",
"len": 53, "len": 53,
"price": 18000, "price": 18000,
"tags": "hat,pokemon-lotad,pokemon-lombre,pokemon-ludicolo,weather-warm," "tags": "hat,pokemon-lotad,pokemon-lombre,pokemon-ludicolo,weather-warm,"
@@ -628,7 +608,6 @@
"id": "lycanrochooddown", "id": "lycanrochooddown",
"name": "Lycanroc Hood (down)", "name": "Lycanroc Hood (down)",
"description": "A fluffy hood. Down for those who want a little sun.", "description": "A fluffy hood. Down for those who want a little sun.",
"done": "yes",
"price": 12000, "price": 12000,
"tags": "pokemon-rockruff,pokemon-lycanroc_d,pokemon-lycanroc_n," "tags": "pokemon-rockruff,pokemon-lycanroc_d,pokemon-lycanroc_n,"
}, },
@@ -636,7 +615,6 @@
"id": "lycanrochoodup", "id": "lycanrochoodup",
"name": "Lycanroc Hood (up)", "name": "Lycanroc Hood (up)",
"description": "A fluffy hood. Up for those who shy away from the sun", "description": "A fluffy hood. Up for those who shy away from the sun",
"done": "yes",
"price": 12000, "price": 12000,
"tags": "pokemon-rockruff,pokemon-lycanroc_d,pokemon-lycanroc_n," "tags": "pokemon-rockruff,pokemon-lycanroc_d,pokemon-lycanroc_n,"
}, },
@@ -835,7 +813,7 @@
}, },
{ {
"id": "pikhatchuf", "id": "pikhatchuf",
"name": "Head Pikachu (F)", "name": "Head Pikachu",
"description": "A female Pikachu that has taken a liking to perching atop a trainer's head.", "description": "A female Pikachu that has taken a liking to perching atop a trainer's head.",
"done": "yes", "done": "yes",
"len": 75, "len": 75,
@@ -845,7 +823,7 @@
}, },
{ {
"id": "pikhatchum", "id": "pikhatchum",
"name": "Head Pikachu (M)", "name": "Head Pikachu",
"description": "A male Pikachu that has taken a liking to perching atop a trainer's head.", "description": "A male Pikachu that has taken a liking to perching atop a trainer's head.",
"done": "yes", "done": "yes",
"len": 73, "len": 73,
@@ -980,14 +958,6 @@
"price": 4500, "price": 4500,
"tags": "glasses,mask,pokemon-budew,pokemon-roselia,pokemon-roserade,celadon" "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", "id": "sabrinasballs",
"name": "Levitating Balls", "name": "Levitating Balls",
@@ -1011,7 +981,6 @@
"id": "santa", "id": "santa",
"name": "Festive Hat", "name": "Festive Hat",
"description": "A warm, snug stocking cap worn during a festive holiday season.", "description": "A warm, snug stocking cap worn during a festive holiday season.",
"done": "yes",
"price": 25000, "price": 25000,
"tags": "hat," "tags": "hat,"
}, },
@@ -1054,14 +1023,6 @@
"price": 3500, "price": 3500,
"tags": "hat,weather-cold,blackthorn,mahogany" "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", "id": "sleepmask",
"name": "Mareep Sleep Mask", "name": "Mareep Sleep Mask",
@@ -1179,14 +1140,6 @@
"price": 2500, "price": 2500,
"tags": "glasses,violet," "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", "id": "veteranM",
"name": "Black Flat Cap", "name": "Black Flat Cap",
@@ -1210,7 +1163,6 @@
"id": "waterdress", "id": "waterdress",
"name": "Straw Hat", "name": "Straw Hat",
"description": "A simple hat made out of straw that is typically worn by bug-catchers.", "description": "A simple hat made out of straw that is typically worn by bug-catchers.",
"done": "yes",
"price": 1500, "price": 1500,
"tags": "hat,pewter,", "tags": "hat,pewter,",
"howToGet": "trainer clothing store?" "howToGet": "trainer clothing store?"

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,2 @@
1739029866 1736572429
1739029866 1736572463
1739029866
1739029871

View File

@@ -1,79 +1,18 @@
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/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/315.png
Graphics/CustomBattlers/spritesheets/spritesheets_base/371.png Graphics/CustomBattlers/spritesheets/spritesheets_base/206.png
Graphics/CustomBattlers/spritesheets/spritesheets_custom/371/371.png Graphics/CustomBattlers/spritesheets/spritesheets_custom/206/206.png
Graphics/CustomBattlers/spritesheets/spritesheets_base/386.png Graphics/CustomBattlers/spritesheets/spritesheets_base/240.png
Graphics/CustomBattlers/spritesheets/spritesheets_base/1.png Graphics/CustomBattlers/spritesheets/spritesheets_base/296.png
Graphics/CustomBattlers/spritesheets/spritesheets_custom/1/1.png Graphics/CustomBattlers/spritesheets/spritesheets_custom/296/296.png
Graphics/CustomBattlers/spritesheets/spritesheets_base/254.png Graphics/CustomBattlers/spritesheets/spritesheets_base/287.png
Graphics/CustomBattlers/spritesheets/spritesheets_base/255.png Graphics/CustomBattlers/spritesheets/spritesheets_base/69.png
Graphics/CustomBattlers/spritesheets/spritesheets_base/170.png Graphics/CustomBattlers/spritesheets/spritesheets_custom/69/69.png
Graphics/CustomBattlers/spritesheets/spritesheets_base/398.png Graphics/CustomBattlers/spritesheets/spritesheets_base/30.png
Graphics/CustomBattlers/spritesheets/spritesheets_custom/398/398.png Graphics/CustomBattlers/spritesheets/spritesheets_base/465.png
Graphics/CustomBattlers/spritesheets/spritesheets_base/413.png Graphics/CustomBattlers/spritesheets/spritesheets_custom/465/465.png
Graphics/CustomBattlers/spritesheets/spritesheets_base/263.png Graphics/CustomBattlers/spritesheets/spritesheets_base/36.png
Graphics/CustomBattlers/spritesheets/spritesheets_custom/263/263.png Graphics/CustomBattlers/spritesheets/spritesheets_base/264.png
Graphics/CustomBattlers/spritesheets/spritesheets_base/242.png Graphics/CustomBattlers/spritesheets/spritesheets_custom/264/264.png
Graphics/CustomBattlers/spritesheets/spritesheets_base/411.png Graphics/CustomBattlers/spritesheets/spritesheets_base/77.png
Graphics/CustomBattlers/spritesheets/spritesheets_custom/411/411.png Graphics/CustomBattlers/spritesheets/spritesheets_base/109.png
Graphics/CustomBattlers/spritesheets/spritesheets_base/19.png Graphics/CustomBattlers/spritesheets/spritesheets_base/75.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

1
Game.rxproj Normal file
View File

@@ -0,0 +1 @@
RPGXP 1.01

BIN
Graphics/.DS_Store vendored

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -1,5 +0,0 @@
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)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Some files were not shown because too many files have changed in this diff Show More