class Equipment < ApplicationRecord belongs_to :character belongs_to :item enum slot: [:mainhand, :offhand, :head, :neck, :back, :torso, :grip, :left_ring, :right_ring, :waist, :legs, :feet, :curio] validates :slot, presence: true, uniqueness: { scope: :character } def self.random_break_slot roll = rand if roll >= 0.99933333 [:neck, :left_ring, :right_ring].sample elsif roll >= 0.999 [:back, :waist, :curio].sample elsif roll >= 0.998 [:mainhand, :offhand, :head, :torso, :grip, :legs, :feet].sample end end def slot self[:slot].to_sym end def effects self.item.whatnot[:equip_effects] end def break_check false end end