diff --git a/Data/MapInfos.rxdata b/Data/MapInfos.rxdata index 1a777ed95..3709380b9 100644 Binary files a/Data/MapInfos.rxdata and b/Data/MapInfos.rxdata differ diff --git a/Data/Scripts/010_Data/002_PBS data/006_Item.rb b/Data/Scripts/010_Data/002_PBS data/006_Item.rb index 6bb6b9ada..fbfc81c51 100644 --- a/Data/Scripts/010_Data/002_PBS data/006_Item.rb +++ b/Data/Scripts/010_Data/002_PBS data/006_Item.rb @@ -98,6 +98,9 @@ module GameData return pbGetMessage(MessageTypes::ItemDescriptions, @id_number) end + def has_battle_use? + return @battle_use != 0 + end def is_TM?; return @field_use == 3; end def is_HM?; return @field_use == 4; end def is_TR?; return @field_use == 6; end @@ -123,6 +126,7 @@ module GameData def can_hold?; return !is_important?; end def unlosable?(species, ability) + return true if $game_switches[SWITCH_RANDOM_HELD_ITEMS] return false if species == :ARCEUS && ability != :MULTITYPE return false if species == :SILVALLY && ability != :RKSSYSTEM combos = { diff --git a/Data/Scripts/010_Data/002_PBS data/013_Trainer.rb b/Data/Scripts/010_Data/002_PBS data/013_Trainer.rb index 32f836876..62a96abc2 100644 --- a/Data/Scripts/010_Data/002_PBS data/013_Trainer.rb +++ b/Data/Scripts/010_Data/002_PBS data/013_Trainer.rb @@ -147,7 +147,7 @@ module GameData end def add_generated_species_to_gym_array(new_species, trainerId) - expected_team_length =1 + expected_team_length = 1 expected_team_length = $PokemonGlobal.randomTrainersHash[trainerId].length if $PokemonGlobal.randomTrainersHash[trainerId] new_team = [] if $PokemonGlobal.randomGymTrainersHash[trainerId] @@ -285,7 +285,12 @@ module GameData pkmn.forced_form = pkmn_data[:form] if MultipleForms.hasFunction?(species, "getForm") pkmn.form_simple = pkmn_data[:form] end - pkmn.item = pkmn_data[:item] + + if $game_switches[SWITCH_RANDOM_HELD_ITEMS] + pkmn.item = pbGetRandomHeldItem().id + else + pkmn.item = pkmn_data[:item] + end if pkmn_data[:moves] && pkmn_data[:moves].length > 0 pkmn_data[:moves].each { |move| pkmn.learn_move(move) } else diff --git a/Data/Scripts/025-Randomizer/RandomizerUtils.rb b/Data/Scripts/025-Randomizer/RandomizerUtils.rb index c257ed391..65851fcaf 100644 --- a/Data/Scripts/025-Randomizer/RandomizerUtils.rb +++ b/Data/Scripts/025-Randomizer/RandomizerUtils.rb @@ -1,9 +1,28 @@ -NON_RANDOMIZE_ITEMS = [:CELLBATTERY,:MAGNETSTONE] - +NON_RANDOMIZE_ITEMS = [:CELLBATTERY, :MAGNETSTONE] +HELD_ITEMS = [:AIRBALLOON, :BRIGHTPOWDER, :EVIOLITE, :FLOATSTONE, :DESTINYKNOT, :ROCKYHELMET, :EJECTBUTTON, :REDCARD, + :SHEDSHELL, :SMOKEBALL, :CHOICEBAND, :CHOICESPECS, :CHOICESCARF, :HEATROCK, :DAMPROCK, :SMOOTHROCK, :ICYROCK, + :LIGHTCLAY, :GRIPCLAW, :BINDINGBAND, :BIGROOT, :BLACKSLUDGE, :LEFTOVERS, :SHELLBELL, :MENTALHERB, :WHITEHERB, + :POWERHERB, :ABSORBBULB, :CELLBATTERY, :LIFEORB, :EXPERTBELT, :METRONOME, :MUSCLEBAND, :WISEGLASSES, + :RAZORCLAW, :SCOPELENS, :WIDELENS, :ZOOMLENS, :KINGSROCK, :RAZORFANG, :LAGGINGTAIL, :QUICKCLAW, + :FOCUSBAND, :FOCUSSASH, :FLAMEORB, :TOXICORB, :STICKYBARB, :IRONBALL, :RINGTARGET, + :MACHOBRACE, :POWERWEIGHT, :POWERBRACER, :POWERBELT, :POWERLENS, :POWERBAND, :POWERANKLET, + :LAXINCENSE, :FULLINCENSE, :LUCKINCENSE, :PUREINCENSE, :SEAINCENSE, :WAVEINCENSE, :ROSEINCENSE, + :ODDINCENSE, :ROCKINCENSE, :CHARCOAL, :MYSTICWATER, :MAGNET, :HARDSTONE, :SILVERPOWDER, + :TWISTEDSPOON, :SHARPBEAK, :POISONBARB, :BLACKBELT, :NEVERMELTICE, :MIRACLESEED, :SILKSCARF, + :METALCOAT, :BLACKGLASSES, :DRAGONFANG, :SPELLTAG, :FIREGEM, :WATERGEM, :ELECTRICGEM, + :GRASSGEM, :ICEGEM, :FIGHTINGGEM, :POISONGEM, :GROUNDGEM, :FLYINGGEM, :PSYCHICGEM, + :BUGGEM, :ROCKGEM, :GHOSTGEM, :DRAGONGEM, :DARKGEM, :STEELGEM, :NORMALGEM, + :CHERIBERRY, :CHESTOBERRY, :PECHABERRY, :RAWSTBERRY, :ASPEARBERRY, :LEPPABERRY, :ORANBERRY, + :PERSIMBERRY, :LUMBERRY, :SITRUSBERRY, :FIGYBERRY, :WIKIBERRY, :MAGOBERRY, :AGUAVBERRY, + :IAPAPABERRY, :OCCABERRY, :PASSHOBERRY, :WACANBERRY, :RINDOBERRY, :YACHEBERRY, :CHOPLEBERRY, + :KEBIABERRY, :SHUCABERRY, :COBABERRY, :PAYAPABERRY, :TANGABERRY, :CHARTIBERRY, :KASIBBERRY, + :HABANBERRY, :COLBURBERRY, :BABIRIBERRY, :CHILANBERRY, :LIECHIBERRY, :GANLONBERRY, :SALACBERRY, + :PETAYABERRY, :APICOTBERRY, :LANSATBERRY, :STARFBERRY, :ENIGMABERRY, :MICLEBERRY, :CUSTAPBERRY, + :JABOCABERRY, :ROWAPBERRY, :FAIRYGEM] def pbGetRandomItem(item_id) + return nil if item_id == nil item = GameData::Item.get(item_id) - #keyItem ou HM -> on randomize pas return item if item.is_key_item? return item if item.is_HM? @@ -29,7 +48,11 @@ def pbGetRandomItem(item_id) return newItem end - +def pbGetRandomHeldItem() + newItem_id = HELD_ITEMS.sample + newItem = GameData::Item.get(newItem_id) + return newItem +end def pbGetRandomBerry() items_list = GameData::Item.list_all diff --git a/Data/Scripts/049_Compatibility/Constants.rb b/Data/Scripts/049_Compatibility/Constants.rb index fdbd0d0a6..6d51f9bf6 100644 --- a/Data/Scripts/049_Compatibility/Constants.rb +++ b/Data/Scripts/049_Compatibility/Constants.rb @@ -56,6 +56,7 @@ SWITCH_RANDOM_GYM_CUSTOMS=662 SWITCH_RANDOMIZE_GYMS_SEPARATELY = 667 SWITCH_RANDOMIZED_GYM_TYPES=921 SWITCH_RANDOM_GIFT_POKEMON = 780 +SWITCH_RANDOM_HELD_ITEMS = 843 #Other switches SWITCH_RACE_BIKE = 984 SWITCH_IS_REMATCH=200 diff --git a/Data/System.rxdata b/Data/System.rxdata index f086bd980..1cd8061ee 100644 Binary files a/Data/System.rxdata and b/Data/System.rxdata differ