From f3dad894ec3db37698c6f5b81450e8b605f3ef04 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Wed, 29 Mar 2023 21:27:35 -0400 Subject: [PATCH] Update ArchipIDLE item count to 200, and add a few more items (#1627) --- worlds/archipidle/Items.py | 9 +++++++++ worlds/archipidle/Rules.py | 14 ++++++++++---- worlds/archipidle/__init__.py | 10 +++++----- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/worlds/archipidle/Items.py b/worlds/archipidle/Items.py index 945d3aae..2b5e6e9a 100644 --- a/worlds/archipidle/Items.py +++ b/worlds/archipidle/Items.py @@ -300,4 +300,13 @@ item_table = ( 'Roomba with a Knife', 'Wet Cat', 'The missing moderator, Frostwares', + '1,793 Crossbows', + 'Holographic First Edition Charizard (Gen 1)', + 'VR Headset', + 'Archipelago 1.0 Release Date', + 'Strand of Galadriel\'s Hair', + 'Can of Meow-Mix', + 'Shake-Weight', + 'DVD Collection of Billy Mays Infomercials', + 'Old CD Key', ) diff --git a/worlds/archipidle/Rules.py b/worlds/archipidle/Rules.py index ddf906c2..cdd48e76 100644 --- a/worlds/archipidle/Rules.py +++ b/worlds/archipidle/Rules.py @@ -16,22 +16,28 @@ class ArchipIDLELogic(LogicMixin): def set_rules(world: MultiWorld, player: int): for i in range(16, 31): set_rule( - world.get_location(f"IDLE for at least {int(i / 2)} minutes {30 if (i % 2) else 0} seconds", player), + world.get_location(f"IDLE item number {i}", player), lambda state: state._archipidle_location_is_accessible(player, 4) ) for i in range(31, 51): set_rule( - world.get_location(f"IDLE for at least {int(i / 2)} minutes {30 if (i % 2) else 0} seconds", player), + world.get_location(f"IDLE item number {i}", player), lambda state: state._archipidle_location_is_accessible(player, 10) ) for i in range(51, 101): set_rule( - world.get_location(f"IDLE for at least {int(i / 2)} minutes {30 if (i % 2) else 0} seconds", player), + world.get_location(f"IDLE item number {i}", player), lambda state: state._archipidle_location_is_accessible(player, 20) ) + for i in range(101, 201): + set_rule( + world.get_location(f"IDLE item number {i}", player), + lambda state: state._archipidle_location_is_accessible(player, 40) + ) + world.completion_condition[player] =\ lambda state:\ - state.can_reach(world.get_location("IDLE for at least 50 minutes 0 seconds", player), "Location", player) + state.can_reach(world.get_location("IDLE item number 200", player), "Location", player) diff --git a/worlds/archipidle/__init__.py b/worlds/archipidle/__init__.py index 5054872d..dc980f13 100644 --- a/worlds/archipidle/__init__.py +++ b/worlds/archipidle/__init__.py @@ -25,7 +25,7 @@ class ArchipIDLEWorld(World): """ game = "ArchipIDLE" topology_present = False - data_version = 4 + data_version = 5 hidden = (datetime.now().month != 4) # ArchipIDLE is only visible during April web = ArchipIDLEWebWorld() @@ -37,8 +37,8 @@ class ArchipIDLEWorld(World): location_name_to_id = {} start_id = 9000 - for i in range(1, 101): - location_name_to_id[f"IDLE for at least {int(i / 2)} minutes {30 if (i % 2) else 0} seconds"] = start_id + for i in range(1, 201): + location_name_to_id[f"IDLE item number {i}"] = start_id start_id += 1 def generate_basic(self): @@ -46,10 +46,10 @@ class ArchipIDLEWorld(World): self.multiworld.random.shuffle(item_table_copy) item_pool = [] - for i in range(100): + for i in range(200): item = ArchipIDLEItem( item_table_copy[i], - ItemClassification.progression if i < 20 else ItemClassification.filler, + ItemClassification.progression if i < 40 else ItemClassification.filler, self.item_name_to_id[item_table_copy[i]], self.player )