From 0fac92a969f8f3049a55a824c1af65255c9d1654 Mon Sep 17 00:00:00 2001 From: David Gay Date: Mon, 31 May 2021 13:33:13 -0400 Subject: Plug in equip requirements --- app/models/character.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'app/models/character.rb') diff --git a/app/models/character.rb b/app/models/character.rb index 7e80d65..56be0c0 100644 --- a/app/models/character.rb +++ b/app/models/character.rb @@ -133,8 +133,21 @@ class Character < ApplicationRecord end end + def can_equip?(item) + item.whatnot[:equip_requirements]&.each do |requirement| + case requirement[:type] + when "skill" + return false unless self.skill_level(requirement[:gid]) >= requirement[:level] + else + raise "Invalid requirement type string (#{requirement[:type]})" + end + end + true + end + def equip(item) Character.transaction do + raise EquipmentError unless self.can_equip?(item) open_slots = self.open_slots_for(item) raise EquipmentError unless open_slots.any? self.shift_item(item, -1) -- cgit v1.2.3