mirror of
https://github.com/FalloutCollaborationProject/FCP-Enclave.git
synced 2026-07-27 17:02:01 -07:00
Introduces two new Enclave quest scripts, Officer's Inspection and Research Escort, with unique escort targets, fail/success conditions, rewards, and themed narrative text. Existing Containment Breach and Insurgents quests now include explicit requirements in their descriptions. Enclave faction setup was updated to use Colonel Autumn as fixed leader, move factionLeader status from Richardson to Autumn, add faction-leader seniority roles to key Enclave characters, and switch several pawn group makers to custom-character variants with weighted character injection.
165 lines
8.6 KiB
XML
165 lines
8.6 KiB
XML
<?xml version="1.0" encoding="utf-8" ?>
|
|
<Defs>
|
|
|
|
<QuestScriptDef>
|
|
<defName>FCP_Quest_Enclave_Containment_Breach</defName>
|
|
<rootSelectionWeight>1.0</rootSelectionWeight>
|
|
<rootMinPoints>150</rootMinPoints>
|
|
<defaultChallengeRating>2</defaultChallengeRating>
|
|
<canGiveRoyalFavor>true</canGiveRoyalFavor>
|
|
<expireDaysRange>5~10</expireDaysRange>
|
|
<questNameRules>
|
|
<rulesStrings>
|
|
<li>questName->Containment Breach</li>
|
|
<li>questName->Sector Cleansing</li>
|
|
<li>questName->Contamination Protocol</li>
|
|
<li>questName->Purge Directive</li>
|
|
<li>questName->Sterilize the Sector</li>
|
|
</rulesStrings>
|
|
</questNameRules>
|
|
<questDescriptionRules>
|
|
<rulesStrings>
|
|
<li>requirements->Requirements: defeat every hostile at the site to sterilize the sector. If they abandon the position before you arrive, there's nothing left to confirm.</li>
|
|
<li>questDescription->Signal integrity on one of our listening posts has been dropping for days. [asker_nameFull] traced it to hostiles dug in nearby and wants the sector sterile again.\n\n[requirements]</li>
|
|
<li>questDescription->[asker_nameFull]: "Hostile contacts within range of a monitoring post. Command wants them gone before it starts affecting reception. Handle it."\n\n[requirements]</li>
|
|
<li>questDescription->Priority directive: hostile elements detected too close to Enclave infrastructure. [asker_nameFull] expects confirmation the sector's clean, not just quiet.\n\n[requirements]</li>
|
|
<li>questDescription->"Unauthorized personnel occupying ground near a listening post. This is not a request." That's the whole message from [asker_nameFull], and it's not open to interpretation.\n\n[requirements]</li>
|
|
<li>questDescription->The Enclave doesn't tolerate squatters near its installations, and [asker_nameFull] isn't in a mood to make exceptions this time.\n\n[requirements]</li>
|
|
</rulesStrings>
|
|
</questDescriptionRules>
|
|
<root Class="QuestNode_Sequence">
|
|
<nodes>
|
|
<li Class="QuestNode_SubScript">
|
|
<def>Util_RandomizePointsChallengeRating</def>
|
|
<parms>
|
|
<pointsFactorTwoStar>1.3</pointsFactorTwoStar>
|
|
<pointsFactorThreeStar>1.7</pointsFactorThreeStar>
|
|
</parms>
|
|
</li>
|
|
<li Class="QuestNode_SubScript">
|
|
<def>Util_AdjustPointsForDistantFight</def>
|
|
</li>
|
|
<li Class="QuestNode_GetMap" />
|
|
<li Class="FCP.Core.RadiantQuests.QuestNode_GetFactionFromList">
|
|
<storeAs>askerFaction</storeAs>
|
|
<factionDefs>
|
|
<li MayRequire="Rick.FCP.Enclave">FCP_Faction_Enclave</li>
|
|
</factionDefs>
|
|
</li>
|
|
<li Class="FCP.Core.RadiantQuests.QuestNode_GetLeaderOfFaction">
|
|
<storeAs>asker</storeAs>
|
|
<factionToUse>$askerFaction</factionToUse>
|
|
</li>
|
|
<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_Enclave_Containment_Breach</tag>
|
|
</li>
|
|
</sitePartsTags>
|
|
<mustBeHostileToFactionOf>$asker</mustBeHostileToFactionOf>
|
|
</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_LoopCount">
|
|
<loopCount>$(randInt(2,4))</loopCount>
|
|
<node Class="QuestNode_GeneratePawn">
|
|
<kindDef>FCP_Pawnkind_Enclave_Trooper</kindDef>
|
|
<faction>$askerFaction</faction>
|
|
<addToList>escorts</addToList>
|
|
<allowAddictions>false</allowAddictions>
|
|
<biocodeWeaponChance>1</biocodeWeaponChance>
|
|
<biocodeApparelChance>1</biocodeApparelChance>
|
|
</node>
|
|
</li>
|
|
<li Class="QuestNode_SetAllApparelLocked">
|
|
<pawns>$escorts</pawns>
|
|
</li>
|
|
<li Class="QuestNode_JoinPlayer">
|
|
<pawns>$escorts</pawns>
|
|
<joinPlayer>true</joinPlayer>
|
|
</li>
|
|
<li Class="QuestNode_ExtraFaction">
|
|
<factionOf>$asker</factionOf>
|
|
<pawns>$escorts</pawns>
|
|
<factionType>HomeFaction</factionType>
|
|
<inSignalsRemovePawn>
|
|
<li>escorts.RanWild</li>
|
|
</inSignalsRemovePawn>
|
|
</li>
|
|
<li Class="FCP.Core.RadiantQuests.QuestNode_SpawnPawns">
|
|
<inSignal>site.MapGenerated</inSignal>
|
|
<pawns>$escorts</pawns>
|
|
<mapParent>$site</mapParent>
|
|
</li>
|
|
<li Class="QuestNode_LeaveOnCleanup">
|
|
<pawns>$escorts</pawns>
|
|
<sendStandardLetter>false</sendStandardLetter>
|
|
</li>
|
|
<li Class="QuestNode_SpawnWorldObjects">
|
|
<worldObjects>$site</worldObjects>
|
|
<defsToExcludeFromHyperlinks>Human</defsToExcludeFromHyperlinks>
|
|
</li>
|
|
<li Class="QuestNode_WorldObjectTimeout">
|
|
<worldObject>$site</worldObject>
|
|
<isQuestTimeout>true</isQuestTimeout>
|
|
<delayTicks>$(randInt(15,30)*60000)</delayTicks>
|
|
<inSignalDisable>site.MapGenerated</inSignalDisable>
|
|
<node Class="QuestNode_End">
|
|
<outcome>Fail</outcome>
|
|
<sendStandardLetter>true</sendStandardLetter>
|
|
</node>
|
|
</li>
|
|
<li Class="QuestNode_Signal">
|
|
<inSignal>site.AllEnemiesDefeated</inSignal>
|
|
<node Class="QuestNode_Sequence">
|
|
<nodes>
|
|
<li Class="QuestNode_Letter">
|
|
<letterDef>PositiveEvent</letterDef>
|
|
<label>Sector clean</label>
|
|
<text>All hostiles neutralized. The listening post reports clean signal.</text>
|
|
</li>
|
|
<li Class="QuestNode_Notify_PlayerRaidedSomeone">
|
|
<getRaidersFromMapParent>$site</getRaidersFromMapParent>
|
|
</li>
|
|
<li Class="QuestNode_GiveRewards">
|
|
<parms>
|
|
<allowGoodwill>true</allowGoodwill>
|
|
<allowRoyalFavor>false</allowRoyalFavor>
|
|
</parms>
|
|
<addCampLootReward>true</addCampLootReward>
|
|
<customLetterLabel>Payment arrived</customLetterLabel>
|
|
<customLetterText>Payment from the Enclave has arrived.</customLetterText>
|
|
</li>
|
|
</nodes>
|
|
</node>
|
|
</li>
|
|
<li Class="QuestNode_End">
|
|
<inSignal>site.AllEnemiesDefeated</inSignal>
|
|
<outcome>Success</outcome>
|
|
</li>
|
|
<li Class="QuestNode_NoWorldObject">
|
|
<worldObject>$site</worldObject>
|
|
<node Class="QuestNode_End" />
|
|
</li>
|
|
</nodes>
|
|
</root>
|
|
</QuestScriptDef>
|
|
|
|
</Defs>
|