From 11c868693391f8d48e40cff16cfaf1cee0ad3f57 Mon Sep 17 00:00:00 2001 From: David Gay Date: Sun, 6 Jun 2021 15:24:33 -0400 Subject: Re-apply power stat to combat procedure --- CHANGELOG.md | 10 ++++++++++ app/lib/activity_processor.rb | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7674b2..9413f13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,8 +10,18 @@ All notable changes to this project will be documented in this file. - A natural 20 on an accuracy roll now always results in a (critical) hit. Previously, if a 20 was rolled, it could still miss. Now it's always a hit and always a critical hit. - The block and block value stats have been removed. +- Resistances now apply. The way resistance works is a bit complicated. In short, it reduces incoming damage + of a particular type by some amount, but the effectiveness of a resistance varies from attack to attack. So + while a combatant may have resisted some incoming fire damage from a previous attack, the effectiveness + of the resistance may be greater or lesser on the next attack. +- Elusive and protective stances now modify all resistances instead of block, but the magnitude and nature of the + modification remains the same. +- Each point of power now translates to one extra point of damage. Each point is assigned randomly to the damage + types that are dealt by the attack. This occurs after any critical hit damage multiplier has been applied, and + before resistances are applied. ### Items +- New damage and resistance stats have been added to combat equipment. - Granite ring now increases physical resistance by 2, since block has been removed. ### UI diff --git a/app/lib/activity_processor.rb b/app/lib/activity_processor.rb index 5e6acaf..c0eaab1 100644 --- a/app/lib/activity_processor.rb +++ b/app/lib/activity_processor.rb @@ -225,6 +225,11 @@ class ActivityProcessor end end + # Apply power to random damages + actor.power.times do + dealt_damage[dealt_damage.keys.sample] += 1 + end + resolved_damage = {} dealt_damage.each do |gid, amount| effective_resistance = [target.resistance(gid), amount].min -- cgit v1.2.3