RoR2: Add Support for New Stage (#3436)

* add support for the new stage added to RoR2

* Fix stage being unreachable

* add option groups

* reorder option groups
This commit is contained in:
Rjosephson 2024-06-04 13:24:14 -06:00 committed by GitHub
parent ee1b13f219
commit f30f2d3a3f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 51 additions and 8 deletions

View File

@ -7,7 +7,7 @@ from .ror2environments import environment_vanilla_table, environment_vanilla_ord
environment_sotv_orderedstages_table, environment_sotv_table, collapse_dict_list_vertical, shift_by_offset environment_sotv_orderedstages_table, environment_sotv_table, collapse_dict_list_vertical, shift_by_offset
from BaseClasses import Item, ItemClassification, Tutorial from BaseClasses import Item, ItemClassification, Tutorial
from .options import ItemWeights, ROR2Options from .options import ItemWeights, ROR2Options, ror2_option_groups
from worlds.AutoWorld import World, WebWorld from worlds.AutoWorld import World, WebWorld
from .regions import create_explore_regions, create_classic_regions from .regions import create_explore_regions, create_classic_regions
from typing import List, Dict, Any from typing import List, Dict, Any
@ -23,6 +23,8 @@ class RiskOfWeb(WebWorld):
["Ijwu", "Kindasneaki"] ["Ijwu", "Kindasneaki"]
)] )]
option_groups = ror2_option_groups
class RiskOfRainWorld(World): class RiskOfRainWorld(World):
""" """
@ -44,7 +46,7 @@ class RiskOfRainWorld(World):
} }
location_name_to_id = item_pickups location_name_to_id = item_pickups
required_client_version = (0, 4, 5) required_client_version = (0, 5, 0)
web = RiskOfWeb() web = RiskOfWeb()
total_revivals: int total_revivals: int

View File

@ -1,5 +1,5 @@
from dataclasses import dataclass from dataclasses import dataclass
from Options import Toggle, DefaultOnToggle, DeathLink, Range, Choice, PerGameCommonOptions from Options import Toggle, DefaultOnToggle, DeathLink, Range, Choice, PerGameCommonOptions, OptionGroup
# NOTE be aware that since the range of item ids that RoR2 uses is based off of the maximums of checks # NOTE be aware that since the range of item ids that RoR2 uses is based off of the maximums of checks
@ -350,7 +350,7 @@ class ItemPoolPresetToggle(Toggle):
class ItemWeights(Choice): class ItemWeights(Choice):
"""Set item_pool_presets to true if you want to use one of these presets. """Set Use Item Weight Presets to yes if you want to use one of these presets.
Preset choices for determining the weights of the item pool. Preset choices for determining the weights of the item pool.
- New is a test for a potential adjustment to the default weights. - New is a test for a potential adjustment to the default weights.
- Uncommon puts a large number of uncommon items in the pool. - Uncommon puts a large number of uncommon items in the pool.
@ -375,6 +375,44 @@ class ItemWeights(Choice):
option_void = 9 option_void = 9
ror2_option_groups = [
OptionGroup("Explore Mode Options", [
ChestsPerEnvironment,
ShrinesPerEnvironment,
ScavengersPerEnvironment,
ScannersPerEnvironment,
AltarsPerEnvironment,
RequireStages,
ProgressiveStages,
]),
OptionGroup("Classic Mode Options", [
TotalLocations,
], start_collapsed=True),
OptionGroup("Weighted Choices", [
ItemWeights,
ItemPoolPresetToggle,
WhiteScrap,
GreenScrap,
YellowScrap,
RedScrap,
CommonItem,
UncommonItem,
LegendaryItem,
BossItem,
LunarItem,
VoidItem,
Equipment,
Money,
LunarCoin,
Experience,
MountainTrap,
TimeWarpTrap,
CombatTrap,
TeleportTrap,
]),
]
@dataclass @dataclass
class ROR2Options(PerGameCommonOptions): class ROR2Options(PerGameCommonOptions):
goal: Goal goal: Goal
@ -399,10 +437,10 @@ class ROR2Options(PerGameCommonOptions):
item_weights: ItemWeights item_weights: ItemWeights
item_pool_presets: ItemPoolPresetToggle item_pool_presets: ItemPoolPresetToggle
# define the weights of the generated item pool. # define the weights of the generated item pool.
green_scrap: GreenScrap
red_scrap: RedScrap
yellow_scrap: YellowScrap
white_scrap: WhiteScrap white_scrap: WhiteScrap
green_scrap: GreenScrap
yellow_scrap: YellowScrap
red_scrap: RedScrap
common_item: CommonItem common_item: CommonItem
uncommon_item: UncommonItem uncommon_item: UncommonItem
legendary_item: LegendaryItem legendary_item: LegendaryItem

View File

@ -19,11 +19,13 @@ def create_explore_regions(ror2_world: "RiskOfRainWorld") -> None:
# Default Locations # Default Locations
non_dlc_regions: Dict[str, RoRRegionData] = { non_dlc_regions: Dict[str, RoRRegionData] = {
"Menu": RoRRegionData(None, ["Distant Roost", "Distant Roost (2)", "Menu": RoRRegionData(None, ["Distant Roost", "Distant Roost (2)",
"Titanic Plains", "Titanic Plains (2)"]), "Titanic Plains", "Titanic Plains (2)",
"Verdant Falls"]),
"Distant Roost": RoRRegionData([], ["OrderedStage_1"]), "Distant Roost": RoRRegionData([], ["OrderedStage_1"]),
"Distant Roost (2)": RoRRegionData([], ["OrderedStage_1"]), "Distant Roost (2)": RoRRegionData([], ["OrderedStage_1"]),
"Titanic Plains": RoRRegionData([], ["OrderedStage_1"]), "Titanic Plains": RoRRegionData([], ["OrderedStage_1"]),
"Titanic Plains (2)": RoRRegionData([], ["OrderedStage_1"]), "Titanic Plains (2)": RoRRegionData([], ["OrderedStage_1"]),
"Verdant Falls": RoRRegionData([], ["OrderedStage_1"]),
"Abandoned Aqueduct": RoRRegionData([], ["OrderedStage_2"]), "Abandoned Aqueduct": RoRRegionData([], ["OrderedStage_2"]),
"Wetland Aspect": RoRRegionData([], ["OrderedStage_2"]), "Wetland Aspect": RoRRegionData([], ["OrderedStage_2"]),
"Rallypoint Delta": RoRRegionData([], ["OrderedStage_3"]), "Rallypoint Delta": RoRRegionData([], ["OrderedStage_3"]),

View File

@ -7,6 +7,7 @@ environment_vanilla_orderedstage_1_table: Dict[str, int] = {
"Distant Roost (2)": 8, # blackbeach2 "Distant Roost (2)": 8, # blackbeach2
"Titanic Plains": 15, # golemplains "Titanic Plains": 15, # golemplains
"Titanic Plains (2)": 16, # golemplains2 "Titanic Plains (2)": 16, # golemplains2
"Verdant Falls": 28, # lakes
} }
environment_vanilla_orderedstage_2_table: Dict[str, int] = { environment_vanilla_orderedstage_2_table: Dict[str, int] = {
"Abandoned Aqueduct": 17, # goolake "Abandoned Aqueduct": 17, # goolake