Add extensive holotape content and terminal defs

Introduces a full holotape content expansion for 1.6, including new company, faction, government, misc, and personal holotape definition files with paired ThingDefs. Adds core holotape infrastructure (base item, category, read-thought, and designator dropdown group), and adds new wall-mounted terminal building defs that support holotape extraction and hacking rewards.
This commit is contained in:
RickGrymes
2026-07-11 10:32:37 -05:00
parent 8550a84583
commit 7e42acab49
10 changed files with 9968 additions and 0 deletions
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<DesignatorDropdownGroupDef>
<defName>FCP_Holotapes</defName>
</DesignatorDropdownGroupDef>
</Defs>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!--__________ Holotape Thing Categories __________-->
<ThingCategoryDef>
<defName>FCP_Holotapes</defName>
<label>holotapes</label>
<parent>Manufactured</parent>
<iconPath>Things/Items/Techprints/FCP_Techprint_Holotape_Orange</iconPath>
</ThingCategoryDef>
</Defs>
@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!--__________ Wall Terminals __________-->
<!-- Wall Terminal Base -->
<ThingDef Name="WallTerminalBase" ParentName="TerminalBase" Abstract="True">
<altitudeLayer>BuildingOnTop</altitudeLayer>
<placeWorkers>
<li>FCP.Core.Buildings.PlaceWorker_OnWall</li>
<li>PlaceWorker_PreventInteractionSpotOverlap</li>
</placeWorkers>
<tickerType>Normal</tickerType>
</ThingDef>
<!-- Old Wall Terminal -->
<ThingDef ParentName="WallTerminalBase">
<defName>FCP_Production_Old_Wall_Terminal</defName>
<label>Old Wall Terminal</label>
<description>A rusted pre-war computer terminal mounted to a wall. Can be used to research holotapes and may still contain data from before the war. Cannot be moved or claimed once placed.</description>
<graphicData>
<texPath>Things/Building/Production/FCP_Terminals/FCP_Wall_Mounted_Terminal/FCP_Old_Terminal_Wall_Off</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>(1.5,1.5)</drawSize>
<drawOffset>(0,0.4,-0.35)</drawOffset>
<damageData>
<cornerTL>Damage/Corner</cornerTL>
<cornerTR>Damage/Corner</cornerTR>
</damageData>
</graphicData>
<statBases>
<MaxHitPoints>150</MaxHitPoints>
<Cleanliness>-5</Cleanliness>
</statBases>
<comps>
<li Class="FCP.Core.Buildings.CompProperties_Terminal">
<poweredOnTexPath>Things/Building/Production/FCP_Terminals/FCP_Wall_Mounted_Terminal/FCP_Old_Terminal_Wall_On</poweredOnTexPath>
<poweredOffTexPath>Things/Building/Production/FCP_Terminals/FCP_Wall_Mounted_Terminal/FCP_Old_Terminal_Wall_Off</poweredOffTexPath>
<canExtractHolotape>true</canExtractHolotape>
<holotapeDropChance>0.1</holotapeDropChance>
</li>
<li Class="FCP.Core.Buildings.CompProperties_TerminalHacking">
<wordLength>6</wordLength>
<maxAttempts>4</maxAttempts>
<lockoutDurationHours>6</lockoutDurationHours>
<wordCount>12</wordCount>
<rewardPool>
<li>Silver</li>
<li>ComponentIndustrial</li>
<li>Steel</li>
</rewardPool>
</li>
</comps>
</ThingDef>
<!-- Clean Wall Terminal -->
<ThingDef ParentName="WallTerminalBase">
<defName>FCP_Production_Clean_Wall_Terminal</defName>
<label>Clean Wall Terminal</label>
<description>A well-preserved pre-war computer terminal mounted to a wall. Can be used to research holotapes and may still contain data from before the war. Cannot be moved or claimed once placed.</description>
<graphicData>
<texPath>Things/Building/Production/FCP_Terminals/FCP_Wall_Mounted_Terminal/FCP_Clean_Terminal_Wall_Off</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>(1.5,1.5)</drawSize>
<drawOffset>(0,0.4,-0.35)</drawOffset>
<damageData>
<cornerTL>Damage/Corner</cornerTL>
<cornerTR>Damage/Corner</cornerTR>
</damageData>
</graphicData>
<statBases>
<MaxHitPoints>200</MaxHitPoints>
<Cleanliness>0</Cleanliness>
</statBases>
<comps>
<li Class="FCP.Core.Buildings.CompProperties_Terminal">
<poweredOnTexPath>Things/Building/Production/FCP_Terminals/FCP_Wall_Mounted_Terminal/FCP_Clean_Terminal_Wall_On</poweredOnTexPath>
<poweredOffTexPath>Things/Building/Production/FCP_Terminals/FCP_Wall_Mounted_Terminal/FCP_Clean_Terminal_Wall_Off</poweredOffTexPath>
<canExtractHolotape>true</canExtractHolotape>
<holotapeDropChance>0.1</holotapeDropChance>
</li>
<li Class="FCP.Core.Buildings.CompProperties_TerminalHacking">
<wordLength>9</wordLength>
<maxAttempts>4</maxAttempts>
<lockoutDurationHours>12</lockoutDurationHours>
<wordCount>15</wordCount>
<rewardPool>
<li>ComponentIndustrial</li>
<li>ComponentSpacer</li>
<li>Plasteel</li>
<li>Gold</li>
</rewardPool>
</li>
</comps>
</ThingDef>
</Defs>
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!--__________ Holotape Base __________-->
<ThingDef Name="FCP_HolotapeBase" Abstract="True">
<thingClass>ThingWithComps</thingClass>
<category>Item</category>
<drawerType>MapMeshOnly</drawerType>
<tickerType>Never</tickerType>
<altitudeLayer>Item</altitudeLayer>
<passability>PassThroughOnly</passability>
<selectable>true</selectable>
<pathCost>15</pathCost>
<useHitPoints>true</useHitPoints>
<statBases>
<MaxHitPoints>50</MaxHitPoints>
<Mass>0.1</Mass>
<Flammability>1.0</Flammability>
<DeteriorationRate>2</DeteriorationRate>
<Beauty>-2</Beauty>
</statBases>
<thingCategories>
<li>FCP_Holotapes</li>
</thingCategories>
<alwaysHaulable>true</alwaysHaulable>
<comps>
<li Class="CompProperties_Forbiddable"/>
</comps>
<graphicData>
<texPath>Things/Items/Techprints/FCP_Techprint_Holotape_Orange</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<tradeTags>
<li>ExoticMisc</li>
</tradeTags>
<thingSetMakerTags>
<li>RewardStandardMidFreq</li>
</thingSetMakerTags>
</ThingDef>
</Defs>
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!--__________ Holotape Thoughts __________-->
<!-- Read Holotape -->
<ThoughtDef>
<defName>FCP_ReadHolotape</defName>
<thoughtClass>Thought_Memory</thoughtClass>
<durationDays>1</durationDays>
<stackLimit>3</stackLimit>
<stackedEffectMultiplier>0.75</stackedEffectMultiplier>
<stages>
<li>
<label>read holotape</label>
<description>I learned something from that old recording. Fascinating stuff.</description>
<baseMoodEffect>3</baseMoodEffect>
</li>
</stages>
</ThoughtDef>
</Defs>