diff options
| author | 2023-12-09 21:20:40 +0800 | |
|---|---|---|
| committer | 2023-12-09 22:37:38 +0800 | |
| commit | e6b74981c6f713fb30d9c439cce2c1226d36acb5 (patch) | |
| tree | 70bc95584ca2a03468d1e85121fe8d595f83a44d /src/hydrorollcore/rule.py | |
| parent | 714d69b2ba39e42285fb3604e3f24fbbd3b05582 (diff) | |
| download | infini-e6b74981c6f713fb30d9c439cce2c1226d36acb5.tar.gz infini-e6b74981c6f713fb30d9c439cce2c1226d36acb5.zip | |
:sparkles: 新增掷骰基类
Diffstat (limited to 'src/hydrorollcore/rule.py')
| -rw-r--r-- | src/hydrorollcore/rule.py | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/hydrorollcore/rule.py b/src/hydrorollcore/rule.py index a1b07cb9..7dd24836 100644 --- a/src/hydrorollcore/rule.py +++ b/src/hydrorollcore/rule.py @@ -13,6 +13,34 @@ class RuleLoadType(Enum): CLASS = "class" +class Result(metaclass=ABCMeta): + """规则检定结果基类""" + + event: str + + +class Dice(metaclass=ABCMeta): + """掷骰基类""" + + roll_string: str + db: str + outcome: int + + def __repr__(self) -> str: + return f'<HydroDice "{self.db.upper()}">' + + def __str__(self) -> str: + return self.db.upper() + + @abstractmethod + def parse(self) -> "Dice": + raise NotImplementedError + + @abstractmethod + def roll(self) -> int: + raise NotImplementedError + + class Rule(metaclass=ABCMeta): """规则基类""" @@ -20,9 +48,9 @@ class Rule(metaclass=ABCMeta): priority: int = 0 @abstractmethod - def __init__(self): + def __init__(self) -> None: raise NotImplementedError @abstractmethod - async def run(self): + def check(self) -> Result: raise NotImplementedError |
