2022-03-13 08:04:12 +00:00
|
|
|
from BaseClasses import MultiWorld
|
2024-04-12 04:32:10 +00:00
|
|
|
from worlds.AutoWorld import LogicMixin
|
2022-03-13 08:04:12 +00:00
|
|
|
|
|
|
|
|
|
|
|
class ArchipIDLELogic(LogicMixin):
|
|
|
|
def _archipidle_location_is_accessible(self, player_id, items_required):
|
2023-11-02 05:41:20 +00:00
|
|
|
return sum(self.prog_items[player_id].values()) >= items_required
|
2022-03-13 08:04:12 +00:00
|
|
|
|
|
|
|
|
|
|
|
def set_rules(world: MultiWorld, player: int):
|
2022-03-13 19:31:27 +00:00
|
|
|
for i in range(16, 31):
|
2024-04-12 04:32:10 +00:00
|
|
|
world.get_location(f"IDLE item number {i}", player).access_rule = lambda \
|
|
|
|
state: state._archipidle_location_is_accessible(player, 4)
|
2022-03-13 08:04:12 +00:00
|
|
|
|
|
|
|
for i in range(31, 51):
|
2024-04-12 04:32:10 +00:00
|
|
|
world.get_location(f"IDLE item number {i}", player).access_rule = lambda \
|
|
|
|
state: state._archipidle_location_is_accessible(player, 10)
|
2022-03-13 18:37:56 +00:00
|
|
|
|
|
|
|
for i in range(51, 101):
|
2024-04-12 04:32:10 +00:00
|
|
|
world.get_location(f"IDLE item number {i}", player).access_rule = lambda \
|
|
|
|
state: state._archipidle_location_is_accessible(player, 20)
|
2023-02-24 02:16:10 +00:00
|
|
|
|
2023-03-30 01:27:35 +00:00
|
|
|
for i in range(101, 201):
|
2024-04-12 04:32:10 +00:00
|
|
|
world.get_location(f"IDLE item number {i}", player).access_rule = lambda \
|
|
|
|
state: state._archipidle_location_is_accessible(player, 40)
|
2023-03-30 01:27:35 +00:00
|
|
|
|
2023-02-24 02:16:10 +00:00
|
|
|
world.completion_condition[player] =\
|
2024-04-12 04:32:10 +00:00
|
|
|
lambda state: state.can_reach(world.get_location("IDLE item number 200", player), "Location", player)
|