From 1585ecb4f1eeb83ef4b4507e3806ef3764c98b9b Mon Sep 17 00:00:00 2001 From: infinitefusion Date: Fri, 24 Jun 2022 21:20:55 -0400 Subject: [PATCH] gym leader randomized tm --- Data/Scripts/001_Settings.rb | 24 +++++++++++ Data/Scripts/012_Overworld/001_Overworld.rb | 28 +++++++++++++ Data/Scripts/016_UI/004_UI_Pokedex_Entry.rb | 44 ++++++++++----------- 3 files changed, 74 insertions(+), 22 deletions(-) diff --git a/Data/Scripts/001_Settings.rb b/Data/Scripts/001_Settings.rb index ba2537d45..6d0d44154 100644 --- a/Data/Scripts/001_Settings.rb +++ b/Data/Scripts/001_Settings.rb @@ -490,6 +490,30 @@ module Settings "choice 27", "choice 28" ] + + + RANDOMIZED_GYM_TYPE_TM= + { + :NORMAL => [:TM32,:TM49,:TM42,:TM98], #DOUBLETEAM ECHOEDVOICE FACADE BATONPASS + :FIGHTING => [:TM83,:TM115,:TM52,:TM112], #WORKUP POWERUPPUNCH FOCUSBLAST FOCUSPUNCH + :FLYING => [:TM62,:TM58,:TM108,:TM100], #ACROBATICS SKYDROP SKYATTACK DEFOG + :POISON => [:TM84,:TM06,:TM36,:TM34], #POISONJAB TOXIC SLUDGEBOMB SLUDGEWAVE + :GROUND => [:TM28,:TM78,:TM26,:TM119], #DIG BULLDOZE EARTHQUAKE STOMPINGTANTRUM + :ROCK => [:TM39,:TM80,:TM71,:TM69], #ROCKTOMB ROCKTHROW STONEDGE ROCKPOLISH + :BUG => [:TM76,:TM89,:TM113,:TM99], #STRUGGLEBUG UTURN INFESTATION QUIVERDANCE + :GHOST => [:TM85,:TM65,:TM30,:TM97], #DREAMEATER SHADOWCLAW SHADOWBALL NASTYPLOT + :STEEL => [:TM74,:TM118,:TM117,:TM75], # GYROBALL STEELWING SMARTSTRIKE SWORDDANCE + :FIRE => [:TM11,:TM43,:TM38,:TM61], #SUNNYDAY FLAMECHARGE FIREBLAST WILLOWISP + :WATER => [:TM55,:TM105,:TM121,:TM18], #WATERPULSE AQUAJET SCALD RAINDANCE + :GRASS => [:TM22,:TM53,:TM86,:TM102], # SOLARBEAM ENERGYBALL GRASSKNOT SPORE + :ELECTRIC => [:TM73,:TM116,:TM93,:TM72], #THUNDERWAVE SHOCKWAVE WILDCHARGE VOLTSWITCH + :PSYCHIC => [:TM77,:TM03,:TM29,:TM04], #PSYCHUP PSYSHOCK PSYCHIC CALMMIND + :ICE => [:TM110,:TM13,:TM14,:TM07], #AURORAVEIL ICEBEAM BLIZZARD HAIL + :DRAGON => [:TM95,:TM02,:TM82,:TM101], #SNARL DRAGONCLAW DRAGONTAIL DRAGONDANCE + :DARK => [:TM95,:TM46,:TM120,:TM97], #SNARL THIEF THROATCHOP NASTYPLOT + :FAIRY => [:TM45,:TM111,:TM96,:TM104] #ATTRACT DAZZLINGGLEAM MOONBLAST RECOVER + } + end # DO NOT EDIT THESE! diff --git a/Data/Scripts/012_Overworld/001_Overworld.rb b/Data/Scripts/012_Overworld/001_Overworld.rb index a931345be..485281e26 100644 --- a/Data/Scripts/012_Overworld/001_Overworld.rb +++ b/Data/Scripts/012_Overworld/001_Overworld.rb @@ -805,6 +805,8 @@ end #=============================================================================== # Being given an item #=============================================================================== + + def pbReceiveItem(item, quantity = 1, item_name = "", music = nil) #item_name -> pour donner un autre nom à l'item. Pas encore réimplémenté et surtout là pour éviter que ça plante quand des events essaient de le faire item = GameData::Item.get(item) @@ -816,6 +818,9 @@ def pbReceiveItem(item, quantity = 1, item_name = "", music = nil) if item == :LEFTOVERS pbMessage(_INTL("\\me[{1}]You obtained some \\c[1]{2}\\c[0]!\\wtnp[30]", meName, itemname)) elsif item.is_machine? # TM or HM + if $game_switches[SWITCH_RANDOMIZE_GYMS_SEPARATELY] && $game_switches[SWITCH_RANDOMIZED_GYM_TYPES] && $game_variables[VAR_CURRENT_GYM_TYPE]>-1 + item=randomizeGymTM(item) + end pbMessage(_INTL("\\me[{1}]You obtained \\c[1]{2} {3}\\c[0]!\\wtnp[30]", meName, itemname, GameData::Move.get(move).name)) elsif quantity > 1 pbMessage(_INTL("\\me[{1}]You obtained {2} \\c[1]{3}\\c[0]!\\wtnp[30]", meName, quantity, itemname)) @@ -831,3 +836,26 @@ def pbReceiveItem(item, quantity = 1, item_name = "", music = nil) end return false # Can't add the item end + + + + + +def randomizeGymTM(old_item) + gym_index = pbGet(VAR_CURRENT_GYM_TYPE) + type_id = pbGet(VAR_GYM_TYPES_ARRAY)[gym_index] + idx=0 + if $Trainer.badge_count >= 3 + idx=1 + end + if $Trainer.badge_count >= 6 + idx=2 + end + if $Trainer.badge_count >= 8 + idx=3 + end + typed_tms_array = Settings::RANDOMIZED_GYM_TYPE_TM[type_id] + return old_item if !typed_tms_array + return old_item if idx > typed_tms_array.size + return typed_tms_array[idx] +end \ No newline at end of file diff --git a/Data/Scripts/016_UI/004_UI_Pokedex_Entry.rb b/Data/Scripts/016_UI/004_UI_Pokedex_Entry.rb index c375bd723..f5e3a0ac9 100644 --- a/Data/Scripts/016_UI/004_UI_Pokedex_Entry.rb +++ b/Data/Scripts/016_UI/004_UI_Pokedex_Entry.rb @@ -20,28 +20,28 @@ class PokemonPokedexInfo_Scene @sprites["infosprite"].zoom_x = Settings::FRONTSPRITE_SCALE @sprites["infosprite"].zoom_y = Settings::FRONTSPRITE_SCALE - @mapdata = pbLoadTownMapData - map_metadata = GameData::MapMetadata.try_get($game_map.map_id) - mappos = (map_metadata) ? map_metadata.town_map_position : nil - if @region < 0 # Use player's current region - @region = (mappos) ? mappos[0] : 0 # Region 0 default - end - @sprites["areamap"] = IconSprite.new(0,0,@viewport) - @sprites["areamap"].setBitmap("Graphics/Pictures/#{@mapdata[@region][1]}") - @sprites["areamap"].x += (Graphics.width-@sprites["areamap"].bitmap.width)/2 - @sprites["areamap"].y += (Graphics.height+32-@sprites["areamap"].bitmap.height)/2 - for hidden in Settings::REGION_MAP_EXTRAS - if hidden[0]==@region && hidden[1]>0 && $game_switches[hidden[1]] - pbDrawImagePositions(@sprites["areamap"].bitmap,[ - ["Graphics/Pictures/#{hidden[4]}", - hidden[2]*PokemonRegionMap_Scene::SQUAREWIDTH, - hidden[3]*PokemonRegionMap_Scene::SQUAREHEIGHT] - ]) - end - end - @sprites["areahighlight"] = BitmapSprite.new(Graphics.width,Graphics.height,@viewport) - @sprites["areaoverlay"] = IconSprite.new(0,0,@viewport) - @sprites["areaoverlay"].setBitmap("Graphics/Pictures/Pokedex/overlay_area") + # @mapdata = pbLoadTownMapData + # map_metadata = GameData::MapMetadata.try_get($game_map.map_id) + # mappos = (map_metadata) ? map_metadata.town_map_position : nil + # if @region < 0 # Use player's current region + # @region = (mappos) ? mappos[0] : 0 # Region 0 default + # end + # @sprites["areamap"] = IconSprite.new(0,0,@viewport) + # @sprites["areamap"].setBitmap("Graphics/Pictures/#{@mapdata[@region][1]}") + # @sprites["areamap"].x += (Graphics.width-@sprites["areamap"].bitmap.width)/2 + # @sprites["areamap"].y += (Graphics.height+32-@sprites["areamap"].bitmap.height)/2 + # for hidden in Settings::REGION_MAP_EXTRAS + # if hidden[0]==@region && hidden[1]>0 && $game_switches[hidden[1]] + # pbDrawImagePositions(@sprites["areamap"].bitmap,[ + # ["Graphics/Pictures/#{hidden[4]}", + # hidden[2]*PokemonRegionMap_Scene::SQUAREWIDTH, + # hidden[3]*PokemonRegionMap_Scene::SQUAREHEIGHT] + # ]) + # end + # end + # @sprites["areahighlight"] = BitmapSprite.new(Graphics.width,Graphics.height,@viewport) + # @sprites["areaoverlay"] = IconSprite.new(0,0,@viewport) + # @sprites["areaoverlay"].setBitmap("Graphics/Pictures/Pokedex/overlay_area") @sprites["formfront"] = PokemonSprite.new(@viewport) @sprites["formfront"].setOffset(PictureOrigin::Center) @sprites["formfront"].x = 130