public void RemoveSoul(Soul toRemove) { bool bRemoveSuccessfully = lstSoul.Remove(toRemove); if (bRemoveSuccessfully == false) { Debug.Log("Couldn't remove " + toRemove.sName + " from " + toRemove.GetNameOfAppliedTo() + " since it's already removed"); return; } toRemove.OnRemoval(); //Let others know that the visible soul MAY have changed (not necessarily) subVisibleSoulUpdate.NotifyObs(this); LetOwnerNotifySoulRemoved(toRemove); //Debug.Log("After removing " + toRemove.sName); if (ContSkillEngine.bDEBUGENGINE) { PrintAllSoul(); } }