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);
 }
Пример #2
0
 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);
 }
Пример #3
0
        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);
        }
Пример #4
0
 public override void Buy(QuestInfo questInfo)
 {
     base.Buy(questInfo);
     questInfo.askerFaction.TryAffectGoodwillWith(Faction.OfPlayer, -(int)amount);
 }
Пример #5
0
 public virtual void Buy(QuestInfo questInfo)
 {
 }
Пример #6
0
 public virtual bool Allows(QuestGiverManager questGiverManager, Quest toCheck, Slate slate, out QuestInfo questInfo)
 {
     questInfo = null;
     return(true);
 }