44 lines
1.0 KiB
Python
44 lines
1.0 KiB
Python
from dataclasses import dataclass, InitVar
|
|
from enum import Enum
|
|
from typing import Optional
|
|
|
|
|
|
class Difficulty(Enum):
|
|
EASY = 0.5
|
|
NORMAL = 1.0
|
|
HARD = 2.0
|
|
|
|
@staticmethod
|
|
def get_difficulty(input: str) -> Optional['Difficulty']:
|
|
for e in list(Difficulty):
|
|
if e.name == input:
|
|
return e
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
|
|
@dataclass
|
|
class SpaceArena:
|
|
_difficulty: InitVar[Difficulty] = Difficulty.NORMAL
|
|
|
|
def __post_init__(self, difficulty: Difficulty = Difficulty.NORMAL) -> None:
|
|
self.__difficulty = difficulty
|
|
self.__is_running = True
|
|
|
|
|
|
@property
|
|
def difficulty(self) -> Difficulty:
|
|
return self.__difficulty
|
|
|
|
@difficulty.setter
|
|
def difficulty(self, new_diff: Difficulty):
|
|
self.__difficulty = new_diff
|
|
|
|
@property
|
|
def is_running(self) -> bool:
|
|
return self.__is_running
|
|
|
|
def stop(self):
|
|
self.__is_running = False |