public virtual bool CheckIfComplete(IQuestInfo questData, ICompletionArgs completion) { if (questData.VanillaQuest.completed.Value || completion.String != "sell" || completion.Item?.ParentSheetIndex != this.ItemToSellIndex || completion.Number1 <= 0) { return(false); } this.ItemsSold.Value += completion.Number1; if (this.ItemsSold.Value >= this.Count) { return(true); } return(false); }
public void Execute(ICompletionArgs args) { if (this.ManagedQuest == null) { return; } var manager = QuestFrameworkMod.Instance.QuestManager; int questId = manager.ResolveGameQuestId(this.ManagedQuest.GetFullName()); switch (this.Action) { case Actions.Accept: manager.AcceptQuest(this.ManagedQuest.GetFullName()); break; case Actions.CheckIfComplete: var quest = Game1.player.questLog.Where(q => q.id.Value == questId).FirstOrDefault(); if (quest != null) { quest.checkIfComplete(args.Npc, args.Number1, args.Number2, args.Item, args.String); } break; case Actions.Complete: if (questId > -1 && Game1.player.hasQuest(questId)) { Game1.player.completeQuest(questId); } break; case Actions.Remove: if (Game1.player.hasQuest(questId)) { return; } Game1.player.removeQuest(questId); break; } }
public bool CheckIfComplete(IQuestInfo questData, ICompletionArgs completion) { if (questData.VanillaQuest.completed.Value) return false; if (this.TalkTo != null && completion.Npc != null && completion.Npc.isVillager() && this.TalkTo == completion.Npc.Name) { if (!string.IsNullOrEmpty(this.ReactionText)) { completion.Npc.CurrentDialogue.Push(new Dialogue(this.ReactionText, completion.Npc)); Game1.drawDialogue(completion.Npc); } if (Game1.activeClickableMenu is DialogueBox && Game1.currentSpeaker == completion.Npc) { questData.VanillaQuest.questComplete(); return true; } } return false; }
protected abstract bool CheckHookExecute(Hook hook, ICompletionArgs args);