inventory_controller.rb 961 B

1234567891011121314151617181920212223242526
  1. class InventoryController
  2. def self.edit_inventory(item, amount, character, event)
  3. # Find the inventory if it exists
  4. inventory = Inventory.where(char_id: character.id).find_by(item_id: item.id)
  5. # Calculate new amount of items in inventory
  6. new_amount = inventory ? inventory.amount + amount : amount
  7. if new_amount > 0 && inventory
  8. # Update row
  9. inventory.update(amount: new_amount)
  10. character_embed(character: character, event: event, section: :bags)
  11. elsif new_amount > 0
  12. # Create new row
  13. Inventory.create(char_id: character.id, item_id: item.id, amount: new_amount)
  14. character_embed(character: character, event: event, section: :bags)
  15. elsif new_amount == 0
  16. # Delete row
  17. inventory.destroy
  18. character_embed(character: character, event: event, section: :bags)
  19. elsif new_amount < 0
  20. # Error
  21. error_embed("Error!", "Negative total #{item.name} result")
  22. end
  23. end
  24. end