summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md10
-rw-r--r--app/lib/activity_processor.rb5
2 files changed, 15 insertions, 0 deletions
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