Source code for tuxemon.event.actions.fadeout_music

# 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 logging
from dataclasses import dataclass
from typing import final

from tuxemon.event.eventaction import EventAction
from tuxemon.platform import mixer

logger = logging.getLogger(__name__)


[docs]@final @dataclass class FadeoutMusicAction(EventAction): """ Fade out the music over a set amount of time in milliseconds. Script usage: .. code-block:: fadeout_music <duration> Script parameters: duration: Number of milliseconds to fade out the music over. """ name = "fadeout_music" duration: int
[docs] def start(self) -> None: mixer.music.fadeout(self.duration) if self.session.client.current_music["song"]: self.session.client.current_music["status"] = "stopped" else: logger.warning("Music cannot be paused, none is playing.")