Files
FCP-NCR/1.5/Defs/QuestScriptDefs/FCP_Scripts_PawnRescueHumanlike.xml
T
2024-12-11 00:59:29 -06:00

158 lines
7.7 KiB
XML

<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!--__________ Quests __________-->
<!--_____ NCR Quests _____-->
<!--___ Rescue Humanlikes ___-->
<!-- Rescue Citizen -->
<QuestScriptDef>
<defName>FCP_Quest_NCR_Pawn_Rescue_Humanlike_Citizen</defName>
<rootSelectionWeight>1.0</rootSelectionWeight>
<rootMinPoints>50</rootMinPoints>
<defaultChallengeRating>1</defaultChallengeRating>
<canGiveRoyalFavor>true</canGiveRoyalFavor>
<expireDaysRange>4~8</expireDaysRange>
<questNameRules>
<rulesStrings>
<li>questName->[prisoner_nameDef]'s Rescue</li>
<li>questName->[prisoner_nameDef]'s Breakout</li>
<li>questName->Rescuing [prisoner_nameDef]</li>
<li>questName->Saving [prisoner_nameDef]</li>
<li>questName->Breaking [prisoner_nameDef] Out</li>
</rulesStrings>
</questNameRules>
<questDescriptionRules>
<rulesStrings>
<li>questDescription->[prisoner_nameDef] has been captured by the Legion, it's up to you to rescue them.</li>
</rulesStrings>
</questDescriptionRules>
<root Class="QuestNode_Sequence">
<nodes>
<li Class="FCP_RadiantQuests.QuestNode_GetLeaderOfFaction">
<storeAs>asker</storeAs>
<!--The faction def that issues the quest-->
<factionDef>FCP_Faction_NCR</factionDef>
</li>
<li Class="FCP_RadiantQuests.QuestNode_GetFactionFromList">
<storeAs>enemyFaction</storeAs>
<!--The faction def that will be guarding-->
<factionDefs>
<li>PirateWaster</li>
<li MayRequire="Rick.FCP.Legion">FCP_Faction_Caesars_Legion</li>
</factionDefs>
</li>
<li Class="FCP_RadiantQuests.QuestNode_GetFactionFromList">
<storeAs>prisonerFaction</storeAs>
<!--The faction def that will be the prisoner-->
<factionDefs>
<li>FCP_Faction_NCR</li>
</factionDefs>
</li>
<li Class="FCP_RadiantQuests.QuestNode_GetPawnKind">
<!--Dont change storeAs its hardcoded in C#-->
<storeAs>prisonerPawnKind</storeAs>
<pawnKindDef>FCP_NCR_Citizen</pawnKindDef>
</li>
<li Class="QuestNode_GetRandomInRangeFloat">
<storeAs>chanceToJoinVal</storeAs>
<range>0~1</range>
</li>
<li Class="QuestNode_Set">
<name>chanceToJoin</name>
<value>0.25</value>
</li>
<li Class="QuestNode_SubScript">
<def>Util_RandomizePointsChallengeRating</def>
<parms>
<pointsFactorTwoStar>1.5</pointsFactorTwoStar>
<pointsFactorThreeStar>2</pointsFactorThreeStar>
</parms>
</li>
<li Class="QuestNode_SubScript">
<def>Util_AdjustPointsForDistantFight</def>
</li>
<li Class="QuestNode_GetMap" />
<li Class="QuestNode_GetSiteTile">
<storeAs>siteTile</storeAs>
<preferCloserTiles>true</preferCloserTiles>
</li>
<li Class="QuestNode_GetSitePartDefsByTagsAndFaction">
<storeAs>sitePartDefs</storeAs>
<storeFactionAs>siteFaction</storeFactionAs>
<sitePartsTags>
<li>
<tag>FCP_Site_PawnRescue</tag>
</li>
</sitePartsTags>
</li>
<li Class="QuestNode_GetDefaultSitePartsParams">
<tile>$siteTile</tile>
<faction>$siteFaction</faction>
<sitePartDefs>$sitePartDefs</sitePartDefs>
<storeSitePartsParamsAs>sitePartsParams</storeSitePartsParamsAs>
</li>
<li Class="QuestNode_SubScript">
<def>Util_GenerateSite</def>
<parms>
<hiddenSitePartsPossible>true</hiddenSitePartsPossible>
</parms>
</li>
<li Class="QuestNode_SpawnWorldObjects">
<worldObjects>$site</worldObjects>
<defsToExcludeFromHyperlinks>Human</defsToExcludeFromHyperlinks>
</li>
<li Class="QuestNode_WorldObjectTimeout">
<worldObject>$site</worldObject>
<isQuestTimeout>true</isQuestTimeout>
<delayTicks>$(randInt(12,28)*60000)</delayTicks>
<inSignalDisable>site.MapGenerated</inSignalDisable>
<node Class="QuestNode_End">
<outcome>Fail</outcome>
<sendStandardLetter>true</sendStandardLetter>
</node>
</li>
<li Class="QuestNode_Signal">
<inSignal>prisoner.RescuedFromPrison</inSignal>
<node Class="QuestNode_Sequence">
<nodes>
<li Class="QuestNode_Notify_PlayerRaidedSomeone">
<getRaidersFromMapParent>$site</getRaidersFromMapParent>
</li>
<li Class="QuestNode_GiveRewards">
<parms>
<allowGoodwill>true</allowGoodwill>
<allowRoyalFavor>true</allowRoyalFavor>
<chosenPawnSignal>ChosenPawnForReward</chosenPawnSignal>
</parms>
<addCampLootReward>true</addCampLootReward>
<customLetterLabel TKey="LetterLabelPaymentArrived">Payment arrived</customLetterLabel>
<customLetterText TKey="LetterTextPaymentArrived">You have defeated the prisoner camp!\n\nThe payment from [asker_faction_name] has arrived.</customLetterText>
<nodeIfChosenPawnSignalUsed Class="QuestNode_Letter">
<letterDef>ChoosePawn</letterDef>
<label TKey="LetterLabelFavorReceiver">[asker_faction_royalFavorLabel]</label>
<text TKey="LetterTextFavorReceiver">These colonists participated in the victory for the quest [resolvedQuestName]. [asker_definite] wants to know who should receive the [royalFavorReward_amount] [asker_faction_royalFavorLabel] for this service.</text>
<useColonistsOnMap>$site</useColonistsOnMap>
<chosenPawnSignal>ChosenPawnForReward</chosenPawnSignal>
</nodeIfChosenPawnSignalUsed>
</li>
</nodes>
</node>
</li>
<li Class="QuestNode_End">
<inSignal>prisoner.RescuedFromPrison</inSignal>
<outcome>Success</outcome>
</li>
<li Class="QuestNode_NoWorldObject">
<worldObject>$site</worldObject>
<node Class="QuestNode_End" />
</li>
</nodes>
</root>
</QuestScriptDef>
</Defs>