Add pre-war power line building and related assets

Introduce a new power line building (FCP_Building_PowerLine) with comps for gizmos, natural spawning and prisoner-strapping behavior; includes graphics (three orientation PNGs) and English localization keys for gizmos/messages/inspect. Add a patch (RoadDefs_AddPowerLines.xml) to place power lines along AncientAsphaltRoad and AncientAsphaltHighway. Also add several Legion-related thought defs (witnessed crucifixion, was crucified, crucified someone) to Thoughts_Misc.xml to support related events and mood effects.
This commit is contained in:
RickGrymes
2026-05-10 16:35:55 -05:00
parent ec83653832
commit db44f4031b
7 changed files with 182 additions and 0 deletions
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<!--__________ Pre-War Power Line __________-->
<ThingDef ParentName="BuildingBase">
<defName>FCP_Building_PowerLine</defName>
<label>pre-war power line</label>
<description>An ancient electrical power line from before the war. Often found along old roads with victims who got too close.\n\nPrisoners can be strapped to it as punishment.</description>
<thingClass>FCP.Core.Buildings.Building_PowerLine</thingClass>
<category>Building</category>
<graphicData>
<texPath>Buildings/FCP_PowerLine/FCP_PowerLine</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>(5,5)</drawSize>
<shadowData>
<volume>(1.8, 0.6, 2.6)</volume>
</shadowData>
</graphicData>
<altitudeLayer>Building</altitudeLayer>
<passability>PassThroughOnly</passability>
<fillPercent>0.5</fillPercent>
<pathCost>70</pathCost>
<castEdgeShadows>true</castEdgeShadows>
<statBases>
<MaxHitPoints>100</MaxHitPoints>
<Mass>35</Mass>
<Flammability>1.0</Flammability>
</statBases>
<size>(1,1)</size>
<comps>
<li Class="CompProperties_Forbiddable"/>
<li Class="FCP.Core.Buildings.CompProperties_PowerLine">
<drawOffset>(0, 0, 1.5)</drawOffset>
</li>
<li Class="FCP.Core.Buildings.CompProperties_PowerLineGizmos">
</li>
<li Class="FCP.Core.Buildings.CompProperties_NaturalPowerLine">
<allowedFactions>
<li>Pirate</li>
<li>TribeCivil</li>
<li>TribeRough</li>
<li>OutlanderCivil</li>
<li>OutlanderRough</li>
</allowedFactions>
<pawnDeadChance>0.5~0.9</pawnDeadChance>
<alwaysHasPawn>false</alwaysHasPawn>
</li>
</comps>
<building>
<destroySound>BuildingDestroyed_Wood_Small</destroySound>
<claimable>true</claimable>
</building>
<startingHpRange>0.3~1</startingHpRange>
<rotatable>true</rotatable>
<minifiedDef>MinifiedThing</minifiedDef>
<thingCategories>
<li>BuildingsMisc</li>
</thingCategories>
<terrainAffordanceNeeded>Light</terrainAffordanceNeeded>
<leaveResourcesWhenKilled>false</leaveResourcesWhenKilled>
</ThingDef>
</Defs>
+50
View File
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<Defs>
<!--__________ Thought Defs __________-->
<!-- Turned in a slave -->
<ThoughtDef>
<defName>FCP_Legion_Turned_In_A_Slave</defName>
<durationDays>4</durationDays>
@@ -15,4 +19,50 @@
</stages>
</ThoughtDef>
<!-- Witnessed crucifixion -->
<ThoughtDef>
<defName>FCP_Legion_WitnessedCrucifixion</defName>
<durationDays>5</durationDays>
<stackLimit>3</stackLimit>
<stackedEffectMultiplier>0.75</stackedEffectMultiplier>
<stages>
<li>
<label>witnessed crucifixion</label>
<description>I saw someone crucified. The Legion's justice is brutal but effective.</description>
<baseMoodEffect>-3</baseMoodEffect>
</li>
</stages>
</ThoughtDef>
<!-- Was crucified -->
<ThoughtDef>
<defName>FCP_Legion_WasCrucified</defName>
<durationDays>30</durationDays>
<stages>
<li>
<label>was crucified</label>
<description>I was nailed to a cross and left to suffer. The pain and humiliation will haunt me forever.</description>
<baseMoodEffect>-15</baseMoodEffect>
</li>
</stages>
</ThoughtDef>
<!-- Crucified someone -->
<ThoughtDef>
<defName>FCP_Legion_CrucifiedSomeone</defName>
<durationDays>3</durationDays>
<stackLimit>5</stackLimit>
<stackedEffectMultiplier>0.8</stackedEffectMultiplier>
<stages>
<li>
<label>crucified someone</label>
<description>I crucified someone. It was brutal work.</description>
<baseMoodEffect>-2</baseMoodEffect>
</li>
</stages>
</ThoughtDef>
</Defs>
+48
View File
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8" ?>
<Patch>
<!-- Add power line placement to Ancient Asphalt Road -->
<Operation Class="PatchOperationAdd">
<xpath>/Defs/RoadDef[defName="AncientAsphaltRoad"]/roadGenSteps</xpath>
<value>
<li Class="RoadDefGenStep_Place">
<chancePerPositionCurve>
<points>
<li>(0, 0)</li>
<li>(2.0, 0)</li>
<li>(2.5, 0.6)</li>
<li>(3.2, 0)</li>
</points>
</chancePerPositionCurve>
<suppressOnTerrainTag>Water</suppressOnTerrainTag>
<place>FCP_Building_PowerLine</place>
<periodicSpacing>24</periodicSpacing>
<proximitySpacing>6</proximitySpacing>
</li>
</value>
</Operation>
<!-- Add power line placement to Ancient Asphalt Highway -->
<Operation Class="PatchOperationAdd">
<xpath>/Defs/RoadDef[defName="AncientAsphaltHighway"]/roadGenSteps</xpath>
<value>
<li Class="RoadDefGenStep_Place">
<chancePerPositionCurve>
<points>
<li>(0, 0)</li>
<li>(3.2, 0)</li>
<li>(3.8, 0.5)</li>
<li>(4.5, 0)</li>
</points>
</chancePerPositionCurve>
<suppressOnTerrainTag>Water</suppressOnTerrainTag>
<place>FCP_Building_PowerLine</place>
<periodicSpacing>20</periodicSpacing>
<proximitySpacing>6</proximitySpacing>
</li>
</value>
</Operation>
</Patch>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" ?>
<LanguageData>
<!-- Power Line Gizmos -->
<FCP_StrapToPowerLine>Strap to power line</FCP_StrapToPowerLine>
<FCP_StrapToPowerLineDesc>Select a prisoner to strap to this power line.</FCP_StrapToPowerLineDesc>
<FCP_RemoveFromPowerLineDesc>Order a colonist to remove this person from the power line.</FCP_RemoveFromPowerLineDesc>
<FCP_SelectColonistToRemove>A colonist will be sent to remove the prisoner from the power line.</FCP_SelectColonistToRemove>
<FCP_NoPrisoners>No prisoners available</FCP_NoPrisoners>
<!-- Power Line Messages -->
<FCP_StrapPawn>Strap {0}</FCP_StrapPawn>
<FCP_RemoveFromPowerLine>Remove {0} from power line</FCP_RemoveFromPowerLine>
<FCP_PawnStrapped>{0} has been strapped to the power line.</FCP_PawnStrapped>
<FCP_PawnRemovedFromPowerLine>{0} has been removed from the power line.</FCP_PawnRemovedFromPowerLine>
<!-- Inspect String -->
<FCP_ContainedPawn>Strapped: {0}</FCP_ContainedPawn>
</LanguageData>
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB