diff options
Diffstat (limited to 'actions.py')
| -rw-r--r-- | actions.py | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -14,6 +14,7 @@ class Attack: strike_type="melee" previous_attacks: int = 0 distance: int = 0 + sneak: bool = False def bonus(self): return self.attacker.attack_bonus(self.weapon, self.strike_type) + self.map() @@ -30,10 +31,24 @@ class Attack: def damage_bonus(self): return self.attacker.attack_damage_bonus(self.weapon, self.strike_type) + def __str__(self): + res = "" + if self.sneak: + res += "Sneak " + ac = self.target.ac() + bonus = self.bonus() + res += f"{self.strike_type} attack{self.previous_attacks+1} " + res += f"{bonus:+} vs AC {ac}: {10+bonus-ac:+}; " + res += Roll.short_str(self.roll()) + res += f" Dmg: {self.strike().expected()}" + return res + def damage(self, check=Roll.Success): persistant_damage_factor = 3 + 1/3 wp = self.weapon dmg_bonus = self.damage_bonus() + if self.sneak: + dmg_bonus += self.attacker.sneak_attack() if wp.backstabber: dmg_bonus += 1 if wp.potency >= 3: |
