mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
RoR2: 1.20 content update (#1396)
## Adding in Explore Mode: Features include: * Added in `environments` to be items. * `Location checks` are now `environment based` instead of being able to get them from anywhere. * Added in support for the `DLC Survivors of the void` which include `Void Items` and `3 new maps` that come with it. (option added to use DLC) --------- Co-authored-by: Dogpetkid <dogpetkid@gmail.com>
This commit is contained in:
@@ -1,31 +1,99 @@
|
||||
from typing import Dict
|
||||
from Options import Option, DefaultOnToggle, Range, Choice
|
||||
from Options import Option, Toggle, DefaultOnToggle, DeathLink, Range, Choice
|
||||
|
||||
|
||||
# NOTE be aware that since the range of item ids that RoR2 uses is based off of the maximums of checks
|
||||
# Be careful when changing the range_end values not to go into another game's IDs
|
||||
# NOTE that these changes to range_end must also be reflected in the RoR2 client so it understands the same ids.
|
||||
|
||||
class Goal(Choice):
|
||||
"""
|
||||
Classic Mode: Every Item pickup increases fills a progress bar which gives location checks.
|
||||
|
||||
Explore Mode: Each environment will have location checks within each environment.
|
||||
environments will be locked in the item pool until received.
|
||||
"""
|
||||
display_name = "Game Mode"
|
||||
option_classic = 0
|
||||
option_explore = 1
|
||||
default = 0
|
||||
|
||||
|
||||
class TotalLocations(Range):
|
||||
"""Number of location checks which are added to the Risk of Rain playthrough."""
|
||||
"""Classic Mode: Number of location checks which are added to the Risk of Rain playthrough."""
|
||||
display_name = "Total Locations"
|
||||
range_start = 10
|
||||
range_start = 40
|
||||
range_end = 250
|
||||
default = 20
|
||||
default = 40
|
||||
|
||||
|
||||
class ChestsPerEnvironment(Range):
|
||||
"""Explore Mode: The number of chest locations per environment."""
|
||||
display_name = "Chests per Environment"
|
||||
range_start = 2
|
||||
range_end = 20
|
||||
default = 10
|
||||
|
||||
|
||||
class ShrinesPerEnvironment(Range):
|
||||
"""Explore Mode: The number of shrine locations per environment."""
|
||||
display_name = "Shrines per Environment"
|
||||
range_start = 2
|
||||
range_end = 20
|
||||
default = 5
|
||||
|
||||
|
||||
class ScavengersPerEnvironment(Range):
|
||||
"""Explore Mode: The number of scavenger locations per environment."""
|
||||
display_name = "Scavenger per Environment"
|
||||
range_start = 0
|
||||
range_end = 1
|
||||
default = 1
|
||||
|
||||
class ScannersPerEnvironment(Range):
|
||||
"""Explore Mode: The number of scanners locations per environment."""
|
||||
display_name = "Radio Scanners per Environment"
|
||||
range_start = 0
|
||||
range_end = 1
|
||||
default = 1
|
||||
|
||||
class AltarsPerEnvironment(Range):
|
||||
"""Explore Mode: The number of altars locations per environment."""
|
||||
display_name = "Newts Per Environment"
|
||||
range_start = 0
|
||||
range_end = 2
|
||||
default = 1
|
||||
|
||||
class TotalRevivals(Range):
|
||||
"""Total Percentage of `Dio's Best Friend` item put in the item pool."""
|
||||
display_name = "Total Percentage Revivals Available"
|
||||
display_name = "Total Revives"
|
||||
range_start = 0
|
||||
range_end = 10
|
||||
default = 4
|
||||
|
||||
|
||||
class ItemPickupStep(Range):
|
||||
"""Number of items to pick up before an AP Check is completed.
|
||||
"""
|
||||
Number of items to pick up before an AP Check is completed.
|
||||
Setting to 1 means every other pickup.
|
||||
Setting to 2 means every third pickup. So on..."""
|
||||
Setting to 2 means every third pickup. So on...
|
||||
"""
|
||||
display_name = "Item Pickup Step"
|
||||
range_start = 0
|
||||
range_end = 5
|
||||
default = 2
|
||||
default = 1
|
||||
|
||||
class ShrineUseStep(Range):
|
||||
"""
|
||||
Explore Mode:
|
||||
Number of shrines to use up before an AP Check is completed.
|
||||
Setting to 1 means every other pickup.
|
||||
Setting to 2 means every third pickup. So on...
|
||||
"""
|
||||
display_name = "Shrine use Step"
|
||||
range_start = 0
|
||||
range_end = 3
|
||||
default = 0
|
||||
|
||||
|
||||
class AllowLunarItems(DefaultOnToggle):
|
||||
@@ -38,13 +106,33 @@ class StartWithRevive(DefaultOnToggle):
|
||||
display_name = "Start with a Revive"
|
||||
|
||||
|
||||
class FinalStageDeath(DefaultOnToggle):
|
||||
class FinalStageDeath(Toggle):
|
||||
"""Death on the final boss stage counts as a win."""
|
||||
display_name = "Final Stage Death is Win"
|
||||
|
||||
|
||||
class BeginWithLoop(Toggle):
|
||||
"""
|
||||
Enable to precollect a full loop of environments.
|
||||
Only has an effect with Explore Mode.
|
||||
"""
|
||||
display_name = "Begin With Loop"
|
||||
|
||||
|
||||
class DLC_SOTV(Toggle):
|
||||
"""
|
||||
Enable if you are using SOTV DLC.
|
||||
Affects environment availability for Explore Mode.
|
||||
Adds Void Items into the item pool
|
||||
"""
|
||||
display_name = "Enable DLC - SOTV"
|
||||
|
||||
|
||||
|
||||
class GreenScrap(Range):
|
||||
"""Weight of Green Scraps in the item pool. (Ignored unless Item Weight Presets is 'No')"""
|
||||
"""Weight of Green Scraps in the item pool.
|
||||
|
||||
(Ignored unless Item Weight Presets is 'No')"""
|
||||
display_name = "Green Scraps"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
@@ -52,7 +140,9 @@ class GreenScrap(Range):
|
||||
|
||||
|
||||
class RedScrap(Range):
|
||||
"""Weight of Red Scraps in the item pool. (Ignored unless Item Weight Presets is 'No')"""
|
||||
"""Weight of Red Scraps in the item pool.
|
||||
|
||||
(Ignored unless Item Weight Presets is 'No')"""
|
||||
display_name = "Red Scraps"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
@@ -60,7 +150,9 @@ class RedScrap(Range):
|
||||
|
||||
|
||||
class YellowScrap(Range):
|
||||
"""Weight of yellow scraps in the item pool. (Ignored unless Item Weight Presets is 'No')"""
|
||||
"""Weight of yellow scraps in the item pool.
|
||||
|
||||
(Ignored unless Item Weight Presets is 'No')"""
|
||||
display_name = "Yellow Scraps"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
@@ -68,7 +160,9 @@ class YellowScrap(Range):
|
||||
|
||||
|
||||
class WhiteScrap(Range):
|
||||
"""Weight of white scraps in the item pool. (Ignored unless Item Weight Presets is 'No')"""
|
||||
"""Weight of white scraps in the item pool.
|
||||
|
||||
(Ignored unless Item Weight Presets is 'No')"""
|
||||
display_name = "White Scraps"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
@@ -76,7 +170,9 @@ class WhiteScrap(Range):
|
||||
|
||||
|
||||
class CommonItem(Range):
|
||||
"""Weight of common items in the item pool. (Ignored unless Item Weight Presets is 'No')"""
|
||||
"""Weight of common items in the item pool.
|
||||
|
||||
(Ignored unless Item Weight Presets is 'No')"""
|
||||
display_name = "Common Items"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
@@ -84,7 +180,9 @@ class CommonItem(Range):
|
||||
|
||||
|
||||
class UncommonItem(Range):
|
||||
"""Weight of uncommon items in the item pool. (Ignored unless Item Weight Presets is 'No')"""
|
||||
"""Weight of uncommon items in the item pool.
|
||||
|
||||
(Ignored unless Item Weight Presets is 'No')"""
|
||||
display_name = "Uncommon Items"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
@@ -92,7 +190,9 @@ class UncommonItem(Range):
|
||||
|
||||
|
||||
class LegendaryItem(Range):
|
||||
"""Weight of legendary items in the item pool. (Ignored unless Item Weight Presets is 'No')"""
|
||||
"""Weight of legendary items in the item pool.
|
||||
|
||||
(Ignored unless Item Weight Presets is 'No')"""
|
||||
display_name = "Legendary Items"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
@@ -100,7 +200,9 @@ class LegendaryItem(Range):
|
||||
|
||||
|
||||
class BossItem(Range):
|
||||
"""Weight of boss items in the item pool. (Ignored unless Item Weight Presets is 'No')"""
|
||||
"""Weight of boss items in the item pool.
|
||||
|
||||
(Ignored unless Item Weight Presets is 'No')"""
|
||||
display_name = "Boss Items"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
@@ -108,36 +210,54 @@ class BossItem(Range):
|
||||
|
||||
|
||||
class LunarItem(Range):
|
||||
"""Weight of lunar items in the item pool. (Ignored unless Item Weight Presets is 'No')"""
|
||||
"""Weight of lunar items in the item pool.
|
||||
|
||||
(Ignored unless Item Weight Presets is 'No')"""
|
||||
display_name = "Lunar Items"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
default = 16
|
||||
|
||||
|
||||
class VoidItem(Range):
|
||||
"""Weight of void items in the item pool.
|
||||
|
||||
(Ignored unless Item Weight Presets is 'No')
|
||||
|
||||
(Ignored if Enable DLC - SOTV is 'No') """
|
||||
display_name = "Void Items"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
default = 16
|
||||
|
||||
|
||||
class Equipment(Range):
|
||||
"""Weight of equipment items in the item pool. (Ignored unless Item Weight Presets is 'No')"""
|
||||
"""Weight of equipment items in the item pool.
|
||||
|
||||
(Ignored unless Item Weight Presets is 'No')"""
|
||||
display_name = "Equipment"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
default = 32
|
||||
|
||||
|
||||
class ItemPoolPresetToggle(DefaultOnToggle):
|
||||
class ItemPoolPresetToggle(Toggle):
|
||||
"""Will use the item weight presets when set to true, otherwise will use the custom set item pool weights."""
|
||||
display_name = "Use Item Weight Presets"
|
||||
|
||||
|
||||
class ItemWeights(Choice):
|
||||
"""Preset choices for determining the weights of the item pool.
|
||||
New is a test for a potential adjustment to the default weights.
|
||||
Uncommon puts a large number of uncommon items in the pool.
|
||||
Legendary puts a large number of legendary items in the pool.
|
||||
Lunartic makes everything a lunar item.
|
||||
Chaos generates the pool completely at random with rarer items having a slight cap to prevent this option being too easy.
|
||||
No Scraps removes all scrap items from the item pool.
|
||||
Even generates the item pool with every item having an even weight.
|
||||
Scraps Only will be only scrap items in the item pool."""
|
||||
"""Set item_pool_presets to true if you want to use one of these presets.
|
||||
Preset choices for determining the weights of the item pool.
|
||||
- New is a test for a potential adjustment to the default weights.
|
||||
- Uncommon puts a large number of uncommon items in the pool.
|
||||
- Legendary puts a large number of legendary items in the pool.
|
||||
- Lunartic makes everything a lunar item.
|
||||
- Chaos generates the pool completely at random with rarer items having a slight cap to prevent this option being too easy.
|
||||
- No Scraps removes all scrap items from the item pool.
|
||||
- Even generates the item pool with every item having an even weight.
|
||||
- Scraps Only will be only scrap items in the item pool.
|
||||
- Void makes everything a void item."""
|
||||
display_name = "Item Weights"
|
||||
option_default = 0
|
||||
option_new = 1
|
||||
@@ -148,6 +268,7 @@ class ItemWeights(Choice):
|
||||
option_no_scraps = 6
|
||||
option_even = 7
|
||||
option_scraps_only = 8
|
||||
option_void = 9
|
||||
|
||||
|
||||
# define a dictionary for the weights of the generated item pool.
|
||||
@@ -161,17 +282,28 @@ ror2_weights: Dict[str, type(Option)] = {
|
||||
"legendary_item": LegendaryItem,
|
||||
"boss_item": BossItem,
|
||||
"lunar_item": LunarItem,
|
||||
"void_item": VoidItem,
|
||||
"equipment": Equipment
|
||||
}
|
||||
|
||||
ror2_options: Dict[str, type(Option)] = {
|
||||
"total_locations": TotalLocations,
|
||||
"total_revivals": TotalRevivals,
|
||||
"start_with_revive": StartWithRevive,
|
||||
"final_stage_death": FinalStageDeath,
|
||||
"item_pickup_step": ItemPickupStep,
|
||||
"enable_lunar": AllowLunarItems,
|
||||
"item_weights": ItemWeights,
|
||||
"item_pool_presets": ItemPoolPresetToggle,
|
||||
"goal": Goal,
|
||||
"total_locations": TotalLocations,
|
||||
"chests_per_stage": ChestsPerEnvironment,
|
||||
"shrines_per_stage": ShrinesPerEnvironment,
|
||||
"scavengers_per_stage": ScavengersPerEnvironment,
|
||||
"scanner_per_stage": ScannersPerEnvironment,
|
||||
"altars_per_stage": AltarsPerEnvironment,
|
||||
"total_revivals": TotalRevivals,
|
||||
"start_with_revive": StartWithRevive,
|
||||
"final_stage_death": FinalStageDeath,
|
||||
"begin_with_loop": BeginWithLoop,
|
||||
"dlc_sotv": DLC_SOTV,
|
||||
"death_link": DeathLink,
|
||||
"item_pickup_step": ItemPickupStep,
|
||||
"shrine_use_step": ShrineUseStep,
|
||||
"enable_lunar": AllowLunarItems,
|
||||
"item_weights": ItemWeights,
|
||||
"item_pool_presets": ItemPoolPresetToggle,
|
||||
**ror2_weights
|
||||
}
|
||||
|
Reference in New Issue
Block a user