private WorldDate NextMonth(WorldDate date)
 {
     date.Month++;
     if (date.Month > m_monthDays.Count)
     {
         date.Month = 1;
         date.Year++;
     }
     date.Day = 1;
     return(date);
 }
Example #2
0
 public static void Tick(WorldDate curDate)
 {
     if (m_dateCommands.ContainsKey(curDate))
     {
         List <Action> commands = m_dateCommands[curDate];
         foreach (Action command in commands)
         {
             command();
         }
     }
 }
Example #3
0
 public static void AddCommand(MapPawn pawn, WorldDate date, Action command)
 {
     m_commands[pawn] = command;
     if (m_dateCommands.ContainsKey(date))
     {
         m_dateCommands[date].Add(command);
     }
     else
     {
         List <Action> commands = new List <Action>();
         commands.Add(command);
         m_dateCommands[date] = commands;
     }
 }
        public WorldDate DaysInFuture(WorldDate date, int daysInFuture)
        {
            int daysToGo     = daysInFuture;
            int curMonthDays = m_monthDays[date.Month];
            int curMonthLeft = Math.Abs(date.Day - curMonthDays);

            if (daysToGo < curMonthLeft)
            {
                date.Day += daysToGo;
                return(date);
            }
            else if (daysToGo == curMonthLeft)
            {
                return(NextMonth(date));
            }

            date      = NextMonth(date);
            daysToGo -= curMonthLeft + 1;

            while (daysToGo > 0)
            {
                curMonthDays = m_monthDays[date.Month];
                if (daysToGo < curMonthDays)
                {
                    date.Day += daysToGo;
                    return(date);
                }
                else if (daysToGo == curMonthDays)
                {
                    return(NextMonth(date));
                }

                date      = NextMonth(date);
                daysToGo -= curMonthDays + 1;
            }

            return(date);
        }
 public WorldDate NextDay(WorldDate date)
 {
     return(DaysInFuture(date, 1));
 }
 private void ToCalendarStart()
 {
     m_today = m_calendar.GetStart();
     dateText.SetText(m_today.Day + "/" + m_today.Month + "/" + m_today.Year);
 }