Game project of Quest Platform Student Organization in Celal Bayar University
"""
    Pass for linting
"""
# pylint: disable=no-member
import sys

# pylint: enable=no-member
import pygame

from src.flyweights.animated import Animated
from src.Software import Software
from src.factory.Factory import Factory
from src.State import ButtonLookUpTable


def main():
    """
    Game loop
    """

    pygame.init()  # pylint: disable=E

    screen = pygame.display.set_mode((1920, 1080))
    clock = pygame.time.Clock()
    tmp = Factory._create_button(ButtonLookUpTable.SOUND_LEVEL_BUTTON)
    while True:
        pygame.display.flip()
        screen.fill((255, 255, 255))
        surface: pygame.Surface = tmp.run()[0][0]
        rect = surface.get_rect()
        screen.blit(surface, (540 + rect.center[0], 100))
        clock.tick(60)
        # raise SystemExit
        for event in pygame.event.get():
            if event.type == pygame.KEYDOWN and event.type == pygame.K_ESCAPE:
                sys.exit(0)


# pylint: disable=all TODO: Check code at below for pointers
def multi(obj):
    print(id(obj[0]))  # TODO: after first run change obj[0] with obj


from multiprocessing import Process
from sys import getsizeof
from copy import copy

if __name__ == "__main__":
    obj = (1, 2, 3)
    p1 = Process(target=multi, args=(obj,))
    p2 = Process(target=multi, args=(obj,))
    p1.start()
    p2.start()
    p1.join()
    p2.join()
    # NOTE: Check differences with pointers and without pointers
    print("sizeof: " + str(getsizeof(Animated.data)))
    print("sizeof: " + str(getsizeof((Animated.data,))))
    # NOTE: Check these examples
    shallow_copy = copy(obj[1])
    print(id(obj[1]))
    obj = obj[:1] + (4, 5) + obj[2:]
    print(obj)
    print(shallow_copy)
    print(id(shallow_copy))
    shallow_copy = 8
    print(id(shallow_copy))

main/main.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:

argument -- description

Return: return_description

TODO: object assigments will change after implementations

TODO: Update Docstrings
"""

from typing import Tuple, NoReturn, Dict
from multiprocessing import Condition

from src.Run import Run


class Gui(Run):
    """sumary_line

    Keyword arguments:

    argument -- description

    Return: return_description
    """

    def __init__(self):
        self.__loading_menu_ptr: Tuple[object] = ((object,),)

        self.__start_menu_ptr: Tuple[object] = ((object,),)

        self.__resume_menu_ptr: Tuple[object] = ((object,),)

        self.__markets_ptr: Tuple[Tuple[object]] = ((object,),)

        self.__levels_ptr: Tuple[object] = ((object,),)

        self.__cv_ptr_tuple: Tuple[Tuple[Condition]] = (
            (Condition() for _ in range(6)),
        )  # pylint: disable=W,E

        self.elements: Tuple[Tuple[object]] = ((object,),)

        self.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        self.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    def run(self):
        """sumary_line

        Keyword arguments:

        argument -- description

        Return: return_description

        TODO: This method will be implemented after states

        """

        if NotImplemented:
            raise NotImplementedError

    @property
    def loading_menu_ptr(self) -> Tuple[object]:
        """sumary_line

        Keyword arguments:

        argument -- description

        Return: return_description
        """

        return self.__loading_menu_ptr

    @property
    def start_menu_ptr(self) -> Tuple[object]:
        """sumary_line

        Keyword arguments:

        argument -- description

        Return: return_description
        """
        return self.__start_menu_ptr

    @property
    def pause_menu_ptr(self) -> Tuple[object]:
        """sumary_line

        Keyword arguments:

        argument -- description

        Return: return_description
        """
        return self.__resume_menu_ptr

    @property
    def shop_menu_ptr(self) -> Tuple[object]:
        """sumary_line

        Keyword arguments:

        argument -- description

        Return: return_description
        """

        return self.__markets_ptr

    @property
    def game_play_ptr(self) -> Tuple[object]:
        """sumary_line

        Keyword arguments:

        argument -- description

        Return: return_description
        """
        return self.__levels_ptr

    @property
    def loading_menu_flag(self, is_relased: bool) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if is_relased:
            self.__cv_ptr_tuple[0][0].notify()
        else:
            self.__cv_ptr_tuple[0][0].wait()

    @property
    def start_menu_flag(self, is_relased: bool) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if is_relased:
            self.__cv_ptr_tuple[0][1].notify()
        else:
            self.__cv_ptr_tuple[0][1].wait()

    @property
    def pause_menu_flag(self, is_relased: bool) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if is_relased:
            self.__cv_ptr_tuple[0][2].notify()
        else:
            self.__cv_ptr_tuple[0][2].wait()

    @property
    def shop_menu_flag(self, is_relased: bool) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if is_relased:
            self.__cv_ptr_tuple[0][3].notify()
        else:
            self.__cv_ptr_tuple[0][3].wait()

    @property
    def npc_menu_flag(self, is_relased: bool) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if is_relased:
            self.__cv_ptr_tuple[0][4].notify()
        else:
            self.__cv_ptr_tuple[0][4].wait()

    @property
    def game_play_flag(self, is_relased: bool) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if is_relased:
            self.__cv_ptr_tuple[0][5].notify()
        else:
            self.__cv_ptr_tuple[0][5].wait()

    def init_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/Gui.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from typing import Tuple, NoReturn, Dict
from .Run import Run
from .ObjectGui import (  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
    ObjectGui,  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
)  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position


class Object(Run, ObjectGui):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    # TODO: Change Prototypes with Factory it has been deprecated
    def __init__(self):
        self.__players_ptr: Tuple[  # pylint: disable = W,E
            Tuple[Dict]
        ] = Prototype.get_players()  # pylint: disable = W,E
        self.__enemies_ptr: Tuple[  # pylint: disable = W,E
            Tuple[Dict]
        ] = Prototype.get_enemies()  # pylint: disable = W,E
        self.__support_items_ptr: Tuple[  # pylint: disable = W,E
            Tuple[Dict]
        ] = Prototype.get_support_items()  # pylint: disable = W,E
        self.elements: Tuple[
            Tuple[Dict]
        ] = self.init_elements()  # pylint: disable = W,E
        self.internal_states: Tuple[Tuple[Dict]] = (({},),)  # pylint: disable = W,E
        self.external_states: Tuple[Tuple[Dict]] = (({},),)  # pylint: disable = W,E

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def apply_effects(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/Object.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""

from typing import NoReturn
from abc import ABCMeta, abstractmethod


class PlayerWeapon(metaclass=ABCMeta):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    @classmethod
    def __subclasshook__(cls, subclass):
        return (
            hasattr(subclass, "init_external_states")
            and callable(subclass.init_states)
            or NotImplemented,
            hasattr(subclass, "init_internal_states")
            and callable(subclass.init_states)
            or NotImplemented,
            hasattr(subclass, "init_elements")
            and callable(subclass.init_elements)
            or NotImplemented,
            hasattr(subclass, "update_elements")
            and callable(subclass.update_elements)
            or NotImplemented,
            hasattr(subclass, "update_states")
            and callable(subclass.update_states)
            or NotImplemented,
            hasattr(subclass, "notify_states")
            and callable(subclass.notify_states)
            or NotImplemented,
        )

    @abstractmethod
    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def update_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/ObjectGui.py
Musa-Sina-Ertugrul/QuestGame
"""
Run class is an interface

This insterface has been used by states,
observers, gui and object
"""
from abc import ABCMeta, abstractmethod


class Run(metaclass=ABCMeta):

    """
    Run class is an interface and facade
    """

    @classmethod
    def __subclasshook__(cls, subclass):
        return hasattr(subclass, "run") and callable(subclass.run) or NotImplemented

    @abstractmethod
    def run(self):
        """
        Command function to adjust final methods
        """
        raise NotImplementedError

main/src/Run.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from typing import Tuple
from .Run import Run
from .utils.utils import (
    singelton,
)  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
from .factory.Factory import Factory

# NOTE: Don't try creating software object it is singleton


@singelton
class Software(Run):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    # TODO: Give dissicion about init_observers can be in Factory

    def __init__(self):
        # TODO: Implement
        # self.__observers_ptr : Tuple[Tuple[Dict]] = self.__init_observers() # pylint: disable= W,E
        # self.__objects_ptr : Tuple[Tuple[Dict]] = self.__init_objects() # pylint: disable= W,E
        self.__guis_ptr: Tuple[
            Tuple[object]
        ] = self.__init_guis()  # pylint: disable= W,E

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def __init_observers(self):  # pylint: disable= W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def __init_objects(self):  # pylint: disable= W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def __init_guis(self) -> Tuple[Tuple[object]]:  # pylint: disable= W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        # TODO: Implement
        # raise NotImplementedError
        return Factory.create_guis()

main/src/Software.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings
TODO: Add more table and states

"""

from enum import Enum, EnumType


class StateLookUpTable(Enum):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description

    TODO: That lookup table will be deleted and new lookup tables will be created

    """

    NULL: EnumType = 0
    LOADING: EnumType = 1
    START: EnumType = 2
    SHOP: EnumType = 3
    OPTIONS: EnumType = 4
    ON_CLICK: EnumType = 5
    CLICKED: EnumType = 6
    ACTIVE: EnumType = 7
    DEACTIVE: EnumType = 8
    DYING: EnumType = 9
    DEAD: EnumType = 10
    SPAWNING: EnumType = 11
    SCROLL_DOWN: EnumType = 12
    SCROLL_UP: EnumType = 13
    VISIBLE: EnumType = 14
    NOT_VISIBLE: EnumType = 15


class PlayerLookUpTable(Enum):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    NULL: EnumType = 0


class EnemyLookUpTable(Enum):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    NULL: EnumType = 0


class ResumeMenuLookUpTable(Enum):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    NULL: EnumType = 0


class MainMenuLookUpTable(Enum):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    NULL: EnumType = 0


class LoadingMenuLookUpTable(Enum):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    NULL: EnumType = 0


class SpellLookUpTable(Enum):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    NULL: EnumType = 0


class MarketLookUpTable(Enum):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    NULL: EnumType = 0


class MenuTextLookUpTable(Enum):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    NULL: EnumType = 0


class ButtonLookUpTable(Enum):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description

    TODO: Add more button

    """

    NULL: EnumType = 0
    EXIT_BUTTON: EnumType = 1
    START_BUTTON: EnumType = 2
    CONFIRM_BUTTON: EnumType = 3
    RESUME_BUTTON: EnumType = 4
    SOUND_ON_OFF_BUTTON: EnumType = 5
    STAR_BUTTON: EnumType = 6
    SOUND_LEVEL_BUTTON: EnumType = 7


class ButtonStateLookUpTable(Enum):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    NULL: EnumType = 0
    CLICKED: EnumType = 1
    ON_CLICK: EnumType = 2
    NOT_COLLIDE: EnumType = 3
    VISIBLE: EnumType = 4
    NOT_VISIBLE: EnumType = 5
    SOUND_UP: EnumType = 6
    SOUND_DOWN: EnumType = 7


class MenuLabelStateLookUpTable(Enum):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    NULL: EnumType = 0
    COLLIDE: EnumType = 1
    NOT_COLLIDE: EnumType = 2
    VISIBLE: EnumType = 3
    NOT_VISIBLE: EnumType = 4

