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>(); } }
// 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> >(); } }