Source code for tuxemon.event.actions.battles_print

# SPDX-License-Identifier: GPL-3.0
# Copyright (c) 2014-2023 William Edwards <shadowapex@gmail.com>, Benjamin Bean <superman2k5@gmail.com>
from __future__ import annotations

import datetime as dt
from dataclasses import dataclass
from typing import Optional, final

from tuxemon.event.eventaction import EventAction


[docs]@final @dataclass class BattlesAction(EventAction): """ Print the current value of battle history to the console. If no variable is specified, print out values of all battles. Script usage: .. code-block:: battles_print battles_print [<character>,<result>] Script parameters: character: Npc slug name (e.g. "npc_maple"). result: One among "won", "lost" or "draw" """ name = "battles_print" character: Optional[str] = None result: Optional[str] = None
[docs] def start(self) -> None: player = self.session.player today = dt.date.today().toordinal() for battle in player.battles: if battle.opponent == self.character: total = sum( 1 for battle in player.battles if battle.opponent == self.character ) diff_date = today - battle.date if self.result == battle.outcome: print( f"You {self.result} {total} times against {self.character}\n" f"{diff_date} days ago" ) else: print(f"Never {self.result} against {self.character}") else: print(battle.opponent, battle.outcome, battle.date)