main/src/State.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: When implementations are done functions will be filled and object typing will be changed
TODO: Update Docstrings
"""
from enum import EnumType
from copy import copy
from typing import Tuple, Callable, Optional
from numpy import random
from pygame import mouse, display, event
from time import sleep
from pygame.mixer import music
import pygame
from src.flyweights.not_animated import NotAnimated


class Factory:
    """ "sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    @staticmethod
    def create_support_items() -> Tuple[object]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    @staticmethod
    def create_enemies() -> Tuple[object]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        def update_enemies() -> Tuple[object]:  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_boss() -> Tuple[object]:  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_mini_boss() -> Tuple[object]:  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_mini_enemy() -> Tuple[object]:  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        raise NotImplementedError

    @staticmethod
    def create_players() -> Tuple[object]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        def create_elenore() -> Tuple[object]:  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_moonpie() -> Tuple[object]:  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        raise NotImplementedError

    @staticmethod
    def create_loading_menu() -> Tuple[object]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        def create_loading_menu_bg() -> Tuple[object]:  # pylint: disable=W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        from src.gui.menu_items.MenuTemplate import (  # pylint: disable=W,E, import-error, import-outside-toplevel
            MenuTemplate,  # pylint: disable=W,E, import-error, import-outside-toplevel
        )  # pylint: disable=W,E, import-error, import-outside-toplevel

        return MenuTemplate()

    @staticmethod
    def create_guis():
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        from sys import (
            path,
        )  # pylint: disable=W,E, import-error, import-outside-toplevel

        path.append("main/src/")
        from Gui import (
            Gui,
        )  # pylint: disable=W,E, import-error, import-outside-toplevel

        return ((Gui(),),)

    @staticmethod
    def create_main_menu() -> Tuple[object]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        def choose_main_menu_bg() -> Tuple[object]:  # pylint: disable=W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            return (
                NotAnimated.data["bgs_main_menu"][  # pylint: disable=W,E
                    int(random.uniform(low=0.0, high=4.999))
                ],  # TODO: These img file has many space determine when they will be called (runtime, compile time) # pylint: disable=W,E
            )

        raise NotImplementedError

    @staticmethod
    def create_markets() -> Tuple[object]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        def create_market_bg() -> Tuple[object]:  # pylint: disable=W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_menu_label_market_bg() -> Tuple[object]:  # pylint: disable=W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_gunslinger_jane_market():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_king_elliot_market():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_leaf_ranger_galadriel_market():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_monk_aishi_market():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_witch_glinda_market():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        raise NotImplementedError

    @staticmethod
    def create_levels() -> Tuple[object]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        def create_cave_level():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_catacomb_level():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        raise NotImplementedError

    @staticmethod
    def create_resume_menu() -> Tuple[object]:  # pylint: disable=W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        def create_resume_menu_bg() -> Tuple[object]:  # pylint: disable=W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        raise NotImplementedError

    # NOTE: For test this function become protected
    @staticmethod
    def _create_button(button_no: EnumType) -> object:  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description

        TODO: Add more text button

        """

        from src.State import (
            ButtonLookUpTable,
        )  # pylint: disable=W,E, import-error, import-outside-toplevel

        def create_text_button(button_no: EnumType):
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description

            TODO: Add more button

            """

            from src.gui.menu_items.MenuText import (  # pylint: disable=W,E, import-error, import-outside-toplevel, no-name-in-module
                MenuText,  # pylint: disable=W,E, import-error, import-outside-toplevel, no-name-in-module
            )  # pylint: disable=W,E, import-error, import-outside-toplevel

            def create_sound_level_button() -> Tuple[Tuple[MenuText]]:
                """sumary_line

                Keyword arguments:
                argument -- description
                Return: return_description

                TODO: Adjust sizes and test image initiliazation on video card vs cpu
                TODO: Adjust parameters
                """
                from pygame import (  # pylint: disable=W,E, import-error, import-outside-toplevel, no-name-in-module
                    Surface,  # pylint: disable=W,E, import-error, import-outside-toplevel, no-name-in-module
                    HWSURFACE,  # pylint: disable=W,E, import-error, import-outside-toplevel, no-name-in-module
                )  # pylint: disable=W,E, import-error, import-outside-toplevel, no-name-in-module
                from src.gui.menu_items.MenuText import (  # pylint: disable=W,E, import-error, import-outside-toplevel, no-name-in-module
                    MenuText,  # pylint: disable=W,E, import-error, import-outside-toplevel, no-name-in-module
                )  # pylint: disable=W,E, import-error, import-outside-toplevel
                from src.gui.menu_items.Button import (  # pylint: disable=W,E, import-error, import-outside-toplevel, no-name-in-module
                    Button,  # pylint: disable=W,E, import-error, import-outside-toplevel, no-name-in-module
                )  # pylint: disable=W,E, import-error, import-outside-toplevel
                from src.State import (  # pylint: disable=W,E, import-error, import-outside-toplevel, no-name-in-module
                    ButtonStateLookUpTable,  # pylint: disable=W,E, import-error, import-outside-toplevel, no-name-in-module
                )  # pylint: disable=W,E, import-error, import-outside-toplevel

                def create_options_text() -> MenuText:
                    """sumary_line

                    Keyword arguments:
                    argument -- description
                    Return: return_description
                    """
                    options_text: MenuText = MenuText()
                    options_text.set_text = "SOUND LEVEL"
                    options_text.init_external_states()
                    options_text.init_elements()
                    options_text.set_mouse_state = ButtonStateLookUpTable.NOT_COLLIDE
                    options_text.set_pos_x = 10
                    options_text.set_pos_y = 10

                    return options_text

                def create_magnitude_text() -> MenuText:
                    """sumary_line

                    Keyword arguments:
                    argument -- description
                    Return: return_description
                    """
                    magnitude_text: MenuText = MenuText()
                    magnitude_text.init_elements()
                    magnitude_text.init_external_states()
                    magnitude_text.set_text = "1.0"
                    magnitude_text.set_mouse_state = ButtonStateLookUpTable.NOT_COLLIDE
                    magnitude_text.set_pos_x = 190 - magnitude_text.relative_width()
                    magnitude_text.set_pos_y = 10

                    return magnitude_text

                def create_transparent_surface(size: Tuple[int, int]) -> Surface:
                    """sumary_line

                    Keyword arguments:
                    argument -- description
                    Return: return_description
                    """
                    tmp_surface: Surface = Surface(size, HWSURFACE)
                    # tmp_surface.set_alpha(0,HWSURFACE)

                    return tmp_surface

                def command_sound_level_button(
                    instance: Optional[MenuText | None] = False,
                ):
                    """Just holds magnitude variable for later calls

                    TODO: This function must work on seperate thread or process and sleep for some time

                    Args:
                        instance (Optinonal[MenuText]) : Initial argument to identify
                        magnitude text
                    """

                    def inner_command(instance: MenuText):
                        """Adjust volume based on mouse pos

                        Takes instance variable comes from outter function
                        and ajust volume then set text with setter

                        Args:
                            instance (MenuText) : Initial argument to identify
                            magnitude text
                        """
                        mouse_pos_x, _ = mouse.get_pos()
                        display_x, _ = display.get_desktop_sizes()[0]
                        current_volume: float = NotAnimated.data[
                            "click_sound"
                        ].get_volume()

                        if mouse_pos_x <= display_x // 2:
                            current_volume -= 0.1
                            if current_volume < 0.0:
                                current_volume = 0.0
                                try:
                                    raise RuntimeError("Sound level is at lowest")
                                except RuntimeError:
                                    print("Sound level is at lowest")

                            # TODO: All sounds will be add here

                        else:
                            current_volume += 0.1
                            if current_volume > 1.0:
                                current_volume = 1.0
                                # NOTE : Error has written for test cases, After test delete it
                                try:
                                    raise RuntimeError("Sound level is at highest")
                                except RuntimeError:
                                    print("Sound level is at highest")

                            # TODO: All sounds will be add here
                        NotAnimated.data["click_sound"].set_volume(current_volume)
                        NotAnimated.data["click_sound"].play()
                        instance.set_text = str(current_volume)


                    # NOTE: Function starts from here
                    if instance:
                        command_sound_level_button.instance = instance
                        print(command_sound_level_button.instance)
                        return

                    if mouse.get_pressed()[0]:
                        inner_command(command_sound_level_button.instance)
                        sleep(0.2)

                def create_button() -> Button:
                    """sumary_line

                    Keyword arguments:
                    argument -- description
                    Return: return_description
                    """
                    options_text: MenuText = create_options_text()
                    magnitude_text: MenuText = create_magnitude_text()

                    size: Tuple[int, int] = (
                        (
                            20
                            + magnitude_text.relative_pos()[0]
                            + magnitude_text.relative_width()
                        ),
                        (options_text.relative_height() + 20),
                    )

                    tmp_surface: Surface = create_transparent_surface(size=size)

                    tmp_button: Button = Button()
                    command_sound_level_button(magnitude_text)
                    tmp_button.init_elements(
                        [[tmp_surface, options_text, magnitude_text]]
                    )
                    tmp_button.init_external_states(
                        [
                            [
                                ButtonStateLookUpTable.NULL,
                                ButtonStateLookUpTable.CLICKED,
                                ButtonStateLookUpTable.CLICKED,
                            ]
                        ]
                    )
                    tmp_button.set_func = command_sound_level_button
                    tmp_button.size_nultiplier = 2.0

                    return tmp_button

                # NOTE: create_sound_level_button() starts here

                return create_button()

            # NOTE: create_text_button(button_no: EnumType) starts here

            match button_no:
                case ButtonLookUpTable.SOUND_LEVEL_BUTTON:
                    return create_sound_level_button()
                case _:
                    raise TypeError(f"Undefined button type {button_no.__name__}")

        def create_exit_button():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_start_button():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_confirm_button():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_resume_button():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_sound_on_off_button():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_star_button():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def command_start_button():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def command_star_button():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def command_exit_button():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def command_settings_button():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def command_sound_button():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def command_confirm_button():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def command_display_size_button():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def command_sound_level_button():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def command_sound_button():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        match button_no:
            case ButtonLookUpTable.EXIT_BUTTON:
                return create_exit_button()
            case ButtonLookUpTable.START_BUTTON:
                return create_start_button()
            case ButtonLookUpTable.CONFIRM_BUTTON:
                return create_confirm_button()
            case ButtonLookUpTable.RESUME_BUTTON:
                return create_resume_button()
            case ButtonLookUpTable.SOUND_ON_OFF_BUTTON:
                return create_sound_on_off_button()
            case ButtonLookUpTable.STAR_BUTTON:
                return create_star_button()
            case _:
                return create_text_button(button_no)

    @staticmethod
    def __create_icon():  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    @staticmethod
    def __create_column():  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    @staticmethod
    def __create_icon_text(icon: EnumType):  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    @staticmethod
    def __create_clock():  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    @staticmethod
    def create_enemy_damage_texts():  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    @staticmethod
    def create_player_texts():  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    @staticmethod
    def __create_health_bar():  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    @staticmethod
    def __create_shield_bar():  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    @staticmethod
    def __create_spell_label():  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    @staticmethod
    def __create_chests() -> Tuple[object]:  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    @staticmethod
    def __create_coin_label() -> Tuple[object]:  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    @staticmethod
    def create_bow() -> Tuple[object]:  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    @staticmethod
    def create_bullet():
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        def create_elenore_spell() -> Tuple[object]:  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def create_bow_line():  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """
            raise NotImplementedError

        raise NotImplementedError

    @staticmethod
    def __command_skills() -> Tuple[object]:  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        # TODO: Give names to skills then update names

        def command_skill_1() -> Tuple[object]:  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        def command_skill_2() -> Tuple[object]:  # pylint: disable = W,E
            """sumary_line

            Keyword arguments:
            argument -- description
            Return: return_description
            """

            raise NotImplementedError

        raise NotImplementedError

main/src/factory/Factory.py
Musa-Sina-Ertugrul/QuestGame
"""
    This file contains Flyweights as Prototype
    Flyweight class is an abstract class it has been
    inhereted by Animated and Not_Animated classes
    These two classes will contain assests as static
"""

from abc import ABC
from typing import Dict, Tuple, Optional
from pygame import Surface
from pygame.mixer import Sound
from pygame.font import Font


class Flyweight(ABC):
    """
    Data container for Flyweight objects

    This class is an abstract class and is inhereted by Animeted
    and NotAnimated classes

    Attributes:
        data (Dict[str, List[Surface]]) : contains Surface objects
    """

    data: Dict[str, Tuple[Optional[Font | Sound | Surface]]] = {}

main/src/flyweights/Flyweight.py
Musa-Sina-Ertugrul/QuestGame
"""
This module contains Animated flyweight class

TODO: Scale everthing when coding started

