public void ActivateQuest(Pawn accepter, QuestInfo questInfo) { Find.QuestManager.Add(questInfo.quest); questInfo.quest.Accept(accepter); QuestUtility.SendLetterQuestAvailable(questInfo.quest); questInfo.currencyInfo?.Buy(questInfo); availableQuests.Remove(questInfo); }
public void ActivateQuest(Pawn accepter, QuestInfo questInfo) { Log.Message("1 questInfo.quest: " + questInfo.quest.State + " - " + questInfo.quest.initiallyAccepted); Find.QuestManager.Add(questInfo.quest); questInfo.quest.Accept(accepter); QuestUtility.SendLetterQuestAvailable(questInfo.quest); questInfo.currencyInfo?.Buy(questInfo); availableQuests.Remove(questInfo); Log.Message("2 questInfo.quest: " + questInfo.quest.State + " - " + questInfo.quest.initiallyAccepted); }
public override bool Allows(QuestGiverManager questGiverManager, Quest quest, Slate slate, out QuestInfo questInfo) { var asker = slate.Get <Pawn>("asker"); if (asker?.Faction != null && asker.Faction.GoodwillWith(Faction.OfPlayer) >= minimunGoodwillRequirement) { var currencyInfo = new GoodwillCurrencyInfo(); currencyInfo.currency = Currency.Goodwill; currencyInfo.amount = questGiverManager.def.currency.costToAcceptQuest; questInfo = new QuestInfo(quest, asker.Faction, currencyInfo, onlyOneChoice: questGiverManager.def.onlyOneReward ? true : false); return(true); } questInfo = null; return(false); }
public override void Buy(QuestInfo questInfo) { base.Buy(questInfo); questInfo.askerFaction.TryAffectGoodwillWith(Faction.OfPlayer, -(int)amount); }
public virtual void Buy(QuestInfo questInfo) { }
public virtual bool Allows(QuestGiverManager questGiverManager, Quest toCheck, Slate slate, out QuestInfo questInfo) { questInfo = null; return(true); }