Esempio n. 1
0
        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);
                        }
                    }
                }
            }
        }
Esempio n. 2
0
 protected virtual void OnCityCompleted(NewDayComedEventArgs e)
 {
     CityCompleted?.Invoke(this, e);
 }
Esempio n. 3
0
 protected virtual void OnNewDayComming(NewDayComedEventArgs currDay)
 {
     NewDayHasCome?.Invoke(this, currDay);
 }