"""
from pygame import image

from .Flyweight import Flyweight


class Animated(Flyweight):
    """
    Data container for Animated Flywieght objects

    Keywords:
        "fire_cast"
        "ice_cast"
        "light_cast"
        "magic_cast"
        "crazy_chest"
        "gold_chest"
        "king_chest"
        "silver_chest"
        "dark_spell_1"
        "dark_spell_2"
        "elenore"
        "elenore_shadow"
        "eye_fire_blue"
        "eye_fire_red"
        "bat"
        "ghost"
        "lizard"
        "skeleton"
        "slime"
        "crab"
        "reaper"
        "skeleton_big_idle"
        "skeleton_big_attack"
        "skeleton_big_hit"
        "skeleton_big_walk"
        "skeleton_big_death"
        "bringer_of_death_attack"
        "bringer_of_death_cast"
        "bringer_of_death_death"
        "bringer_of_death_hurt"
        "bringer_of_death_idle"
        "bringer_of_death_spell"
        "bringer_of_death_walk"
        "boss_demon_idle"
        "boss_demon_walk"
        "boss_demon_cleave"
        "boss_demon_hit"
        "boss_demon_death"
        "boss_frost_attack"
        "boss_frost_death"
        "boss_frost_idle"
        "boss_frost_hit"
        "boss_frost_walk"
        "ice_spell_1_hit"
        "ice_spell_1_move"
        "ice_spell_1_strat"
        "ice_spell_2_active"
        "ice_spell_2_ending"
        "ice_spell_2_start"
        "npc_ranger"
        "npc_gunslinger"
        "npc_witch"
        "npc_king"
        "npc_monk"
        "npc_fairy"
        "moonpie_front_idle"
        "moonpie_left_idle"
        "moonpie_right_idle"
        "moonpie_back_idle"
        "moonpie_front_run"
        "moonpie_left_run"
        "moonpie_right_run"
        "moonpie_back_run"
        "blood"
        "start_button"
        "exit_button"
        "coin"
        "confirm_button"
        "pause_button"
        "sound_button"
        "star_button"
    """

    Flyweight.data["fire_cast"] = (  # use / instead of / if you are in windows !!!
        image.load(".assets/casts/fire_cast/FireCast_96x96_1.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_2.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_3.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_4.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_5.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_6.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_7.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_8.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_9.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_10.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_11.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_12.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_13.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_14.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_15.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_16.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_17.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_18.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_19.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_20.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_21.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_22.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_23.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_24.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_25.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_26.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_27.png"),
        image.load(".assets/casts/fire_cast/FireCast_96x96_28.png"),
    )
    Flyweight.data["ice_cast"] = (
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_1.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_2.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_3.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_4.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_5.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_6.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_7.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_8.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_9.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_10.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_11.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_12.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_13.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_14.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_15.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_16.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_17.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_18.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_19.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_20.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_21.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_22.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_23.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_24.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_25.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_26.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_27.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_28.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_29.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_30.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_31.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_32.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_33.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_34.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_35.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_36.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_37.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_38.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_39.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_40.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_41.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_42.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_43.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_44.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_45.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_46.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_47.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_48.png"),
        image.load(".assets/casts/ice_shatter/IceShatter_96x96_49.png"),
    )
    Flyweight.data["light_cast"] = (
        image.load(".assets/casts/light_cast/LightCast_96_1.png"),
        image.load(".assets/casts/light_cast/LightCast_96_2.png"),
        image.load(".assets/casts/light_cast/LightCast_96_3.png"),
        image.load(".assets/casts/light_cast/LightCast_96_4.png"),
        image.load(".assets/casts/light_cast/LightCast_96_5.png"),
        image.load(".assets/casts/light_cast/LightCast_96_6.png"),
        image.load(".assets/casts/light_cast/LightCast_96_7.png"),
        image.load(".assets/casts/light_cast/LightCast_96_8.png"),
        image.load(".assets/casts/light_cast/LightCast_96_9.png"),
        image.load(".assets/casts/light_cast/LightCast_96_10.png"),
        image.load(".assets/casts/light_cast/LightCast_96_11.png"),
        image.load(".assets/casts/light_cast/LightCast_96_12.png"),
        image.load(".assets/casts/light_cast/LightCast_96_13.png"),
        image.load(".assets/casts/light_cast/LightCast_96_14.png"),
        image.load(".assets/casts/light_cast/LightCast_96_15.png"),
        image.load(".assets/casts/light_cast/LightCast_96_16.png"),
        image.load(".assets/casts/light_cast/LightCast_96_17.png"),
        image.load(".assets/casts/light_cast/LightCast_96_18.png"),
        image.load(".assets/casts/light_cast/LightCast_96_19.png"),
        image.load(".assets/casts/light_cast/LightCast_96_20.png"),
        image.load(".assets/casts/light_cast/LightCast_96_21.png"),
        image.load(".assets/casts/light_cast/LightCast_96_22.png"),
        image.load(".assets/casts/light_cast/LightCast_96_23.png"),
        image.load(".assets/casts/light_cast/LightCast_96_24.png"),
        image.load(".assets/casts/light_cast/LightCast_96_25.png"),
        image.load(".assets/casts/light_cast/LightCast_96_26.png"),
        image.load(".assets/casts/light_cast/LightCast_96_27.png"),
        image.load(".assets/casts/light_cast/LightCast_96_28.png"),
        image.load(".assets/casts/light_cast/LightCast_96_29.png"),
        image.load(".assets/casts/light_cast/LightCast_96_30.png"),
        image.load(".assets/casts/light_cast/LightCast_96_31.png"),
        image.load(".assets/casts/light_cast/LightCast_96_32.png"),
        image.load(".assets/casts/light_cast/LightCast_96_33.png"),
        image.load(".assets/casts/light_cast/LightCast_96_34.png"),
        image.load(".assets/casts/light_cast/LightCast_96_35.png"),
        image.load(".assets/casts/light_cast/LightCast_96_36.png"),
        image.load(".assets/casts/light_cast/LightCast_96_37.png"),
        image.load(".assets/casts/light_cast/LightCast_96_38.png"),
        image.load(".assets/casts/light_cast/LightCast_96_39.png"),
        image.load(".assets/casts/light_cast/LightCast_96_40.png"),
        image.load(".assets/casts/light_cast/LightCast_96_41.png"),
        image.load(".assets/casts/light_cast/LightCast_96_42.png"),
        image.load(".assets/casts/light_cast/LightCast_96_43.png"),
        image.load(".assets/casts/light_cast/LightCast_96_44.png"),
        image.load(".assets/casts/light_cast/LightCast_96_45.png"),
        image.load(".assets/casts/light_cast/LightCast_96_46.png"),
        image.load(".assets/casts/light_cast/LightCast_96_47.png"),
        image.load(".assets/casts/light_cast/LightCast_96_48.png"),
    )
    Flyweight.data["magic_cast"] = (
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_1.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_2.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_3.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_4.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_5.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_6.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_7.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_8.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_9.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_10.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_11.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_12.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_13.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_14.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_15.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_16.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_17.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_18.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_19.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_20.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_21.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_21.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_22.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_23.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_24.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_25.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_26.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_27.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_28.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_29.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_30.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_31.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_32.png"),
        image.load(".assets/casts/magic_barrier/MagicBarrier_64x64_33.png"),
    )
    Flyweight.data["crazy_chest"] = (
        image.load(".assets/chests/crazy/Layer-1.png"),
        image.load(".assets/chests/crazy/Layer-2.png"),
        image.load(".assets/chests/crazy/Layer-3.png"),
        image.load(".assets/chests/crazy/Layer-4.png"),
        image.load(".assets/chests/crazy/Layer-5.png"),
        image.load(".assets/chests/crazy/Layer-6.png"),
        image.load(".assets/chests/crazy/Layer-7.png"),
        image.load(".assets/chests/crazy/Layer-8.png"),
    )
    Flyweight.data["gold_chest"] = (
        image.load(".assets/chests/gold/Layer-1.png"),
        image.load(".assets/chests/gold/Layer-2.png"),
        image.load(".assets/chests/gold/Layer-3.png"),
        image.load(".assets/chests/gold/Layer-4.png"),
        image.load(".assets/chests/gold/Layer-5.png"),
        image.load(".assets/chests/gold/Layer-6.png"),
        image.load(".assets/chests/gold/Layer-7.png"),
        image.load(".assets/chests/gold/Layer-8.png"),
    )
    Flyweight.data["king_chest"] = (
        image.load(".assets/chests/KING/Layer-1.png"),
        image.load(".assets/chests/KING/Layer-2.png"),
        image.load(".assets/chests/KING/Layer-3.png"),
        image.load(".assets/chests/KING/Layer-4.png"),
        image.load(".assets/chests/KING/Layer-5.png"),
        image.load(".assets/chests/KING/Layer-6.png"),
        image.load(".assets/chests/KING/Layer-7.png"),
        image.load(".assets/chests/KING/Layer-8.png"),
    )
    Flyweight.data["silver_chest"] = (
        image.load(".assets/chests/Silver/Layer-1.png"),
        image.load(".assets/chests/Silver/Layer-2.png"),
        image.load(".assets/chests/Silver/Layer-3.png"),
        image.load(".assets/chests/Silver/Layer-4.png"),
        image.load(".assets/chests/Silver/Layer-5.png"),
        image.load(".assets/chests/Silver/Layer-6.png"),
        image.load(".assets/chests/Silver/Layer-7.png"),
        image.load(".assets/chests/Silver/Layer-8.png"),
    )
    Flyweight.data["dark_spell_1"] = (
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)1.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)2.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)3.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)4.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)5.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)6.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)7.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)8.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)9.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)10.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)11.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)12.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)13.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)14.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)15.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)16.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 1/Separeted frames/Dark VFX 1 (40x32)17.png"
        ),
    )
    Flyweight.data["dark_spell_2"] = (
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 2/Separated Frames/Dark VFX 2 (48x64)1.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 2/Separated Frames/Dark VFX 2 (48x64)2.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 2/Separated Frames/Dark VFX 2 (48x64)3.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 2/Separated Frames/Dark VFX 2 (48x64)4.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 2/Separated Frames/Dark VFX 2 (48x64)5.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 2/Separated Frames/Dark VFX 2 (48x64)6.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 2/Separated Frames/Dark VFX 2 (48x64)7.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 2/Separated Frames/Dark VFX 2 (48x64)8.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 2/Separated Frames/Dark VFX 2 (48x64)9.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 2/Separated Frames/Dark VFX 2 (48x64)10.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 2/Separated Frames/Dark VFX 2 (48x64)11.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 2/Separated Frames/Dark VFX 2 (48x64)12.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 2/Separated Frames/Dark VFX 2 (48x64)13.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 2/Separated Frames/Dark VFX 2 (48x64)14.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 2/Separated Frames/Dark VFX 2 (48x64)15.png"
        ),
        image.load(
            ".assets/Dark VFX 01 - 02/Dark VFX 2/Separated Frames/Dark VFX 2 (48x64)16.png"
        ),
    )
    Flyweight.data["elenore"] = (
        image.load(".assets/Elenore/Idle/Idle1.png"),
        image.load(".assets/Elenore/Idle/Idle2.png"),
        image.load(".assets/Elenore/Idle/Idle3.png"),
        image.load(".assets/Elenore/Idle/Idle4.png"),
        image.load(".assets/Elenore/Idle/Idle5.png"),
        image.load(".assets/Elenore/Idle/Idle6.png"),
        image.load(".assets/Elenore/Idle/Idle7.png"),
        image.load(".assets/Elenore/Idle/Idle8.png"),
        image.load(".assets/Elenore/Idle/Idle9.png"),
    )
    Flyweight.data["elenore_shadow"] = (
        image.load(".assets/Elenore/Idle/Shadow/Shadow1.png"),
        image.load(".assets/Elenore/Idle/Shadow/Shadow2.png"),
        image.load(".assets/Elenore/Idle/Shadow/Shadow3.png"),
        image.load(".assets/Elenore/Idle/Shadow/Shadow4.png"),
        image.load(".assets/Elenore/Idle/Shadow/Shadow5.png"),
        image.load(".assets/Elenore/Idle/Shadow/Shadow6.png"),
        image.load(".assets/Elenore/Idle/Shadow/Shadow7.png"),
        image.load(".assets/Elenore/Idle/Shadow/Shadow8.png"),
        image.load(".assets/Elenore/Idle/Shadow/Shadow9.png"),
    )
    Flyweight.data["eye_fire_blue"] = (
        image.load(".assets/enemies/Eye Fire Blue/eye fire blue1.png"),
        image.load(".assets/enemies/Eye Fire Blue/eye fire blue2.png"),
        image.load(".assets/enemies/Eye Fire Blue/eye fire blue3.png"),
        image.load(".assets/enemies/Eye Fire Blue/eye fire blue4.png"),
        image.load(".assets/enemies/Eye Fire Blue/eye fire blue5.png"),
        image.load(".assets/enemies/Eye Fire Blue/eye fire blue6.png"),
        image.load(".assets/enemies/Eye Fire Blue/eye fire blue7.png"),
    )
    Flyweight.data["eye_fire_red"] = (
        image.load(".assets/enemies/Eye Fire Red/eye fire1.png"),
        image.load(".assets/enemies/Eye Fire Red/eye fire2.png"),
        image.load(".assets/enemies/Eye Fire Red/eye fire3.png"),
        image.load(".assets/enemies/Eye Fire Red/eye fire4.png"),
        image.load(".assets/enemies/Eye Fire Red/eye fire5.png"),
        image.load(".assets/enemies/Eye Fire Red/eye fire6.png"),
        image.load(".assets/enemies/Eye Fire Red/eye fire7.png"),
    )
    Flyweight.data["bat"] = (
        image.load(".assets/enemies/sprites/Bat/bat1.png"),
        image.load(".assets/enemies/sprites/Bat/bat2.png"),
        image.load(".assets/enemies/sprites/Bat/bat3.png"),
        image.load(".assets/enemies/sprites/Bat/bat4.png"),
        image.load(".assets/enemies/sprites/Bat/bat5.png"),
    )
    Flyweight.data["ghost"] = (
        image.load(".assets/enemies/sprites/Ghost/ghost1.png"),
        image.load(".assets/enemies/sprites/Ghost/ghost2.png"),
        image.load(".assets/enemies/sprites/Ghost/ghost3.png"),
        image.load(".assets/enemies/sprites/Ghost/ghost4.png"),
    )
    Flyweight.data["lizard"] = (
        image.load(".assets/enemies/sprites/lizard moves/lizard-move1.png"),
        image.load(".assets/enemies/sprites/lizard moves/lizard-move2.png"),
        image.load(".assets/enemies/sprites/lizard moves/lizard-move3.png"),
    )
    Flyweight.data["skeleton"] = (
        image.load(".assets/enemies/sprites/Skeleton-Walk/skeleton-walk1.png"),
        image.load(".assets/enemies/sprites/Skeleton-Walk/skeleton-walk2.png"),
        image.load(".assets/enemies/sprites/Skeleton-Walk/skeleton-walk3.png"),
        image.load(".assets/enemies/sprites/Skeleton-Walk/skeleton-walk4.png"),
        image.load(".assets/enemies/sprites/Skeleton-Walk/skeleton-walk5.png"),
        image.load(".assets/enemies/sprites/Skeleton-Walk/skeleton-walk6.png"),
        image.load(".assets/enemies/sprites/Skeleton-Walk/skeleton-walk7.png"),
        image.load(".assets/enemies/sprites/Skeleton-Walk/skeleton-walk8.png"),
    )
    Flyweight.data["slime"] = (
        image.load(".assets/enemies/sprites/Slime/slime1.png"),
        image.load(".assets/enemies/sprites/Slime/slime2.png"),
        image.load(".assets/enemies/sprites/Slime/slime3.png"),
        image.load(".assets/enemies/sprites/Slime/slime4.png"),
        image.load(".assets/enemies/sprites/Slime/slime5.png"),
    )
    Flyweight.data["crab"] = (
        image.load(".assets/enemies/sprites/Walk/crab-walk1.png"),
        image.load(".assets/enemies/sprites/Walk/crab-walk2.png"),
        image.load(".assets/enemies/sprites/Walk/crab-walk3.png"),
        image.load(".assets/enemies/sprites/Walk/crab-walk4.png"),
        image.load(".assets/enemies/sprites/Walk/crab-walk5.png"),
        image.load(".assets/enemies/sprites/Walk/crab-walk6.png"),
    )
    Flyweight.data["reaper"] = (
        image.load(".assets/enemies/reaper/PassiveRunningReaper_1.png"),
        image.load(".assets/enemies/reaper/PassiveRunningReaper_2.png"),
        image.load(".assets/enemies/reaper/PassiveRunningReaper_3.png"),
        image.load(".assets/enemies/reaper/PassiveRunningReaper_4.png"),
        image.load(".assets/enemies/reaper/PassiveRunningReaper_5.png"),
        image.load(".assets/enemies/reaper/PassiveRunningReaper_6.png"),
        image.load(".assets/enemies/reaper/PassiveRunningReaper_7.png"),
        image.load(".assets/enemies/reaper/PassiveRunningReaper_8.png"),
    )
    Flyweight.data["skeleton_big_idle"] = (
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_1.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_2.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_3.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_4.png"),
    )
    Flyweight.data["skeleton_big_attack"] = (
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_5.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_6.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_7.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_8.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_9.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_10.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_11.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_12.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_13.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_14.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_15.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_16.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_17.png"),
    )
    Flyweight.data["skeleton_big_hit"] = (
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_18.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_19.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_20.png"),
    )
    Flyweight.data["skeleton_big_walk"] = (
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_21.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_22.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_23.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_24.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_25.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_26.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_27.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_28.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_29.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_30.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_31.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_32.png"),
    )
    Flyweight.data["skeleton_big_death"] = (
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_33.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_34.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_35.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_36.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_37.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_38.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_39.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_40.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_41.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_42.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_43.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_44.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_45.png"),
    )
    Flyweight.data["skeleton_big_attack"] = (
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_21.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_22.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_23.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_24.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_25.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_26.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_27.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_28.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_29.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_30.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_31.png"),
        image.load(".assets/enemies/SkeletonBi/SkeletonBig_32.png"),
    )
    Flyweight.data["bringer_of_death_attack"] = (
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Attack/Bringer-of-Death_Attack_1.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Attack/Bringer-of-Death_Attack_2.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Attack/Bringer-of-Death_Attack_3.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Attack/Bringer-of-Death_Attack_4.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Attack/Bringer-of-Death_Attack_5.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Attack/Bringer-of-Death_Attack_6.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Attack/Bringer-of-Death_Attack_7.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Attack/Bringer-of-Death_Attack_8.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Attack/Bringer-of-Death_Attack_9.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Attack/Bringer-of-Death_Attack_10.png"
        ),
    )
    Flyweight.data["bringer_of_death_cast"] = (
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Cast/Bringer-of-Death_Cast_1.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Cast/Bringer-of-Death_Cast_2.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Cast/Bringer-of-Death_Cast_3.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Cast/Bringer-of-Death_Cast_4.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Cast/Bringer-of-Death_Cast_5.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Cast/Bringer-of-Death_Cast_6.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Cast/Bringer-of-Death_Cast_7.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Cast/Bringer-of-Death_Cast_8.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Cast/Bringer-of-Death_Cast_9.png"
        ),
    )
    Flyweight.data["bringer_of_death_death"] = (
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Death/Bringer-of-Death_Death_1.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Death/Bringer-of-Death_Death_2.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Death/Bringer-of-Death_Death_3.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Death/Bringer-of-Death_Death_4.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Death/Bringer-of-Death_Death_5.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Death/Bringer-of-Death_Death_6.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Death/Bringer-of-Death_Death_7.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Death/Bringer-of-Death_Death_8.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Death/Bringer-of-Death_Death_9.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Death/Bringer-of-Death_Death_10.png"
        ),
    )
    Flyweight.data["bringer_of_death_hurt"] = (
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Hurt/Bringer-of-Death_Hurt_1.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Hurt/Bringer-of-Death_Hurt_2.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Hurt/Bringer-of-Death_Hurt_3.png"
        ),
    )
    Flyweight.data["bringer_of_death_idle"] = (
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Idle/Bringer-of-Death_Idle_1.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Idle/Bringer-of-Death_Idle_2.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Idle/Bringer-of-Death_Idle_3.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Idle/Bringer-of-Death_Idle_4.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Idle/Bringer-of-Death_Idle_5.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Idle/Bringer-of-Death_Idle_6.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Idle/Bringer-of-Death_Idle_7.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Idle/Bringer-of-Death_Idle_8.png"
        ),
    )
    Flyweight.data["bringer_of_death_spell"] = (
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Spell/Bringer-of-Death_Spell_1.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Spell/Bringer-of-Death_Spell_2.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Spell/Bringer-of-Death_Spell_3.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Spell/Bringer-of-Death_Spell_4.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Spell/Bringer-of-Death_Spell_5.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Spell/Bringer-of-Death_Spell_6.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Spell/Bringer-of-Death_Spell_7.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Spell/Bringer-of-Death_Spell_8.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Spell/Bringer-of-Death_Spell_9.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Spell/Bringer-of-Death_Spell_10.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Spell/Bringer-of-Death_Spell_11.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Spell/Bringer-of-Death_Spell_12.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Spell/Bringer-of-Death_Spell_13.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Spell/Bringer-of-Death_Spell_14.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Spell/Bringer-of-Death_Spell_15.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Spell/Bringer-of-Death_Spell_16.png"
        ),
    )
    Flyweight.data["bringer_of_death_walk"] = (
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Walk/Bringer-of-Death_Walk_1.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Walk/Bringer-of-Death_Walk_2.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Walk/Bringer-of-Death_Walk_3.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Walk/Bringer-of-Death_Walk_4.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Walk/Bringer-of-Death_Walk_5.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Walk/Bringer-of-Death_Walk_6.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Walk/Bringer-of-Death_Walk_7.png"
        ),
        image.load(
            ".assets/enemies/Bringer-Of-Death/Individual Sprite/Walk/Bringer-of-Death_Walk_8.png"
        ),
    )
    Flyweight.data["boss_demon_idle"] = (
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/01_demon_idle/demon_idle_1.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/01_demon_idle/demon_idle_2.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/01_demon_idle/demon_idle_3.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/01_demon_idle/demon_idle_4.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/01_demon_idle/demon_idle_5.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/01_demon_idle/demon_idle_6.png"
        ),
    )
    Flyweight.data["boss_demon_walk"] = (
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/02_demon_walk/demon_walk_1.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/02_demon_walk/demon_walk_2.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/02_demon_walk/demon_walk_3.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/02_demon_walk/demon_walk_4.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/02_demon_walk/demon_walk_5.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/02_demon_walk/demon_walk_6.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/02_demon_walk/demon_walk_7.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/02_demon_walk/demon_walk_8.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/02_demon_walk/demon_walk_9.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/02_demon_walk/demon_walk_10.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/02_demon_walk/demon_walk_11.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/02_demon_walk/demon_walk_12.png"
        ),
    )
    Flyweight.data["boss_demon_cleave"] = (
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/03_demon_cleave/demon_cleave_1.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/03_demon_cleave/demon_cleave_2.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/03_demon_cleave/demon_cleave_3.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/03_demon_cleave/demon_cleave_4.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/03_demon_cleave/demon_cleave_5.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/03_demon_cleave/demon_cleave_6.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/03_demon_cleave/demon_cleave_7.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/03_demon_cleave/demon_cleave_8.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/03_demon_cleave/demon_cleave_9.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/03_demon_cleave/demon_cleave_10.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/03_demon_cleave/demon_cleave_11.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/03_demon_cleave/demon_cleave_12.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/03_demon_cleave/demon_cleave_13.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/03_demon_cleave/demon_cleave_14.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/03_demon_cleave/demon_cleave_15.png"
        ),
    )
    Flyweight.data["boss_demon_hit"] = (
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/04_demon_take_hit/demon_take_hit_1.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/04_demon_take_hit/demon_take_hit_2.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/04_demon_take_hit/demon_take_hit_3.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/04_demon_take_hit/demon_take_hit_4.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/04_demon_take_hit/demon_take_hit_5.png"
        ),
    )
    Flyweight.data["boss_demon_hit"] = (
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_1.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_2.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_3.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_4.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_5.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_6.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_7.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_8.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_9.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_10.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_11.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_12.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_13.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_14.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_15.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_16.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_17.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_18.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_19.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_20.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_21.png"
        ),
        image.load(
            ".assets/enemies/boss_demon_slime_FREE_v1.0/individual sprites/05_demon_death/demon_death_22.png"
        ),
    )
    Flyweight.data["boss_frost_attack"] = (
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/1_atk/1_atk_1.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/1_atk/1_atk_2.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/1_atk/1_atk_3.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/1_atk/1_atk_4.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/1_atk/1_atk_5.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/1_atk/1_atk_6.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/1_atk/1_atk_7.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/1_atk/1_atk_8.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/1_atk/1_atk_9.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/1_atk/1_atk_10.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/1_atk/1_atk_11.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/1_atk/1_atk_12.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/1_atk/1_atk_13.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/1_atk/1_atk_14.png"
        ),
    )
    Flyweight.data["boss_frost_death"] = (
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/death/death_1.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/death/death_2.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/death/death_3.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/death/death_4.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/death/death_5.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/death/death_6.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/death/death_7.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/death/death_8.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/death/death_9.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/death/death_10.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/death/death_11.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/death/death_12.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/death/death_13.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/death/death_14.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/death/death_15.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/death/death_16.png"
        ),
    )
    Flyweight.data["boss_frost_idle"] = (
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/idle/idle_1.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/idle/idle_2.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/idle/idle_3.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/idle/idle_4.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/idle/idle_5.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/idle/idle_6.png"
        ),
    )
    Flyweight.data["boss_frost_hit"] = (
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/take_hit/take_hit_1.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/take_hit/take_hit_2.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/take_hit/take_hit_3.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/take_hit/take_hit_4.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/take_hit/take_hit_5.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/take_hit/take_hit_6.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/take_hit/take_hit_7.png"
        ),
    )
    Flyweight.data["boss_frost_walk"] = (
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/walk/walk_1.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/walk/walk_2.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/walk/walk_3.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/walk/walk_4.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/walk/walk_5.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/walk/walk_6.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/walk/walk_7.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/walk/walk_8.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/walk/walk_9.png"
        ),
        image.load(
            ".assets/enemies/Frost_Guardian_FREE_v1.0/PNG files/walk/walk_10.png"
        ),
    )
    Flyweight.data["ice_spell_1_hit"] = (
        image.load(".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Hit1.png"),
        image.load(".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Hit2.png"),
        image.load(".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Hit3.png"),
        image.load(".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Hit4.png"),
        image.load(".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Hit5.png"),
        image.load(".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Hit6.png"),
        image.load(".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Hit7.png"),
        image.load(".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Hit8.png"),
    )
    Flyweight.data["ice_spell_1_move"] = (
        image.load(
            ".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Repeatable1.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Repeatable2.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Repeatable3.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Repeatable4.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Repeatable5.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Repeatable6.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Repeatable7.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Repeatable8.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Repeatable9.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Repeatable10.png"
        ),
    )
    Flyweight.data["ice_spell_1_strat"] = (
        image.load(".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Start1.png"),
        image.load(".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Start2.png"),
        image.load(".assets/Ice Effect 01/Ice VFX 1/Separated Frames/VFX 1 Start3.png"),
    )
    Flyweight.data["ice_spell_2_active"] = (
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Active1.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Active2.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Active3.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Active4.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Active5.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Active6.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Active7.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Active8.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Active9.png"
        ),
    )
    Flyweight.data["ice_spell_2_ending"] = (
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending1.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending2.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending3.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending4.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending5.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending6.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending7.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending8.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending9.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending11.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending12.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending13.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending14.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending15.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending16.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending17.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Ending18.png"
        ),
    )
    Flyweight.data["ice_spell_2_start"] = (
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Start1.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Start2.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Start3.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Start4.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Start5.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Start6.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Start7.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Start8.png"
        ),
        image.load(
            ".assets/Ice Effect 01/Ice VFX 2/Separated Frames/Ice VFX 2 Start9.png"
        ),
    )
    Flyweight.data["npc_ranger"] = (
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/elementals/leaf_ranger/leaf_ranger_1.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/elementals/leaf_ranger/leaf_ranger_2.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/elementals/leaf_ranger/leaf_ranger_3.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/elementals/leaf_ranger/leaf_ranger_4.png"
        ),
    )
    Flyweight.data["npc_gunslinger"] = (
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/steampunk/gunslinger/gunslinger_1.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/steampunk/gunslinger/gunslinger_2.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/steampunk/gunslinger/gunslinger_3.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/steampunk/gunslinger/gunslinger_4.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/steampunk/gunslinger/gunslinger_5.png"
        ),
    )
    Flyweight.data["npc_witch"] = (
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/medieval/witch/witch_00.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/medieval/witch/witch_01.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/medieval/witch/witch_02.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/medieval/witch/witch_03.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/medieval/witch/witch_04.png"
        ),
    )
    Flyweight.data["npc_king"] = (
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/medieval/king/king_00.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/medieval/king/king_01.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/medieval/king/king_02.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/medieval/king/king_03.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/medieval/king/king_04.png"
        ),
    )
    Flyweight.data["npc_monk"] = (
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/elementals/ground_monk/ground_monk_1.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/elementals/ground_monk/ground_monk_2.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/elementals/ground_monk/ground_monk_3.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/elementals/ground_monk/ground_monk_4.png"
        ),
    )
    Flyweight.data["npc_fairy"] = (
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/medieval/fairy/fairy_1.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/medieval/fairy/fairy_2.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/medieval/fairy/fairy_3.png"
        ),
        image.load(
            ".assets/Lively_NPCs_v3.0/individual sprites/medieval/fairy/fairy_4.png"
        ),
    )
    Flyweight.data["moonpie_front_idle"] = (
        image.load(".assets/MoonPie/girl_frames1.png"),
        image.load(".assets/MoonPie/girl_frames2.png"),
        image.load(".assets/MoonPie/girl_frames3.png"),
        image.load(".assets/MoonPie/girl_frames4.png"),
    )
    Flyweight.data["moonpie_left_idle"] = (
        image.load(".assets/MoonPie/girl_frames5.png"),
        image.load(".assets/MoonPie/girl_frames6.png"),
        image.load(".assets/MoonPie/girl_frames7.png"),
        image.load(".assets/MoonPie/girl_frames8.png"),
    )
    Flyweight.data["moonpie_right_idle"] = (
        image.load(".assets/MoonPie/girl_frames9.png"),
        image.load(".assets/MoonPie/girl_frames10.png"),
        image.load(".assets/MoonPie/girl_frames11.png"),
        image.load(".assets/MoonPie/girl_frames12.png"),
    )
    Flyweight.data["moonpie_back_idle"] = (
        image.load(".assets/MoonPie/girl_frames13.png"),
        image.load(".assets/MoonPie/girl_frames14.png"),
        image.load(".assets/MoonPie/girl_frames15.png"),
        image.load(".assets/MoonPie/girl_frames16.png"),
    )
    Flyweight.data["moonpie_front_run"] = (
        image.load(".assets/MoonPie/girl_frames17.png"),
        image.load(".assets/MoonPie/girl_frames18.png"),
        image.load(".assets/MoonPie/girl_frames19.png"),
        image.load(".assets/MoonPie/girl_frames20.png"),
        image.load(".assets/MoonPie/girl_frames21.png"),
        image.load(".assets/MoonPie/girl_frames22.png"),
    )
    Flyweight.data["moonpie_left_run"] = (
        image.load(".assets/MoonPie/girl_frames23.png"),
        image.load(".assets/MoonPie/girl_frames24.png"),
        image.load(".assets/MoonPie/girl_frames25.png"),
        image.load(".assets/MoonPie/girl_frames26.png"),
        image.load(".assets/MoonPie/girl_frames27.png"),
        image.load(".assets/MoonPie/girl_frames28.png"),
    )
    Flyweight.data["moonpie_right_run"] = (
        image.load(".assets/MoonPie/girl_frames29.png"),
        image.load(".assets/MoonPie/girl_frames30.png"),
        image.load(".assets/MoonPie/girl_frames31.png"),
        image.load(".assets/MoonPie/girl_frames32.png"),
        image.load(".assets/MoonPie/girl_frames33.png"),
        image.load(".assets/MoonPie/girl_frames34.png"),
    )
    Flyweight.data["moonpie_back_run"] = (
        image.load(".assets/MoonPie/girl_frames35.png"),
        image.load(".assets/MoonPie/girl_frames36.png"),
        image.load(".assets/MoonPie/girl_frames37.png"),
        image.load(".assets/MoonPie/girl_frames38.png"),
        image.load(".assets/MoonPie/girl_frames39.png"),
        image.load(".assets/MoonPie/girl_frames40.png"),
    )
    Flyweight.data["moonpie_death"] = (
        image.load(".assets/MoonPie/girl_frames41.png"),
        image.load(".assets/MoonPie/girl_frames42.png"),
        image.load(".assets/MoonPie/girl_frames43.png"),
        image.load(".assets/MoonPie/girl_frames44.png"),
    )
    Flyweight.data["blood"] = (
        image.load(".assets/NEw pack blood/1/1_0.png"),
        image.load(".assets/NEw pack blood/1/1_1.png"),
        image.load(".assets/NEw pack blood/1/1_2.png"),
        image.load(".assets/NEw pack blood/1/1_3.png"),
        image.load(".assets/NEw pack blood/1/1_4.png"),
        image.load(".assets/NEw pack blood/1/1_5.png"),
        image.load(".assets/NEw pack blood/1/1_6.png"),
        image.load(".assets/NEw pack blood/1/1_7.png"),
        image.load(".assets/NEw pack blood/1/1_8.png"),
        image.load(".assets/NEw pack blood/1/1_9.png"),
        image.load(".assets/NEw pack blood/1/1_10.png"),
        image.load(".assets/NEw pack blood/1/1_11.png"),
        image.load(".assets/NEw pack blood/1/1_12.png"),
        image.load(".assets/NEw pack blood/1/1_13.png"),
        image.load(".assets/NEw pack blood/1/1_14.png"),
        image.load(".assets/NEw pack blood/1/1_15.png"),
        image.load(".assets/NEw pack blood/1/1_16.png"),
        image.load(".assets/NEw pack blood/1/1_17.png"),
        image.load(".assets/NEw pack blood/1/1_18.png"),
        image.load(".assets/NEw pack blood/1/1_19.png"),
        image.load(".assets/NEw pack blood/1/1_20.png"),
        image.load(".assets/NEw pack blood/1/1_21.png"),
        image.load(".assets/NEw pack blood/1/1_22.png"),
        image.load(".assets/NEw pack blood/1/1_23.png"),
        image.load(".assets/NEw pack blood/1/1_24.png"),
        image.load(".assets/NEw pack blood/1/1_25.png"),
        image.load(".assets/NEw pack blood/1/1_26.png"),
        image.load(".assets/NEw pack blood/1/1_27.png"),
        image.load(".assets/NEw pack blood/1/1_28.png"),
        image.load(".assets/NEw pack blood/1/1_29.png"),
    )
    Flyweight.data["start_button"] = (
        image.load(".assets/Simple UI Pack/Buttons/64x64/Start.png"),
        image.load(".assets/Simple UI Pack/Buttons/64x64/StartGray.png"),
        image.load(".assets/Simple UI Pack/Buttons/64x64/StartPressed.png"),
    )
    Flyweight.data["exit_button"] = (
        image.load(".assets/Simple UI Pack/Buttons/64x64/Exit.png"),
        image.load(".assets/Simple UI Pack/Buttons/64x64/ExitGray.png"),
        image.load(".assets/Simple UI Pack/Buttons/64x64/ExitPressed.png"),
    )
    Flyweight.data["coin"] = (
        image.load(".assets/Simple UI Pack/HUD/64x64/Coin_1.png"),
        image.load(".assets/Simple UI Pack/HUD/64x64/Coin_2.png"),
        image.load(".assets/Simple UI Pack/HUD/64x64/Coin_3.png"),
        image.load(".assets/Simple UI Pack/HUD/64x64/Coin_4.png"),
    )
    Flyweight.data["confirm_button"] = (
        image.load(
            ".assets/Simple UI Pack/Icons and Vectors/64x64/Icons/Icon_Confirm1.png"
        ),
        image.load(
            ".assets/Simple UI Pack/Icons and Vectors/64x64/Icons/Icon_Confirm2.png"
        ),
    )
    Flyweight.data["pause_button"] = (
        image.load(
            ".assets/Simple UI Pack/Icons and Vectors/64x64/Icons/Icon_Pause1Blue.png"
        ),
        image.load(
            ".assets/Simple UI Pack/Icons and Vectors/64x64/Icons/Icon_Pause2.png"
        ),
    )
    Flyweight.data["sound_button"] = (
        image.load(
            ".assets/Simple UI Pack/Icons and Vectors/64x64/Icons/Icon_SoundMutedRed.png"
        ),
        image.load(
            ".assets/Simple UI Pack/Icons and Vectors/64x64/Icons/Icon_SoundOnGreen.png"
        ),
    )
    Flyweight.data["star_button"] = (
        image.load(
            ".assets/Simple UI Pack/Icons and Vectors/64x64/Icons/Icon_Star.png"
        ),
        image.load(
            ".assets/Simple UI Pack/Icons and Vectors/64x64/Icons/Icon_StarEmpty.png"
        ),
    )

main/src/flyweights/animated.py
Musa-Sina-Ertugrul/QuestGame
"""
This module contains NotAnimated flyweight class

