﻿<?xml version="1.0" encoding="utf-8" ?>
<Defs>

  <QuestScriptDef>
    <defName>DecreeSetup</defName>
    <questDescriptionRules>
      <rulesStrings>
        <li>decreeIntro->[asker_nameDef], your [asker_bestRoyalTitle], has issued a royal decree.</li>
        <li>decreeThreatInfo->If you fail to fulfill this decree within [decreeDays] days, [asker_nameDef] will start to become unhappy. [asker_possessive] anger will increase over time until the decree is satisfied.</li>
      </rulesStrings>
    </questDescriptionRules>
    <root Class="QuestNode_Sequence">
      <nodes>

        <li Class="QuestNode_HasRoyalTitleInCurrentFaction">
          <pawn>$asker</pawn>
          <elseNode Class="QuestNode_CannotRun"></elseNode>
        </li>
        
        <li Class="QuestNode_SubScript">
          <def>Util_RandomizePointsChallengeRating</def>
          <parms>
            <pointsFactorTwoStar>1.5</pointsFactorTwoStar>
            <pointsFactorThreeStar>2</pointsFactorThreeStar>
          </parms>
        </li>
        <li Class="QuestNode_GetNearestHomeMapOf">
          <storeAs>map</storeAs>
          <mapOf>$asker</mapOf>
        </li>

        <li Class="QuestNode_Delay">
          <delayTicks>$(80*60000)</delayTicks>
          <inSignalDisable>DecreeCompleted</inSignalDisable>
          <node Class="QuestNode_Sequence">
            <nodes>
              <li Class="QuestNode_Letter">
                <text TKey="LetterTextDecreeForgotten">[asker_nameDef] has forgotten about [asker_possessive] decree.</text>
                <label TKey="LetterLabelDecreeForgotten">[asker_nameDef]'s decree forgotten</label>
              </li>
              <li Class="QuestNode_End">
                <outcome>Fail</outcome>
              </li>
            </nodes>
          </node>
        </li>
        
        <!-- End if incompletable -->
        <li Class="QuestNode_Signal">
          <inSignal>Incompletable</inSignal>
          <node Class="QuestNode_Sequence">
            <nodes>
              <li Class="QuestNode_Letter">
                <label TKey="LetterLabelDecreeCancelled">Decree cancelled</label>
                <text TKey="LetterTextDecreeCancelled">[asker_nameDef] has grudgingly cancelled the decree '[resolvedQuestName]' since it cannot be completed.</text>
              </li>
              <li Class="QuestNode_End">
                <outcome>Fail</outcome>
              </li>
            </nodes>
          </node>
        </li>

        <!-- End if asker is banished, or otherwise has their faction changed. -->
        <li Class="QuestNode_Signal">
          <inSignal>asker.ChangedFaction</inSignal>
          <node Class="QuestNode_End">
            <outcome>Fail</outcome>
          </node>
        </li>

        <!-- End if asker died. -->
        <li Class="QuestNode_Signal">
          <inSignal>asker.Destroyed</inSignal>
          <node Class="QuestNode_End">
            <outcome>Fail</outcome>
          </node>
        </li>

        <!-- End if asker gets kidnapped. -->
        <li Class="QuestNode_Signal">
          <inSignal>asker.Kidnapped</inSignal>
          <node Class="QuestNode_End">
            <outcome>Fail</outcome>
          </node>
        </li>

        <!-- Validate if decree is still valid when title was changed. -->
        <li Class="QuestNode_Signal">
          <inSignal>asker.TitleChanged</inSignal>
          <node Class="QuestNode_Filter_DecreeNotPossible">
            <node Class="QuestNode_End">
              <outcome>Fail</outcome>
            </node>
          </node>
        </li>
      </nodes>
    </root>
  </QuestScriptDef>

  <QuestScriptDef>
    <defName>Decree_Util_Reward</defName>
    <root Class="QuestNode_Sequence">
      <nodes>
        <li Class="QuestNode_AddMemoryThought">
          <pawns>$asker</pawns>
          <def>DecreeMet</def>
        </li>
      </nodes>
    </root>
  </QuestScriptDef>

</Defs>