Update ArchipIDLE item count to 200, and add a few more items (#1627)

This commit is contained in:
Chris Wilson 2023-03-29 21:27:35 -04:00 committed by GitHub
parent a5373e3672
commit f3dad894ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 9 deletions

View File

@ -300,4 +300,13 @@ item_table = (
'Roomba with a Knife', 'Roomba with a Knife',
'Wet Cat', 'Wet Cat',
'The missing moderator, Frostwares', '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',
) )

View File

@ -16,22 +16,28 @@ class ArchipIDLELogic(LogicMixin):
def set_rules(world: MultiWorld, player: int): def set_rules(world: MultiWorld, player: int):
for i in range(16, 31): for i in range(16, 31):
set_rule( 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) lambda state: state._archipidle_location_is_accessible(player, 4)
) )
for i in range(31, 51): for i in range(31, 51):
set_rule( 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) lambda state: state._archipidle_location_is_accessible(player, 10)
) )
for i in range(51, 101): for i in range(51, 101):
set_rule( 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) 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] =\ world.completion_condition[player] =\
lambda state:\ 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)

View File

@ -25,7 +25,7 @@ class ArchipIDLEWorld(World):
""" """
game = "ArchipIDLE" game = "ArchipIDLE"
topology_present = False topology_present = False
data_version = 4 data_version = 5
hidden = (datetime.now().month != 4) # ArchipIDLE is only visible during April hidden = (datetime.now().month != 4) # ArchipIDLE is only visible during April
web = ArchipIDLEWebWorld() web = ArchipIDLEWebWorld()
@ -37,8 +37,8 @@ class ArchipIDLEWorld(World):
location_name_to_id = {} location_name_to_id = {}
start_id = 9000 start_id = 9000
for i in range(1, 101): for i in range(1, 201):
location_name_to_id[f"IDLE for at least {int(i / 2)} minutes {30 if (i % 2) else 0} seconds"] = start_id location_name_to_id[f"IDLE item number {i}"] = start_id
start_id += 1 start_id += 1
def generate_basic(self): def generate_basic(self):
@ -46,10 +46,10 @@ class ArchipIDLEWorld(World):
self.multiworld.random.shuffle(item_table_copy) self.multiworld.random.shuffle(item_table_copy)
item_pool = [] item_pool = []
for i in range(100): for i in range(200):
item = ArchipIDLEItem( item = ArchipIDLEItem(
item_table_copy[i], 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.item_name_to_id[item_table_copy[i]],
self.player self.player
) )