public void AddSheep(Sheep sheep)
    {
        if (Sheeps.Contains(sheep))
        {
            return;
        }

        Sheeps.Add(sheep);
        BuildQueue();
    }
    public void SheepDied(Sheep sheep, Wolf wolf = null)
    {
        Sheeps.Remove(sheep);

        // Clean up
        BuildQueue();

        if (TotalSheeps > 0)
        {
            sheep.Die();
        }
        else
        {
            sheep.TriggerGameOverSequence(wolf);
        }
    }
 void BuildQueue()
 {
     sheepsToTarget = new Queue <Sheep>(ArrayUtility.ShuffleArray(Sheeps.ToArray(), Seed));
 }