summaryrefslogtreecommitdiff
path: root/app/models/character.rb
diff options
context:
space:
mode:
authorDavid Gay <david@davidgay.org>2021-06-15 19:54:29 -0400
committerDavid Gay <david@davidgay.org>2021-06-15 20:00:06 -0400
commitd2a31e04d19796a600a932a3491e056fe2c89af2 (patch)
tree36c43f03b12883c6dc4e2899e3c0ab1b8726b307 /app/models/character.rb
parent53c9df5feb8ad4ebef8f40840d29255a81edb6df (diff)
Basic spellcasting
Diffstat (limited to 'app/models/character.rb')
-rw-r--r--app/models/character.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/app/models/character.rb b/app/models/character.rb
index 4ee1f71..5ff067c 100644
--- a/app/models/character.rb
+++ b/app/models/character.rb
@@ -273,6 +273,9 @@ class Character < ApplicationRecord
case requirement[:type]
when "equipment"
return false unless self.equipment_with_gid(requirement[:gid])
+ when "stat"
+ # TODO: HACK: This won't work with built-in stats! Need to change this to work with power and whatnot.
+ return false unless self.total_stat_change(requirement[:gid]) >= requirement[:value]
when "skill"
return false unless self.skill_level(requirement[:gid]) >= requirement[:level]
when "hearth_amenity"
@@ -331,7 +334,8 @@ class Character < ApplicationRecord
hearth_amenity_effects = self.hearth.built_hearth_amenities.filter_map { |a| a.effects if a.effects }
equipment_effects = self.equipment.filter_map { |a| a.effects if a.effects }
state_effects = self.states.filter_map { |a| a.effects if a.effects && !a.expired? }
- (hearth_amenity_effects + equipment_effects + state_effects).flatten
+ item_infix_effects = self.item_infixes.filter_map { |a| a.effects if a.effects }
+ (hearth_amenity_effects + equipment_effects + state_effects + item_infix_effects).flatten
end
def total_stat_change(gid)