aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/examples/COC7/__init__.py
blob: 25acdaa864f7175a57c63634d7342af0dafd0686 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import math

from hrc.core import Core
from hrc.rule import Rule, BaseRule  # noqa: F401
from hrc.dependencies import Depends

from .Character import Attributes
from .Wiki import Wiki

core = Core()


class COC7(Rule):
    
    attr: Attributes = Depends() # 必须实现一个继承自 Character.Attribute 的子类
    wiki: Wiki = Depends() # 可选实现一个 Wiki 类
    
    @core.event_postprocessor_hook
    async def auto_card(self):
        if self.session and self.session.gid and self.ac:
            if hasattr(self.pc.trans, "生命") or hasattr(self.pc.trans, "理智"):
                self.event.call_back(
                    "set_group_card", self.pc.gid, f"card#{self.pc.uid}", await self.overview_card()
                )

    async def overview_card(self):
        max_hp = math.floor((self.pc.get("CON", 0) + self.pc.get("SIZ", 0) / 10))
        max_san = math.floor(99 - self.pc.get("CM", 0))
        mp = self.pc.get("MP", 0)
        mp_show = (
            " mp" + str(mp) + "/" + str(math.floor(self.pc.get("POW", 0) / 5))
            if mp and mp != math.floor(self.pc.get("POW", 0) / 5)
            else ""
        )
        return (
            self.pc.get("__Name", "")
            + " hp"
            + str(self.pc.get("HP", max_hp))
            + "/"
            + str(max_hp)
            + " san"
            + str(self.pc.get("SAN", "?"))
            + "/"
            + str(max_san)
            + mp_show
            + " DEX"
            + str(self.pc.get("DEX", "?"))
        )