2024-08-11 12:47:17 +00:00
|
|
|
from typing import Callable, Dict, NamedTuple, Optional, TYPE_CHECKING
|
2023-07-19 22:16:03 +00:00
|
|
|
|
2024-08-11 12:47:17 +00:00
|
|
|
from BaseClasses import Item, ItemClassification
|
|
|
|
|
|
|
|
if TYPE_CHECKING:
|
|
|
|
from . import CliqueWorld
|
2023-07-19 22:16:03 +00:00
|
|
|
|
|
|
|
|
|
|
|
class CliqueItem(Item):
|
|
|
|
game = "Clique"
|
|
|
|
|
|
|
|
|
|
|
|
class CliqueItemData(NamedTuple):
|
|
|
|
code: Optional[int] = None
|
|
|
|
type: ItemClassification = ItemClassification.filler
|
2024-08-11 12:47:17 +00:00
|
|
|
can_create: Callable[["CliqueWorld"], bool] = lambda world: True
|
2023-07-19 22:16:03 +00:00
|
|
|
|
|
|
|
|
|
|
|
item_data_table: Dict[str, CliqueItemData] = {
|
|
|
|
"Feeling of Satisfaction": CliqueItemData(
|
|
|
|
code=69696969,
|
|
|
|
type=ItemClassification.progression,
|
|
|
|
),
|
|
|
|
"Button Activation": CliqueItemData(
|
|
|
|
code=69696968,
|
|
|
|
type=ItemClassification.progression,
|
2024-08-11 12:47:17 +00:00
|
|
|
can_create=lambda world: world.options.hard_mode,
|
2023-07-19 22:16:03 +00:00
|
|
|
),
|
|
|
|
"A Cool Filler Item (No Satisfaction Guaranteed)": CliqueItemData(
|
|
|
|
code=69696967,
|
2024-08-11 12:47:17 +00:00
|
|
|
can_create=lambda world: False # Only created from `get_filler_item_name`.
|
2023-07-19 22:16:03 +00:00
|
|
|
),
|
|
|
|
"The Urge to Push": CliqueItemData(
|
|
|
|
type=ItemClassification.progression,
|
|
|
|
),
|
|
|
|
}
|
|
|
|
|
|
|
|
item_table = {name: data.code for name, data in item_data_table.items() if data.code is not None}
|