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 065a7e253..d940ad63a 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 346d4b506..5f431d310 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/Map042.rxdata b/Data/Map042.rxdata index c7a6fb6ae..d30d41dfc 100644 Binary files a/Data/Map042.rxdata and b/Data/Map042.rxdata differ diff --git a/Data/Map247.rxdata b/Data/Map247.rxdata index 4c8071928..3ec7c3a38 100644 Binary files a/Data/Map247.rxdata and b/Data/Map247.rxdata differ diff --git a/Data/Map288.rxdata b/Data/Map288.rxdata index d8356cf6c..0a1046dac 100644 Binary files a/Data/Map288.rxdata and b/Data/Map288.rxdata differ diff --git a/Data/Map490.rxdata b/Data/Map490.rxdata index 6aec5c57a..a09761c18 100644 Binary files a/Data/Map490.rxdata and b/Data/Map490.rxdata differ diff --git a/Data/Map531.rxdata b/Data/Map531.rxdata index 3714624ca..da4e972ed 100644 Binary files a/Data/Map531.rxdata and b/Data/Map531.rxdata differ diff --git a/Data/Map563.rxdata b/Data/Map563.rxdata index 37e6fe1b9..f1b4fe804 100644 Binary files a/Data/Map563.rxdata and b/Data/Map563.rxdata differ diff --git a/Data/Map565.rxdata b/Data/Map565.rxdata index bb9e3c4a9..63b105d69 100644 Binary files a/Data/Map565.rxdata and b/Data/Map565.rxdata differ diff --git a/Data/Map600.rxdata b/Data/Map600.rxdata index 53833b993..ddd5e1b57 100644 Binary files a/Data/Map600.rxdata and b/Data/Map600.rxdata differ diff --git a/Data/Map627.rxdata b/Data/Map627.rxdata index b74676867..ef2b37e36 100644 Binary files a/Data/Map627.rxdata and b/Data/Map627.rxdata differ diff --git a/Data/Map628.rxdata b/Data/Map628.rxdata index 010652201..c2242e1a5 100644 Binary files a/Data/Map628.rxdata and b/Data/Map628.rxdata differ diff --git a/Data/Map725.rxdata b/Data/Map725.rxdata index b9b73743b..dbe59e128 100644 Binary files a/Data/Map725.rxdata and b/Data/Map725.rxdata differ diff --git a/Data/Map727.rxdata b/Data/Map727.rxdata index 0641dad0c..35cc9c636 100644 Binary files a/Data/Map727.rxdata and b/Data/Map727.rxdata differ diff --git a/Data/Map728.rxdata b/Data/Map728.rxdata index bcc82a648..25ddff94f 100644 Binary files a/Data/Map728.rxdata and b/Data/Map728.rxdata differ diff --git a/Data/Map732.rxdata b/Data/Map732.rxdata index 6faf0446b..75b50e852 100644 Binary files a/Data/Map732.rxdata and b/Data/Map732.rxdata differ diff --git a/Data/MapInfos.rxdata b/Data/MapInfos.rxdata index 6dfaa4e39..52d49e8ef 100644 Binary files a/Data/MapInfos.rxdata and b/Data/MapInfos.rxdata differ diff --git a/Data/Scripts/021_Compiler/001_Compiler.rb b/Data/Scripts/021_Compiler/001_Compiler.rb index 9778c106d..c76a94872 100644 --- a/Data/Scripts/021_Compiler/001_Compiler.rb +++ b/Data/Scripts/021_Compiler/001_Compiler.rb @@ -734,7 +734,7 @@ module Compiler end def main - return + #return return if !$DEBUG begin dataFiles = [ diff --git a/Data/Scripts/049_Compatibility/Constants.rb b/Data/Scripts/049_Compatibility/Constants.rb index 8a1ba8149..f8f14deed 100644 --- a/Data/Scripts/049_Compatibility/Constants.rb +++ b/Data/Scripts/049_Compatibility/Constants.rb @@ -1,13 +1,14 @@ #Switches NEW_GAME_PLUS = 972 BEAT_THE_LEAGUE = 12 - +BEAT_MT_SILVER=918 #Variables DEFAULT_BATTLE_TYPE = 242 BATTLE_FACTORY_TOKENS = 243 +NB_GYM_REMATCHES = 162 #Settings diff --git a/Data/Scripts/050_AddOns/BattleLounge.rb b/Data/Scripts/050_AddOns/BattleLounge.rb index 997e412b4..e69c7e270 100644 --- a/Data/Scripts/050_AddOns/BattleLounge.rb +++ b/Data/Scripts/050_AddOns/BattleLounge.rb @@ -4,49 +4,82 @@ end def get_egg_group_from_id(id) case id - when 0 ;return nil - when 1;return :Monster - when 2;return :Water1 - when 3;return :Bug - when 4;return :Flying - when 5;return :Field - when 6;return :Fairy - when 7;return :Grass - when 8;return :Humanlike - when 9;return :Water3 - when 10;return :Mineral - when 11;return :Amorphous - when 12;return :Water2 - when 13;return :Ditto - when 14;return :Dragon - when 15;return :Undiscovered + when 0; + return nil + when 1; + return :Monster + when 2; + return :Water1 + when 3; + return :Bug + when 4; + return :Flying + when 5; + return :Field + when 6; + return :Fairy + when 7; + return :Grass + when 8; + return :Humanlike + when 9; + return :Water3 + when 10; + return :Mineral + when 11; + return :Amorphous + when 12; + return :Water2 + when 13; + return :Ditto + when 14; + return :Dragon + when 15; + return :Undiscovered end end def get_egg_group_name(id) case id - when 0 ;return nil - when 1;return "Monster Pokémon" - when 2;return :"Aquatic Pokémon" - when 3;return :"Bug Pokémon" - when 4;return :"Bird Pokémon" - when 5;return :"Land Pokémon" - when 6;return :"Cute Pokémon" - when 7;return :"Plant Pokémon" - when 8;return :"Human-like Pokémon" - when 9;return :"Aquatic Pokémon" - when 10;return :"Mineral Pokémon" - when 11;return :"Blob Pokémon" - when 12;return :"Fish Pokémon" - when 13;return :"Ditto" - when 14;return :"Dragon Pokémon" - when 15;return :"Legendary Pokémon" + when 0; + return nil + when 1; + return "Monster Pokémon" + when 2; + return :"Aquatic Pokémon" + when 3; + return :"Bug Pokémon" + when 4; + return :"Bird Pokémon" + when 5; + return :"Land Pokémon" + when 6; + return :"Cute Pokémon" + when 7; + return :"Plant Pokémon" + when 8; + return :"Human-like Pokémon" + when 9; + return :"Aquatic Pokémon" + when 10; + return :"Mineral Pokémon" + when 11; + return :"Blob Pokémon" + when 12; + return :"Fish Pokémon" + when 13; + return :"Ditto" + when 14; + return :"Dragon Pokémon" + when 15; + return :"Legendary Pokémon" end end -def get_random_trainer_name(trainer_class) #0: male, 1: female -gender = GameData::TrainerType.get(trainer_class).gender - if(gender == 0) +def get_random_trainer_name(trainer_class) + #0: male, 1: female + gender = GameData::TrainerType.get(trainer_class).gender + if (gender == 0) return RandTrainerNames_male[rand(RandTrainerNames_male.length)] else return RandTrainerNames_female[rand(RandTrainerNames_female.length)] @@ -54,68 +87,78 @@ gender = GameData::TrainerType.get(trainer_class).gender end def get_random_battle_lounge_egg_group - _DISABLED_EGG_GROUPS = [0,13,15] - group=0 + _DISABLED_EGG_GROUPS = [0, 13, 15] + group = 0 while _DISABLED_EGG_GROUPS.include?(group) - group = rand(0,15) + group = rand(0, 15) end return group end -GENERIC_PRIZES_MULTI = [:HEARTSCALE,:LEMONADE] -GENERIC_PRIZES_SINGLE = [:RARECANDY,:RARECANDY,:PPUP,:EJECTBUTTON,:FOCUSBAND,:FOCUSSASH,:RESETURGE,:ABILITYURGE,:ITEMURGE,:ITEMDROP,:HPUP] -MONSTER_PRIZES = [:RAREBONE,:LAGGINGTAIL,:RAZORFANG,:RAZORCLAW,:GRIPCLAW] -WATER_PRIZES = [:MYSTICWATER,:BIGPEARL] -BUG_PRIZES = [:SILVERPOWDER,:SHEDSHELL] -FLYING_PRIZES = [:AIRBALLOON,:FLOATSTONE] -FIELD_PRIZES = [:MOOMOOMILK,:IRONBALL,:RAREBONE] -FAIRY_PRIZES = [:STARPIECE,:DESTINYKNOT,:MAXELIXIR] -HUMAN_PRIZES = [:BLACKBELT,:RINGTARGET,:EXPERTBELT] -GRASS_PRIZES = [:REVIVALHERB,:POWERHERB,:HEALPOWDER,:ABSORBBULB,:BIGMUSHROOM] -MINERAL_PRIZES = [:CELLBATTERY,:SHINYSTONE,:BIGNUGGET,:RELICCOPPER,:RELICGOLD,:RELICSILVER] -AMORPHOUS_PRIZES = [:SPELLTAG,:WIDELENS,:ZOOMLENS,:SCOPELENS] -DRAGON_PRIZES = [:DRAGONSCALE,:DRAGONFANG,:RARECANDY] -UNDISCOVERED_PRIZES = [:MASTERBALL,:SACREDASH] +GENERIC_PRIZES_MULTI = [:HEARTSCALE, :LEMONADE] +GENERIC_PRIZES_SINGLE = [:RARECANDY, :RARECANDY, :PPUP, :EJECTBUTTON, :FOCUSBAND, :FOCUSSASH, :RESETURGE, :ABILITYURGE, :ITEMURGE, :ITEMDROP, :HPUP] +MONSTER_PRIZES = [:RAREBONE, :LAGGINGTAIL, :RAZORFANG, :RAZORCLAW, :GRIPCLAW] +WATER_PRIZES = [:MYSTICWATER, :BIGPEARL] +BUG_PRIZES = [:SILVERPOWDER, :SHEDSHELL] +FLYING_PRIZES = [:AIRBALLOON, :FLOATSTONE] +FIELD_PRIZES = [:MOOMOOMILK, :IRONBALL, :RAREBONE] +FAIRY_PRIZES = [:STARPIECE, :DESTINYKNOT, :MAXELIXIR] +HUMAN_PRIZES = [:BLACKBELT, :RINGTARGET, :EXPERTBELT] +GRASS_PRIZES = [:REVIVALHERB, :POWERHERB, :HEALPOWDER, :ABSORBBULB, :BIGMUSHROOM] +MINERAL_PRIZES = [:CELLBATTERY, :SHINYSTONE, :BIGNUGGET, :RELICCOPPER, :RELICGOLD, :RELICSILVER] +AMORPHOUS_PRIZES = [:SPELLTAG, :WIDELENS, :ZOOMLENS, :SCOPELENS] +DRAGON_PRIZES = [:DRAGONSCALE, :DRAGONFANG, :RARECANDY] +UNDISCOVERED_PRIZES = [:MASTERBALL, :SACREDASH] #todo: prizes related to the group (ex: dragon fang for dragon types, TMs, etc. ) # todo: if heartscale, give a random amount from 10-20 def get_random_battle_lounge_prize(group_type) generic_prizes = [GENERIC_PRIZES_MULTI, GENERIC_PRIZES_SINGLE] - is_generic_prize = rand(3)==1 + is_generic_prize = rand(3) == 1 if is_generic_prize type = generic_prizes.sample return type.sample else case get_egg_group_from_id(group_type) - when :Monster ; return MONSTER_PRIZES.sample - when :Water1,:Water2,:Water3 ; return WATER_PRIZES.sample - when :Bug ; return BUG_PRIZES.sample - when :Flying ; return FLYING_PRIZES.sample - when :Field ; return FIELD_PRIZES.sample - when :Fairy ; return FAIRY_PRIZES.sample - when :Grass ; return GRASS_PRIZES.sample - when :Mineral ; return MINERAL_PRIZES.sample - when :Humanlike ; return HUMAN_PRIZES.sample - when :Amorphous ; return AMORPHOUS_PRIZES.sample - when :Dragon ; return DRAGON_PRIZES.sample - when :Undiscovered ; return UNDISCOVERED_PRIZES.sample + when :Monster; + return MONSTER_PRIZES.sample + when :Water1, :Water2, :Water3; + return WATER_PRIZES.sample + when :Bug; + return BUG_PRIZES.sample + when :Flying; + return FLYING_PRIZES.sample + when :Field; + return FIELD_PRIZES.sample + when :Fairy; + return FAIRY_PRIZES.sample + when :Grass; + return GRASS_PRIZES.sample + when :Mineral; + return MINERAL_PRIZES.sample + when :Humanlike; + return HUMAN_PRIZES.sample + when :Amorphous; + return AMORPHOUS_PRIZES.sample + when :Dragon; + return DRAGON_PRIZES.sample + when :Undiscovered; + return UNDISCOVERED_PRIZES.sample end end end - - def generateSameEggGroupFusionsTeam(eggGroup_id) eggGroup = get_egg_group_from_id(eggGroup_id) teamComplete = false generatedTeam = [] while !teamComplete foundFusionPartner = false - species1 = rand(Settings::NB_POKEMON)+1 + species1 = rand(Settings::NB_POKEMON) + 1 if getPokemonEggGroups(species1).include?(eggGroup) foundFusionPartner = false while !foundFusionPartner - species2 = rand(Settings::NB_POKEMON)+1 + species2 = rand(Settings::NB_POKEMON) + 1 if getPokemonEggGroups(species2).include?(eggGroup) generatedTeam << getFusionSpecies(species1, species2) foundFusionPartner = true @@ -125,4 +168,53 @@ def generateSameEggGroupFusionsTeam(eggGroup_id) teamComplete = generatedTeam.length == 3 end return generatedTeam +end + +def listLegendaryPokemonIds() + return [144, 145, 146, 150, 151, 245, 243, 244, 245, 249, 250, 251, 315, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 378, 379, 380, 381] +end + +def generateRandomFusionFromPokemon(dexNum, onlyCustomSprites = false, allowLegendaries=true) + speciesList = onlyCustomSprites ? getCustomSpeciesListForPokemon(dexNum,allowLegendaries) : getAllPokemonWithBase(dexNum) + return speciesList.sample +end + +def getRandomBasePokemon(includeLegendaries = false) + legendaries =listLegendaryPokemonIds() + poke = rand(NB_POKEMON + 1) + return poke if includeLegendaries + while legendaries.include?(poke) + poke = rand(NB_POKEMON + 1) + end + return poke +end + +def getAllPokemonWithBase(dexNum) + #todo Unimplemented + return [25] +end + +def getCustomSpeciesListForPokemon(dexNum,allowLegendaries=true) + excluded = allowLegendaries ? [] : listLegendaryPokemonIds() + filesList = Dir["./Graphics/CustomBattlers/*"] + speciesList = [] + maxDexNumber = (NB_POKEMON * NB_POKEMON) + NB_POKEMON + maxVal = filesList.length - 1 + for i in 0..maxVal + path = filesList[i] + file = File.basename(path, ".*") + splitPoke = file.split(".") + head = splitPoke[0].to_i + body = splitPoke[1].to_i + if (head == dexNum || body == dexNum) && !(excluded.include?(head) || excluded.include?(body)) + fused = (body * NB_POKEMON) + head + if fused <= maxDexNumber && fused > 0 + speciesList << fused + end + end + end + if speciesList.length == 0 + speciesList << dexNum + end + return speciesList end \ No newline at end of file diff --git a/Data/Scripts/050_AddOns/GeneralUtils.rb b/Data/Scripts/050_AddOns/GeneralUtils.rb index dc5632d82..5b29c0069 100644 --- a/Data/Scripts/050_AddOns/GeneralUtils.rb +++ b/Data/Scripts/050_AddOns/GeneralUtils.rb @@ -100,6 +100,10 @@ def getDexNumberForSpecies(species) return dexNum end +def getPokemon(dexNum) + return GameData::Species.get(dexNum) +end + #shortcut for using in game events because of script characters limit def dexNum(species) return getDexNumberForSpecies(species) @@ -279,3 +283,18 @@ def Kernel.setRocketPassword(variableNum) password = _INTL("{1}'s {2}",word1,word2) pbSet(variableNum,password) end + + +def getGenericPokemonCryText(pokemonSpecies) + case pokemonSpecies + when 25 + return "Pika!" + when 16,17,18,21,22,144,145,146,227,417,418,372 #birds + return "Squawk!" + when 163,164 + return "Hoot!" #owl + else + return "Guaugh!" + end +end + diff --git a/Data/Skills.rxdata b/Data/Skills.rxdata index a45219f5e..61cba7ea2 100644 Binary files a/Data/Skills.rxdata and b/Data/Skills.rxdata differ diff --git a/Data/States.rxdata b/Data/States.rxdata index 868d49e59..0f9b4ae5d 100644 Binary files a/Data/States.rxdata and b/Data/States.rxdata differ diff --git a/Data/System.rxdata b/Data/System.rxdata index cb8f834f6..d15ce9041 100644 Binary files a/Data/System.rxdata and b/Data/System.rxdata differ diff --git a/Data/Tilesets.rxdata b/Data/Tilesets.rxdata index 838a3a9d6..e3795ef66 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/messages.dat b/Data/messages.dat index e7e2e70cb..64b185bea 100644 Binary files a/Data/messages.dat and b/Data/messages.dat differ diff --git a/Data/trainers.dat b/Data/trainers.dat index 0b4fd6135..c2d31554c 100644 Binary files a/Data/trainers.dat and b/Data/trainers.dat differ diff --git a/PBS/trainers.txt b/PBS/trainers.txt index 9128b49f9..4337c78fd 100644 --- a/PBS/trainers.txt +++ b/PBS/trainers.txt @@ -4638,4 +4638,7 @@ Pokemon = B130H149,79 #DRAGONDOS (w/extremespeed) [COOLTRAINER_F,lounge_member] Pokemon = DIALGA,25 Pokemon = PALKIA,25 -Pokemon = GIRATINA,25 \ No newline at end of file +Pokemon = GIRATINA,25 + +[COOLTRAINER_F,lounge_member_single] +Pokemon = DIALGA,25