//gets x number of random events of a given type public static List <RandomEvent> GetEvents(RandomEvent.EventType type, int number, Airline airline) { Random rnd = new Random(); Dictionary <int, RandomEvent> rEvents = new Dictionary <int, RandomEvent>(); List <RandomEvent> tEvents = GetEvents(type); int i = 1; int j = 0; foreach (RandomEvent r in tEvents) { if (r.Start <= GameObject.GetInstance().GameTime&& r.End >= GameObject.GetInstance().GameTime) { { r.DateOccurred = MathHelpers.GetRandomDate(GameObject.GetInstance().GameTime, GameObject.GetInstance().GameTime.AddMonths(12)); r.Airline = airline; r.Airliner = Helpers.AirlinerHelpers.GetRandomAirliner(airline); r.Route = r.Airliner.Routes[rnd.Next(r.Airliner.Routes.Count())]; r.Country = r.Route.Destination1.Profile.Country; r.Airport = r.Route.Destination1; if (r.focus == RandomEvent.Focus.Airline) { r.Airliner = null; r.Airport = null; r.Country = null; r.Route = null; } rEvents.Add(i, r); i++; } } } tEvents.Clear(); while (j < number) { int item = rnd.Next(rEvents.Count()); tEvents.Add(rEvents[item]); j++; } return(tEvents); }
//returns the monthly payment for the loan public double getMonthlyPayment() { double basePayment = MathHelpers.GetMonthlyPayment(this.Amount, this.Rate, this.Length); return(basePayment * GameObject.GetInstance().Difficulty.LoanLevel); }
//gets the local time for a time in a time zone public static DateTime ConvertDateTimeToLoalTime(DateTime time, GameTimeZone timeZone) { TimeSpan delta = GameObject.GetInstance().TimeZone.UTCOffset.Subtract(timeZone.UTCOffset); return(time.Subtract(delta)); }
public static TimeSpan ConvertTimeSpanToLocalTime(TimeSpan time, GameTimeZone timeZone) { TimeSpan delta = GameObject.GetInstance().TimeZone.UTCOffset.Subtract(timeZone.UTCOffset); return(time.Subtract(delta)); }
//converts a route time table entry to datetime with a max minutes before moving a week ahead public static DateTime ConvertEntryToDate(RouteTimeTableEntry entry, int maxMinutes) { int currentDay = (int)GameObject.GetInstance().GameTime.DayOfWeek; int entryDay = (int)entry.Day + entry.Time.Days; if (currentDay > entryDay) { currentDay -= 7; } int daysBetween = Math.Abs(entryDay - currentDay); if (daysBetween == 0 && new TimeSpan(GameObject.GetInstance().GameTime.Hour, GameObject.GetInstance().GameTime.Minute, 0) > new TimeSpan(entry.Time.Hours, entry.Time.Minutes, 0).Add(new TimeSpan(0, maxMinutes, 0))) { daysBetween = 7; } DateTime flightTime = new DateTime(GameObject.GetInstance().GameTime.Year, GameObject.GetInstance().GameTime.Month, GameObject.GetInstance().GameTime.Day, entry.Time.Hours, entry.Time.Minutes, entry.Time.Seconds).AddDays(daysBetween); return(flightTime); }