// TODO Rework this later to only be used when a character first logs in. A different system will be needed to ensure previously equipped items from last login remain equipped.
        public void EquipStartingItems(EquippableItem item)
        {
            EquippableItem previousItem;

            if (equipmentPanel.AddItem(item, out previousItem))
            {
                OnItemEquipped(item);
                item.Equip(character);
                character.StatPanel.UpdateStatValues();
            }
        }
        void Drop(ItemSlot dropItemSlot)
        {
            if (draggedSlot == null)
            {
                return;
            }

            if (dropItemSlot.CanReceiveItem(draggedSlot.Item) && draggedSlot.CanReceiveItem(dropItemSlot.Item))
            {
                EquippableItem dragItem = draggedSlot.Item as EquippableItem;
                EquippableItem dropItem = dropItemSlot.Item as EquippableItem;

                if (draggedSlot is EquipmentSlot)
                {
                    if (dragItem != null)
                    {
                        dragItem.UnEquip(character);
                    }
                    if (dropItem != null)
                    {
                        dropItem.Equip(character);
                    }
                }

                if (dropItemSlot is EquipmentSlot)
                {
                    if (dragItem != null)
                    {
                        OnItemEquipped(dragItem);
                        dragItem.Equip(character);
                    }
                    if (dropItem != null)
                    {
                        dropItem.UnEquip(character);
                    }
                }
                character.StatPanel.UpdateStatValues();

                Item draggedItem = draggedSlot.Item;
                draggedSlot.Item  = dropItemSlot.Item;
                dropItemSlot.Item = draggedItem;
            }
        }
 public void Equip(EquippableItem item)
 {
     if (inventory.RemoveItem(item))
     {
         EquippableItem previousItem;
         if (equipmentPanel.AddItem(item, out previousItem))
         {
             if (previousItem != null)
             {
                 inventory.AddItem(previousItem);
                 previousItem.UnEquip(character);
                 character.StatPanel.UpdateStatValues();
             }
             OnItemEquipped(item);
             item.Equip(character);
             character.StatPanel.UpdateStatValues();
         }
         else
         {
             inventory.AddItem(item);
         }
     }
 }