public void TransactAllNeighbors(object sender, NewDayComedEventArgs e) { var keys = Balance.Keys; foreach (var neighbor in Neighbors) { foreach (var key in keys) { if (Balance[key].Amount > CoinsToTransactOne) { var givenCoins = Balance[key].Amount / CoinsToTransactOne; if (neighbor.Balance.ContainsKey(key)) { neighbor.Balance[key].Amount += givenCoins; } else { neighbor.Balance.Add(key, new Currency(givenCoins)); } Balance[key].Amount -= givenCoins; if (!neighbor.Completed && neighbor.Balance.Count == _motifsCount) { neighbor.Completed = true; neighbor.OnCityCompleted(e); } } } } }
protected virtual void OnCityCompleted(NewDayComedEventArgs e) { CityCompleted?.Invoke(this, e); }
protected virtual void OnNewDayComming(NewDayComedEventArgs currDay) { NewDayHasCome?.Invoke(this, currDay); }