randomizer - held items

This commit is contained in:
infinitefusion
2022-05-01 17:44:27 -04:00
parent d0e39ff72b
commit 334e2c74fe
6 changed files with 39 additions and 6 deletions

Binary file not shown.

View File

@@ -98,6 +98,9 @@ module GameData
return pbGetMessage(MessageTypes::ItemDescriptions, @id_number) return pbGetMessage(MessageTypes::ItemDescriptions, @id_number)
end end
def has_battle_use?
return @battle_use != 0
end
def is_TM?; return @field_use == 3; end def is_TM?; return @field_use == 3; end
def is_HM?; return @field_use == 4; end def is_HM?; return @field_use == 4; end
def is_TR?; return @field_use == 6; end def is_TR?; return @field_use == 6; end
@@ -123,6 +126,7 @@ module GameData
def can_hold?; return !is_important?; end def can_hold?; return !is_important?; end
def unlosable?(species, ability) def unlosable?(species, ability)
return true if $game_switches[SWITCH_RANDOM_HELD_ITEMS]
return false if species == :ARCEUS && ability != :MULTITYPE return false if species == :ARCEUS && ability != :MULTITYPE
return false if species == :SILVALLY && ability != :RKSSYSTEM return false if species == :SILVALLY && ability != :RKSSYSTEM
combos = { combos = {

View File

@@ -147,7 +147,7 @@ module GameData
end end
def add_generated_species_to_gym_array(new_species, trainerId) 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] expected_team_length = $PokemonGlobal.randomTrainersHash[trainerId].length if $PokemonGlobal.randomTrainersHash[trainerId]
new_team = [] new_team = []
if $PokemonGlobal.randomGymTrainersHash[trainerId] if $PokemonGlobal.randomGymTrainersHash[trainerId]
@@ -285,7 +285,12 @@ module GameData
pkmn.forced_form = pkmn_data[:form] if MultipleForms.hasFunction?(species, "getForm") pkmn.forced_form = pkmn_data[:form] if MultipleForms.hasFunction?(species, "getForm")
pkmn.form_simple = pkmn_data[:form] pkmn.form_simple = pkmn_data[:form]
end 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 if pkmn_data[:moves] && pkmn_data[:moves].length > 0
pkmn_data[:moves].each { |move| pkmn.learn_move(move) } pkmn_data[:moves].each { |move| pkmn.learn_move(move) }
else else

View File

@@ -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) def pbGetRandomItem(item_id)
return nil if item_id == nil
item = GameData::Item.get(item_id) item = GameData::Item.get(item_id)
#keyItem ou HM -> on randomize pas #keyItem ou HM -> on randomize pas
return item if item.is_key_item? return item if item.is_key_item?
return item if item.is_HM? return item if item.is_HM?
@@ -29,7 +48,11 @@ def pbGetRandomItem(item_id)
return newItem return newItem
end end
def pbGetRandomHeldItem()
newItem_id = HELD_ITEMS.sample
newItem = GameData::Item.get(newItem_id)
return newItem
end
def pbGetRandomBerry() def pbGetRandomBerry()
items_list = GameData::Item.list_all items_list = GameData::Item.list_all

View File

@@ -56,6 +56,7 @@ SWITCH_RANDOM_GYM_CUSTOMS=662
SWITCH_RANDOMIZE_GYMS_SEPARATELY = 667 SWITCH_RANDOMIZE_GYMS_SEPARATELY = 667
SWITCH_RANDOMIZED_GYM_TYPES=921 SWITCH_RANDOMIZED_GYM_TYPES=921
SWITCH_RANDOM_GIFT_POKEMON = 780 SWITCH_RANDOM_GIFT_POKEMON = 780
SWITCH_RANDOM_HELD_ITEMS = 843
#Other switches #Other switches
SWITCH_RACE_BIKE = 984 SWITCH_RACE_BIKE = 984
SWITCH_IS_REMATCH=200 SWITCH_IS_REMATCH=200

Binary file not shown.