This commit is contained in:
2025-11-03 12:04:10 +08:00
parent 242866bada
commit d72edae9a3
28 changed files with 1709 additions and 633 deletions

View File

@@ -24,6 +24,12 @@
<!-- 易燃性 -->
<Flammability>0.05</Flammability>
</statFactors>
<capMods>
<li>
<capacity>Consciousness</capacity>
<offset>0.25</offset>
</li>
</capMods>
<!-- 免疫非纳米机械疾病 -->
<makeImmuneTo>
<li>Flu</li>
@@ -38,6 +44,7 @@
</makeImmuneTo>
<enablesNeeds>
<li>WULA_Energy</li>
<li>WULA_MaintenanceNeed</li>
</enablesNeeds>
<disablesNeeds>
<li>Food</li>
@@ -45,6 +52,11 @@
</disablesNeeds>
</li>
</stages>
<comps>
<li Class="WulaFallenEmpire.HediffCompProperties_MaintenanceDamage">
<damageToMaintenanceFactor>0.0025</damageToMaintenanceFactor> <!-- 1点伤害 = 0.25%维护度减少 -->
</li>
</comps>
</HediffDef>
<HediffDef>
<defName>WULA_ChargingHediff</defName>
@@ -68,73 +80,67 @@
</li>
</stages>
</HediffDef>
<HediffDef>
<defName>WULA_Maintenance_Neglect</defName>
<defName>WULA_Maintenance_MinorBreakdown</defName>
<label>维护</label>
<description>乌拉帝国合成人因为设计的过于繁琐,导致需要频繁维护。当她们处于良好维护状态时,各方面的能力都会有所上升,反之如果常年得不到维护或是短时间受到大量伤害,则其将变得难以自主运行甚至直接停机!</description>
<description>这台乌拉帝国合成人已经在环境恶劣的边缘世界活跃了一段时间,尽管总体状态良好但是已经有了一些小瑕疵。</description>
<hediffClass>Hediff_High</hediffClass>
<defaultLabelColor>(0.8, 0.35, 0.35)</defaultLabelColor>
<isBad>false</isBad>
<initialSeverity>0</initialSeverity>
<minSeverity>0</minSeverity>
<maxSeverity>2.0</maxSeverity>
<!--<lethalSeverity>2</lethalSeverity>-->
<comps>
<li Class="WulaFallenEmpire.HediffCompProperties_MaintenanceNeed">
<thresholdDays>60</thresholdDays>
<!-- 60天内严重性达到1.0 (1.0 / 60 = 0.0166) -->
<severityPerDayBeforeThreshold>0.0166</severityPerDayBeforeThreshold>
<!-- 达到阈值后在30天内从1.0增长到2.0 (1.0 / 30 ≈ 0.03333) -->
<severityPerDayAfterThreshold>0.03333</severityPerDayAfterThreshold>
</li>
<li Class="WulaFallenEmpire.HediffCompProperties_DamageResponse">
<severityIncreasePerDamage>0.005</severityIncreasePerDamage>
</li>
</comps>
<minSeverity>0.1</minSeverity>
<initialSeverity>0.5</initialSeverity>
<maxSeverity>1.0</maxSeverity>
<stages>
<li>
<label>极佳</label>
<label>轻微损坏</label>
<minSeverity>0</minSeverity>
<capMods>
<li>
<capacity>Consciousness</capacity>
<offset>0.1</offset>
</li>
</capMods>
</li>
<li>
<label>稳定</label>
<minSeverity>0.5</minSeverity>
<capMods>
<li>
<capacity>Consciousness</capacity>
<offset>0</offset>
</li>
</capMods>
</li>
<li>
<label>需要</label>
<minSeverity>0.75</minSeverity>
<capMods>
<li>
<capacity>Consciousness</capacity>
<offset>-0.20</offset>
<offset>-0.25</offset>
</li>
</capMods>
</li>
</stages>
</HediffDef>
<HediffDef>
<defName>WULA_Maintenance_MajorBreakdown</defName>
<label>维护</label>
<description>这台乌拉帝国合成人有一段时间没有进行维护了,运行起来相当吃力。</description>
<hediffClass>Hediff_High</hediffClass>
<defaultLabelColor>(0.8, 0.35, 0.35)</defaultLabelColor>
<isBad>false</isBad>
<minSeverity>0.1</minSeverity>
<initialSeverity>0.5</initialSeverity>
<maxSeverity>1.0</maxSeverity>
<stages>
<li>
<label>损坏</label>
<minSeverity>1.0</minSeverity>
<minSeverity>0</minSeverity>
<capMods>
<li>
<capacity>Consciousness</capacity>
<setMax>0.5</setMax>
<offset>-0.25</offset>
</li>
</capMods>
</li>
</stages>
</HediffDef>
<HediffDef>
<defName>WULA_Maintenance_CriticalFailuren</defName>
<label>维护</label>
<description>这台乌拉帝国合成人几乎无法运作了,需要立刻进行维护,否则就只是一堆废铁。</description>
<hediffClass>Hediff_High</hediffClass>
<defaultLabelColor>(0.8, 0.35, 0.35)</defaultLabelColor>
<isBad>false</isBad>
<minSeverity>0.1</minSeverity>
<initialSeverity>0.5</initialSeverity>
<maxSeverity>1.0</maxSeverity>
<stages>
<li>
<label>崩坏</label>
<minSeverity>2.0</minSeverity>
<minSeverity>0</minSeverity>
<capMods>
<li>
<capacity>Consciousness</capacity>
@@ -321,9 +327,9 @@
<activeSeverity>0.5</activeSeverity>
<inactiveSeverity>1.5</inactiveSeverity>
<minEnergyThreshold>0.1</minEnergyThreshold>
<repairCostPerHP>0.01</repairCostPerHP>
<repairCooldownAfterDamage>1200</repairCooldownAfterDamage>
<repairCostPerHP>0.02</repairCostPerHP>
<repairCooldownAfterDamage>600</repairCooldownAfterDamage>
</li>
</comps>
</comps>
</HediffDef>
</Defs>

