aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/examples/rules/COC7/Character.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/rules/COC7/Character.py')
-rw-r--r--examples/rules/COC7/Character.py132
1 files changed, 0 insertions, 132 deletions
diff --git a/examples/rules/COC7/Character.py b/examples/rules/COC7/Character.py
deleted file mode 100644
index bb30661..0000000
--- a/examples/rules/COC7/Character.py
+++ /dev/null
@@ -1,132 +0,0 @@
-# MyRule
-import math
-
-from typing import Union
-from dataclasses import dataclass
-
-from hrc.rule import Rule
-from hrc.rule.BaseRule import CharacterCard
-
-aliases = Rule.aliases
-
-@dataclass
-class Attributes(CharacterCard.Attribute):
-
- @aliases(["luck", "运气"], ignore_case=True)
- def LUK(self) -> Union[str, int, None]: ...
-
- @aliases(["伤害加值", "DamageBonus"], ignore_case=True)
- def DB(self) -> Union[str, int, None]:
- sum = self.STR() + self.SIZ()
- return (
- str(math.ceil((sum - 164) / 80)) + "D6"
- if sum > 164
- else "1D4"
- if sum > 124
- else "0"
- if sum > 84
- else "-1"
- if sum > 64
- else "-2"
- if sum > 0
- else None
- )
-
- @aliases(["年龄", "age"], ignore_case=True)
- def AGE(self) -> Union[str, int, None]: ...
-
- @aliases(["HitPoints", "生命值", "生命"], ignore_case=True)
- def HP(self) -> Union[str, int, None]:
- return self.MAX_HP
-
- @aliases(["最大生命值", "HitPointTotal", "总生命值"], ignore_case=True)
- def MAX_HP(self) -> Union[str, int, None]:
- if hasattr(self, "CON") and hasattr(self, "SIZ"):
- return (self.CON() + self.SIZ()) // 10
- else:
- return None
-
- @aliases(["理智", "Sanity", "SanityPoint", "理智值", "san值"], ignore_case=True)
- def SAN(self) -> Union[str, int, None]:
- return self.POW()
-
- @aliases(["最大理智值", "MaximumSanity"], ignore_case=True)
- def MAX_SAN(self) -> Union[str, int, None]:
- return 99 - self.player_card.CM()
-
- @aliases(["魔法", "魔法值", "MagicPoints"], ignore_case=True)
- def MP(self) -> Union[str, int, None]:
- if hasattr(self, "POW"):
- return math.floor(self.POW() / 5)
- else:
- return None
-
- @aliases(["伤害加值", "DamageBonus"], ignore_case=True)
- def DB(self) -> Union[int, str, None]: # noqa: F811
- sum = self.STR() + self.SIZ()
- return (
- str(math.ceil((sum - 164) / 80)) + "D6"
- if sum > 164
- else "1D4"
- if sum > 124
- else "0"
- if sum > 84
- else "-1"
- if sum > 64
- else "-2"
- if sum > 0
- else None
- )
-
- @aliases(["体格", "build"], ignore_case=True)
- def BUILD(self) -> Union[str, int, None]:
- sum = self.STR() + self.SIZ()
- return (
- math.ceil((sum - 84) / 80)
- if sum > 164
- else 1
- if sum > 124
- else 0
- if sum > 84
- else -1
- if sum > 64
- else -2
- if sum > 0
- else None
- )
-
- @aliases(["移动速度"], ignore_case=True)
- def MOV(self) -> Union[str, int, None]:
- mov = 8
- siz = self.player_card.SIZ()
- str_val = self.player_card.STR()
- dex = self.player_card.DEX()
- age = self.AGE()
-
- if age >= 40:
- mov -= math.floor(age / 10 - 3)
-
- if str_val > siz and dex > siz:
- mov += 1
- elif siz > str_val and siz > dex:
- mov -= 1
-
- return mov
-
- @aliases(["兴趣技能点", "PersonalInterests"], ignore_case=True)
- def PI(self) -> Union[str, int, None]:
- return self.player_card.INT() * 2
-
- @aliases(["闪避", "Dodge"], ignore_case=True)
- def DODGE(self) -> Union[str, int, None]:
- if hasattr(self.player_card, "DEX"):
- return math.floor(self.player_card.DEX / 2)
- return None
-
- @aliases(["锁匠", "开锁", "撬锁", "Locksmith"], ignore_case=True)
- def LOCKSMITH(self) -> Union[str, int, None]:
- return 1
-
- @aliases(["动物驯养", "驯兽", "AnimalHandling"], ignore_case=True)
- def ANIMAL_HANDLING(self) -> Union[str, int, None]:
- return 1