Subnautica: move code to be a better example
This commit is contained in:
parent
a85ca9cc87
commit
18c4b4b1fe
|
@ -70,23 +70,29 @@ class SubnauticaWorld(World):
|
||||||
[creature+Creatures.suffix for creature in self.creatures_to_scan])
|
[creature+Creatures.suffix for creature in self.creatures_to_scan])
|
||||||
]
|
]
|
||||||
|
|
||||||
# refer to Rules.py
|
|
||||||
set_rules = set_rules
|
|
||||||
|
|
||||||
def generate_basic(self):
|
|
||||||
# Link regions
|
# Link regions
|
||||||
self.multiworld.get_entrance("Lifepod 5", self.player).connect(self.multiworld.get_region("Planet 4546B", self.player))
|
self.multiworld.get_entrance("Lifepod 5", self.player).connect(self.multiworld.get_region("Planet 4546B", self.player))
|
||||||
|
|
||||||
|
for event in Locations.events:
|
||||||
|
self.multiworld.get_location(event, self.player).place_locked_item(
|
||||||
|
SubnauticaItem(event, ItemClassification.progression, None, player=self.player))
|
||||||
|
# make the goal event the victory "item"
|
||||||
|
self.multiworld.get_location(self.multiworld.goal[self.player].get_event_name(), self.player).item.name = "Victory"
|
||||||
|
|
||||||
|
# refer to Rules.py
|
||||||
|
set_rules = set_rules
|
||||||
|
|
||||||
|
def create_items(self):
|
||||||
# Generate item pool
|
# Generate item pool
|
||||||
pool = []
|
pool = []
|
||||||
neptune_launch_platform = None
|
|
||||||
extras = self.multiworld.creature_scans[self.player].value
|
extras = self.multiworld.creature_scans[self.player].value
|
||||||
valuable = self.multiworld.item_pool[self.player] == Options.ItemPool.option_valuable
|
valuable = self.multiworld.item_pool[self.player] == Options.ItemPool.option_valuable
|
||||||
for item in item_table.values():
|
for item in item_table.values():
|
||||||
for i in range(item["count"]):
|
for i in range(item["count"]):
|
||||||
subnautica_item = self.create_item(item["name"])
|
subnautica_item = self.create_item(item["name"])
|
||||||
if item["name"] == "Neptune Launch Platform":
|
if item["name"] == "Neptune Launch Platform":
|
||||||
neptune_launch_platform = subnautica_item
|
self.multiworld.get_location("Aurora - Captain Data Terminal", self.player).place_locked_item(
|
||||||
|
subnautica_item)
|
||||||
elif valuable and ItemClassification.filler == item["classification"]:
|
elif valuable and ItemClassification.filler == item["classification"]:
|
||||||
extras += 1
|
extras += 1
|
||||||
else:
|
else:
|
||||||
|
@ -100,15 +106,6 @@ class SubnauticaWorld(World):
|
||||||
|
|
||||||
self.multiworld.itempool += pool
|
self.multiworld.itempool += pool
|
||||||
|
|
||||||
# Victory item
|
|
||||||
self.multiworld.get_location("Aurora - Captain Data Terminal", self.player).place_locked_item(
|
|
||||||
neptune_launch_platform)
|
|
||||||
for event in Locations.events:
|
|
||||||
self.multiworld.get_location(event, self.player).place_locked_item(
|
|
||||||
SubnauticaItem(event, ItemClassification.progression, None, player=self.player))
|
|
||||||
# make the goal event the victory "item"
|
|
||||||
self.multiworld.get_location(self.multiworld.goal[self.player].get_event_name(), self.player).item.name = "Victory"
|
|
||||||
|
|
||||||
def fill_slot_data(self) -> Dict[str, Any]:
|
def fill_slot_data(self) -> Dict[str, Any]:
|
||||||
goal: Options.Goal = self.multiworld.goal[self.player]
|
goal: Options.Goal = self.multiworld.goal[self.player]
|
||||||
item_pool: Options.ItemPool = self.multiworld.item_pool[self.player]
|
item_pool: Options.ItemPool = self.multiworld.item_pool[self.player]
|
||||||
|
|
Loading…
Reference in New Issue