Storyteller Extension - Vanilla-Expanded/VanillaExpandedFramework GitHub Wiki
StorytellerDefExtension adds a few fields to customize storytellers:
public RaidRestlessness raidRestlessness;
public StorytellerThreat storytellerThreat;
public IncidentSpawnOptions incidentSpawnOptions;Each one of these is a container class:
- RaidRestlessness:
public int startAfterTicks;
public ThoughtDef thoughtDef;Note that the raid restlessness mechanic will need a ThoughtDef with a worker, like this
- StorytellerThreat:
public IntRange naturallGoodwillForAllFactions;
public int disableThreatsAtPopulationCount;
public float allDamagesMultiplier;
public List<string> goodIncidents = new List<string>();
public IntRange? raidWarningRange;- IncidentSpawnOptions:
public bool alliesReduceThreats;
public bool alliesIncreaseGoodIncidents;
public bool enemiesReduceThreats;
public bool enemiesIncreaseGoodIncidents;
public List<string> goodIncidents = new List<string>();
public List<string> negativeIncidents = new List<string>();
public List<string> neutralIncidents = new List<string>();For example, this was the mod extension in Igor Invader in VFE - Mechanoids:
<modExtensions>
	<li Class="VEF.Storyteller.StorytellerDefExtension">
		<storytellerThreat>
			<naturallGoodwillForAllFactions>-100~-100</naturallGoodwillForAllFactions>
			<disableThreatsAtPopulationCount>1</disableThreatsAtPopulationCount>
			<allDamagesMultiplier>2</allDamagesMultiplier>
			<raidWarningRange>30000</raidWarningRange>
			<goodIncidents>
				<li>ResourcePodCrash</li>
				<li>PsychicSoothe</li>
				<li>SelfTame</li>
				<li>AmbrosiaSprout</li>
				<li>FarmAnimalsWanderIn</li>
				<li>WandererJoin</li>
				<li>RefugeePodCrash</li>
				<li>ThrumboPasses</li>
				<li>MeteoriteImpact</li>
				<li>WildManWandersIn</li>
			</goodIncidents>
		</storytellerThreat>
	</li>
</modExtensions>Similarly, this was Freya Fierce in VFE Vikings:
<modExtensions>
	<li Class="VEF.Storyteller.StorytellerDefExtension">
		<raidRestlessness>
			<startAfterTicks>3600000</startAfterTicks> <!-- 1 year -->
			<thoughtDef>VFEV_RaidRestlessness</thoughtDef>
		</raidRestlessness>
	</li>
</modExtensions>And this was the associated ThoughtDef:
<ThoughtDef>
	<defName>VFEV_RaidRestlessness</defName>
	<workerClass>VanillaStorytellersExpanded.ThoughtWorker_RaidRestlessness</workerClass>
	<stages>
		<li>
			<label>Restless (x0)</label>
			<description>We should begin planning our next raid.</description>
			<baseMoodEffect>0</baseMoodEffect>
		</li>
		<li>
			<label>Restless (x1)</label>
			<description>Traveling should be easy now, we can easily loot from those weaklings.</description>
			<baseMoodEffect>-15</baseMoodEffect>
		</li>
		<li>
			<label>Restless (x2)</label>
			<description>Why is our warband growing so docile? The weak should fear the strong - We must attack our enemies soon.</description>
			<baseMoodEffect>-25</baseMoodEffect>
		</li>
		<li>
			<label>Restless (x3)</label>
			<description>So many luxuries at our fingertips, yet we’re too cowardly to slaughter our enemies and take their riches?</description>
			<baseMoodEffect>-35</baseMoodEffect>
		</li>
		<li>
			<label>Restless (x4)</label>
			<description>I’ve lost all hope - There is no way we can keep going like this, I fear our people and history will never be remembered.</description>
			<baseMoodEffect>-45</baseMoodEffect>
		</li>
	</stages>
</ThoughtDef>