IEnumerator DropLimbDelayed(Limb limb, float delay)
    {
        yield return(new WaitForSeconds(delay));

        PlayLimbFX();

        Limb copy = Instantiate(limb, limb.transform.parent);

        copy.gameObject.name = "Detached_Limb";
        copy.DropSelf(transform.localScale.x > 0);
        copy.transform.parent = null;

        limb.gameObject.SetActive(false);
    }