private void UpdateCollectionQuest(NpcHandler npcHandler, ItemHandler itemHandler, Quest quest) { ResourceCollectionQuest request = (ResourceCollectionQuest)quest; bool isValidObjective = ParseOneByObjective(itemHandler.Item.ParentSheetIndex, request.deliveryItem.Value.ParentSheetIndex); bool isValidRecipient = ParseOneByRecipient(npcHandler.Target.Name, request.target.Value); if (isValidObjective && isValidRecipient) { int numberItemsOwed = Config.LazyItemChecking ? request.number.Value : request.number.Value - request.numberCollected.Value; bool isValidAmount = Game1.player.hasItemInInventory(itemHandler.Item.ParentSheetIndex, numberItemsOwed); if (isValidAmount) { // Remove only when quest giver is Robin if (request.target.Value.Equals("Robin")) { itemHandler.RemoveFromInventory(request.number.Value); } npcHandler.Update(0, true, null); Update(quest, request.reward.Value); } else { // Remove none and warn WarnAmountLow(request.target.Value.ToString(), numberItemsOwed); } } }
private void Time_AfterDayStarted(object sender, EventArgs e) { Quest questy = (Quest)null; ItemDeliveryQuest itemy = (ItemDeliveryQuest)null; FishingQuest fishy = (FishingQuest)null; SlayMonsterQuest slayey = (SlayMonsterQuest)null; ResourceCollectionQuest sourcy = (ResourceCollectionQuest)null; this.Monitor.Log($"Daily Help Wanted quest generated."); double num = new Random((int)Game1.uniqueIDForThisGame + (int)Game1.stats.DaysPlayed + (int)Game1.timeOfDay).NextDouble(); if (Game1.stats.DaysPlayed <= 1U) { Game1.questOfTheDay = questy; } else if (num >= 1 - this.itemPercent) { itemy = new ItemDeliveryQuest(); itemy.loadQuestInfo(); Game1.questOfTheDay = itemy; } else if (num >= 1 - this.itemPercent - this.fishPercent) { fishy = new FishingQuest(); fishy.loadQuestInfo(); Game1.questOfTheDay = fishy; } else if (num >= 1 - this.itemPercent - this.fishPercent - this.noQuestPercent || MineShaft.lowestLevelReached <= 0 || Game1.stats.DaysPlayed <= 5U) { Game1.questOfTheDay = (Quest)null; } else if (num >= 1 - this.itemPercent - this.fishPercent - this.noQuestPercent - this.slayPercent) { slayey = new SlayMonsterQuest(); slayey.loadQuestInfo(); Game1.questOfTheDay = slayey; } else { sourcy = new ResourceCollectionQuest(); sourcy.loadQuestInfo(); Game1.questOfTheDay = sourcy; } }