diff --git a/.DS_Store b/.DS_Store index 4bec39fca..dbbe3efd4 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/Data/.DS_Store b/Data/.DS_Store index a33452bf7..4374e9e85 100644 Binary files a/Data/.DS_Store and b/Data/.DS_Store differ diff --git a/Data/Actors.rxdata b/Data/Actors.rxdata index 41edc8e26..7967a5432 100644 Binary files a/Data/Actors.rxdata and b/Data/Actors.rxdata differ diff --git a/Data/Animations.rxdata b/Data/Animations.rxdata index 71336e1f0..a900929a9 100644 Binary files a/Data/Animations.rxdata and b/Data/Animations.rxdata differ diff --git a/Data/Armors.rxdata b/Data/Armors.rxdata index 901f2bb2b..2249bec14 100644 Binary files a/Data/Armors.rxdata and b/Data/Armors.rxdata differ diff --git a/Data/CommonEvents.rxdata b/Data/CommonEvents.rxdata index 6e7992e0d..a505dc4f9 100644 Binary files a/Data/CommonEvents.rxdata and b/Data/CommonEvents.rxdata differ diff --git a/Data/Enemies.rxdata b/Data/Enemies.rxdata index be622f513..004ee903d 100644 Binary files a/Data/Enemies.rxdata and b/Data/Enemies.rxdata differ diff --git a/Data/Items.rxdata b/Data/Items.rxdata index fe767fa0b..3e62ba6d2 100644 Binary files a/Data/Items.rxdata and b/Data/Items.rxdata differ diff --git a/Data/Map129.rxdata b/Data/Map129.rxdata index dd736f603..a445e8bc8 100644 Binary files a/Data/Map129.rxdata and b/Data/Map129.rxdata differ diff --git a/Data/MapInfos.rxdata b/Data/MapInfos.rxdata index a8cb4e427..1fc9fc36a 100644 Binary files a/Data/MapInfos.rxdata and b/Data/MapInfos.rxdata differ diff --git a/Data/Scripts/015_Trainers and player/004_Player.rb b/Data/Scripts/015_Trainers and player/004_Player.rb index 2b0504053..d47ef975b 100644 --- a/Data/Scripts/015_Trainers and player/004_Player.rb +++ b/Data/Scripts/015_Trainers and player/004_Player.rb @@ -22,6 +22,8 @@ class Player < Trainer attr_accessor :dyed_hats attr_accessor :dyed_clothes + attr_accessor :favorite_hat + attr_accessor :favorite_clothes attr_accessor :last_worn_outfit attr_accessor :last_worn_hat @@ -292,6 +294,8 @@ class Player < Trainer @dyed_hats = {} @dyed_clothes = {} + @favorite_hat = nil + @favorite_clothes = nil @card_background = Settings::DEFAULT_TRAINER_CARD_BG @unlocked_card_backgrounds = [@card_background] diff --git a/Data/Scripts/050_Outfits/UI/clothesShop/ClothesMartAdapter.rb b/Data/Scripts/050_Outfits/UI/clothesShop/ClothesMartAdapter.rb index a5f816089..4891c3934 100644 --- a/Data/Scripts/050_Outfits/UI/clothesShop/ClothesMartAdapter.rb +++ b/Data/Scripts/050_Outfits/UI/clothesShop/ClothesMartAdapter.rb @@ -19,7 +19,9 @@ class ClothesMartAdapter < OutfitsMartAdapter def getDisplayName(item) return getName(item) if !item.name - return item.name + name = item.name + name = "* #{name}" if item.id == $Trainer.favorite_clothes + return name end def getDescription(item) diff --git a/Data/Scripts/050_Outfits/UI/clothesShop/ClothesShopPresenter.rb b/Data/Scripts/050_Outfits/UI/clothesShop/ClothesShopPresenter.rb index 262e32095..fd71642a0 100644 --- a/Data/Scripts/050_Outfits/UI/clothesShop/ClothesShopPresenter.rb +++ b/Data/Scripts/050_Outfits/UI/clothesShop/ClothesShopPresenter.rb @@ -24,16 +24,19 @@ class ClothesShopPresenter < PokemonMartScreen remove_dye_option_available = $Trainer.hat_color != 0 options << "Remove dye" if remove_dye_option_available + options << "Mark as favorite" if $Trainer.favorite_hat != item.id + options << "Unmark as favorite" if $Trainer.favorite_hat == item.id + options << "Cancel" - #if $Trainer.hat_color != 0 - choice = pbMessage("What would you like to do?",options,-1) + # if $Trainer.hat_color != 0 + choice = pbMessage("What would you like to do?", options, -1) if choice == 0 - if is_player_hat #remove + if is_player_hat # remove @adapter.doSpecialItemAction(:REMOVE) @scene.pbEndBuyScene return false else - #wear + # wear putOnClothes(item) $Trainer.hat_color = @adapter.get_dye_color(item) return false @@ -43,27 +46,47 @@ class ClothesShopPresenter < PokemonMartScreen $Trainer.hat_color = 0 end return true + elsif options[choice] == "Mark as favorite" + $Trainer.favorite_hat = item.id + pbSEPlay("GUI storage show party panel") + pbMessage("The #{item.name} is now your favorite!") + echoln "marked #{item.id} as favorite hat" + elsif options[choice] == "Unmark as favorite" + $Trainer.favorite_hat = nil + pbSEPlay("GUI storage show party panel") + pbMessage("The #{item.name} is no longer marked as your favorite!") end echoln "cancelled" return true end - #returns if should stay in the menu + # returns if should stay in the menu def playerClothesActionsMenu(item) is_worn = item.id == @adapter.worn_clothes options = [] options << "Wear" options << "Remove dye" if $Trainer.clothes_color != 0 + options << "Mark as favorite" if $Trainer.favorite_hat != item.id + options << "Unmark as favorite" if $Trainer.favorite_hat == item.id options << "Cancel" - choice = pbMessage("What would you like to do?",options,-1) + choice = pbMessage("What would you like to do?", options, -1) + if choice == 0 - putOnClothes(item) - $Trainer.clothes_color = @adapter.get_dye_color(item) - return false - elsif choice == 1 + putOnClothes(item) + $Trainer.clothes_color = @adapter.get_dye_color(item) + return false + elsif options[choice] == "Remove dye" if pbConfirm(_INTL("Are you sure you want to remove the dye from the {1}?", item.name)) $Trainer.clothes_color = 0 end + elsif options[choice] == "Mark as favorite" + $Trainer.favorite_clothes = item.id + pbSEPlay("GUI storage show party panel") + pbMessage("The #{item.name} is now your favorite!") + elsif options[choice] == "Unmark favorite" + $Trainer.favorite_clothes = nil + pbSEPlay("GUI storage show party panel") + pbMessage("The #{item.name} is no longer marked as your favorite!") end return true end @@ -120,7 +143,7 @@ class ClothesShopPresenter < PokemonMartScreen @stock.compact! pbDisplayPaused(_INTL("Here you are! Thank you!")) { pbSEPlay("Mart buy item") } @adapter.addItem(item) - #break + # break end @scene.pbEndBuyScene end diff --git a/Data/Scripts/050_Outfits/UI/clothesShop/HatsMartAdapter.rb b/Data/Scripts/050_Outfits/UI/clothesShop/HatsMartAdapter.rb index e29312620..c22a250c8 100644 --- a/Data/Scripts/050_Outfits/UI/clothesShop/HatsMartAdapter.rb +++ b/Data/Scripts/050_Outfits/UI/clothesShop/HatsMartAdapter.rb @@ -32,7 +32,9 @@ class HatsMartAdapter < OutfitsMartAdapter def getDisplayName(item) return getName(item) if !item.name - return item.name + name = item.name + name = "* #{name}" if item.id == $Trainer.favorite_hat + return name end def getDescription(item) @@ -79,7 +81,7 @@ class HatsMartAdapter < OutfitsMartAdapter $Trainer.hat_color=0 previewWindow.hat_color=0 end - echoln $Trainer.dyed_hats + #echoln $Trainer.dyed_hats else $Trainer.hat_color=0 previewWindow.hat_color=0 diff --git a/Data/Scripts/052_AddOns/New Items effects.rb b/Data/Scripts/052_AddOns/New Items effects.rb index 48fe6390b..50501ab64 100644 --- a/Data/Scripts/052_AddOns/New Items effects.rb +++ b/Data/Scripts/052_AddOns/New Items effects.rb @@ -1,55 +1,4 @@ -ItemHandlers::BattleUseOnBattler.add(:POKEDEX, proc { |item, battler, scene| - #if battler.battle.battlers.length > -1 - # scene.pbDisplay(_INTL(" The length is {1}",battler.battle.battlers.length)) - # scene.pbDisplay(_INTL("The PokéDex cannot be used on multiple enemies at once!")) - # return false - #end - doublebattle = false - #DOUBLE BATTLES A FAIRE - #variable temporaire doublebattle - if doublebattle - e = battler.pbOpposing2 - else - is_trainer = battler.battle.opponent - - e1 = battler.pbOpposing1.pokemon - enemyname = e1.name - e1type1 = e1.type1 - e1type2 = e1.type2 - end - if e1type1 == e1type2 - scene.pbDisplay(_INTL("{2} has been identified as a {1} type Pokémon.", PBTypes.getName(e1type1), enemyname)) - else - scene.pbDisplay(_INTL("{3} has been identified as a {1}/{2} type Pokémon.", PBTypes.getName(e1type1), PBTypes.getName(e1type2), enemyname)) - - if $game_switches[10] #BADGE 7 - if battler.pbCanIncreaseStatStage?(PBStats::DEFENSE, false) - battler.pbIncreaseStat(PBStats::DEFENSE, 1, true) - end - if battler.pbCanIncreaseStatStage?(PBStats::SPDEF, false) - battler.pbIncreaseStat(PBStats::SPDEF, 1, true) - end - if battler.pbCanIncreaseStatStage?(PBStats::ACCURACY, false) - battler.pbIncreaseStat(PBStats::ACCURACY, 3, true) - end - elsif $game_switches[8] #BADGE 5 - if battler.pbCanIncreaseStatStage?(PBStats::ACCURACY, false) - battler.pbIncreaseStat(PBStats::ACCURACY, 3, true) - end - elsif $game_switches[6] #BADGE 3 - if battler.pbCanIncreaseStatStage?(PBStats::ACCURACY, false) - battler.pbIncreaseStat(PBStats::ACCURACY, 2, true) - end - elsif $game_switches[8] #BADGE 1 - if battler.pbCanIncreaseStatStage?(PBStats::ACCURACY, false) - battler.pbIncreaseStat(PBStats::ACCURACY, 1, true) - end - end - - return true - end -}) ItemHandlers::UseInBattle.add(:POKEDOLL, proc { |item, battler, battle| battle.decision = 3 @@ -144,58 +93,7 @@ def useTeleporter() end end -ItemHandlers::BattleUseOnBattler.add(:POKEDEX, proc { |item, battler, scene| - #if battler.battle.battlers.length > -1 - # scene.pbDisplay(_INTL(" The length is {1}",battler.battle.battlers.length)) - # scene.pbDisplay(_INTL("The PokéDex cannot be used on multiple enemies at once!")) - # return false - #end - doublebattle = false - #DOUBLE BATTLES A FAIRE - #variable temporaire doublebattle - if doublebattle - e = battler.pbOpposing2 - else - is_trainer = battler.battle.opponent - - e1 = battler.pbOpposing1.pokemon - enemyname = e1.name - e1type1 = e1.type1 - e1type2 = e1.type2 - end - if e1type1 == e1type2 - scene.pbDisplay(_INTL("{2} has been identified as a {1} type Pokémon.", PBTypes.getName(e1type1), enemyname)) - else - scene.pbDisplay(_INTL("{3} has been identified as a {1}/{2} type Pokémon.", PBTypes.getName(e1type1), PBTypes.getName(e1type2), enemyname)) - - if $game_switches[10] #BADGE 7 - if battler.pbCanIncreaseStatStage?(PBStats::DEFENSE, false) - battler.pbIncreaseStat(PBStats::DEFENSE, 1, true) - end - if battler.pbCanIncreaseStatStage?(PBStats::SPDEF, false) - battler.pbIncreaseStat(PBStats::SPDEF, 1, true) - end - if battler.pbCanIncreaseStatStage?(PBStats::ACCURACY, false) - battler.pbIncreaseStat(PBStats::ACCURACY, 3, true) - end - elsif $game_switches[8] #BADGE 5 - if battler.pbCanIncreaseStatStage?(PBStats::ACCURACY, false) - battler.pbIncreaseStat(PBStats::ACCURACY, 3, true) - end - elsif $game_switches[6] #BADGE 3 - if battler.pbCanIncreaseStatStage?(PBStats::ACCURACY, false) - battler.pbIncreaseStat(PBStats::ACCURACY, 2, true) - end - elsif $game_switches[8] #BADGE 1 - if battler.pbCanIncreaseStatStage?(PBStats::ACCURACY, false) - battler.pbIncreaseStat(PBStats::ACCURACY, 1, true) - end - end - - return true - end -}) ItemHandlers::UseInBattle.add(:POKEDOLL, proc { |item, battler, battle| battle.decision = 3 @@ -238,7 +136,7 @@ ItemHandlers::UseOnPokemon.add(:TRANSGENDERSTONE, proc { |item, pokemon, scene| end }) -#NOT FULLY IMPLEMENTED +# NOT FULLY IMPLEMENTED ItemHandlers::UseOnPokemon.add(:SECRETCAPSULE, proc { |item, poke, scene| abilityList = poke.getAbilityList numAbilities = abilityList[0].length @@ -429,6 +327,14 @@ ItemHandlers::UseInField.add(:ROCKETUNIFORM, proc { |item| next useRocketUniform() }) +ItemHandlers::UseFromBag.add(:FAVORITEOUTFIT, proc { |item| + next useFavoriteOutfit() +}) + +ItemHandlers::UseInField.add(:FAVORITEOUTFIT, proc { |item| + next useFavoriteOutfit() +}) + ItemHandlers::UseInField.add(:EMERGENCYWHISTLE, proc { |item| if isOnPinkanIsland() pbCommonEvent(COMMON_EVENT_PINKAN_WHISTLE) @@ -471,16 +377,45 @@ ItemHandlers::UseFromBag.add(:ODDKEYSTONE, proc { |item| end }) +def useFavoriteOutfit() + if !$Trainer.favorite_clothes && !$Trainer.favorite_hat + pbMessage(_INTL("You can mark clothes and hats as your favorites in the outfits menu and use this to quickly switch to them!")) + return 0 + end + + if isWearingFavoriteOutfit() + if (Kernel.pbConfirmMessage("Remove your favorite outfit?")) + if ($Trainer.last_worn_outfit == $Trainer.favorite_clothes && $Trainer.last_worn_hat == $Trainer.favorite_hat) + $Trainer.last_worn_outfit = getDefaultClothes() + end + playOutfitChangeAnimation() + putOnClothes($Trainer.last_worn_outfit, true) if $Trainer.favorite_clothes + putOnHat($Trainer.last_worn_hat, true) if $Trainer.favorite_hat + else + return 0 + end + + else + if (Kernel.pbConfirmMessage("Put on your favorite outfit?")) + playOutfitChangeAnimation() + putOnClothes($Trainer.favorite_clothes, true) if $Trainer.favorite_clothes + putOnHat($Trainer.favorite_hat, true) if $Trainer.favorite_hat + else + return 0 + end + end +end + def useRocketUniform() return 0 if !$game_switches[SWITCH_JOINED_TEAM_ROCKET] if isWearingTeamRocketOutfit() if (Kernel.pbConfirmMessage("Remove the Team Rocket uniform?")) if ($Trainer.last_worn_outfit == CLOTHES_TEAM_ROCKET_MALE || $Trainer.last_worn_outfit == CLOTHES_TEAM_ROCKET_FEMALE) && $Trainer.last_worn_hat == HAT_TEAM_ROCKET - $Trainer.last_worn_outfit =getDefaultClothes() + $Trainer.last_worn_outfit = getDefaultClothes() end playOutfitChangeAnimation() - putOnClothes($Trainer.last_worn_outfit,true) - putOnHat($Trainer.last_worn_hat,true) + putOnClothes($Trainer.last_worn_outfit, true) + putOnHat($Trainer.last_worn_hat, true) else return 0 end @@ -489,11 +424,11 @@ def useRocketUniform() playOutfitChangeAnimation() gender = pbGet(VAR_TRAINER_GENDER) if gender == GENDER_MALE - putOnClothes(CLOTHES_TEAM_ROCKET_MALE,true) + putOnClothes(CLOTHES_TEAM_ROCKET_MALE, true) else - putOnClothes(CLOTHES_TEAM_ROCKET_FEMALE,true) + putOnClothes(CLOTHES_TEAM_ROCKET_FEMALE, true) end - putOnHat(HAT_TEAM_ROCKET,true) + putOnHat(HAT_TEAM_ROCKET, true) #$scene.reset_map(true) end end @@ -519,7 +454,7 @@ def useStrangePlant end -#DREAMMIRROR +# DREAMMIRROR ItemHandlers::UseFromBag.add(:DREAMMIRROR, proc { |item| useDreamMirror next 1 @@ -530,7 +465,7 @@ ItemHandlers::UseInField.add(:DREAMMIRROR, proc { |item| next 1 }) -#STRANGE PLANT +# STRANGE PLANT ItemHandlers::UseFromBag.add(:STRANGEPLANT, proc { |item| useStrangePlant() next 1 @@ -549,7 +484,7 @@ ItemHandlers::UseFromBag.add(:MAGICBOOTS, proc { |item| else if Kernel.pbConfirmMessageSerious(_INTL("Put on the Magic Boots?")) Kernel.pbMessage(_INTL("Debug mode is now active.")) - $game_switches[ENABLED_DEBUG_MODE_AT_LEAST_ONCE] = true #got debug mode (for compatibility) + $game_switches[ENABLED_DEBUG_MODE_AT_LEAST_ONCE] = true # got debug mode (for compatibility) $DEBUG = true end end @@ -680,7 +615,7 @@ def reverseFusion(pokemon) pokemon.exp_when_fused_head = body_exp pokemon.head_shiny, pokemon.body_shiny = pokemon.body_shiny, pokemon.head_shiny - #play animation + # play animation pbFadeOutInWithMusic(99999) { fus = PokemonEvolutionScene.new fus.pbStartScreen(pokemon, newspecies, true) @@ -705,7 +640,7 @@ ItemHandlers::UseOnPokemon.add(:INFINITEREVERSERS, proc { |item, pokemon, scene| pokemon.exp_when_fused_body = head_exp pokemon.exp_when_fused_head = body_exp - #play animation + # play animation pbFadeOutInWithMusic(99999) { fus = PokemonEvolutionScene.new fus.pbStartScreen(pokemon, newspecies, true) @@ -903,26 +838,26 @@ def returnItemsToBag(pokemon, poke2) poke2.item = nil end -#A AJOUTER: l'attribut dmgup ne modifie presentement pas +# A AJOUTER: l'attribut dmgup ne modifie presentement pas # le damage d'une attaque # ItemHandlers::UseOnPokemon.add(:DAMAGEUP, proc { |item, pokemon, scene| move = scene.pbChooseMove(pokemon, _INTL("Boost Damage of which move?")) if move >= 0 - #if pokemon.moves[move].damage==0 || pokemon.moves[move].accuracy<=5 || pokemon.moves[move].dmgup >=3 + # if pokemon.moves[move].damage==0 || pokemon.moves[move].accuracy<=5 || pokemon.moves[move].dmgup >=3 # scene.pbDisplay(_INTL("It won't have any effect.")) # next false - #else - #pokemon.moves[move].dmgup+=1 - #pokemon.moves[move].damage +=5 - #pokemon.moves[move].accuracy -=5 + # else + # pokemon.moves[move].dmgup+=1 + # pokemon.moves[move].damage +=5 + # pokemon.moves[move].accuracy -=5 - #movename=PBMoves.getName(pokemon.moves[move].id) - #scene.pbDisplay(_INTL("{1}'s damage increased.",movename)) - #next true + # movename=PBMoves.getName(pokemon.moves[move].id) + # scene.pbDisplay(_INTL("{1}'s damage increased.",movename)) + # next true scene.pbDisplay(_INTL("This item has not been implemented into the game yet. It had no effect.")) next false - #end + # end end }) @@ -1015,7 +950,7 @@ ItemHandlers::UseOnPokemon.add(:DAMAGEUP, proc { |item, pokemon, scene| # end # }) -#easter egg for evolving shellder into slowbro's tail +# easter egg for evolving shellder into slowbro's tail ItemHandlers::UseOnPokemon.add(:SLOWPOKETAIL, proc { |item, pokemon, scene| echoln pokemon.species next false if pokemon.species != :SHELLDER @@ -1160,7 +1095,7 @@ ItemHandlers::BattleUseOnPokemon.add(:BALMMUSHROOM, proc { |item, pokemon, battl # }) ####EXP. ALL -#Methodes relative a l'exp sont pas encore la et pas compatibles +# Methodes relative a l'exp sont pas encore la et pas compatibles # avec cette version de essentials donc # ca fait fuck all pour l'instant. ItemHandlers::UseFromBag.add(:EXPALL, proc { |item| @@ -1235,7 +1170,7 @@ ItemHandlers::UseOnPokemon.add(:TRANSGENDERSTONE, proc { |item, pokemon, scene| # # }) -#NOT FULLY IMPLEMENTED +# NOT FULLY IMPLEMENTED ItemHandlers::UseOnPokemon.add(:SECRETCAPSULE, proc { |item, poke, scene| abilityList = poke.getAbilityList numAbilities = abilityList[0].length @@ -1387,7 +1322,7 @@ ItemHandlers::UseOnPokemon.add(:MISTSTONE, proc { |item, pokemon, scene| def pbForceEvo(pokemon) evolutions = getEvolvedSpecies(pokemon) return false if evolutions.empty? - #if multiple evolutions, pick a random one + # if multiple evolutions, pick a random one #(format of returned value is [[speciesNum, level]]) newspecies = evolutions[rand(evolutions.length - 1)][0] return false if newspecies == nil @@ -1456,7 +1391,7 @@ def getPokemonPositionInParty(pokemon) return -1 end -#don't remember why there's two Supersplicers arguments.... probably a mistake +# don't remember why there's two Supersplicers arguments.... probably a mistake def pbDNASplicing(pokemon, scene, item = :DNASPLICERS) is_supersplicer = isSuperSplicersMechanics(item) @@ -1480,7 +1415,7 @@ def pbDNASplicing(pokemon, scene, item = :DNASPLICERS) if chosen >= 0 poke2 = $Trainer.party[chosen] if (poke2.species_data.id_number <= NB_POKEMON) && poke2 != pokemon - #check if fainted + # check if fainted if pokemon.egg? || poke2.egg? scene.pbDisplay(_INTL("It's impossible to fuse an egg!")) @@ -1492,10 +1427,10 @@ def pbDNASplicing(pokemon, scene, item = :DNASPLICERS) end selectedHead = selectFusion(pokemon, poke2, is_supersplicer) - if selectedHead == -1 #cancelled + if selectedHead == -1 # cancelled return false end - if selectedHead == nil #can't fuse (egg, etc.) + if selectedHead == nil # can't fuse (egg, etc.) scene.pbDisplay(_INTL("It won't have any effect.")) return false end @@ -1530,7 +1465,7 @@ def pbDNASplicing(pokemon, scene, item = :DNASPLICERS) end end else - #UNFUSE + # UNFUSE return true if pbUnfuse(pokemon, scene, is_supersplicer) end end @@ -1539,7 +1474,7 @@ def selectFusion(pokemon, poke2, supersplicers = false) return nil if !pokemon.is_a?(Pokemon) || !poke2.is_a?(Pokemon) return nil if pokemon.egg? || poke2.egg? - selectorWindow = FusionPreviewScreen.new(poke2, pokemon, supersplicers) #PictureWindow.new(picturePath) + selectorWindow = FusionPreviewScreen.new(poke2, pokemon, supersplicers) # PictureWindow.new(picturePath) selectedHead = selectorWindow.getSelection selectorWindow.dispose return selectedHead @@ -1578,16 +1513,15 @@ def pbFuse(pokemon_body, pokemon_head, splicer_item) if (fus.pbStartScreen(pokemon_body, pokemon_head, newid, splicer_item)) returnItemsToBag(pokemon_body, pokemon_head) fus.pbFusionScreen(false, use_supersplicers_mechanics) - $game_variables[VAR_FUSE_COUNTER] += 1 #fuse counter + $game_variables[VAR_FUSE_COUNTER] += 1 # fuse counter fus.pbEndScreen return true end end - -#Todo: refactor this, holy shit this is a mess +# Todo: refactor this, holy shit this is a mess def pbUnfuse(pokemon, scene, supersplicers, pcPosition = nil) - if pokemon.species_data.id_number > (NB_POKEMON * NB_POKEMON) + NB_POKEMON #triple fusion + if pokemon.species_data.id_number > (NB_POKEMON * NB_POKEMON) + NB_POKEMON # triple fusion scene.pbDisplay(_INTL("{1} cannot be unfused.", pokemon.name)) return false end @@ -1661,7 +1595,7 @@ def pbUnfuse(pokemon, scene, supersplicers, pcPosition = nil) pokemon.shiny = false poke2.natural_shiny = true if pokemon.natural_shiny && !pokemon.debug_shiny else - #shiny was obtained already fused + # shiny was obtained already fused if rand(2) == 0 pokemon.shiny = true else @@ -1691,7 +1625,6 @@ def pbUnfuse(pokemon, scene, supersplicers, pcPosition = nil) poke2.debug_shiny = false end - if $Trainer.party.length >= 6 if (keepInParty == 0) if isOnPinkanIsland() @@ -1704,14 +1637,14 @@ def pbUnfuse(pokemon, scene, supersplicers, pcPosition = nil) poke2 = Pokemon.new(bodyPoke, body_level) poke1 = Pokemon.new(headPoke, head_level) - #Fusing from PC + # Fusing from PC if pcPosition != nil box = pcPosition[0] index = pcPosition[1] - #todo: store at next available position from current position + # todo: store at next available position from current position $PokemonStorage.pbStoreCaught(poke2) else - #Fusing from party + # Fusing from party if isOnPinkanIsland() scene.pbDisplay(_INTL("{1} was released.", poke2.name)) else @@ -1724,14 +1657,14 @@ def pbUnfuse(pokemon, scene, supersplicers, pcPosition = nil) if pcPosition != nil box = pcPosition[0] index = pcPosition[1] - #todo: store at next available position from current position + # todo: store at next available position from current position $PokemonStorage.pbStoreCaught(poke2) else Kernel.pbAddPokemonSilent(poke2, poke2.level) end end - #On ajoute les poke au pokedex + # On ajoute les poke au pokedex $Trainer.pokedex.set_seen(poke1.species) $Trainer.pokedex.set_owned(poke1.species) $Trainer.pokedex.set_seen(poke2.species) @@ -1744,7 +1677,7 @@ def pbUnfuse(pokemon, scene, supersplicers, pcPosition = nil) pokemon.obtain_method = 0 poke1.obtain_method = 0 - #scene.pbDisplay(_INTL(p1.to_s + " " + p2.to_s)) + # scene.pbDisplay(_INTL(p1.to_s + " " + p2.to_s)) scene.pbHardRefresh scene.pbDisplay(_INTL("Your Pokémon were successfully unfused! ")) return true @@ -1752,8 +1685,6 @@ def pbUnfuse(pokemon, scene, supersplicers, pcPosition = nil) end end - - ItemHandlers::UseOnPokemon.add(:SUPERSPLICERS, proc { |item, pokemon, scene| next true if pbDNASplicing(pokemon, scene, item) }) @@ -1770,26 +1701,26 @@ def returnItemsToBag(pokemon, poke2) poke2.item = nil end -#A AJOUTER: l'attribut dmgup ne modifie presentement pas +# A AJOUTER: l'attribut dmgup ne modifie presentement pas # le damage d'une attaque # ItemHandlers::UseOnPokemon.add(:DAMAGEUP, proc { |item, pokemon, scene| move = scene.pbChooseMove(pokemon, _INTL("Boost Damage of which move?")) if move >= 0 - #if pokemon.moves[move].damage==0 || pokemon.moves[move].accuracy<=5 || pokemon.moves[move].dmgup >=3 + # if pokemon.moves[move].damage==0 || pokemon.moves[move].accuracy<=5 || pokemon.moves[move].dmgup >=3 # scene.pbDisplay(_INTL("It won't have any effect.")) # next false - #else - #pokemon.moves[move].dmgup+=1 - #pokemon.moves[move].damage +=5 - #pokemon.moves[move].accuracy -=5 + # else + # pokemon.moves[move].dmgup+=1 + # pokemon.moves[move].damage +=5 + # pokemon.moves[move].accuracy -=5 - #movename=PBMoves.getName(pokemon.moves[move].id) - #scene.pbDisplay(_INTL("{1}'s damage increased.",movename)) - #next true + # movename=PBMoves.getName(pokemon.moves[move].id) + # scene.pbDisplay(_INTL("{1}'s damage increased.",movename)) + # next true scene.pbDisplay(_INTL("This item has not been implemented into the game yet. It had no effect.")) next false - #end + # end end }) @@ -1932,7 +1863,7 @@ ItemHandlers::UseOnPokemon.add(:DAMAGEUP, proc { |item, pokemon, scene| # :SUNSTONE,:DUSKSTONE,:DAWNSTONE,:SHINYSTONE,:OVALSTONE, # :UPGRADE,:DUBIOUSDISC,:ICESTONE,:MAGNETSTONE) -#Quest log +# Quest log ItemHandlers::UseFromBag.add(:DEVONSCOPE, proc { |item| pbQuestlog() @@ -1943,7 +1874,7 @@ ItemHandlers::UseInField.add(:DEVONSCOPE, proc { |item| pbQuestlog() }) -#TRACKER (for roaming legendaries) +# TRACKER (for roaming legendaries) ItemHandlers::UseInField.add(:REVEALGLASS, proc { |item| track_pokemon() next true @@ -2040,7 +1971,7 @@ def track_pokemon() end ####EXP. ALL -#Methodes relative a l'exp sont pas encore la et pas compatibles +# Methodes relative a l'exp sont pas encore la et pas compatibles # avec cette version de essentials donc # ca fait fuck all pour l'instant. ItemHandlers::UseFromBag.add(:EXPALL, proc { |item| @@ -2073,10 +2004,10 @@ ItemHandlers::UseOnPokemon.add(:GOLDENBANANA, proc { |item, pokemon, scene| ItemHandlers::UseInField.add(:BOXLINK, proc { |item| blacklisted_maps = [ - 315, 316, 317, 318, 328, 343, #Elite Four - 776, 777, 778, 779, 780, 781, 782, 783, 784, #Mt. Silver - 722, 723, 724, 720, #Dream sequence - 304, 306, 307 #Victory road + 315, 316, 317, 318, 328, 343, # Elite Four + 776, 777, 778, 779, 780, 781, 782, 783, 784, # Mt. Silver + 722, 723, 724, 720, # Dream sequence + 304, 306, 307 # Victory road ] if blacklisted_maps.include?($game_map.map_id) Kernel.pbMessage("There doesn't seem to be any network coverage here...") @@ -2084,7 +2015,7 @@ ItemHandlers::UseInField.add(:BOXLINK, proc { |item| pbFadeOutIn { scene = PokemonStorageScene.new screen = PokemonStorageScreen.new(scene, $PokemonStorage) - screen.pbStartScreen(0) #Boot PC in organize mode + screen.pbStartScreen(0) # Boot PC in organize mode } end next 1 diff --git a/Data/Scripts/052_AddOns/TRQuests.rb b/Data/Scripts/052_AddOns/TRQuests.rb index 7d0b353a1..11c7e742d 100644 --- a/Data/Scripts/052_AddOns/TRQuests.rb +++ b/Data/Scripts/052_AddOns/TRQuests.rb @@ -4,6 +4,18 @@ def isWearingTeamRocketOutfit() return (isWearingClothes(CLOTHES_TEAM_ROCKET_MALE) || isWearingClothes(CLOTHES_TEAM_ROCKET_FEMALE)) && isWearingHat(HAT_TEAM_ROCKET) end +def isWearingFavoriteOutfit() + is_wearing_favorite_hat = $Trainer.hat == $Trainer.favorite_hat || !$Trainer.favorite_hat + is_wearing_favorite_clothes = $Trainer.clothes == $Trainer.favorite_clothes || !$Trainer.favorite_clothes + if $Trainer.favorite_hat && !$Trainer.favorite_clothes + return is_wearing_favorite_hat + end + if $Trainer.favorite_clothes && !$Trainer.favorite_hat + return is_wearing_favorite_clothes + end + return is_wearing_favorite_clothes && is_wearing_favorite_hat +end + def obtainRocketOutfit() Kernel.pbReceiveItem(:ROCKETUNIFORM) gender = pbGet(VAR_TRAINER_GENDER) diff --git a/Data/Skills.rxdata b/Data/Skills.rxdata index a45219f5e..61cba7ea2 100644 Binary files a/Data/Skills.rxdata and b/Data/Skills.rxdata differ diff --git a/Data/States.rxdata b/Data/States.rxdata index 868d49e59..0f9b4ae5d 100644 Binary files a/Data/States.rxdata and b/Data/States.rxdata differ diff --git a/Data/System.rxdata b/Data/System.rxdata index 5001f41b5..08df73751 100644 Binary files a/Data/System.rxdata and b/Data/System.rxdata differ diff --git a/Data/Tilesets.rxdata b/Data/Tilesets.rxdata index 81118b37b..6fd4dee80 100644 Binary files a/Data/Tilesets.rxdata and b/Data/Tilesets.rxdata differ diff --git a/Data/Weapons.rxdata b/Data/Weapons.rxdata index c7ea19a7a..d9bd35260 100644 Binary files a/Data/Weapons.rxdata and b/Data/Weapons.rxdata differ diff --git a/Data/items.dat b/Data/items.dat index 054300483..1cc78b9fe 100644 Binary files a/Data/items.dat and b/Data/items.dat differ diff --git a/Data/messages.dat b/Data/messages.dat index 20d9e4f1a..f69128a2f 100644 Binary files a/Data/messages.dat and b/Data/messages.dat differ diff --git a/Data/sprites/sprites_rate_limit.log b/Data/sprites/sprites_rate_limit.log index 9b9bf923b..0e7f8662a 100644 --- a/Data/sprites/sprites_rate_limit.log +++ b/Data/sprites/sprites_rate_limit.log @@ -1,4 +1,2 @@ -1739849259 -1739849260 -1739849260 -1739849318 \ No newline at end of file +1739894631 +1739894631 \ No newline at end of file diff --git a/Data/sprites/updated_spritesheets_cache b/Data/sprites/updated_spritesheets_cache index 0e2bae371..6a4fdd41e 100644 --- a/Data/sprites/updated_spritesheets_cache +++ b/Data/sprites/updated_spritesheets_cache @@ -56,3 +56,77 @@ Graphics/CustomBattlers/spritesheets/spritesheets_base/106.png Graphics/CustomBattlers/spritesheets/spritesheets_base/457.png Graphics/CustomBattlers/spritesheets/spritesheets_custom/457/457.png Graphics/CustomBattlers/spritesheets/spritesheets_custom/25/25a.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/222.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/183.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/183/183.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/76.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/203.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/203/203.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/2.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/50.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/50/50a.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/323.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/152.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/446.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/93.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/93/93.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/37.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/165.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/165/165.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/30.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/79.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/79/79a.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/157.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/302.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/42.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/227.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/227/227.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/23.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/161.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/161/161.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/310.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/310/310a.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/50/50.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/334.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/334/334.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/29.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/29/29.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/94/94.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/410.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/49.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/49/49.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/308.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/132.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/442.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/442/442b.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/170.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/295.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/381.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/362/362.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/212.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/4.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/4/4.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/55.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/390.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/390/390.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/163.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/438.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/438/438.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/134.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/364.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/447.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/447/447.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/339.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/91.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/91/91.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/169.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/11.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/11/11.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/87.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/263.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/1.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/1/1.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/20.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/32.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/105.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/105/105.png diff --git a/Graphics/.DS_Store b/Graphics/.DS_Store index e79780e24..e9d3664e4 100644 Binary files a/Graphics/.DS_Store and b/Graphics/.DS_Store differ diff --git a/Graphics/Battlers/.DS_Store b/Graphics/Battlers/.DS_Store index d3d8104fd..7030eaa72 100644 Binary files a/Graphics/Battlers/.DS_Store and b/Graphics/Battlers/.DS_Store differ diff --git a/Graphics/Items/FAVORITEOUTFIT.png b/Graphics/Items/FAVORITEOUTFIT.png new file mode 100644 index 000000000..930295fcb Binary files /dev/null and b/Graphics/Items/FAVORITEOUTFIT.png differ