mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-07 21:24:59 +00:00
99 lines
3.4 KiB
Ruby
99 lines
3.4 KiB
Ruby
def obtainStarter(starterIndex = 0)
|
|
if ($game_switches[SWITCH_LEGENDARY_MODE])
|
|
generated_list = pbGet(VAR_LEGENDARY_STARTERS_CHOICES)
|
|
if generated_list.is_a?(Array)
|
|
startersList = generated_list
|
|
else
|
|
startersList = generate_legendary_mode_starters
|
|
pbSet(VAR_LEGENDARY_STARTERS_CHOICES,startersList)
|
|
end
|
|
starter = startersList[starterIndex]
|
|
elsif ($game_switches[SWITCH_RANDOM_STARTERS])
|
|
starter = obtainRandomizedStarter(starterIndex)
|
|
else
|
|
startersList = Settings::DEFAULT_STARTERS
|
|
if $game_switches[SWITCH_JOHTO_STARTERS]
|
|
startersList = Settings::JOHTO_STARTERS
|
|
elsif $game_switches[SWITCH_HOENN_STARTERS]
|
|
startersList = Settings::HOENN_STARTERS
|
|
elsif $game_switches[SWITCH_SINNOH_STARTERS]
|
|
startersList = Settings::SINNOH_STARTERS
|
|
elsif $game_switches[SWITCH_KALOS_STARTERS]
|
|
startersList = Settings::KALOS_STARTERS
|
|
elsif $game_switches[SWITCH_MIXED_STARTERS]
|
|
if $game_temp.starter_options
|
|
startersList = $game_temp.starter_options
|
|
else
|
|
$game_temp.starter_options = generate_mixed_starters_list
|
|
startersList = $game_temp.starter_options
|
|
end
|
|
end
|
|
starter = startersList[starterIndex]
|
|
end
|
|
return GameData::Species.get(starter)
|
|
end
|
|
|
|
def generate_mixed_starters_list
|
|
grass_option = Settings::GRASS_STARTERS.sample
|
|
fire_option = Settings::FIRE_STARTERS.sample
|
|
water_option = Settings::WATER_STARTERS.sample
|
|
return [grass_option, fire_option, water_option]
|
|
end
|
|
|
|
# body0
|
|
# head 1
|
|
def setRivalStarter(starterIndex1, starterIndex2)
|
|
starter1 = obtainStarter(starterIndex1)
|
|
starter2 = obtainStarter(starterIndex2)
|
|
|
|
ensureRandomHashInitialized()
|
|
if $game_switches[SWITCH_RANDOM_WILD_TO_FUSION] || $game_switches[SWITCH_LEGENDARY_MODE] # if fused starters, only take index 1
|
|
starter = obtainStarter(starterIndex1)
|
|
else
|
|
starter_body = starter1.id_number
|
|
starter_head = starter2.id_number
|
|
starter = getFusionSpecies(starter_body, starter_head).id_number
|
|
end
|
|
if $game_switches[SWITCH_RANDOM_STARTER_FIRST_STAGE]
|
|
starterSpecies = GameData::Species.get(starter)
|
|
starter = GameData::Species.get(starterSpecies.get_baby_species(false)).id_number
|
|
end
|
|
pbSet(VAR_RIVAL_STARTER, starter)
|
|
$game_switches[SWITCH_DEFINED_RIVAL_STARTER] = true
|
|
return starter
|
|
end
|
|
|
|
def setStarterEasterEgg
|
|
should_apply_easter_egg = true
|
|
case $Trainer.name.downcase
|
|
when "ash"
|
|
starter = :PIKACHU
|
|
rival_starter_body = :EEVEE
|
|
rival_starter_head = :EEVEE
|
|
when "gary"
|
|
starter = :EEVEE
|
|
rival_starter_body = :PIKACHU
|
|
rival_starter_head = :PIKACHU
|
|
when "god"
|
|
starter = :BIDOOF
|
|
rival_starter_body = :ARCEUS
|
|
rival_starter_head = :OMANYTE
|
|
when "?"
|
|
starter = getSpecies(rand(NB_POKEMON))
|
|
rival_starter_body = getSpecies(rand(NB_POKEMON))
|
|
rival_starter_head = getSpecies(rand(NB_POKEMON))
|
|
when "schrroms", "frogman", "frogzilla", "chardub"
|
|
starter = fusionOf(:POLIWAG,:MACHAMP)
|
|
rival_starter_body = :POLIWAG
|
|
rival_starter_head = :MACHAMP
|
|
else
|
|
should_apply_easter_egg = false
|
|
end
|
|
|
|
if should_apply_easter_egg
|
|
pbSet(VAR_PLAYER_STARTER_CHOICE,getDexNumberForSpecies(starter))
|
|
pbSet(VAR_RIVAL_STARTER_HEAD_CHOICE,getDexNumberForSpecies(rival_starter_head))
|
|
pbSet(VAR_RIVAL_STARTER_BODY_CHOICE,getDexNumberForSpecies(rival_starter_body))
|
|
$game_switches[SWITCH_CUSTOM_STARTERS] = true
|
|
end
|
|
end |