TODO: Scale everthing when coding started

"""
from pygame import mixer
from pygame import font
from pygame.mixer import Sound
from pygame.font import Font
from pygame import image, transform

mixer.init()
font.init()

from src.flyweights.Flyweight import Flyweight


class NotAnimated(Flyweight):
    """
    This class is container for NotAnimated objects

    Keywords:
        "crosshair"
        "bgs_main_menu"
        "icons_skill"
        "start_menu_sound"
        "game_sound"
        "hearth"
        "shield"
        "W"
        "A"
        "S"
        "D"
        "elenore_face"
        "moonpie_face"
        "menu_box_long"
        "menu_box"
        "menu_shop"
        "icon_template"
        "icon_random"
        "chest_openning_sound"
        "chest_closing_sound"
        "click_sound"
        "buy_sound"
        "heart_sound"
        "death_sound"
        "font"
        "elenore_menu_voices"
        "elenore_demaged_voices"
        "elenore_healed_voices"
        "elenore_shield_voices"
        "moonpie_menu_voices"
        "moonpie_demaged_voices"
        "moonpie_healed_voices"
        "moonpie_shield_voices"
        "pygame_logo"
        "quest_logo"
    """

    Flyweight.data["crosshair"] = image.load(
        ".assets/Crosshairs/Outline/CrosshairsOutline17.png"
    )
    Flyweight.data["bgs_main_menu"] = (
        transform.scale_by(
            image.load(".assets/Desolate Places/Cloudy Mountains.png"), 3.0
        ),
        transform.scale_by(image.load(".assets/Desolate Places/Dusty Moon.png"), 3.0),
        transform.scale_by(
            image.load(".assets/Desolate Places/Hidden Desert.png"), 3.0
        ),
        transform.scale_by(image.load(".assets/Desolate Places/Misty Rocks.png"), 3.0),
        transform.scale_by(image.load(".assets/Desolate Places/Starry Peaks.png"), 3.0),
    )
    Flyweight.data["icons_skill"] = (
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons1.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons2.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons3.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons4.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons5.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons6.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons7.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons8.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons9.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons10.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons11.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons12.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons13.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons14.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons15.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons16.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons17.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons18.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons19.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons20.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons21.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons22.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons23.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons24.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons25.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons26.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons27.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons28.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons29.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons30.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons31.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons32.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons33.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons34.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons35.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons36.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons37.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons38.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons39.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons40.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons41.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons42.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons43.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons44.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons45.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons46.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons47.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons48.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons49.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons50.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons51.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons52.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons53.png"),
        image.load(".assets/skill_icons_by_quintino_pixels/96x96/skill_icons54.png"),
    )
    Flyweight.data["start_menu_sound"] = Sound(".assets/game_music/Spy/Spy.mp3")
    Flyweight.data["game_sound"] = (
        Sound(".assets/game_music/16_bit_space.ogg"),
        Sound(".assets/game_music/future.ogg"),
        Sound(".assets/game_music/glitch.ogg"),
        Sound(".assets/game_music/retro_metal.ogg"),
    )
    Flyweight.data["hearth"] = (
        image.load(".assets/health/heart_1.png"),
        image.load(".assets/health/heart_2.png"),
        image.load(".assets/health/heart_3.png"),
    )
    Flyweight.data["shield"] = (
        image.load(".assets/health/shield_1.png"),
        image.load(".assets/health/shield_2.png"),
        image.load(".assets/health/shield_3.png"),
    )
    Flyweight.data["W"] = image.load(".assets/Individual Icons/keyboard_14.png")
    Flyweight.data["A"] = image.load(".assets/Individual Icons/keyboard_23.png")
    Flyweight.data["S"] = image.load(".assets/Individual Icons/keyboard_24.png")
    Flyweight.data["D"] = image.load(".assets/Individual Icons/keyboard_25.png")
    Flyweight.data["elenore_face"] = image.load(".assets/pixel-ladies-free/002.png")
    Flyweight.data["moonpie_face"] = image.load(".assets/pixel-ladies-free/010.png")
    Flyweight.data["menu_box_long"] = image.load(
        ".assets/Simple UI Pack/Menu/64x64/InfoBox_3x4.png"
    )
    Flyweight.data["menu_box"] = image.load(
        ".assets/Simple UI Pack/Menu/64x64/InfoBox.png"
    )
    Flyweight.data["menu_shop"] = image.load(
        ".assets/Simple UI Pack/Menu/64x64/SHOP.png"
    )
    Flyweight.data["icon_template"] = transform.scale_by(
        image.load(
            ".assets/Simple UI Pack/Icons and Vectors/64x64/Icons/IconTemplate.png"
        ),
        1.6,
    )
    Flyweight.data["icon_random"] = image.load(
        ".assets/Simple UI Pack/Icons and Vectors/64x64/Icons/RandomBox.png"
    )
    Flyweight.data["chest_openning_sound"] = Sound(
        ".assets/SoundStarterPack/SoundStarterPack/Starter Pack-Realist Sound Bank.23/Chest/ChestOpening1.wav"
    )
    Flyweight.data["chest_closing_sound"] = Sound(
        ".assets/SoundStarterPack/SoundStarterPack/Starter Pack-Realist Sound Bank.23/Chest/ChestClosing2.wav"
    )
    Flyweight.data["click_sound"] = Sound(
        ".assets/SoundStarterPack/SoundStarterPack/Starter Pack-Realist Sound Bank.23/Click-Button-Switch/Click1.wav"
    )
    Flyweight.data["buy_sound"] = Sound(
        ".assets/SoundStarterPack/SoundStarterPack/Starter Pack-Realist Sound Bank.23/Coin/CoinDrop1.wav"
    )
    Flyweight.data["heart_sound"] = Sound(
        ".assets/SoundStarterPack/SoundStarterPack/Starter Pack-Realist Sound Bank.23/HeartBeat/HeartBeatFast1.wav"
    )
    Flyweight.data["death_sound"] = Sound(
        ".assets/SoundStarterPack/SoundStarterPack/Starter Pack-Realist Sound Bank.23/Hit(Impact)/HitGore1.wav"
    )
    Flyweight.data["font"] = Font(".assets/DungeonFont.ttf")
    Flyweight.data["elenore_menu_voices"] = (
        Sound(".assets/Elenore/Type 2/aqua.wav"),
        Sound(".assets/Elenore/Type 2/blizzard.wav"),
        Sound(".assets/Elenore/Type 2/bubbles.wav"),
        Sound(".assets/Elenore/Type 2/burn.wav"),
        Sound(".assets/Elenore/Type 2/curse.wav"),
        Sound(".assets/Elenore/Type 2/cyclone.wav"),
        Sound(".assets/Elenore/Type 2/fire.wav"),
        Sound(".assets/Elenore/Type 2/freeze.wav"),
        Sound(".assets/Elenore/Type 2/hellstorm.wav"),
        Sound(".assets/Elenore/Type 2/hex.wav"),
        Sound(".assets/Elenore/Type 2/ice.wav"),
        Sound(".assets/Elenore/Type 2/tornado.wav"),
        Sound(".assets/Elenore/Type 2/twister.wav"),
        Sound(".assets/Elenore/Type 2/water.wav"),
        Sound(".assets/Elenore/Type 2/wind.wav"),
    )
    Flyweight.data["elenore_demaged_voices"] = (
        Sound(".assets/Elenore/Type 2/damaged1.wav"),
        Sound(".assets/Elenore/Type 2/damaged2.wav"),
        Sound(".assets/Elenore/Type 2/damaged3.wav"),
    )
    Flyweight.data["elenore_healed_voices"] = (
        Sound(".assets/Elenore/Type 2/heal.wav"),
        Sound(".assets/Elenore/Type 2/healed1.wav"),
        Sound(".assets/Elenore/Type 2/healed2.wav"),
        Sound(".assets/Elenore/Type 2/healed3.wav"),
    )
    Flyweight.data["elenore_shield_voices"] = Sound(".assets/Elenore/Type 2/cure.wav")
    Flyweight.data["moonpie_menu_voices"] = (
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/aqua.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/blizzard.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/bubbles.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/burn.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/curse.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/cyclone.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/fire.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/freeze.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/hellstorm.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/hex.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/ice.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/tornado.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/twister.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/water.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/wind.wav"),
    )
    Flyweight.data["moonpie_demaged_voices"] = (
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/damaged1.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/damaged2.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/damaged3.wav"),
    )
    Flyweight.data["moonpie_healed_voices"] = (
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/heal.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/healed1.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/healed2.wav"),
        Sound(".assets/MoonPie/RPG Voice Starter Pack/Type 1/healed3.wav"),
    )
    Flyweight.data["moonpie_shield_voices"] = Sound(
        ".assets/MoonPie/RPG Voice Starter Pack/Type 1/cure.wav"
    )
    Flyweight.data["pygame_logo"] = image.load(".img/pygame_powered.png")
    Flyweight.data["quest_logo"] = image.load(".img/quest_logo.png")
    # TODO: Add game texts

main/src/flyweights/not_animated.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from abc import ABC, abstractmethod
from typing import Tuple, NoReturn
from ..Gui import Gui  # pylint: disable=E
from ..State import (  # pylint: disable=W # When this line has been used delete pylint hint
    StateLookUpTable,  # pylint: disable=W
)  # pylint: disable=W


class Game(Gui, ABC):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)
        self.pos_x: int = 0
        self.pos_y: int = 0
        Gui.elememts = ((object,),)
        Gui.internal_states = (({},),)
        Gui.external_states = (({},),)
        self.width: int = self._relative_width()
        self.height: int = self._relative_height()

    @abstractmethod
    def relative_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    @abstractmethod
    def relative_height(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def relative_width(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def current_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if NotImplemented:
            raise NotImplementedError
        return (self.pos_x, self.pos_y)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/gui/Game.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from abc import ABC, abstractmethod
from typing import Tuple, NoReturn
from ..Gui import Gui  # pylint: disable=E
from ..State import (  # pylint: disable=W # When this line has been used delete pylint hint
    StateLookUpTable,  # pylint: disable=W
)  # pylint: disable=W


class Menu(Gui, ABC):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        Gui.__init__(self)
        self.pos_x: int = 0
        self.pos_y: int = 0
        Gui.elememts = ((object,),)
        Gui.internal_states = (({},),)
        Gui.external_states = (({},),)
        self.width: int = 0
        self.height: int = 0

    @abstractmethod
    def relative_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    @abstractmethod
    def relative_height(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def relative_width(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def current_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if NotImplemented:
            raise NotImplementedError
        return (self.pos_x, self.pos_y)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/gui/Menu.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from copy import copy
from enum import EnumType
from typing import Tuple, NoReturn, Callable, Dict, List
from time import sleep
from pygame import Surface, transform
from src.State import ButtonStateLookUpTable
from ..Menu import Menu


class Button(Menu):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        self.elements: List[List[object]] = [[object]]  # pylint: disable = W,E
        self.internal_states: List[List[EnumType]] = [[dict]]
        self.external_states: List[List[EnumType]] = [[dict]]
        self.functionality: Callable = None
        self.size_nultiplier: float = 1.0

    @property
    def __func(self) -> Callable:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.functionality

    @__func.setter
    def set_func(self, func: Callable) -> None:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.functionality = func

    def relative_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    def relative_height(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_width(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def current_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return (self.pos_x, self.pos_y)

    def run(self) -> Tuple[Tuple[Surface]]:
        """draw other elements on label surface

        This method returns first elements on label surface
        (first elements) to be draw on other surfaces

        Return:
            Tuple[Tuple[Surface]] : returns label surface as ptr
        """
        final_elements = [
            [self.elements[0][i].run()[0][0], self.elements[0][i].relative_pos()]
            for i in range(1, len(self.elements[0]))
        ]
        base_label: Surface = copy(self.elements[0][0])
        base_label.fill((255, 0, 0))
        base_label.blits(blit_sequence=final_elements)
        base_label = transform.scale_by(base_label, self.size_nultiplier)
        self.functionality()
        self.update_states()
        return ((base_label,),)

    def init_external_states(self, states: List[List[EnumType]]) -> None:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.external_states = states

    def init_internal_states(self, states: List[List[EnumType]]) -> None:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.internal_states = states

    def init_elements(self, elements: List[List[object]]) -> None:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.elements = elements

    def update_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        for i in range(len(self.elements[0])):
            match self.external_states[0][i]:
                case ButtonStateLookUpTable.NULL:
                    continue
                case ButtonStateLookUpTable.CLICKED:
                    self.elements[0][i].set_mouse_state = ButtonStateLookUpTable.CLICKED
                case ButtonStateLookUpTable.ON_CLICK:
                    self.elements[0][
                        i
                    ].set_mouse_state = ButtonStateLookUpTable.ON_CLICK
                case ButtonStateLookUpTable.NOT_COLLIDE:
                    self.elements[0][
                        i
                    ].set_mouse_state = ButtonStateLookUpTable.NOT_COLLIDE
                case _:
                    raise RuntimeError(
                        f"Wrong state {self.external_states[0][i].__name__}"
                    )

main/src/gui/menu_items/Button.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from typing import Tuple, NoReturn, Dict
from ..Menu import Menu


class Column(Menu):

    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable=E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    @property
    def pos_x(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return super().pos_x

    @pos_x.setter
    def pos_x(self, new_x: int) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        super().pos_x = new_x

    @property
    def pos_y(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return super().pos_y

    @pos_y.setter
    def pos_y(self, new_y: int) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        super().pos_y = new_y

    def relative_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_height(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_width(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def current_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return (self.pos_x, self.pos_y)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(  # pylint: disable=W
        self, item_list: Tuple[Tuple[object]]
    ) -> Tuple[Tuple[object]]:  # pylint: disable=W
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/gui/menu_items/Column.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from sys import path
from typing import Tuple, NoReturn, List, Final, Dict  # pylint: disable=W,E
from pygame import Surface, transform  # pylint: disable=W,E

path.append("main/src/flyweights")
path.append("main/src/")

from not_animated import (  # pylint: disable=W,E,import-error,wrong-import-position
    NotAnimated,  # pylint: disable=W,E,import-error,wrong-import-position
)  # pylint: disable=W,E,import-error,wrong-import-position
from State import (  # pylint: disable=W,E,import-error,wrong-import-position
    StateLookUpTable,  # pylint: disable=W,E,import-error,wrong-import-position
)  # pylint: disable=W,E,import-error,wrong-import-position
from ..Menu import Menu  # pylint: disable=W,E,import-error,wrong-import-position


class Icon(Menu):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable=W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    @property
    def pos_x(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return super().pos_x

    @pos_x.setter
    def pos_x(self, new_x: int) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        super().pos_x = new_x

    @property
    def pos_y(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return super().pos_y

    @pos_y.setter
    def pos_y(self, new_y: int) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        super().pos_y = new_y

    def relative_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_height(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_width(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def current_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return (self._x, self._y)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self, icon: int) -> Tuple[Tuple[object]]:  # pylint: disable=W
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def __change_color(self) -> NoReturn:  # pylint: disable=W
        raise NotImplementedError

    def update_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/gui/menu_items/Icon.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstring

"""
from typing import NoReturn, Tuple, Dict
from ..Menu import Menu


