class Monster < ApplicationRecord include HasWhatnot def max_hp self.whatnot[:max_hp][:base] end def speed self.whatnot[:speed][:base] end def accuracy(with_combat_style: false) self.whatnot[:accuracy][:base] end def power(with_combat_style: false) self.whatnot[:power][:base] end def evasion(with_combat_style: false) self.whatnot[:evasion][:base] end def block(with_combat_style: false) self.whatnot[:block][:base] end def block_value self.whatnot[:block_value][:base] end def resistance(damage_type) unless %w[slash pierce bash arcane fire frost lightning acid thunder radiant necrotic poison bleed].include?(damage_type) raise "Invalid damage type" end self.whatnot&.each do |resistance| return resistance[:base] if resistance[:gid] == damage_type end 0 end end