Skip to content

Commit

Permalink
Add Mythos: Sudoku to KMK (#48)
Browse files Browse the repository at this point in the history
It's sudoku but with a ZOOTR twist to it, what else is there to say? No options because it's straightforward enough.
  • Loading branch information
JCBoorgo authored Jan 14, 2025
1 parent 3605fa9 commit 780a116
Showing 1 changed file with 89 additions and 0 deletions.
89 changes: 89 additions & 0 deletions worlds/keymasters_keep/games/mythos_sudoku_game.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
from __future__ import annotations

import functools
from typing import List

from dataclasses import dataclass

from ..game import Game
from ..game_objective_template import GameObjectiveTemplate

from ..enums import KeymastersKeepGamePlatforms


@dataclass
class MythosSudokuArchipelagoOptions:
pass


class MythosSudokuGame(Game):
# Initial implementation by JCBoorgo

name = "Mythos: Sudoku"
platform = KeymastersKeepGamePlatforms.PC

is_adult_only_or_unrated = False

options_cls = MythosSudokuArchipelagoOptions

def optional_game_constraint_templates(self) -> List[GameObjectiveTemplate]:
return list()

def game_objective_templates(self) -> List[GameObjectiveTemplate]:
return [
GameObjectiveTemplate(
label="Complete a TYPE VARIANT sudoku on DIFFICULTY",
data={"TYPE": (self.game_type, 1), "VARIANT": (self.variants, 1), "DIFFICULTY": (self.difficulties, 1)},
is_time_consuming=False,
is_difficult=False,
weight=23,
),
GameObjectiveTemplate(
label="Complete a Temple trial on DIFFICULTY",
data={"DIFFICULTY": (self.difficulties, 1)},
is_time_consuming=True,
is_difficult=False,
weight=3,
),
GameObjectiveTemplate(
label="Complete a Chaos trial on DIFFICULTY",
data={"DIFFICULTY": (self.difficulties, 1)},
is_time_consuming=True,
is_difficult=False,
weight=1,
),
]

@staticmethod
def variants() -> List[str]:
return [
"Dark (1)",
"Soul (2)",
"Sky (3)",
"Sea (4)",
"Time (5)",
"Power (6)",
"Land (7)",
"Sound (8)",
"Light (9)",
]

@staticmethod
def difficulties() -> List[str]:
return [
"Easy",
"Normal",
"Hard",
]

@staticmethod
def game_type() -> List[str]:
return [
"Standard",
"Duel",
"Discovery",
]


# Archipelago Options
# ...

0 comments on commit 780a116

Please sign in to comment.