class Market(Menu):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable=W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    def buy_level(self, skill: int):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def reset_levels(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_height(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_width(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def current_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return (self._x, self._y)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_skill(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/gui/menu_items/Market.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""

from typing import Tuple, NoReturn, Dict
from ..Menu import Menu  # pylint: disable=wrong-import-position


class MenuBackground(Menu):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable=W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    def relative_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    def relative_height(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_width(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def current_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if NotImplemented:
            raise NotImplementedError
        return (self._x, self._y)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self) -> Tuple[Tuple[object]]:  # pylint: disable=W
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/gui/menu_items/MenuBackground.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstring

"""
from copy import copy
from typing import Tuple, Dict, List, Callable
from enum import EnumType
from pygame import Surface
from ..Menu import Menu


class MenuLabel(Menu):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__()
        self.pos_x: int = 0
        self.pos_y: int = 0
        self.elements: List[List[object]] = ((object,),)  # pylint: disable = W,E
        self.internal_states: List[List[Dict]] = [[dict]]
        self.external_states: List[List[Dict]] = [[dict]]

    @property
    def pos_x(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.pos_x

    @pos_x.setter
    def pos_x(self, new_x: int) -> None:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.pos_x = new_x

    @property
    def pos_y(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.pos_y

    @pos_y.setter
    def pos_y(self, new_y: int) -> None:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.pos_y = new_y

    def relative_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_height(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_width(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> None:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self) -> None:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def current_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return (self.pos_x, self.pos_y)

    def run(self) -> Tuple[Tuple[Surface]]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self, states: List[List[EnumType]]):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.external_states = states

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(  # pylint: disable=W
        self, item_list: Tuple[Tuple[object]]
    ) -> Tuple[Tuple[object]]:  # pylint: disable=W
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        super.elements = item_list

    def update_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/gui/menu_items/MenuLabel.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""

from typing import Tuple, NoReturn, Dict
from src.gui.Menu import Menu  # pylint: disable=wrong-import-position


class MenuTemplate(Menu):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__()  # pylint: disable=W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    def relative_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    def relative_height(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_width(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def current_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if NotImplemented:
            raise NotImplementedError
        return (self._x, self._y)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self) -> Tuple[Tuple[object]]:  # pylint: disable=W
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/gui/menu_items/MenuTemplate.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from sys import path
from typing import Tuple, NoReturn, Dict, List, Callable
from copy import copy
from functools import lru_cache
from enum import EnumType
from pygame.font import Font
from pygame import Surface
from pygame import transform

path.append("main/src/flyweights")
path.append("main/src/")

from not_animated import (  # pylint: disable=W,E,import-error,wrong-import-position
    NotAnimated,
)
from State import (  # pylint: disable=W,E,import-error,wrong-import-position
    StateLookUpTable,
)
from ..Menu import Menu  # pylint: disable=W,E,import-error,wrong-import-position
from src.State import ButtonStateLookUpTable


class MenuText(Menu):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        self.__current_font: Font = NotAnimated.data["font"]
        self.elements: Tuple[Tuple[Surface]] = ((Surface,),)  # pylint: disable = W,E
        self.internal_states: List[List[Dict[EnumType]]] = [[dict]]
        self.external_states: List[List[Dict[EnumType]]] = [[dict]]
        self.__current_text: str = ""  # pylint: disable=W,E
        self.pos_x: int = 0
        self.pos_y: int = 0

    @property
    def __pos_x(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.pos_x

    @__pos_x.setter
    def set_pos_x(self, new_x: int) -> None:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.pos_x = new_x

    @property
    def __pos_y(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.pos_y

    @__pos_y.setter
    def set_pos_y(self, new_y: int) -> None:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.pos_y = new_y

    @property
    def mouse_state(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.external_states[0][0]["mouse_state"]

    @mouse_state.setter
    def set_mouse_state(self, state: EnumType):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.external_states[0][0]["mouse_state"] = state

    @property
    def current_text(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.__current_text

    @current_text.setter
    def set_text(self, text: str):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.__current_text = text

    def relative_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return (self.pos_x, self.pos_y)

    def relative_height(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if self.elements[0][0]:
            return Surface.get_height(self.elements[0][0])

        raise RuntimeError("Elements are not initiliazed")

    def relative_width(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if self.elements[0][0]:
            return Surface.get_width(self.elements[0][0])

        raise RuntimeError("Elements are not initiliazed")

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def current_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return (self.pos_x, self.pos_y)

    def run(self) -> Tuple[Tuple[Surface]]:
        """Method for adjust object for internal and external states

        This method has two private method (run_cache, get_color)
        these two method use lru cache to return proper Surface
        object at the end

        NOTE: Check this method for docstrings and structure !!!

        Return:
            Returns Surface object that adjusted based on states
        """

        @lru_cache
        def run_cache(text: str, state: EnumType) -> Tuple[Tuple[Surface]]:
            """Cached pivate method for run()

            Args:
                text (str) : It is caching parameter, simply equals to self.current_text
                punto (int) : It is caching parameter, simply equals to self.current_punto
            Return:
                Returns Tuple in Tuple as ptr Tuple[Tuple[Surface]]
            """
            tmp_color: Tuple[int, int, int] = get_color(state)

            return ((self.__current_font.render(self.current_text, False, tmp_color),),)

        @lru_cache
        def get_color(state: EnumType) -> Tuple[int, int, int]:
            """Returns cached color tuple

            TODO: Adjust colors

            Args:
                state (EnumType) : must be one of ButtonStateLookUpTable values
            Return:
                Returns color as Tuple[int,int,int]
            """
            match state:
                case ButtonStateLookUpTable.CLICKED:
                    return (0, 0, 0)
                case ButtonStateLookUpTable.ON_CLICK:
                    return (181, 181, 181)
                case ButtonStateLookUpTable.NOT_COLLIDE:
                    return (255, 255, 255)
                case _:
                    raise TypeError(
                        f"State must be one of ButtonStateLookUpTable, current {state.__name__}"
                    )

        return run_cache(self.current_text, self.mouse_state)

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.external_states = [[{}]]

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.internal_states = [[{}]]

    def init_elements(self):  # pylint: disable=W
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.elements = (
            (self.__current_font.render(self.current_text, False, (255, 255, 255)),),
        )

    def __change_color(self) -> NoReturn:  # pylint: disable=W
        raise NotImplementedError

    def update_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/gui/menu_items/MenuText.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstring

"""
from typing import Tuple, NoReturn, Dict
from enum import EnumType
from ..Game import Game


class Bar(Game):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable=W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    @property
    def pos_x(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return super().pos_x

    @pos_x.setter
    def pos_x(self, new_x: int) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        super().pos_x = new_x

    @property
    def pos_y(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return super().pos_y

    @pos_y.setter
    def pos_y(self, new_y: int) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        super().pos_y = new_y

    def relative_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_height(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_width(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def current_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return (self._x, self._y)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(  # pylint: disable=W
        self, item_list: Tuple[Tuple[EnumType]]
    ) -> Tuple[Tuple[object]]:  # pylint: disable=W
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/gui/ui/Bar.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""

from typing import Tuple, NoReturn, Dict
from pygame.camera import Camera
from ..Game import Game


class CameraChild(Game, Camera):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        Game.__init__(self)  # pylint: disable=W,E
        Camera.__init__(self)  # TODO: Override most of the methods
        Game.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        Game.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        Game.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    def relative_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    def relative_height(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_width(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def current_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if NotImplemented:
            raise NotImplementedError
        return (self._x, self._y)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self) -> Tuple[Tuple[object]]:  # pylint: disable=W
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/gui/ui/CameraChild.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""

from typing import Tuple, NoReturn, Dict
from ..Game import Game


class MenuBackground(Game):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable=W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    def relative_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    def relative_height(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_width(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def current_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if NotImplemented:
            raise NotImplementedError
        return (self._x, self._y)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self) -> Tuple[Tuple[object]]:  # pylint: disable=W
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/gui/ui/GameBackground.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstring

"""
from typing import Tuple, NoReturn, Dict
from enum import EnumType
from ..Game import Game


class GameLabel(Game):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable=W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    @property
    def pos_x(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return super().pos_x

    @pos_x.setter
    def pos_x(self, new_x: int) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        super().pos_x = new_x

    @property
    def pos_y(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return super().pos_y

    @pos_y.setter
    def pos_y(self, new_y: int) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        super().pos_y = new_y

    def relative_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_height(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_width(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def current_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return (self._x, self._y)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(  # pylint: disable=W
        self, item_list: Tuple[Tuple[EnumType]]
    ) -> Tuple[Tuple[object]]:  # pylint: disable=W
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/gui/ui/GameLabel.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from sys import path
from typing import Tuple, NoReturn, Dict
from copy import copy
from pygame.font import Font

path.append("main/src/flyweights")
path.append("main/src/")

from not_animated import (  # pylint: disable=W,E,import-error,wrong-import-position
    NotAnimated,
)
from State import (  # pylint: disable=W,E,import-error,wrong-import-position
    StateLookUpTable,
)
from ..Game import Game  # pylint: disable=W,E,import-error,wrong-import-position


class GameText(Game):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable=W,E
        self.__current_font: Tuple[Font] = (  # pylint: disable=W,E
            copy(NotAnimated.data["font"]),  # pylint: disable=W,E
        )
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)
        self.__current_text: str = ""  # pylint: disable=W,E
        self.__current_punto: int = 0  # pylint: disable=W,E

    @property
    def current_text(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.__current_text

    @current_text.setter
    def set_text(self, text: str):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.__current_text = text

    @property
    def current_punto(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.__current_text

    @current_text.setter
    def set_punto(self, punto: int):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.__current_punto = punto  # pylint: disable=W,E

    def relative_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    def relative_height(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_width(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def current_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if NotImplemented:
            raise NotImplementedError
        return (self._x, self._y)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self) -> Tuple[Tuple[Font]]:  # pylint: disable=W
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def __change_color(self) -> NoReturn:  # pylint: disable=W
        raise NotImplementedError

    def update_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/gui/ui/GameText.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""

from typing import Tuple, NoReturn, Dict
from ..Game import Game


class Level(Game):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable=W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    def relative_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    def relative_height(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def relative_width(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def current_pos(self) -> Tuple[int, int]:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if NotImplemented:
            raise NotImplementedError
        return (self._x, self._y)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self) -> Tuple[Tuple[object]]:  # pylint: disable=W
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/gui/ui/Level.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from abc import ABC, abstractmethod
from typing import Tuple, Dict
from ..Object import Object  # pylint: disable = import-error, no-name-in-module
from .PlayerEnemy import (  # pylint: disable = import-error, no-name-in-module
    PlayerEnemy,  # pylint: disable = import-error, no-name-in-module
)  # pylint: disable = import-error, no-name-in-module


class Enemy(Object, PlayerEnemy, ABC):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        Object.__init__(self)  # pylint: disable = W,E
        self.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        Object.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        Object.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    @abstractmethod
    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def notify_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def death(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def take_hit(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def move(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def apply_effects(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/Enemy.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from abc import ABC, abstractmethod
from typing import Tuple, Dict
from ..Object import Object  # pylint: disable = import-error, no-name-in-module
from .PlayerWeapon import PlayerWeapon
from .PlayerEnemy import (  # pylint: disable = import-error, no-name-in-module
    PlayerEnemy,  # pylint: disable = import-error, no-name-in-module
)  # pylint: disable = import-error, no-name-in-module


class Player(Object, PlayerWeapon, PlayerEnemy, ABC):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        Object.__init__(self)  # pylint: disable = W,E
        self.elements: Tuple[
            Tuple[object]
        ] = self.init_elements()  # pylint: disable = W,E
        Object.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        Object.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    @abstractmethod
    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def notify_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def death(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def take_hit(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def move(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def fire(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def reload(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def apply_effects(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/Player.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""

from abc import ABCMeta, abstractmethod


class PlayerWeapon(metaclass=ABCMeta):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    @classmethod
    def __subclasshook__(cls, subclass):
        return (
            hasattr(subclass, "death") and callable(subclass.death) or NotImplemented,
            hasattr(subclass, "take_hit")
            and callable(subclass.take_hit)
            or NotImplemented,
            hasattr(subclass, "move") and callable(subclass.move) or NotImplemented,
        )

    @abstractmethod
    def death(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def take_hit(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def move(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/PlayerEnemy.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""

from abc import ABCMeta, abstractmethod


class PlayerWeapon(metaclass=ABCMeta):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    @classmethod
    def __subclasshook__(cls, subclass):
        return (
            hasattr(subclass, "reload") and callable(subclass.reload) or NotImplemented,
            hasattr(subclass, "fire") and callable(subclass.fire) or NotImplemented,
        )

    @abstractmethod
    def reload(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def fire(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/PlayerWeapon.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from abc import abstractmethod, ABC
from typing import Tuple, NoReturn, Dict
from src.Object import (  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
    Object,  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
)  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position


class SupportItem(Object, ABC):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        Object.__init__(self)
        Object.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        Object.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        Object.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    @abstractmethod
    def choose_random(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def notify_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def update_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def apply_effects(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def multiplate_support_item(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @abstractmethod
    def init_command(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/SupportItem.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""

from typing import NoReturn, Tuple, Dict
from ..Object import Object  # pylint: disable = W,E
from ..Run import Run


class Weapon(Object, Run):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        Object.__init__(self)
        Object.elements = ((object,),)
        Object.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        Object.external_states: Tuple[Tuple[Dict]] = ((dict,),)
        self.pos_x: int = 0
        self.pos_y: int = 0
        self.tetha: float = 0.0

    @property
    def pos_x(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.pos_x

    @pos_x
    def set_pos_x(self, new_x: int) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.pos_x = new_x

    @property
    def pos_y(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.pos_y

    @pos_y
    def set_pos_y(self, new_y: int) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.pos_y = new_y

    def fire(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @property
    def tetha(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.pos_x

    @pos_x
    def set_tetha(self, new_tetha: float) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if new_tetha > 360.0 or new_tetha < 0:
            raise ValueError
        self.tetha = new_tetha

    def calculate_tetha(
        self, vector_1: object, vector_2: object
    ) -> NoReturn:  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def reload(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def apply_effects(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/Weapon.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from typing import Tuple, Dict
from ..Enemy import Enemy


class Boss(Enemy):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable = W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def death(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def take_hit(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def move(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/enemies/Boss.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from typing import Tuple, Dict
from ..Enemy import Enemy


class Boss(Enemy):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable = W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def death(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def take_hit(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def move(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/enemies/MiniBoss.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from typing import Tuple, Dict
from ..Enemy import Enemy


class MiniEnemy(Enemy):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable = W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def death(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def take_hit(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def move(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/enemies/MiniEnemy.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from sys import path

path.append("main/src/utils")

from typing import (  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
    Tuple,  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
    Dict,  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
)  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
from utils import (  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
    singelton,  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
)  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
from ..Player import (  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
    Player,  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
)  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position


@singelton
class MoonPie(Player):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable = W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def death(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def take_hit(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def move(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def fire(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def reload(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/players/Elenore.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from sys import path

path.append("main/src/utils")


from typing import (  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
    Tuple,  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
    Dict,  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
)  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
from utils import (  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
    singelton,  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
)  # pylint: disable = import-error, no-name-in-module,wrong-import-position
from ..Player import (  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
    Player,  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position
)  # pylint: disable = import-error, no-name-in-module,wrong-import-position


@singelton
class MoonPie(Player):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable = W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def death(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def take_hit(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def move(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def fire(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def reload(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/players/MoonPie.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from typing import Tuple, NoReturn, Callable, Dict
from enum import EnumType
from ..SupportItem import (
    SupportItem,
)  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position


class Bullet(SupportItem):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable = W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)
        self.__bullet_command: Callable = self.init_command()  # pylint: disable = W,E

    def choose_random(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def apply_effects(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def multiplate_support_item(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_command(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/support_items/Bullet.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from typing import Tuple, NoReturn, Callable, Dict
from ..SupportItem import (
    SupportItem,
)  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position


class Chest(SupportItem):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable = W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)
        self.__chest_command: Callable = self.init_command()  # pylint: disable = W,E

    def choose_random(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def apply_effects(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def multiplate_support_item(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_command(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/support_items/Chest.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from typing import Tuple, NoReturn, Dict
from ..SupportItem import (
    SupportItem,
)  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position


class Coin(SupportItem):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable = W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)

    def flip_coin(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def choose_random(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def apply_effects(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def multiplate_support_item(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_command(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/support_items/Coin.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from typing import Tuple, NoReturn, Callable, Dict
from ..SupportItem import (
    SupportItem,
)  # pylint: disable = import-error, no-name-in-module,wrong-import-order,wrong-import-position


class Skill(SupportItem):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable = W,E
        super.elements: Tuple[Tuple[object]] = ((object,),)  # pylint: disable = W,E
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)
        self.__skill_command: Callable = self.init_command()  # pylint: disable = W,E

    def choose_random(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_elements(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def update_states(self) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def apply_effects(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def multiplate_support_item(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_command(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/support_items/Skill.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""

from typing import NoReturn, Dict, Tuple
from ..Weapon import Weapon


class Bow(Weapon):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable = W,E
        super.elements = ((object,),)
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.pos_x: int = 0
        super.pos_y: int = 0
        super.tetha: float = 0.0

    @property
    def pos_x(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.pos_x

    @pos_x
    def set_pos_x(self, new_x: int) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.pos_x = new_x

    @property
    def pos_y(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.pos_y

    @pos_y
    def set_pos_y(self, new_y: int) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.pos_y = new_y

    def fire(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @property
    def tetha(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.pos_x

    @pos_x
    def set_tetha(self, new_tetha: float) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if new_tetha > 360.0 or new_tetha < 0:
            raise ValueError
        self.tetha = new_tetha

    def calculate_tetha(
        self, vector_1: object, vector_2: object
    ) -> NoReturn:  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def reload(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/weapons/Bow.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""

from typing import NoReturn, Tuple, Dict
from ..Weapon import Weapon


class ElenoreSpell(Weapon):
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def __init__(self):
        super().__init__(self)  # pylint: disable = W,E
        super.elements = ((object,),)
        super.internal_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.external_states: Tuple[Tuple[Dict]] = ((dict,),)
        super.pos_x: int = 0
        super.pos_y: int = 0
        super.tetha: float = 0.0

    @property
    def pos_x(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.pos_x

    @pos_x
    def set_pos_x(self, new_x: int) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.pos_x = new_x

    @property
    def pos_y(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.pos_y

    @pos_y
    def set_pos_y(self, new_y: int) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        self.pos_y = new_y

    def fire(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    @property
    def tetha(self) -> int:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        return self.pos_x

    @pos_x
    def set_tetha(self, new_tetha: float) -> NoReturn:
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        if new_tetha > 360.0 or new_tetha < 0:
            raise ValueError
        self.tetha = new_tetha

    def calculate_tetha(
        self, vector_1: object, vector_2: object
    ) -> NoReturn:  # pylint: disable = W,E
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def reload(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def run(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def notify_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_elements(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_external_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

    def init_internal_states(self):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """
        raise NotImplementedError

main/src/object/weapons/ElenoreSpell.py
Musa-Sina-Ertugrul/QuestGame
"""sumary_line

Keyword arguments:
argument -- description
Return: return_description

TODO: Update Docstrings

"""
from typing import Callable, Dict, Tuple


def singelton(cls: Callable) -> Tuple[Tuple[object]]:
    """sumary_line

    Keyword arguments:
    argument -- description
    Return: return_description
    """

    def inner_singelton(cls: Callable):
        """sumary_line

        Keyword arguments:
        argument -- description
        Return: return_description
        """

        if hasattr(singelton, "instance"):
            if str(cls.__class__) in singelton.instance:
                return ((singelton.instance[str(cls.__class__)],),)
            else:
                singelton.instance[str(cls.__class__)] = cls()
                return ((singelton.instance[str(cls.__class__)],),)
        else:
            singelton.instance: Dict[object] = {str(cls.__class__): cls()}
            return ((singelton.instance[str(cls.__class__)],),)

    return inner_singelton(cls)

main/src/utils/utils.py
Musa-Sina-Ertugrul/QuestGame
"""
    Test file for main.py
"""
import os
import pytest
from main import main


def test_main():
    """
    Test for game loop
    """
    with pytest.raises(SystemExit):
        os.system("python main/main.py")
        main()

main/test/main_test.py
Musa-Sina-Ertugrul/QuestGame
from os import system

system("python -m black main")
system("python -m black main/test")
system("python -m black main/src")
system("python -m black main/src/factory")
system("python -m black main/src/flyweights")
system("python -m black main/src/gui")
system("python -m black main/src/object")
system("python -m black main/src/observers")
system("python -m black main/src/prototypes")
system("python -m black main/src/states")
system("python -m black main/src/utils")
system("python -m black main/src/gui/menu_items")
system("python -m black main/src/gui/ui")
system("python -m black main/src/object/enemies")
system("python -m black main/src/object/players")
system("python -m black main/src/object/support_items")
system("python -m black main/src/object/weapons")
print("Done")
run_black.py
Musa-Sina-Ertugrul/QuestGame