public void StartCountingDaysForCard(ICard card, int currentDay) { if (_fixed) { return; } if (_periodResources.ContainsKey(card)) //add check that end > start { _periodResources[card].sumDays += _periodResources[card].endDay - _periodResources[card].startDay; _periodResources[card].startDay = currentDay; _periodResources[card].endDay = default; } else { CardPeriod cp = new CardPeriod(); cp.startDay = currentDay; _periodResources.Add(card, cp); } }
public void Fix(int currentDay) { if (_fixed) { return; } _fixed = true; _lastDay = currentDay; foreach (ICard card in _periodResources.Keys) { CardPeriod cp = _periodResources[card]; if (cp.startDay != default) { cp.sumDays += (cp.endDay != default ? cp.endDay : currentDay) - cp.startDay; } _periodResources[card].startDay = default; _periodResources[card].endDay = default; } }