ChessWithQuests

Quest_manager (model.misc.quest_manager)

model.misc.quest_manager

Quest manager supervising quest catalog registration, validation, and user rewards.

QuestManager

Registry maintaining active game quests, trigger checks, and user completions.

Source code in src/model/misc/quest_manager.py
class QuestManager:
    """Registry maintaining active game quests, trigger checks, and user completions."""

    def __init__(self, quests: Optional[List[Quest]] = None):
        """Initialize a QuestManager instance.

        Args:
            quests: Optional initial list of Quest objects.
        """
        self.quests: List[Quest] = quests if quests is not None else []

    def register_quest(self, quest: Quest) -> None:
        """Register a new quest in the active pool.

        Args:
            quest: Quest instance to register.
        """
        if quest not in self.quests:
            self.quests.append(quest)

    def get_quests(self) -> List[Quest]:
        """Retrieve all registered quests.

        Returns:
            List copy of all registered Quest instances.
        """
        return list(self.quests)

    def check_quests(self, context: Any, user: Optional[Any] = None) -> List[Quest]:
        """Evaluate all uncompleted quests against game context and award them to user.

        Args:
            context: Context data (e.g. GameManager state) passed to quest validators.
            user: Optional User profile to credit with newly completed quests.

        Returns:
            List of quests newly completed during this check.
        """
        completed_now: List[Quest] = []
        for q in self.quests:
            if not q.is_completed and q.validate(context):
                completed_now.append(q)
                if user is not None and hasattr(user, "add_quest"):
                    user.add_quest(q)
        return completed_now

    def get_completed_quests(self) -> List[Quest]:
        """Retrieve all currently completed quests.

        Returns:
            List of quests with is_completed set to True.
        """
        return [q for q in self.quests if q.is_completed]
__init__(quests=None)

Initialize a QuestManager instance.

Parameters:

Name Type Description Default
quests Optional[List[Quest]]

Optional initial list of Quest objects.

None
Source code in src/model/misc/quest_manager.py
def __init__(self, quests: Optional[List[Quest]] = None):
    """Initialize a QuestManager instance.

    Args:
        quests: Optional initial list of Quest objects.
    """
    self.quests: List[Quest] = quests if quests is not None else []
check_quests(context, user=None)

Evaluate all uncompleted quests against game context and award them to user.

Parameters:

Name Type Description Default
context Any

Context data (e.g. GameManager state) passed to quest validators.

required
user Optional[Any]

Optional User profile to credit with newly completed quests.

None

Returns:

Type Description
List[Quest]

List of quests newly completed during this check.

Source code in src/model/misc/quest_manager.py
def check_quests(self, context: Any, user: Optional[Any] = None) -> List[Quest]:
    """Evaluate all uncompleted quests against game context and award them to user.

    Args:
        context: Context data (e.g. GameManager state) passed to quest validators.
        user: Optional User profile to credit with newly completed quests.

    Returns:
        List of quests newly completed during this check.
    """
    completed_now: List[Quest] = []
    for q in self.quests:
        if not q.is_completed and q.validate(context):
            completed_now.append(q)
            if user is not None and hasattr(user, "add_quest"):
                user.add_quest(q)
    return completed_now
get_completed_quests()

Retrieve all currently completed quests.

Returns:

Type Description
List[Quest]

List of quests with is_completed set to True.

Source code in src/model/misc/quest_manager.py
def get_completed_quests(self) -> List[Quest]:
    """Retrieve all currently completed quests.

    Returns:
        List of quests with is_completed set to True.
    """
    return [q for q in self.quests if q.is_completed]
get_quests()

Retrieve all registered quests.

Returns:

Type Description
List[Quest]

List copy of all registered Quest instances.

Source code in src/model/misc/quest_manager.py
def get_quests(self) -> List[Quest]:
    """Retrieve all registered quests.

    Returns:
        List copy of all registered Quest instances.
    """
    return list(self.quests)
register_quest(quest)

Register a new quest in the active pool.

Parameters:

Name Type Description Default
quest Quest

Quest instance to register.

required
Source code in src/model/misc/quest_manager.py
def register_quest(self, quest: Quest) -> None:
    """Register a new quest in the active pool.

    Args:
        quest: Quest instance to register.
    """
    if quest not in self.quests:
        self.quests.append(quest)
ChessWithQuests