Add YAML options and update slot data.
Add TotalItems YAML option. Add AllowLunarItems YAML option. Send along TotalRevivals number with slot data.
This commit is contained in:
parent
cc2a72eb82
commit
f83ba6e615
|
@ -9,6 +9,13 @@ class TotalLocations(Range):
|
||||||
range_end = 50
|
range_end = 50
|
||||||
default = 15
|
default = 15
|
||||||
|
|
||||||
|
class TotalItems(Range):
|
||||||
|
"""Number of items which are added to the multiworld on behalf of the Risk of Rain player."""
|
||||||
|
displayname = "Total Items"
|
||||||
|
range_start = 10
|
||||||
|
range_end = 50
|
||||||
|
default = 30
|
||||||
|
|
||||||
|
|
||||||
class TotalRevivals(Range):
|
class TotalRevivals(Range):
|
||||||
"""Number of `Dio's Best Friend` item put in the item pool."""
|
"""Number of `Dio's Best Friend` item put in the item pool."""
|
||||||
|
@ -27,6 +34,10 @@ class ItemPickupStep(Range):
|
||||||
range_end = 5
|
range_end = 5
|
||||||
default = 1
|
default = 1
|
||||||
|
|
||||||
|
class AllowLunarItems(Toggle):
|
||||||
|
"""Allows Lunar items in the item pool."""
|
||||||
|
displayname = "Enable Lunar Item Shuffling"
|
||||||
|
default = True
|
||||||
|
|
||||||
class StartWithRevive(Toggle):
|
class StartWithRevive(Toggle):
|
||||||
"""Start the game with a `Dio's Best Friend` item."""
|
"""Start the game with a `Dio's Best Friend` item."""
|
||||||
|
@ -38,5 +49,7 @@ ror2_options: typing.Dict[str, type(Option)] = {
|
||||||
"total_locations": TotalLocations,
|
"total_locations": TotalLocations,
|
||||||
"total_revivals": TotalRevivals,
|
"total_revivals": TotalRevivals,
|
||||||
"start_with_revive": StartWithRevive,
|
"start_with_revive": StartWithRevive,
|
||||||
"item_pickup_step": ItemPickupStep
|
"item_pickup_step": ItemPickupStep,
|
||||||
|
"total_items": TotalItems,
|
||||||
|
"enable_lunar": AllowLunarItems
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,9 +33,12 @@ class RiskOfRainWorld(World):
|
||||||
# Add revive items for the player
|
# Add revive items for the player
|
||||||
itempool += ["Dio's Best Friend"] * self.world.total_revivals[self.player]
|
itempool += ["Dio's Best Friend"] * self.world.total_revivals[self.player]
|
||||||
|
|
||||||
|
if not self.world.enable_lunar[self.player]:
|
||||||
|
junk_pool.pop("Lunar Item")
|
||||||
|
|
||||||
# Fill remaining items with randomly generated junk
|
# Fill remaining items with randomly generated junk
|
||||||
itempool += self.world.random.choices(list(junk_pool.keys()), weights=list(junk_pool.values()),
|
itempool += self.world.random.choices(list(junk_pool.keys()), weights=list(junk_pool.values()),
|
||||||
k=self.world.total_locations[self.player] -
|
k=self.world.total_items[self.player] -
|
||||||
self.world.total_revivals[self.player])
|
self.world.total_revivals[self.player])
|
||||||
|
|
||||||
# Convert itempool into real items
|
# Convert itempool into real items
|
||||||
|
@ -53,7 +56,8 @@ class RiskOfRainWorld(World):
|
||||||
return {
|
return {
|
||||||
"itemPickupStep": self.world.item_pickup_step[self.player].value,
|
"itemPickupStep": self.world.item_pickup_step[self.player].value,
|
||||||
"seed": "".join(self.world.slot_seeds[self.player].choice(string.digits) for i in range(16)),
|
"seed": "".join(self.world.slot_seeds[self.player].choice(string.digits) for i in range(16)),
|
||||||
"totalLocations": self.world.total_locations[self.player].value
|
"totalLocations": self.world.total_items[self.player].value,
|
||||||
|
"totalRevivals": self.world.total_revivals[self.player].value
|
||||||
}
|
}
|
||||||
|
|
||||||
def create_item(self, name: str) -> Item:
|
def create_item(self, name: str) -> Item:
|
||||||
|
|
Loading…
Reference in New Issue