summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md9
-rw-r--r--app/models/character.rb32
2 files changed, 27 insertions, 14 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 29948d1..58fdf3f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,9 +4,14 @@ All notable changes to this project will be documented in this file.
## [Unreleased]
### General
-- A new skill, Aetherweave, has been added.
- Characters now have a location. Correspondingly, the "Locations" menu option and view has been replaced
by a "Look" menu and view.
+
+### Skills
+- A new skill, Aetherweave, has been added.
+- Beastslay stat modifier has been changed from beastslay level to 1/2 beastslay level rounded up.
+ Max HP calculation remains the same.
+- Beastslay stance modifier has been changed from 1/5 beastslay level rounded up to 1/4 beastslay level rounded up.
### Hearth
- New amentity: aetherloom (level 1, level 2)
@@ -16,7 +21,7 @@ All notable changes to this project will be documented in this file.
### Items
- New items: pluma moss, laris strand, fine aethermesh, faint weaving haste
-- Aethermesh now increases manatrawl speed by 2.
+- Aethermesh now increases manatrawl speed by 2, and therefore can now break.
- Apprentice wand now requires havencast level 5 to equip.
### Activities
diff --git a/app/models/character.rb b/app/models/character.rb
index 96dafd0..655bb82 100644
--- a/app/models/character.rb
+++ b/app/models/character.rb
@@ -389,6 +389,14 @@ class Character < ApplicationRecord
self.wounds < max_wounds
end
+ def beastslay_stat_modifier
+ (beastslay_level / 2).ceil
+ end
+
+ def beastslay_stance_modifier
+ (beastslay_level / 4).ceil
+ end
+
def resistance(damage_type)
unless %w[slash pierce bash arcane fire frost lightning acid thunder radiant necrotic poison
bleed physical energy].include?(damage_type)
@@ -402,8 +410,8 @@ class Character < ApplicationRecord
res += resistance("energy")
end
- res -= (beastslay_level / 5).ceil if elusive? && !%w[physical energy].include?(damage_type)
- res += (beastslay_level / 5).ceil if protective? && !%w[physical energy].include?(damage_type)
+ res -= beastslay_stance_modifier if elusive? && !%w[physical energy].include?(damage_type)
+ res += beastslay_stance_modifier if protective? && !%w[physical energy].include?(damage_type)
res
end
@@ -416,35 +424,35 @@ class Character < ApplicationRecord
end
def speed
- self.beastslay_level + total_stat_change("speed")
+ beastslay_stat_modifier + total_stat_change("speed")
end
def accuracy(with_combat_style: false)
- base = self.beastslay_level + total_stat_change("accuracy")
+ base = beastslay_stat_modifier + total_stat_change("accuracy")
if with_combat_style && self.precise?
- base += (beastslay_level / 5).ceil
+ base += beastslay_stance_modifier
elsif with_combat_style && self.brutal?
- base -= (beastslay_level / 5).ceil
+ base -= beastslay_stance_modifier
end
base
end
def power(with_combat_style: false)
- base = self.beastslay_level + total_stat_change("power")
+ base = beastslay_stat_modifier + total_stat_change("power")
if with_combat_style && self.precise?
- base -= (beastslay_level / 5).ceil
+ base -= beastslay_stance_modifier
elsif with_combat_style && self.brutal?
- base += (beastslay_level / 5).ceil
+ base += beastslay_stance_modifier
end
base
end
def evasion(with_combat_style: false)
- base = self.beastslay_level + total_stat_change("evasion")
+ base = beastslay_stat_modifier + total_stat_change("evasion")
if with_combat_style && self.elusive?
- base += (beastslay_level / 5).ceil
+ base += beastslay_stance_modifier
elsif with_combat_style && self.protective?
- base -= (beastslay_level / 5).ceil
+ base -= beastslay_stance_modifier
end
base
end