From fae9e55c6df3ec9357647a83a3a78319482a284e Mon Sep 17 00:00:00 2001 From: David Gay Date: Wed, 7 Jul 2021 19:44:48 -0400 Subject: Change beastslay stat and stance modifiers --- CHANGELOG.md | 9 +++++++-- app/models/character.rb | 32 ++++++++++++++++++++------------ 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 -- cgit v1.2.3