public override void Entry(IModHelper helper) { mod = this; taskPool = new MinionTaskPool(); SkeletonWand.loadSkeletonWandTextures(); StardewModdingAPI.Events.SaveEvents.AfterLoad += SaveEvents_AfterLoad; StardewModdingAPI.Events.ControlEvents.KeyPressed += ControlEvents_KeyPressed; StardewModdingAPI.Events.ControlEvents.MouseChanged += ControlEvents_MouseChanged; StardewModdingAPI.Events.SaveEvents.BeforeSave += SaveEvents_BeforeSave; StardewModdingAPI.Events.MenuEvents.MenuChanged += MenuEvents_MenuChanged; helper.ConsoleCommands.Add("growallcrops", "Completely grow all crops in the current location.", GrowAllCrops); helper.ConsoleCommands.Add("seeds", "Add seeds to your inventory.", AddSeedsToInventory); helper.ConsoleCommands.Add("wandmode", "Toggle Skeleton Wand wand mode.", toggleWandMode); }
/* Add the skeleton wand to Marlon's store */ private void MenuEvents_MenuChanged(object sender, StardewModdingAPI.Events.EventArgsClickableMenuChanged e) { if (e.NewMenu is ShopMenu) { ShopMenu shop = e.NewMenu as ShopMenu; if (shop.portraitPerson != null && shop.portraitPerson.name.Equals("Marlon")) { bool completedSkeletonTask = Game1.stats.getMonstersKilled("Skeleton") + Game1.stats.getMonstersKilled("Skeleton Mage") >= 50; if (completedSkeletonTask && !doesPlayerHaveSkeletonWandAnywhere()) { Dictionary <Item, int[]> itemPriceAndStock = Helper.Reflection.GetPrivateValue <Dictionary <Item, int[]> >(shop, "itemPriceAndStock"); List <Item> forSale = Helper.Reflection.GetPrivateValue <List <Item> >(shop, "forSale"); SkeletonWand skeletonWand = new SkeletonWand(); itemPriceAndStock.Add(skeletonWand, new int[2] { 50000, 1 }); forSale.Add(skeletonWand); } } } }