private void ResetMarkers()
        {
            NpcMarkers = new HashSet <NPCMarker>();
            foreach (NPC npc in GetVillagers())
            {
                // Handle case where Kent appears even though he shouldn't
                if ((npc.Name.Equals("Kent") && !SecondaryNpcs["Kent"]))
                {
                    continue;
                }

                NPCMarker npcMarker = new NPCMarker()
                {
                    Npc        = npc,
                    IsBirthday = npc.isBirthday(Game1.currentSeason, Game1.dayOfMonth)
                };
                NpcMarkers.Add(npcMarker);
            }

            if (Context.IsMultiplayer)
            {
                FarmerMarkers = new Dictionary <long, FarmerMarker>();
            }
        }
Exemple #2
0
        // Handle any checks that need to be made per day
        private void TimeEvents_AfterDayStarted(object sender, EventArgs e)
        {
            var npcEntries = new Dictionary <string, bool>(secondaryNPCs);

            foreach (KeyValuePair <string, bool> npcEntry in npcEntries)
            {
                string name = npcEntry.Key;

                if (!npcEntry.Value)
                {
                    switch (name)
                    {
                    case "Kent":
                        secondaryNPCs[name] = Game1.year >= 2;
                        break;

                    case "Marlon":
                        secondaryNPCs[name] = Game1.player.eventsSeen.Contains(100162);
                        break;

                    case "Merchant":
                        secondaryNPCs[name] =
                            (Game1.dayOfMonth == 5 ||
                             Game1.dayOfMonth == 7 ||
                             Game1.dayOfMonth == 12 ||
                             Game1.dayOfMonth == 14 ||
                             Game1.dayOfMonth == 19 ||
                             Game1.dayOfMonth == 21 ||
                             Game1.dayOfMonth == 26 ||
                             Game1.dayOfMonth == 28);
                        break;

                    case "Sandy":
                        secondaryNPCs[name] = Game1.player.mailReceived.Contains("ccVault");
                        break;

                    case "Wizard":
                        secondaryNPCs[name] = Game1.player.eventsSeen.Contains(112);
                        break;

                    default: break;
                    }
                }
            }

            // Reset NPC marker data daily
            npcMarkers = new HashSet <NPCMarker>();
            foreach (NPC npc in GetAllVillagers())
            {
                // Handle case where Kent appears even though he shouldn't
                if ((npc.Name.Equals("Kent") && !secondaryNPCs["Kent"]))
                {
                    continue;
                }

                NPCMarker npcMarker = new NPCMarker()
                {
                    Npc        = npc,
                    IsBirthday = npc.isBirthday(Game1.currentSeason, Game1.dayOfMonth)
                };
                npcMarkers.Add(npcMarker);
            }

            if (Context.IsMultiplayer)
            {
                activeFarmers         = new Dictionary <long, KeyValuePair <Farmer, Vector2> >();
                farmerLocationChanges = new Dictionary <long, KeyValuePair <string, Vector2> >();
            }
        }