Ejemplo n.º 1
0
        public virtual void SetDuration(QuestDuration duration)
        {
            questDuration.Value = duration;
            WorldDate date = new WorldDate();

            switch (duration)
            {
            case QuestDuration.Week:
                date = new WorldDate(Game1.year, Game1.currentSeason, (Game1.dayOfMonth - 1) / 7 * 7);
                date.TotalDays++;
                date.TotalDays += 7;
                break;

            case QuestDuration.TwoWeeks:
                date = new WorldDate(Game1.year, Game1.currentSeason, (Game1.dayOfMonth - 1) / 7 * 7);
                date.TotalDays++;
                date.TotalDays += 14;
                break;

            case QuestDuration.Month:
                date = new WorldDate(Game1.year, Game1.currentSeason, 0);
                date.TotalDays++;
                date.TotalDays += 28;
                break;

            case QuestDuration.TwoDays:
                date            = new WorldDate(Game1.year, Game1.currentSeason, Game1.dayOfMonth);
                date.TotalDays += 2;
                break;

            case QuestDuration.ThreeDays:
                date            = new WorldDate(Game1.year, Game1.currentSeason, Game1.dayOfMonth);
                date.TotalDays += 3;
                break;
            }
            dueDate.Value = date.TotalDays;
        }
Ejemplo n.º 2
0
            /// <summary>
            /// Harmony Postifx function to change the remaining duration of the special order to not start on monday.
            /// </summary>
            /// <param name="__instance"></param>
            /// <param name="duration"></param>
            public static void SpecialOrder_SetDuration_PostFix(ref SpecialOrder __instance, QuestDuration duration)
            {
                if (__instance == null)
                {
                    return;
                }
                WorldDate date = new WorldDate(Game1.year, Game1.currentSeason, Game1.dayOfMonth);

                switch (duration)
                {
                case QuestDuration.Week:
                    date.TotalDays += 7;
                    break;

                case QuestDuration.TwoWeeks:
                    date.TotalDays += 14;
                    break;

                case QuestDuration.Month:
                    date.TotalDays += 28;
                    break;

                case QuestDuration.TwoDays:
                    date.TotalDays += 2;
                    break;

                case QuestDuration.ThreeDays:
                    date.TotalDays += 3;
                    break;
                }
                __instance.dueDate.Value = date.TotalDays;
            }