public void OnEndDrag(PointerEventData eventData)
    {
        List <RaycastResult> results = new List <RaycastResult>();

        caster.Raycast(eventData, results);

        foreach (RaycastResult result in results)
        {
            GarrisonSlot garSlot = result.gameObject.GetComponent <GarrisonSlot>();
            if (garSlot != null)
            {
                AddToNewSlot(garSlot);
                slot.DestroySelf();
                return;
            }
        }

        //This is for when you drop it outside
        ReturnToParent();
        UnSetMovedColor();
        GarrisonSlot gSlot = (GarrisonSlot)Utility.GetFirstComponentInParents(gameObject, typeof(GarrisonSlot));

        gSlot.SetTroopsList();
    }