View File

@@ -29,5 +29,4 @@
<allowOpportunisticPrefix>true</allowOpportunisticPrefix>
<casualInterruptible>false</casualInterruptible>
</JobDef>
</Defs>

View File

@@ -23,4 +23,28 @@
</li>
</modExtensions>
</NeedDef>
<!-- 维护需求定义 -->
<NeedDef>
<defName>WULA_MaintenanceNeed</defName>
<label>维护</label>
<needClass>WulaFallenEmpire.Need_Maintenance</needClass>
<description>乌拉帝国的合成人因为设计的过于繁琐,导致需要频繁维护。当她们处于良好维护状态时,各方面的能力都会有所上升,反之如果常年得不到维护或是短时间受到大量伤害,则其将变得难以自主运行甚至直接停机!</description>
<major>true</major>
<onlyIfCausedByHediff>true</onlyIfCausedByHediff>
<listPriority>799</listPriority>
<showOnNeedList>true</showOnNeedList>
<freezeWhileSleeping>false</freezeWhileSleeping>
<freezeInMentalState>false</freezeInMentalState>
<modExtensions>
<li Class="WulaFallenEmpire.MaintenanceNeedExtension">
<severityPerDayBeforeThreshold>0.05</severityPerDayBeforeThreshold> <!-- 严重退化前的速率 -->
<severityPerDayAfterThreshold>0.1</severityPerDayAfterThreshold> <!-- 严重退化前的速率 -->
<thresholdDays>5</thresholdDays> <!-- 严重退化预期天数 -->
<maintenanceWorkType>PatientBedRest</maintenanceWorkType>
<minorBreakdownHediff>WULA_Maintenance_MinorBreakdown</minorBreakdownHediff>
<majorBreakdownHediff>WULA_Maintenance_MajorBreakdown</majorBreakdownHediff>
<criticalFailureHediff>WULA_Maintenance_CriticalFailuren</criticalFailureHediff>
</li>
</modExtensions>
</NeedDef>
</Defs>

View File

