public override void UpdateAmounts() { List <Vesicle> dump = new List <Vesicle>(); for (int i = 0; i < OnTheWay.Count; i++) { OnTheWay[i].DecreaseDist(); if (OnTheWay[i].GetDist() < 1) { AddResource(OnTheWay[i].GetAmount(), OnTheWay[i].GetRes()); dump.Add(OnTheWay[i]); if (contents[(int)OnTheWay[i].GetRes()] > parent.MAX) //in case of overflow discards excess { contents[(int)OnTheWay[i].GetRes()] = parent.MAX; } } } foreach (Vesicle vesicle in dump) { OnTheWay.Remove(vesicle); } dump = new List <Vesicle>(); }