diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/built_hearth_amenity.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/app/models/built_hearth_amenity.rb b/app/models/built_hearth_amenity.rb index 5ae8a42..39b6679 100644 --- a/app/models/built_hearth_amenity.rb +++ b/app/models/built_hearth_amenity.rb @@ -3,4 +3,29 @@ class BuiltHearthAmenity < ApplicationRecord belongs_to :hearth_amenity validates :hearth_id, uniqueness: { scope: :hearth_amenity_id } + + def cooldown + # TODO: HACK: Update this so multiple use effects will work + self.hearth_amenity.whatnot[:use_effects].first[:cooldown] + end + + def usable? + self.hearth_amenity.whatnot[:use_effects].present? + end + + def on_cooldown? + if usable? && cooldown.present? + # If it's never been used, it's off cooldown + return false unless self.last_used_at + seconds_until_cooled_down > 0 + else + false + end + end + + def seconds_until_cooled_down + return nil unless usable? + seconds_until_cooled_down = cooldown - (Time.now - self.last_used_at) + [0, seconds_until_cooled_down].max + end end |