Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        private void UpdateFishingQuest(NpcHandler npcHandler, ItemHandler itemHandler, Quest quest)
        {
            FishingQuest request          = (FishingQuest)quest;
            bool         isValidObjective = ParseOneByObjective(itemHandler.Item.ParentSheetIndex, request.whichFish.Value);
            bool         isValidRecipient = ParseOneByRecipient(npcHandler.Target.Name, request.target.Value);

            if (isValidObjective && isValidRecipient)
            {
                int  numberItemsOwed = Config.LazyItemChecking ? request.numberToFish.Value : request.numberToFish.Value - request.numberFished.Value;
                bool isValidAmount   = Game1.player.hasItemInInventory(itemHandler.Item.ParentSheetIndex, numberItemsOwed);

                if (isValidAmount)
                {
                    // Remove none
                    npcHandler.Update(0, true, null);
                    Update(quest, request.reward.Value);
                }
                else
                {
                    // Remove none and warn
                    WarnAmountLow(request.target.Value.ToString(), numberItemsOwed);
                }
            }
        }