private static Letter checkForLetter()
        {
            Dictionary <string, string> stats = Instrument.allAdditionalSaveData;

            if (!Instrument.hasInstument("harp"))
            {
                return(DataLoader.getLetter("hoy_birthday"));
            }

            if (Game1.player.isMarried() && !SheetMusic.hasSheet("yoba"))
            {
                return(DataLoader.getLetter("hoy_yoba"));
            }

            if (Game1.player.eventsSeen.Contains(2) && !SheetMusic.hasSheet("thunder"))
            {
                return(DataLoader.getLetter("hoy_thunder"));
            }

            if (Game1.player.eventsSeen.Contains(14) && !SheetMusic.hasSheet("animals"))
            {
                return(DataLoader.getLetter("hoy_animals"));
            }

            if (Game1.stats.monstersKilled >= 100 && !SheetMusic.hasSheet("adventure"))
            {
                return(DataLoader.getLetter("hoy_adventure"));
            }

            if (Game1.player.eventsSeen.Contains(191393) && !SheetMusic.hasSheet("wanderer"))
            {
                return(DataLoader.getLetter("hoy_wanderer"));
            }

            if (stats.ContainsKey("wizard") && stats["wizard"] == "true" && !SheetMusic.hasSheet("dark"))
            {
                return(DataLoader.getLetter("hoy_dark"));
            }

            if (stats.ContainsKey("mariner") && stats["mariner"].Split(' ').Length >= 5 && !SheetMusic.hasSheet("fisher"))
            {
                return(DataLoader.getLetter("hoy_mariner"));
            }

            if (stats.ContainsKey("granpa") && stats["granpa"].Split(' ').Length >= 2 && !SheetMusic.hasSheet("granpa"))
            {
                return(DataLoader.getLetter("hoy_granpa"));
            }

            if (Game1.player.eventsSeen.Contains(18) && !SheetMusic.hasSheet("time"))
            {
                return(DataLoader.getLetter("hoy_time"));
            }

            return(null);
        }
Beispiel #2
0
 private void OnMenuChanged(object sender, MenuChangedEventArgs e)
 {
     if (e.NewMenu is LetterViewerMenu lvm)
     {
         string mailTitle = Helper.Reflection.GetField <string>(lvm, "mailTitle").GetValue();
         if (mailTitle is string mt && mt.StartsWith("hoy_"))
         {
             lvm.itemsToGrab[0].item = DataLoader.getLetter(mt).item;
         }
     }
 }
 private void MenuEvents_MenuChanged(object sender, EventArgsClickableMenuChanged e)
 {
     if (e.NewMenu is LetterViewerMenu lvm)
     {
         string mailTitle = Helper.Reflection.GetField <string>(lvm, "mailTitle").GetValue();
         if (mailTitle.StartsWith("hoy_"))
         {
             lvm.itemsToGrab[0].item = DataLoader.getLetter(mailTitle).item;
         }
     }
 }
Beispiel #4
0
        private static Letter checkForLetter()
        {
            string      sentLetter            = "none";
            List <Item> items                 = new List <Item>();
            Dictionary <string, string> stats = Instrument.allAdditionalSaveData;

            if (!Instrument.hasInstument("harp") && !SheetMusic.hasSheet("birthday"))
            {
                sentLetter = DataLoader.getLetter("birthday");
                items.Add(new Instrument("harp"));
                items.Add(new SheetMusic("birthday"));
                return(new Letter(sentLetter, items));
            }

            if (!Instrument.hasInstument("harp"))
            {
                sentLetter = DataLoader.getLetter("birthday");
                items.Add(new Instrument("harp"));
                return(new Letter(sentLetter, items));
            }

            if (!SheetMusic.hasSheet("birthday"))
            {
                sentLetter = DataLoader.getLetter("birthday");
                items.Add(new SheetMusic("birthday"));
                return(new Letter(sentLetter, items));
            }

            if (Game1.player.isMarried() && !SheetMusic.hasSheet("yoba"))
            {
                sentLetter = DataLoader.getLetter("yoba");
                items.Add(new SheetMusic("yoba"));

                return(new Letter(sentLetter, items));
            }

            if (Game1.player.eventsSeen.Contains(2) && !SheetMusic.hasSheet("thunder"))
            {
                sentLetter = DataLoader.getLetter("thunder");
                items.Add(new SheetMusic("thunder"));

                return(new Letter(sentLetter, items));
            }

            if (Game1.player.eventsSeen.Contains(14) && !SheetMusic.hasSheet("animals"))
            {
                sentLetter = DataLoader.getLetter("animals");
                items.Add(new SheetMusic("animals"));

                return(new Letter(sentLetter, items));
            }

            if (Game1.stats.monstersKilled >= 100 && !SheetMusic.hasSheet("adventure"))
            {
                sentLetter = DataLoader.getLetter("adventure");
                items.Add(new SheetMusic("adventure"));

                return(new Letter(sentLetter, items));
            }

            if (Game1.player.eventsSeen.Contains(191393) && !SheetMusic.hasSheet("wanderer"))
            {
                sentLetter = DataLoader.getLetter("wanderer");
                items.Add(new SheetMusic("wanderer"));

                return(new Letter(sentLetter, items));
            }

            if (stats.ContainsKey("wizard") && stats["wizard"] == "true" && !SheetMusic.hasSheet("dark"))
            {
                sentLetter = DataLoader.getLetter("dark");
                items.Add(new SheetMusic("dark"));

                return(new Letter(sentLetter, items));
            }

            if (stats.ContainsKey("mariner") && stats["mariner"].Split(' ').Length >= 5 && !SheetMusic.hasSheet("fisher"))
            {
                sentLetter = DataLoader.getLetter("fisher");
                items.Add(new SheetMusic("fisher"));

                return(new Letter(sentLetter, items));
            }

            if (stats.ContainsKey("granpa") && stats["granpa"].Split(' ').Length >= 2 && !SheetMusic.hasSheet("granpa"))
            {
                sentLetter = DataLoader.getLetter("granpa");
                items.Add(new SheetMusic("granpa"));

                return(new Letter(sentLetter, items));
            }

            if (Game1.player.eventsSeen.Contains(18) && !SheetMusic.hasSheet("time"))
            {
                sentLetter = DataLoader.getLetter("time");
                items.Add(new SheetMusic("time"));

                return(new Letter(sentLetter, items));
            }

            return((Letter)null);
        }