From 8cec9b3f6f277399c6da23a04d8afb0c68cf8a2b Mon Sep 17 00:00:00 2001 From: David Gay Date: Wed, 26 May 2021 20:57:47 -0400 Subject: Basic usage of hearth amenities --- app/models/built_hearth_amenity.rb | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'app/models') 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 -- cgit v1.2.3