예제 #1
0
 public void Update()
 {
     if (readyPlayers.Contains(Game1.player) && !setPlayers.Contains(Game1.player) && !(Game1.activeClickableMenu is SaveGameMenu) && !(Game1.activeClickableMenu is ShippingMenu))
     {
         ReadyCheckDialog dialog = Game1.activeClickableMenu as ReadyCheckDialog;
         if (dialog == null || dialog.checkName != Name)
         {
             SetLocalReady(ready: false);
         }
     }
     if (requiredPlayers.RetainOnlinePlayers())
     {
         setPlayers.Remove(Game1.player);
     }
     if (readyPlayers.RetainOnlinePlayers())
     {
         setPlayers.Remove(Game1.player);
     }
     if (containsAllPlayers(readyPlayers))
     {
         if (!setPlayers.Contains(Game1.player))
         {
             setPlayers.Add(Game1.player);
         }
     }
     else if (setPlayers.Contains(Game1.player))
     {
         setPlayers.Remove(Game1.player);
     }
 }
예제 #2
0
 internal static void Postfix(ReadyCheckDialog __instance, GameTime time)
 {
     if (allready)
     {
         __instance.confirm();
     }
     allready = false;
 }
예제 #3
0
 public static void skipEvent(Event __instance)
 {
     try
     {
         if (__instance.id == AnimalContestEventBuilder.GetEventId(SDate.Now()))
         {
             void OnClose(Farmer who = null)
             {
                 Game1.exitActiveMenu();
                 _shouldTimePass = true;
                 if (Context.IsMainPlayer && FarmerLoader.FarmerData != null)
                 {
                     AnimalContestItem lastAnimalContest = FarmerLoader.FarmerData.AnimalContestData.LastOrDefault();
                     if (lastAnimalContest != null && lastAnimalContest.EventId == __instance.id)
                     {
                         AnimalContestController.EndEvent(lastAnimalContest);
                     }
                 }
             }
             if (Game1.IsMultiplayer)
             {
                 Game1.player.team.SetLocalReady("animalContestEnd", ready: true);
                 if (!Game1.player.team.IsReady("animalContestEnd"))
                 {
                     ReadyCheckDialog readyCheckDialog = new ReadyCheckDialog("animalContestEnd", allowCancel: false, onConfirm: OnClose);
                     Game1.activeClickableMenu = readyCheckDialog;
                 }
                 else
                 {
                     _shouldTimePass = true;
                 }
             }
             else
             {
                 OnClose();
             }
         }
     }
     catch (Exception e)
     {
         AnimalHusbandryModEntry.monitor.Log($"Error while skipping an event. If it was the Animal Contest, report the problem, otherwise you can ignore this message.", LogLevel.Error);
         AnimalHusbandryModEntry.monitor.Log($"Details of the error above: {e}", LogLevel.Trace);
     }
 }
예제 #4
0
        public static void skipEvent(Event __instance)
        {
            if (__instance.id == AnimalContestEventBuilder.GetEventId(SDate.Now()))
            {
                void OnClose(Farmer who = null)
                {
                    Game1.exitActiveMenu();
                    _shouldTimePass = true;
                    if (Context.IsMainPlayer && FarmerLoader.FarmerData != null)
                    {
                        AnimalContestItem lastAnimalContest = FarmerLoader.FarmerData.AnimalContestData.LastOrDefault();
                        if (lastAnimalContest != null && lastAnimalContest.EventId == __instance.id)
                        {
                            AnimalContestController.EndEvent(lastAnimalContest);
                        }
                    }
                }

                if (Game1.IsMultiplayer)
                {
                    Game1.player.team.SetLocalReady("animalContestEnd", ready: true);
                    if (!Game1.player.team.IsReady("animalContestEnd"))
                    {
                        ReadyCheckDialog readyCheckDialog = new ReadyCheckDialog("animalContestEnd", allowCancel: false, onConfirm: OnClose);
                        Game1.activeClickableMenu = readyCheckDialog;
                    }
                    else
                    {
                        _shouldTimePass = true;
                    }
                }
                else
                {
                    OnClose();
                }
            }
        }