Ответ: Удаление типа и ссылок на него.
Запоминать каждому кусту его корову, и кусты уже отданные одной корове не давать остальным. Простейшее решение.
Или создать отдельный тип-посредник, тип посредник знает где его куст, и знает жив ли куст. Коровы запоминают тип-посредника, который знает куст.
Когда куст съеден корова говорит посреднику что куста больше нет. Посредник запоминает это и удаляет траву. Корова забывает посредника, но не удаляет его.
Другая корова помнящая этого же посредника спрашивает у него куст, а посредник рапортует что куста больше нет, - корова непытается есть этот куст и просто забывает посредника.
В конце когда игра закончена или закончен уровень удаляем всех посредников через Delete Each Type
Примерно так.
Еще можно у посредника сделать список коров которые его знают, тогда когда любая корова съела куст то посредник сообщает всем коровам что куста нет, и после дохнет сам.
__________________
|