@@ -147,9 +147,6 @@
<destroySound>BuildingDestroyed_Metal_Small</destroySound>
<turretBurstCooldownTime>3.5</turretBurstCooldownTime>
</building>
<thingCategories>
<li>BuildingsMisc</li>
</thingCategories>
<comps>
<li Class="WulaFallenEmpire.CompProperties_MechanoidRecycler">
<maxStorageCapacity>6</maxStorageCapacity>
@@ -230,4 +227,84 @@
</li>
</verbs>
</ThingDef>
<!-- 制造机 -->
<ThingDef ParentName="BenchBase">
<defName>WULA_Cube_Productor_BIO</defName>
<label>乌拉帝国编织体(生物能)</label>
<description>一台仿制乌拉帝国科技而建造的塑性构造体,不仅要消耗大量木头用以提供生物能,还只能生产基础的衣物和能源核心用以维持生存——不过它很轻,可以随探险队一起移动。</description>
<thingClass>WulaFallenEmpire.Building_GlobalWorkTable</thingClass>
<drawerType>MapMeshAndRealTime</drawerType>
<graphicData>
<texPath>Wula/Building/WULA_Cube_Productor_BIO</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>(1,1)</drawSize>
<damageData>
<enabled>false</enabled>
</damageData>
<shadowData>
<volume>(0.75, 0.75, 0.5)</volume>
</shadowData>
</graphicData>
<constructEffect>ConstructMetal</constructEffect>
<costList>
<Steel>50</Steel>
</costList>
<altitudeLayer>Building</altitudeLayer>
<castEdgeShadows>false</castEdgeShadows>
<fillPercent>0.5</fillPercent>
<useHitPoints>True</useHitPoints>
<statBases>
<Mass>5</Mass>
<WorkToBuild>2000</WorkToBuild>
<MaxHitPoints>180</MaxHitPoints>
<Flammability>1.0</Flammability>
<WorkTableWorkSpeedFactor>0.5</WorkTableWorkSpeedFactor>
</statBases>
<size>(1,1)</size>
<designationCategory>WULA_Buildings</designationCategory>
<uiOrder>2120</uiOrder>
<passability>PassThroughOnly</passability>
<pathCost>50</pathCost>
<hasInteractionCell>True</hasInteractionCell>
<interactionCellOffset>(0,0,-1)</interactionCellOffset>
<surfaceType>Item</surfaceType>
<researchPrerequisites>
<li>WULA_Base_Technology</li>
</researchPrerequisites>
<!-- 可用配方 -->
<recipes>
<li>Make_WULA_Charge_Cube</li>
<li>Recharge_WULA_Charge_Cube</li>
<li MayRequire="Ludeon.RimWorld.Anomaly">Wula_Make_Zro</li>
</recipes>
<inspectorTabs>
<li>WulaFallenEmpire.ITab_GlobalBills</li>
</inspectorTabs>
<comps>
<li Class="CompProperties_Refuelable">
<fuelConsumptionRate>300.0</fuelConsumptionRate>
<fuelCapacity>150.0</fuelCapacity>
<fuelFilter>
<thingDefs>
<li>WoodLog</li>
</thingDefs>
</fuelFilter>
<consumeFuelOnlyWhenUsed>true</consumeFuelOnlyWhenUsed>
<showAllowAutoRefuelToggle>true</showAllowAutoRefuelToggle>
</li>
<li Class="CompProperties_HeatPusher">
<compClass>CompHeatPusherPowered</compClass>
<heatPerSecond>4</heatPerSecond>
</li>
</comps>
<placeWorkers>
<li>PlaceWorker_PreventInteractionSpotOverlap</li>
</placeWorkers>
<building>
<!-- <isMealSource>true</isMealSource> -->
<spawnedConceptLearnOpportunity>BillsTab</spawnedConceptLearnOpportunity>
<heatPerTickWhileWorking>0.10</heatPerTickWhileWorking>
</building>
</ThingDef>
</Defs>

View File

@@ -807,18 +807,20 @@
<targetFuelLevelConfigurable>true</targetFuelLevelConfigurable>
</li>
<li Class="WulaFallenEmpire.CompProperties_MaintenancePod">
<baseDurationTicks>30000</baseDurationTicks> <!-- Merged from user feedback -->
<ticksPerSeverity>150000</ticksPerSeverity> <!-- Kept from previous change -->
<powerConsumptionRunning>500</powerConsumptionRunning>
<powerConsumptionIdle>25</powerConsumptionIdle>
<hediffToRemove>WULA_Maintenance_Neglect</hediffToRemove>
<componentCostPerSeverity>2</componentCostPerSeverity> <!-- 5 components per 100% severity -->
<baseComponentCost>1</baseComponentCost>
<!-- <minSeverityToMaintain>0.75</minSeverityToMaintain> -->
<hediffSeverityAfterCycle>0.01</hediffSeverityAfterCycle>
<enterSound>BiosculpterPod_Enter</enterSound>
<exitSound>BiosculpterPod_Exit</exitSound>
<operatingEffecter>BiosculpterPod_Operating</operatingEffecter>
<baseDurationTicks>30000</baseDurationTicks> <!-- 1天 -->
<ticksPerNeedLevel>150000</ticksPerNeedLevel> <!-- 每降低1点需求需要2天 -->
<powerConsumptionRunning>500</powerConsumptionRunning>
<powerConsumptionIdle>25</powerConsumptionIdle>
<componentCostPerNeedLevel>2</componentCostPerNeedLevel>
<baseComponentCost>1</baseComponentCost>
<minNeedLevelToMaintain>0.3</minNeedLevelToMaintain>
<needLevelAfterCycle>1.0</needLevelAfterCycle>
<healInjuries>true</healInjuries>
<healMissingParts>true</healMissingParts>
<maxInjuriesHealedPerCycle>5</maxInjuriesHealedPerCycle>
</li>
</comps>
<placeWorkers>

View File

@@ -664,7 +664,7 @@
<!-- 血液,不流血 -->
<bloodDef>Filth_MachineBits</bloodDef>
<!-- 基础血量 -->
<baseHealthScale>1</baseHealthScale>
<baseHealthScale>1.2</baseHealthScale>
<!-- 解剖产物 -->
<leatherDef>Steel</leatherDef>
<specificMeatDef>Steel</specificMeatDef>

View File

@@ -110,4 +110,16 @@
</modExtensions>
</WorkGiverDef>
<!-- 维护工作 -->
<WorkGiverDef>
<defName>WULA_DoMaintenanceWork</defName>
<workType>PatientBedRest</workType>
<giverClass>WulaFallenEmpire.WorkGiver_DoMaintenance</giverClass>
<priorityInType>100</priorityInType>
<verb>接受维护于</verb>
<gerund>接受维护于</gerund>
<emergency>false</emergency>
<scanCells>true</scanCells>
<directOrderable>true</directOrderable>
</WorkGiverDef>
</Defs>