开关自动生产,恐吓非虫族殖民者机制
This commit is contained in:
Binary file not shown.
@@ -31,6 +31,62 @@
|
|||||||
</li>
|
</li>
|
||||||
</comps>
|
</comps>
|
||||||
</AbilityDef>
|
</AbilityDef>
|
||||||
|
<AbilityDef>
|
||||||
|
<defName>ARA_RaceBaseSwarmProduceOn</defName>
|
||||||
|
<label>取消繁育抑制</label>
|
||||||
|
<description>重启该阿拉克涅督虫自动抚育辅虫的能力。</description>
|
||||||
|
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_BindDrone</iconPath>
|
||||||
|
<cooldownTicksRange>601</cooldownTicksRange>
|
||||||
|
<hostile>false</hostile>
|
||||||
|
<showOnCharacterCard>true</showOnCharacterCard>
|
||||||
|
<aiCanUse>false</aiCanUse>
|
||||||
|
<verbProperties>
|
||||||
|
<verbClass>Verb_CastAbility</verbClass>
|
||||||
|
<warmupTime>0</warmupTime>
|
||||||
|
<drawAimPie>false</drawAimPie>
|
||||||
|
<requireLineOfSight>false</requireLineOfSight>
|
||||||
|
<targetable>false</targetable>
|
||||||
|
<targetParams>
|
||||||
|
<canTargetSelf>true</canTargetSelf>
|
||||||
|
</targetParams>
|
||||||
|
</verbProperties>
|
||||||
|
<comps>
|
||||||
|
<!-- 这是正确的用法 -->
|
||||||
|
<li Class="RimWorld.CompProperties_AbilityRemoveHediff">
|
||||||
|
<compClass>ArachnaeSwarm.CompAbilityEffect_RemoveSwitchHediff</compClass>
|
||||||
|
<hediffDef>ARA_RaceBaseSwarmProduceSwitchHediff</hediffDef>
|
||||||
|
<applyToSelf>true</applyToSelf>
|
||||||
|
</li>
|
||||||
|
</comps>
|
||||||
|
</AbilityDef>
|
||||||
|
<AbilityDef>
|
||||||
|
<defName>ARA_RaceBaseSwarmProduceOff</defName>
|
||||||
|
<label>繁育抑制</label>
|
||||||
|
<description>关闭该阿拉克涅督虫自动抚育辅虫的能力。</description>
|
||||||
|
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_BindDrone</iconPath>
|
||||||
|
<cooldownTicksRange>601</cooldownTicksRange>
|
||||||
|
<hostile>false</hostile>
|
||||||
|
<showOnCharacterCard>true</showOnCharacterCard>
|
||||||
|
<aiCanUse>false</aiCanUse>
|
||||||
|
<verbProperties>
|
||||||
|
<verbClass>Verb_CastAbility</verbClass>
|
||||||
|
<warmupTime>0</warmupTime>
|
||||||
|
<drawAimPie>false</drawAimPie>
|
||||||
|
<requireLineOfSight>false</requireLineOfSight>
|
||||||
|
<targetable>false</targetable>
|
||||||
|
<targetParams>
|
||||||
|
<canTargetSelf>true</canTargetSelf>
|
||||||
|
</targetParams>
|
||||||
|
</verbProperties>
|
||||||
|
<comps>
|
||||||
|
<li Class="RimWorld.CompProperties_AbilityGiveHediff">
|
||||||
|
<compClass>ArachnaeSwarm.CompAbilityEffect_GiveSwitchHediff</compClass>
|
||||||
|
<hediffDef>ARA_RaceBaseSwarmProduceSwitchHediff</hediffDef>
|
||||||
|
<applyToSelf>true</applyToSelf>
|
||||||
|
</li>
|
||||||
|
</comps>
|
||||||
|
</AbilityDef>
|
||||||
|
|
||||||
<AbilityDef>
|
<AbilityDef>
|
||||||
<defName>ARA_TrapSpew</defName>
|
<defName>ARA_TrapSpew</defName>
|
||||||
<label>酸爆茧投射</label>
|
<label>酸爆茧投射</label>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<requiresSpawnCategory>true</requiresSpawnCategory>
|
<requiresSpawnCategory>true</requiresSpawnCategory>
|
||||||
<forcedTraitsChance>
|
<forcedTraitsChance>
|
||||||
<li>
|
<li>
|
||||||
<defName Degree="1">ARA_CreepyCrawly</defName>
|
<defName Degree="0">ARA_CreepyCrawly</defName>
|
||||||
<chance>100</chance>
|
<chance>100</chance>
|
||||||
</li>
|
</li>
|
||||||
</forcedTraitsChance>
|
</forcedTraitsChance>
|
||||||
|
|||||||
@@ -9,11 +9,6 @@
|
|||||||
<isBad>false</isBad>
|
<isBad>false</isBad>
|
||||||
<scenarioCanAdd>false</scenarioCanAdd>
|
<scenarioCanAdd>false</scenarioCanAdd>
|
||||||
<maxSeverity>100</maxSeverity>
|
<maxSeverity>100</maxSeverity>
|
||||||
<comps>
|
|
||||||
<li Class="ArachnaeSwarm.HediffCompProperties_HiveMindMaster">
|
|
||||||
<scanIntervalTicks>3200</scanIntervalTicks>
|
|
||||||
</li>
|
|
||||||
</comps>
|
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
<label>连接至 {0} 个虫群工蜂</label>
|
<label>连接至 {0} 个虫群工蜂</label>
|
||||||
@@ -33,8 +28,12 @@
|
|||||||
</enablesNeeds>
|
</enablesNeeds>
|
||||||
</li>
|
</li>
|
||||||
</stages>
|
</stages>
|
||||||
|
<comps>
|
||||||
|
<li Class="ArachnaeSwarm.HediffCompProperties_HiveMindMaster">
|
||||||
|
<scanIntervalTicks>3200</scanIntervalTicks>
|
||||||
|
</li>
|
||||||
|
</comps>
|
||||||
</HediffDef>
|
</HediffDef>
|
||||||
|
|
||||||
<HediffDef>
|
<HediffDef>
|
||||||
<defName>ARA_HiveMindDrone</defName>
|
<defName>ARA_HiveMindDrone</defName>
|
||||||
<label>阿拉克涅督虫</label>
|
<label>阿拉克涅督虫</label>
|
||||||
@@ -43,17 +42,6 @@
|
|||||||
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
|
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
|
||||||
<isBad>false</isBad>
|
<isBad>false</isBad>
|
||||||
<scenarioCanAdd>false</scenarioCanAdd>
|
<scenarioCanAdd>false</scenarioCanAdd>
|
||||||
<comps>
|
|
||||||
<li Class="ArachnaeSwarm.HediffCompProperties_HiveMindDrone">
|
|
||||||
<unlinkedDieDelayTicks>6400</unlinkedDieDelayTicks> <!-- Default to 30 seconds -->
|
|
||||||
</li>
|
|
||||||
<li Class="HediffCompProperties_MessageAfterTicks">
|
|
||||||
<ticks>1</ticks>
|
|
||||||
<letterLabel>{0_labelShort} 诞生</letterLabel>
|
|
||||||
<letterText>一只新的阿拉克涅督虫 {0_labelShort} 已经破茧而出!她正在四处徘徊,等待女皇种的指示——使用阿拉克涅女皇种的信息素标记技能完成链接,或者等待其自行建立链接。</letterText>
|
|
||||||
<letterType>HumanPregnancy</letterType>
|
|
||||||
</li>
|
|
||||||
</comps>
|
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
<minSeverity>0</minSeverity>
|
<minSeverity>0</minSeverity>
|
||||||
@@ -70,8 +58,24 @@
|
|||||||
</disablesNeeds>
|
</disablesNeeds>
|
||||||
</li>
|
</li>
|
||||||
</stages>
|
</stages>
|
||||||
|
<comps>
|
||||||
|
<li Class="ArachnaeSwarm.HediffCompProperties_HiveMindDrone">
|
||||||
|
<unlinkedDieDelayTicks>6400</unlinkedDieDelayTicks> <!-- Default to 30 seconds -->
|
||||||
|
</li>
|
||||||
|
<li Class="HediffCompProperties_MessageAfterTicks">
|
||||||
|
<ticks>1</ticks>
|
||||||
|
<letterLabel>{0_labelShort} 诞生</letterLabel>
|
||||||
|
<letterText>一只新的阿拉克涅督虫 {0_labelShort} 已经破茧而出!她正在四处徘徊,等待女皇种的指示——使用阿拉克涅女皇种的信息素标记技能完成链接,或者等待其自行建立链接。</letterText>
|
||||||
|
<letterType>HumanPregnancy</letterType>
|
||||||
|
</li>
|
||||||
|
<li Class="HediffCompProperties_GiveAbility">
|
||||||
|
<abilityDefs>
|
||||||
|
<li>ARA_RaceBaseSwarmProduceOn</li>
|
||||||
|
<li>ARA_RaceBaseSwarmProduceOff</li>
|
||||||
|
</abilityDefs>
|
||||||
|
</li>
|
||||||
|
</comps>
|
||||||
</HediffDef>
|
</HediffDef>
|
||||||
|
|
||||||
<HediffDef>
|
<HediffDef>
|
||||||
<defName>ARA_HiveMindWorker</defName>
|
<defName>ARA_HiveMindWorker</defName>
|
||||||
<label>阿拉克涅辅虫</label>
|
<label>阿拉克涅辅虫</label>
|
||||||
@@ -92,4 +96,39 @@
|
|||||||
</li>
|
</li>
|
||||||
</stages>
|
</stages>
|
||||||
</HediffDef>
|
</HediffDef>
|
||||||
|
|
||||||
|
<HediffDef>
|
||||||
|
<defName>ARA_CreepyCrawly_Hediff</defName>
|
||||||
|
<label>原始恐惧</label>
|
||||||
|
<description>受不了了,快把这些虫子从我身边支开!</description>
|
||||||
|
<hediffClass>HediffWithComps</hediffClass>
|
||||||
|
<defaultLabelColor>(0.52, 1, 0.95)</defaultLabelColor>
|
||||||
|
<comps>
|
||||||
|
<li Class="HediffCompProperties_Disappears">
|
||||||
|
<disappearsAfterTicks>30</disappearsAfterTicks>
|
||||||
|
<showRemainingTime>false</showRemainingTime>
|
||||||
|
</li>
|
||||||
|
<li Class="HediffCompProperties_DisappearsOnDeath"/>
|
||||||
|
<li Class="HediffCompProperties_Link">
|
||||||
|
<requireLinkOnOtherPawn>false</requireLinkOnOtherPawn>
|
||||||
|
</li>
|
||||||
|
</comps>
|
||||||
|
<stages>
|
||||||
|
<li>
|
||||||
|
<minSeverity>0</minSeverity>
|
||||||
|
<becomeVisible>false</becomeVisible>
|
||||||
|
</li>
|
||||||
|
</stages>
|
||||||
|
<isBad>false</isBad>
|
||||||
|
</HediffDef>
|
||||||
|
|
||||||
|
<HediffDef>
|
||||||
|
<defName>ARA_RaceBaseSwarmProduceSwitchHediff</defName>
|
||||||
|
<label>繁育抑制</label>
|
||||||
|
<description>该阿拉克涅督虫已被蜂巢思维禁止进行辅虫的繁育。</description>
|
||||||
|
<hediffClass>HediffWithComps</hediffClass>
|
||||||
|
<isBad>false</isBad>
|
||||||
|
<defaultLabelColor>(0.6, 0.6, 0.6)</defaultLabelColor>
|
||||||
|
<scenarioCanAdd>false</scenarioCanAdd>
|
||||||
|
</HediffDef>
|
||||||
</Defs>
|
</Defs>
|
||||||
@@ -119,6 +119,8 @@
|
|||||||
</backstoryFiltersOverride>
|
</backstoryFiltersOverride>
|
||||||
<abilities>
|
<abilities>
|
||||||
<li>ARA_AcidSprayBurst</li>
|
<li>ARA_AcidSprayBurst</li>
|
||||||
|
<li>ARA_RaceBaseSwarmProduceOff</li>
|
||||||
|
<li>ARA_RaceBaseSwarmProduceOn</li>
|
||||||
</abilities>
|
</abilities>
|
||||||
<apparelTags>
|
<apparelTags>
|
||||||
</apparelTags>
|
</apparelTags>
|
||||||
@@ -143,6 +145,8 @@
|
|||||||
<apparelMoney>0</apparelMoney>
|
<apparelMoney>0</apparelMoney>
|
||||||
<abilities>
|
<abilities>
|
||||||
<li>ARA_Ability_TrackingCharge</li>
|
<li>ARA_Ability_TrackingCharge</li>
|
||||||
|
<li>ARA_RaceBaseSwarmProduceOff</li>
|
||||||
|
<li>ARA_RaceBaseSwarmProduceOn</li>
|
||||||
</abilities>
|
</abilities>
|
||||||
</PawnKindDef>
|
</PawnKindDef>
|
||||||
<PawnKindDef ParentName="ArachnaeNodeABasePawnKind">
|
<PawnKindDef ParentName="ArachnaeNodeABasePawnKind">
|
||||||
@@ -162,6 +166,10 @@
|
|||||||
<apparelTags>
|
<apparelTags>
|
||||||
</apparelTags>
|
</apparelTags>
|
||||||
<apparelMoney>0</apparelMoney>
|
<apparelMoney>0</apparelMoney>
|
||||||
|
<abilities>
|
||||||
|
<li>ARA_RaceBaseSwarmProduceOff</li>
|
||||||
|
<li>ARA_RaceBaseSwarmProduceOn</li>
|
||||||
|
</abilities>
|
||||||
</PawnKindDef>
|
</PawnKindDef>
|
||||||
<PawnKindDef ParentName="ArachnaeNodeABasePawnKind">
|
<PawnKindDef ParentName="ArachnaeNodeABasePawnKind">
|
||||||
<defName>ArachnaeNode_Race_Facehugger</defName>
|
<defName>ArachnaeNode_Race_Facehugger</defName>
|
||||||
@@ -223,6 +231,8 @@
|
|||||||
</backstoryFiltersOverride>
|
</backstoryFiltersOverride>
|
||||||
<abilities>
|
<abilities>
|
||||||
<li>ARA_Ability_Smokepop</li>
|
<li>ARA_Ability_Smokepop</li>
|
||||||
|
<li>ARA_RaceBaseSwarmProduceOff</li>
|
||||||
|
<li>ARA_RaceBaseSwarmProduceOn</li>
|
||||||
</abilities>
|
</abilities>
|
||||||
<apparelTags>
|
<apparelTags>
|
||||||
</apparelTags>
|
</apparelTags>
|
||||||
|
|||||||
@@ -187,191 +187,4 @@
|
|||||||
</li>
|
</li>
|
||||||
</comps>
|
</comps>
|
||||||
</StorytellerDef>
|
</StorytellerDef>
|
||||||
<StorytellerDef ParentName="BaseStoryteller">
|
|
||||||
<defName>ARA_Lyne_Angry</defName>
|
|
||||||
<label>「织域种」蛉</label>
|
|
||||||
<description>看起来不太高兴的蛉,不会启用阿拉克涅虫群的新手教学,并且会毫无节制地发送各种袭击——往好处想,至少殖民地不缺吃的了。</description>
|
|
||||||
<portraitLarge>ArachnaeSwarm/Storyteller/ARA_Lyne_Angry</portraitLarge>
|
|
||||||
<portraitTiny>ArachnaeSwarm/Storyteller/ARA_Lyne_Angry_TINY</portraitTiny>
|
|
||||||
<listOrder>20</listOrder>
|
|
||||||
<comps>
|
|
||||||
<!-- Intro -->
|
|
||||||
<!-- <li Class="StorytellerCompProperties_ClassicIntro"/> -->
|
|
||||||
<!-- 袭击生成器 -->
|
|
||||||
<li Class="StorytellerCompProperties_OnOffCycle">
|
|
||||||
<category>ThreatBig</category> <!-- 大型袭击 -->
|
|
||||||
<minDaysPassed>15.0</minDaysPassed> <!-- 最低在15日后开始生成 -->
|
|
||||||
<onDays>1</onDays> <!-- 每个周期(12天)有多少天允许生成袭击 -->
|
|
||||||
<offDays>0</offDays> <!-- 每个周期(12天)有多少天不生成袭击 -->
|
|
||||||
<minSpacingDays>0.25</minSpacingDays> <!-- 事件最小间隔 -->
|
|
||||||
<numIncidentsRange>2~3</numIncidentsRange> <!-- 事件点数 -->
|
|
||||||
<!-- <forceRaidEnemyBeforeDaysPassed>20</forceRaidEnemyBeforeDaysPassed> -->
|
|
||||||
<disallowedTargetTags>
|
|
||||||
<li>Map_RaidBeacon</li>
|
|
||||||
</disallowedTargetTags>
|
|
||||||
</li>
|
|
||||||
<li Class="StorytellerCompProperties_OnOffCycle">
|
|
||||||
<category>ThreatSmall</category>
|
|
||||||
<minDaysPassed>11.0</minDaysPassed>
|
|
||||||
<onDays>1</onDays>
|
|
||||||
<offDays>0</offDays>
|
|
||||||
<numIncidentsRange>0.2~1</numIncidentsRange>
|
|
||||||
<acceptPercentFactorPerThreatPointsCurve>
|
|
||||||
<points>
|
|
||||||
<li>(800, 1)</li>
|
|
||||||
<li>(2800, 0)</li>
|
|
||||||
</points>
|
|
||||||
</acceptPercentFactorPerThreatPointsCurve>
|
|
||||||
</li>
|
|
||||||
<li Class="StorytellerCompProperties_ThreatsGenerator">
|
|
||||||
<allowedTargetTags>
|
|
||||||
<li>Map_RaidBeacon</li>
|
|
||||||
</allowedTargetTags>
|
|
||||||
<parms>
|
|
||||||
<allowedThreats>Raids</allowedThreats>
|
|
||||||
<onDays>1.0</onDays>
|
|
||||||
<offDays>0</offDays>
|
|
||||||
<minSpacingDays>0.04</minSpacingDays>
|
|
||||||
<numIncidentsRange>1~2</numIncidentsRange>
|
|
||||||
<minThreatPoints>500</minThreatPoints>
|
|
||||||
</parms>
|
|
||||||
</li>
|
|
||||||
<!-- Home misc incidents-->
|
|
||||||
<li Class="StorytellerCompProperties_CategoryMTB">
|
|
||||||
<category>Misc</category>
|
|
||||||
<allowedTargetTags>
|
|
||||||
<li>Map_PlayerHome</li>
|
|
||||||
</allowedTargetTags>
|
|
||||||
<minDaysPassed>5</minDaysPassed>
|
|
||||||
<mtbDays>4.8</mtbDays>
|
|
||||||
</li>
|
|
||||||
<li Class="StorytellerCompProperties_ShipChunkDrop"/>
|
|
||||||
<li Class="StorytellerCompProperties_Disease">
|
|
||||||
<category>DiseaseHuman</category>
|
|
||||||
<minDaysPassed>9</minDaysPassed>
|
|
||||||
</li>
|
|
||||||
<li Class="StorytellerCompProperties_Disease">
|
|
||||||
<category>DiseaseAnimal</category>
|
|
||||||
<minDaysPassed>9</minDaysPassed>
|
|
||||||
</li>
|
|
||||||
<!-- Ally/neutral interaction -->
|
|
||||||
<li Class="StorytellerCompProperties_FactionInteraction">
|
|
||||||
<incident>RaidFriendly</incident>
|
|
||||||
<baseIncidentsPerYear>15</baseIncidentsPerYear>
|
|
||||||
<minSpacingDays>0.4</minSpacingDays>
|
|
||||||
<fullAlliesOnly>true</fullAlliesOnly>
|
|
||||||
<minDanger>High</minDanger>
|
|
||||||
</li>
|
|
||||||
<li Class="StorytellerCompProperties_FactionInteraction">
|
|
||||||
<incident>TraderCaravanArrival</incident>
|
|
||||||
<minDaysPassed>5</minDaysPassed>
|
|
||||||
<baseIncidentsPerYear>5</baseIncidentsPerYear>
|
|
||||||
<minSpacingDays>6</minSpacingDays>
|
|
||||||
<allowedTargetTags>
|
|
||||||
<li>Map_PlayerHome</li>
|
|
||||||
</allowedTargetTags>
|
|
||||||
</li>
|
|
||||||
<li Class="StorytellerCompProperties_FactionInteraction">
|
|
||||||
<incident>VisitorGroup</incident>
|
|
||||||
<minDaysPassed>3</minDaysPassed>
|
|
||||||
<baseIncidentsPerYear>4</baseIncidentsPerYear>
|
|
||||||
<minSpacingDays>5</minSpacingDays>
|
|
||||||
<allowedTargetTags>
|
|
||||||
<li>Map_PlayerHome</li>
|
|
||||||
</allowedTargetTags>
|
|
||||||
</li>
|
|
||||||
<li Class="StorytellerCompProperties_FactionInteraction">
|
|
||||||
<incident>TravelerGroup</incident>
|
|
||||||
<minDaysPassed>1</minDaysPassed>
|
|
||||||
<baseIncidentsPerYear>6</baseIncidentsPerYear>
|
|
||||||
<minSpacingDays>1</minSpacingDays>
|
|
||||||
<allowedTargetTags>
|
|
||||||
<li>Map_PlayerHome</li>
|
|
||||||
</allowedTargetTags>
|
|
||||||
</li>
|
|
||||||
<!-- Caravan / temp map -->
|
|
||||||
<li Class="StorytellerCompProperties_CategoryIndividualMTBByBiome">
|
|
||||||
<category>Misc</category>
|
|
||||||
<allowedTargetTags>
|
|
||||||
<li>Caravan</li>
|
|
||||||
<li>Map_TempIncident</li>
|
|
||||||
</allowedTargetTags>
|
|
||||||
</li>
|
|
||||||
<li Class="StorytellerCompProperties_CategoryIndividualMTBByBiome">
|
|
||||||
<category>ThreatSmall</category>
|
|
||||||
<applyCaravanVisibility>true</applyCaravanVisibility>
|
|
||||||
<allowedTargetTags>
|
|
||||||
<li>Caravan</li>
|
|
||||||
<li>Map_TempIncident</li>
|
|
||||||
</allowedTargetTags>
|
|
||||||
</li>
|
|
||||||
<li Class="StorytellerCompProperties_CategoryIndividualMTBByBiome">
|
|
||||||
<category>ThreatBig</category>
|
|
||||||
<applyCaravanVisibility>true</applyCaravanVisibility>
|
|
||||||
<allowedTargetTags>
|
|
||||||
<li>Caravan</li>
|
|
||||||
<li>Map_TempIncident</li>
|
|
||||||
</allowedTargetTags>
|
|
||||||
</li>
|
|
||||||
<!-- Quests - non-Royalty -->
|
|
||||||
<li Class="StorytellerCompProperties_RandomQuest">
|
|
||||||
<category>GiveQuest</category>
|
|
||||||
<allowedTargetTags>
|
|
||||||
<li>World</li>
|
|
||||||
</allowedTargetTags>
|
|
||||||
<onDays>10</onDays>
|
|
||||||
<numIncidentsRange>1</numIncidentsRange>
|
|
||||||
<acceptFractionByDaysPassedCurve>
|
|
||||||
<points>
|
|
||||||
<li>(8, 0)</li>
|
|
||||||
<li>(15, 1)</li>
|
|
||||||
</points>
|
|
||||||
</acceptFractionByDaysPassedCurve>
|
|
||||||
<minSpacingDays>3</minSpacingDays>
|
|
||||||
<disableIfAnyModActive>
|
|
||||||
<li>Ludeon.RimWorld.Royalty</li>
|
|
||||||
</disableIfAnyModActive>
|
|
||||||
</li>
|
|
||||||
<!-- Quests - Royalty -->
|
|
||||||
<li Class="StorytellerCompProperties_RandomQuest">
|
|
||||||
<category>GiveQuest</category>
|
|
||||||
<allowedTargetTags>
|
|
||||||
<li>World</li>
|
|
||||||
</allowedTargetTags>
|
|
||||||
<onDays>12</onDays>
|
|
||||||
<numIncidentsRange>2</numIncidentsRange>
|
|
||||||
<acceptFractionByDaysPassedCurve>
|
|
||||||
<points>
|
|
||||||
<li>(8, 0)</li>
|
|
||||||
<li>(15, 1)</li>
|
|
||||||
</points>
|
|
||||||
</acceptFractionByDaysPassedCurve>
|
|
||||||
<minSpacingDays>3</minSpacingDays>
|
|
||||||
<enableIfAnyModActive>
|
|
||||||
<li>Ludeon.RimWorld.Royalty</li>
|
|
||||||
</enableIfAnyModActive>
|
|
||||||
</li>
|
|
||||||
<!-- World misc incidents-->
|
|
||||||
<li Class="StorytellerCompProperties_CategoryMTB">
|
|
||||||
<category>Misc</category>
|
|
||||||
<allowedTargetTags>
|
|
||||||
<li>World</li>
|
|
||||||
</allowedTargetTags>
|
|
||||||
<minDaysPassed>15</minDaysPassed>
|
|
||||||
<mtbDays>15</mtbDays>
|
|
||||||
</li>
|
|
||||||
<!-- Orbital trader -->
|
|
||||||
<li Class="StorytellerCompProperties_OnOffCycle">
|
|
||||||
<incident>OrbitalTraderArrival</incident>
|
|
||||||
<onDays>7</onDays>
|
|
||||||
<offDays>8</offDays>
|
|
||||||
<numIncidentsRange>1</numIncidentsRange>
|
|
||||||
</li>
|
|
||||||
<!-- Triggered -->
|
|
||||||
<li Class="StorytellerCompProperties_Triggered">
|
|
||||||
<incident>StrangerInBlackJoin</incident>
|
|
||||||
<delayTicks>180</delayTicks>
|
|
||||||
</li>
|
|
||||||
</comps>
|
|
||||||
</StorytellerDef>
|
|
||||||
</Defs>
|
</Defs>
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
</race>
|
</race>
|
||||||
<comps>
|
<comps>
|
||||||
<li Class="CompProperties_MechPowerCell">
|
<li Class="CompProperties_MechPowerCell">
|
||||||
<totalPowerTicks>72000</totalPowerTicks> <!-- 2 hours -->
|
<totalPowerTicks>1440000</totalPowerTicks> <!-- 2 hours -->
|
||||||
<labelOverride>寿命</labelOverride>
|
<labelOverride>寿命</labelOverride>
|
||||||
<tooltipOverride>这种特殊的阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
|
<tooltipOverride>这种特殊的阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
|
||||||
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
|
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
|
||||||
|
|||||||
@@ -535,6 +535,7 @@
|
|||||||
<baseHealthScale>1.5</baseHealthScale>
|
<baseHealthScale>1.5</baseHealthScale>
|
||||||
<!-- 解剖产物 -->
|
<!-- 解剖产物 -->
|
||||||
<leatherDef>ARA_Carapace</leatherDef>
|
<leatherDef>ARA_Carapace</leatherDef>
|
||||||
|
<lifeExpectancy>300</lifeExpectancy>
|
||||||
<!-- 身体类型 -->
|
<!-- 身体类型 -->
|
||||||
<body>Human</body>
|
<body>Human</body>
|
||||||
<lifeStageWorkSettings MayRequire="Ludeon.RimWorld.Biotech">
|
<lifeStageWorkSettings MayRequire="Ludeon.RimWorld.Biotech">
|
||||||
@@ -629,6 +630,13 @@
|
|||||||
<addChance>1.0</addChance>
|
<addChance>1.0</addChance>
|
||||||
<allowDuplicates>false</allowDuplicates>
|
<allowDuplicates>false</allowDuplicates>
|
||||||
</li>
|
</li>
|
||||||
|
<li Class="CompProperties_CauseHediff_AoE">
|
||||||
|
<hediff>ARA_CreepyCrawly_Hediff</hediff>
|
||||||
|
<range>6</range>
|
||||||
|
<canTargetSelf>false</canTargetSelf>
|
||||||
|
<drawLines>true</drawLines>
|
||||||
|
<ignoreMechs>true</ignoreMechs>
|
||||||
|
</li>
|
||||||
<!--<li>
|
<!--<li>
|
||||||
<compClass>FacialAnimation.EmotionControllerComp</compClass>
|
<compClass>FacialAnimation.EmotionControllerComp</compClass>
|
||||||
</li>
|
</li>
|
||||||
@@ -742,7 +750,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
|
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
|
||||||
<freeProduction>true</freeProduction>
|
<freeProduction>true</freeProduction>
|
||||||
<disableHediff>WULA_MechCarrierSwitchHediff</disableHediff>
|
<disableHediff>ARA_RaceBaseSwarmProduceSwitchHediff</disableHediff>
|
||||||
<fixedIngredient>ARA_InsectJelly</fixedIngredient>
|
<fixedIngredient>ARA_InsectJelly</fixedIngredient>
|
||||||
<maxIngredientCount>500</maxIngredientCount>
|
<maxIngredientCount>500</maxIngredientCount>
|
||||||
<startingIngredientCount>500</startingIngredientCount>
|
<startingIngredientCount>500</startingIngredientCount>
|
||||||
@@ -869,7 +877,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
|
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
|
||||||
<freeProduction>true</freeProduction>
|
<freeProduction>true</freeProduction>
|
||||||
<disableHediff>WULA_MechCarrierSwitchHediff</disableHediff>
|
<disableHediff>ARA_RaceBaseSwarmProduceSwitchHediff</disableHediff>
|
||||||
<fixedIngredient>ARA_InsectJelly</fixedIngredient>
|
<fixedIngredient>ARA_InsectJelly</fixedIngredient>
|
||||||
<maxIngredientCount>500</maxIngredientCount>
|
<maxIngredientCount>500</maxIngredientCount>
|
||||||
<startingIngredientCount>500</startingIngredientCount>
|
<startingIngredientCount>500</startingIngredientCount>
|
||||||
@@ -977,7 +985,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
|
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
|
||||||
<freeProduction>true</freeProduction>
|
<freeProduction>true</freeProduction>
|
||||||
<disableHediff>WULA_MechCarrierSwitchHediff</disableHediff>
|
<disableHediff>ARA_RaceBaseSwarmProduceSwitchHediff</disableHediff>
|
||||||
<fixedIngredient>ARA_InsectJelly</fixedIngredient>
|
<fixedIngredient>ARA_InsectJelly</fixedIngredient>
|
||||||
<maxIngredientCount>500</maxIngredientCount>
|
<maxIngredientCount>500</maxIngredientCount>
|
||||||
<startingIngredientCount>500</startingIngredientCount>
|
<startingIngredientCount>500</startingIngredientCount>
|
||||||
@@ -1191,7 +1199,7 @@
|
|||||||
<comps>
|
<comps>
|
||||||
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
|
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
|
||||||
<freeProduction>true</freeProduction>
|
<freeProduction>true</freeProduction>
|
||||||
<disableHediff>WULA_MechCarrierSwitchHediff</disableHediff>
|
<disableHediff>ARA_RaceBaseSwarmProduceSwitchHediff</disableHediff>
|
||||||
<fixedIngredient>ARA_InsectJelly</fixedIngredient>
|
<fixedIngredient>ARA_InsectJelly</fixedIngredient>
|
||||||
<maxIngredientCount>500</maxIngredientCount>
|
<maxIngredientCount>500</maxIngredientCount>
|
||||||
<startingIngredientCount>500</startingIngredientCount>
|
<startingIngredientCount>500</startingIngredientCount>
|
||||||
|
|||||||
@@ -459,6 +459,7 @@
|
|||||||
<thoughtSettings>
|
<thoughtSettings>
|
||||||
<!-- 不会产生的想法 -->
|
<!-- 不会产生的想法 -->
|
||||||
<cannotReceiveThoughts>
|
<cannotReceiveThoughts>
|
||||||
|
<li>ARA_CreepyCrawly</li>
|
||||||
<li>Naked</li>
|
<li>Naked</li>
|
||||||
<li>AnyBodyPartButGroinCovered_Disapproved_Female</li>
|
<li>AnyBodyPartButGroinCovered_Disapproved_Female</li>
|
||||||
<li>AnyBodyPartButGroinCovered_Disapproved_Male</li>
|
<li>AnyBodyPartButGroinCovered_Disapproved_Male</li>
|
||||||
@@ -610,7 +611,7 @@
|
|||||||
<soundMeleeMiss>Pawn_Melee_BigBash_Miss</soundMeleeMiss>
|
<soundMeleeMiss>Pawn_Melee_BigBash_Miss</soundMeleeMiss>
|
||||||
<soundMeleeDodge>Pawn_MeleeDodge</soundMeleeDodge>
|
<soundMeleeDodge>Pawn_MeleeDodge</soundMeleeDodge>
|
||||||
<!-- 年龄阶段 -->
|
<!-- 年龄阶段 -->
|
||||||
<!-- <lifeExpectancy>5000</lifeExpectancy> -->
|
<lifeExpectancy>300</lifeExpectancy>
|
||||||
<lifeStageWorkSettings MayRequire="Ludeon.RimWorld.Biotech" Inherit="False">
|
<lifeStageWorkSettings MayRequire="Ludeon.RimWorld.Biotech" Inherit="False">
|
||||||
<Firefighter>0</Firefighter>
|
<Firefighter>0</Firefighter>
|
||||||
<Patient>0</Patient>
|
<Patient>0</Patient>
|
||||||
@@ -703,6 +704,13 @@
|
|||||||
<addChance>1.0</addChance>
|
<addChance>1.0</addChance>
|
||||||
<allowDuplicates>false</allowDuplicates>
|
<allowDuplicates>false</allowDuplicates>
|
||||||
</li>
|
</li>
|
||||||
|
<li Class="CompProperties_CauseHediff_AoE">
|
||||||
|
<hediff>ARA_CreepyCrawly_Hediff</hediff>
|
||||||
|
<range>6</range>
|
||||||
|
<canTargetSelf>false</canTargetSelf>
|
||||||
|
<drawLines>true</drawLines>
|
||||||
|
<ignoreMechs>true</ignoreMechs>
|
||||||
|
</li>
|
||||||
</comps>
|
</comps>
|
||||||
</AlienRace.ThingDef_AlienRace>
|
</AlienRace.ThingDef_AlienRace>
|
||||||
</Defs>
|
</Defs>
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
<ThoughtDef>
|
<ThoughtDef>
|
||||||
<defName>ARA_CreepyCrawly</defName>
|
<defName>ARA_CreepyCrawly</defName>
|
||||||
<workerClass>ThoughtWorker_Hediff</workerClass>
|
<workerClass>ThoughtWorker_Hediff</workerClass>
|
||||||
<hediff>ARA_HiveMindDrone</hediff>
|
<hediff>ARA_CreepyCrawly_Hediff</hediff>
|
||||||
<validWhileDespawned>true</validWhileDespawned>
|
<validWhileDespawned>true</validWhileDespawned>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
|
|||||||
Binary file not shown.
@@ -3,16 +3,16 @@
|
|||||||
"WorkspaceRootPath": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
|
"WorkspaceRootPath": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
|
||||||
"Documents": [
|
"Documents": [
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\thoughts\\ara_creepycrawly.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\abilities\\ara_abilityswitch\\compabilityeffect_giveswitchhediff.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:thoughts\\ara_creepycrawly.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_abilityswitch\\compabilityeffect_giveswitchhediff.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\mainharmony.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\abilities\\ara_abilityswitch\\compabilityeffect_removeswitchhediff.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:mainharmony.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_abilityswitch\\compabilityeffect_removeswitchhediff.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\aradefof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\abilities\\ara_abilityswitch\\weaponswitch.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:aradefof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_abilityswitch\\weaponswitch.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"DocumentGroupContainers": [
|
"DocumentGroupContainers": [
|
||||||
@@ -22,50 +22,50 @@
|
|||||||
"DocumentGroups": [
|
"DocumentGroups": [
|
||||||
{
|
{
|
||||||
"DockedWidth": 200,
|
"DockedWidth": 200,
|
||||||
"SelectedChildIndex": 2,
|
"SelectedChildIndex": 3,
|
||||||
"Children": [
|
"Children": [
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Bookmark",
|
||||||
"DocumentIndex": 1,
|
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
|
||||||
"Title": "MainHarmony.cs",
|
|
||||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\MainHarmony.cs",
|
|
||||||
"RelativeDocumentMoniker": "MainHarmony.cs",
|
|
||||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\MainHarmony.cs",
|
|
||||||
"RelativeToolTip": "MainHarmony.cs",
|
|
||||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAA+AAAAAAAAAA==",
|
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
|
||||||
"WhenOpened": "2025-09-19T03:12:09.458Z",
|
|
||||||
"EditorCaption": ""
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 2,
|
"DocumentIndex": 2,
|
||||||
"Title": "ARADefOf.cs",
|
"Title": "WeaponSwitch.cs",
|
||||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARADefOf.cs",
|
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_AbilitySwitch\\WeaponSwitch.cs",
|
||||||
"RelativeDocumentMoniker": "ARADefOf.cs",
|
"RelativeDocumentMoniker": "Abilities\\ARA_AbilitySwitch\\WeaponSwitch.cs",
|
||||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARADefOf.cs",
|
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_AbilitySwitch\\WeaponSwitch.cs",
|
||||||
"RelativeToolTip": "ARADefOf.cs",
|
"RelativeToolTip": "Abilities\\ARA_AbilitySwitch\\WeaponSwitch.cs",
|
||||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAfAAAAAAAAAA==",
|
"ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAhAAAAAAAAAA==",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-09-19T03:10:54.9Z",
|
"WhenOpened": "2025-09-19T06:39:20.978Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 1,
|
||||||
|
"Title": "CompAbilityEffect_RemoveSwitchHediff.cs",
|
||||||
|
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_AbilitySwitch\\CompAbilityEffect_RemoveSwitchHediff.cs",
|
||||||
|
"RelativeDocumentMoniker": "Abilities\\ARA_AbilitySwitch\\CompAbilityEffect_RemoveSwitchHediff.cs",
|
||||||
|
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_AbilitySwitch\\CompAbilityEffect_RemoveSwitchHediff.cs",
|
||||||
|
"RelativeToolTip": "Abilities\\ARA_AbilitySwitch\\CompAbilityEffect_RemoveSwitchHediff.cs",
|
||||||
|
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAMAAAAXAAAAAAAAAA==",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
|
"WhenOpened": "2025-09-19T06:39:18.492Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 0,
|
"DocumentIndex": 0,
|
||||||
"Title": "ARA_CreepyCrawly.cs",
|
"Title": "CompAbilityEffect_GiveSwitchHediff.cs",
|
||||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thoughts\\ARA_CreepyCrawly.cs",
|
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_AbilitySwitch\\CompAbilityEffect_GiveSwitchHediff.cs",
|
||||||
"RelativeDocumentMoniker": "Thoughts\\ARA_CreepyCrawly.cs",
|
"RelativeDocumentMoniker": "Abilities\\ARA_AbilitySwitch\\CompAbilityEffect_GiveSwitchHediff.cs",
|
||||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thoughts\\ARA_CreepyCrawly.cs",
|
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_AbilitySwitch\\CompAbilityEffect_GiveSwitchHediff.cs",
|
||||||
"RelativeToolTip": "Thoughts\\ARA_CreepyCrawly.cs",
|
"RelativeToolTip": "Abilities\\ARA_AbilitySwitch\\CompAbilityEffect_GiveSwitchHediff.cs",
|
||||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAANAAAAAAAAAA==",
|
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAMAAAAXAAAAAAAAAA==",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-09-19T02:36:25.114Z",
|
"WhenOpened": "2025-09-19T06:39:09.674Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
|
||||||
{
|
|
||||||
"$type": "Bookmark",
|
|
||||||
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
using RimWorld;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace ArachnaeSwarm
|
||||||
|
{
|
||||||
|
public class CompAbilityEffect_GiveSwitchHediff : CompAbilityEffect
|
||||||
|
{
|
||||||
|
public new CompProperties_AbilityGiveHediff Props => (CompProperties_AbilityGiveHediff)props;
|
||||||
|
|
||||||
|
public override void Apply(LocalTargetInfo target, LocalTargetInfo dest)
|
||||||
|
{
|
||||||
|
base.Apply(target, dest);
|
||||||
|
if (Props.hediffDef != null)
|
||||||
|
{
|
||||||
|
parent.pawn.health.AddHediff(Props.hediffDef);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool ShouldHideGizmo
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
// 如果父级Pawn已经有了这个Hediff,就隐藏“给予”按钮
|
||||||
|
if (parent.pawn?.health.hediffSet.HasHediff(Props.hediffDef) ?? false)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return base.ShouldHideGizmo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
using RimWorld;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace ArachnaeSwarm
|
||||||
|
{
|
||||||
|
public class CompAbilityEffect_RemoveSwitchHediff : CompAbilityEffect
|
||||||
|
{
|
||||||
|
public new CompProperties_AbilityRemoveHediff Props => (CompProperties_AbilityRemoveHediff)props;
|
||||||
|
|
||||||
|
public override void Apply(LocalTargetInfo target, LocalTargetInfo dest)
|
||||||
|
{
|
||||||
|
base.Apply(target, dest);
|
||||||
|
Hediff firstHediffOfDef = parent.pawn.health.hediffSet.GetFirstHediffOfDef(Props.hediffDef);
|
||||||
|
if (firstHediffOfDef != null)
|
||||||
|
{
|
||||||
|
parent.pawn.health.RemoveHediff(firstHediffOfDef);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool ShouldHideGizmo
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
// 如果父级Pawn没有这个Hediff,就隐藏“移除”按钮
|
||||||
|
if (!parent.pawn?.health.hediffSet.HasHediff(Props.hediffDef) ?? true)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return base.ShouldHideGizmo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
202
Source/ArachnaeSwarm/Abilities/ARA_AbilitySwitch/WeaponSwitch.cs
Normal file
202
Source/ArachnaeSwarm/Abilities/ARA_AbilitySwitch/WeaponSwitch.cs
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
using RimWorld;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.Remoting.Messaging;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using UnityEngine;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace ArachnaeSwarm
|
||||||
|
{
|
||||||
|
public class CompProperties_Switch : CompProperties_EquippableAbility
|
||||||
|
{
|
||||||
|
public ThingDef changeTo;
|
||||||
|
public CompProperties_Switch()
|
||||||
|
{
|
||||||
|
compClass = typeof(CompSwitch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CompSwitch : CompEquippableAbility
|
||||||
|
{
|
||||||
|
public CompProperties_Switch Props => (CompProperties_Switch)props;
|
||||||
|
|
||||||
|
public HediffWithComps hediff;
|
||||||
|
public HediffComp_Disappears Disappears => hediff.GetComp<HediffComp_Disappears>();
|
||||||
|
public override void Notify_Equipped(Pawn pawn)
|
||||||
|
{
|
||||||
|
base.Notify_Equipped(pawn);
|
||||||
|
if (hediff != null)
|
||||||
|
{
|
||||||
|
pawn.health.AddHediff(hediff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Notify_Unequipped(Pawn pawn)
|
||||||
|
{
|
||||||
|
base.Notify_Unequipped(pawn);
|
||||||
|
if (hediff != null)
|
||||||
|
{
|
||||||
|
pawn.health.RemoveHediff(hediff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string CompInspectStringExtra()
|
||||||
|
{
|
||||||
|
string text = "";
|
||||||
|
if (hediff != null)
|
||||||
|
{
|
||||||
|
text += hediff.LabelBase + ": " + Disappears.ticksToDisappear.ToStringSecondsFromTicks("F0");
|
||||||
|
}
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
public override void CompTick()
|
||||||
|
{
|
||||||
|
base.CompTick();
|
||||||
|
if (hediff != null)
|
||||||
|
{
|
||||||
|
float severityAdjustment = 0f;
|
||||||
|
Disappears.CompPostTick(ref severityAdjustment);
|
||||||
|
if (Disappears.ticksToDisappear <= 0)
|
||||||
|
{
|
||||||
|
hediff = null;
|
||||||
|
Extension.ChangeOldThing(parent, Props.changeTo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void PostExposeData()
|
||||||
|
{
|
||||||
|
base.PostExposeData();
|
||||||
|
Scribe_References.Look(ref hediff, "hediff", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CompAbilityEffect_Switch : CompAbilityEffect
|
||||||
|
{
|
||||||
|
public Pawn Pawn => parent.pawn;
|
||||||
|
public ThingWithComps BaseForm => Pawn.equipment.Primary;
|
||||||
|
public ThingDef ChangeTo => BaseForm.GetComp<CompSwitch>().Props.changeTo;
|
||||||
|
|
||||||
|
public override void Apply(LocalTargetInfo target, LocalTargetInfo dest)
|
||||||
|
{
|
||||||
|
base.Apply(target, dest);
|
||||||
|
Pawn.ChangeEquipThing(BaseForm, ChangeTo);
|
||||||
|
}
|
||||||
|
public override bool AICanTargetNow(LocalTargetInfo target)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CompAbilityEffect_RemoveHediff : CompAbilityEffect
|
||||||
|
{
|
||||||
|
public Pawn Pawn => parent.pawn;
|
||||||
|
public ThingWithComps BaseForm => Pawn.equipment.Primary;
|
||||||
|
public override void Apply(LocalTargetInfo target, LocalTargetInfo dest)
|
||||||
|
{
|
||||||
|
base.Apply(target, dest);
|
||||||
|
CompSwitch comp = BaseForm.GetComp<CompSwitch>();
|
||||||
|
if (comp.hediff != null)
|
||||||
|
{
|
||||||
|
comp.Disappears.ticksToDisappear = 0;
|
||||||
|
Pawn.health.RemoveHediff(comp.hediff);
|
||||||
|
comp.hediff = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public override bool AICanTargetNow(LocalTargetInfo target)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Extension
|
||||||
|
{
|
||||||
|
public static ThingWithComps ChangeThing(ThingWithComps baseForm, ThingDef changeTo)
|
||||||
|
{
|
||||||
|
int hitPoints = baseForm.HitPoints;
|
||||||
|
ThingDef stuff = null;
|
||||||
|
if (baseForm.Stuff != null)
|
||||||
|
{
|
||||||
|
stuff = baseForm.Stuff;
|
||||||
|
}
|
||||||
|
ThingWithComps newThing = (ThingWithComps)ThingMaker.MakeThing(changeTo, stuff);
|
||||||
|
newThing.HitPoints = hitPoints;
|
||||||
|
for (int i = 0; i < newThing.AllComps.Count; i++)
|
||||||
|
{
|
||||||
|
CompProperties Index = newThing.AllComps[i].props;
|
||||||
|
ThingComp baseComp = baseForm.GetCompByDefType(Index);
|
||||||
|
if (baseComp != null)
|
||||||
|
{
|
||||||
|
baseComp.parent = newThing;
|
||||||
|
newThing.AllComps[i] = baseComp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
CompSwitch compSwitch = newThing.GetComp<CompSwitch>();
|
||||||
|
compSwitch.Initialize(newThing.def.comps.Find(x => x.compClass == typeof(CompSwitch)));
|
||||||
|
ThingStyleDef styleDef = baseForm.StyleDef;
|
||||||
|
if (baseForm.def.randomStyle != null && newThing.def.randomStyle != null)
|
||||||
|
{
|
||||||
|
ThingStyleChance chance = baseForm.def.randomStyle.Find(x => x.StyleDef == styleDef);
|
||||||
|
int index = baseForm.def.randomStyle.IndexOf(chance);
|
||||||
|
newThing.StyleDef = newThing.def.randomStyle[index].StyleDef;
|
||||||
|
}
|
||||||
|
return newThing;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ChangeOldThing(ThingWithComps baseForm, ThingDef changeTo)
|
||||||
|
{
|
||||||
|
ThingWithComps newThing = ChangeThing(baseForm, changeTo);
|
||||||
|
IntVec3 intVec3 = baseForm.Position;
|
||||||
|
Map map = baseForm.Map;
|
||||||
|
baseForm.Destroy();
|
||||||
|
GenSpawn.Spawn(newThing, intVec3, map);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ChangeEquipThing(this Pawn pawn, ThingWithComps baseForm, ThingDef changeTo)
|
||||||
|
{
|
||||||
|
ThingWithComps newThing = ChangeThing(baseForm, changeTo);
|
||||||
|
pawn.equipment.DestroyEquipment(baseForm);
|
||||||
|
baseForm.Notify_Unequipped(pawn);
|
||||||
|
pawn.equipment.MakeRoomFor(newThing);
|
||||||
|
pawn.equipment.AddEquipment(newThing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class HediffCompPropertiesSwitch : HediffCompProperties_GiveAbility
|
||||||
|
{
|
||||||
|
public HediffCompPropertiesSwitch()
|
||||||
|
{
|
||||||
|
compClass = typeof(SwitchWhenDisappear);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class SwitchWhenDisappear : HediffComp_GiveAbility
|
||||||
|
{
|
||||||
|
public HediffCompPropertiesSwitch Props => (HediffCompPropertiesSwitch)props;
|
||||||
|
public override void CompPostMake()
|
||||||
|
{
|
||||||
|
base.CompPostMake();
|
||||||
|
CompSwitch compSwitch = Pawn.equipment.Primary.GetComp<CompSwitch>();
|
||||||
|
compSwitch.hediff = parent;
|
||||||
|
}
|
||||||
|
public override void CompPostPostRemoved()
|
||||||
|
{
|
||||||
|
base.CompPostPostRemoved();
|
||||||
|
if (parent.ShouldRemove)
|
||||||
|
{
|
||||||
|
ThingWithComps thing = Pawn.equipment.Primary;
|
||||||
|
if (thing != null)
|
||||||
|
{
|
||||||
|
CompSwitch compSwitch = thing.GetComp<CompSwitch>();
|
||||||
|
compSwitch.hediff = null;
|
||||||
|
if (compSwitch != null)
|
||||||
|
{
|
||||||
|
Pawn.ChangeEquipThing(thing, compSwitch.Props.changeTo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -68,6 +68,9 @@
|
|||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="Abilities\ARA_AbilitySwitch\CompAbilityEffect_GiveSwitchHediff.cs" />
|
||||||
|
<Compile Include="Abilities\ARA_AbilitySwitch\CompAbilityEffect_RemoveSwitchHediff.cs" />
|
||||||
|
<Compile Include="Abilities\ARA_AbilitySwitch\WeaponSwitch.cs" />
|
||||||
<Compile Include="Abilities\ARA_HuggingFace\CompAbilityEffect_Possess.cs" />
|
<Compile Include="Abilities\ARA_HuggingFace\CompAbilityEffect_Possess.cs" />
|
||||||
<Compile Include="Abilities\ARA_HuggingFace\CompProperties_AbilityPossess.cs" />
|
<Compile Include="Abilities\ARA_HuggingFace\CompProperties_AbilityPossess.cs" />
|
||||||
<Compile Include="Abilities\ARA_HuggingFace\Hediff_Possession.cs" />
|
<Compile Include="Abilities\ARA_HuggingFace\Hediff_Possession.cs" />
|
||||||
@@ -92,7 +95,6 @@
|
|||||||
<Compile Include="Abilities\TrackingCharge\CompProperties_TrackingCharge.cs" />
|
<Compile Include="Abilities\TrackingCharge\CompProperties_TrackingCharge.cs" />
|
||||||
<Compile Include="Abilities\TrackingCharge\PawnFlyer_TrackingCharge.cs" />
|
<Compile Include="Abilities\TrackingCharge\PawnFlyer_TrackingCharge.cs" />
|
||||||
<Compile Include="Abilities\TrackingCharge\Verb_CastAbilityTrackingCharge.cs" />
|
<Compile Include="Abilities\TrackingCharge\Verb_CastAbilityTrackingCharge.cs" />
|
||||||
<Compile Include="ARADefOf.cs" />
|
|
||||||
<Compile Include="Building_Comps\ARA_BuildingTerrainSpawn\CompDelayedTerrainSpawn.cs" />
|
<Compile Include="Building_Comps\ARA_BuildingTerrainSpawn\CompDelayedTerrainSpawn.cs" />
|
||||||
<Compile Include="Building_Comps\ARA_BuildingTerrainSpawn\CompProperties_DelayedTerrainSpawn.cs" />
|
<Compile Include="Building_Comps\ARA_BuildingTerrainSpawn\CompProperties_DelayedTerrainSpawn.cs" />
|
||||||
<Compile Include="Building_Comps\ARA_CompInteractiveProducer\CompInteractiveProducer.cs" />
|
<Compile Include="Building_Comps\ARA_CompInteractiveProducer\CompInteractiveProducer.cs" />
|
||||||
@@ -173,7 +175,6 @@
|
|||||||
<Compile Include="Thing_Comps\ARA_CustomUniqueWeapon\CompCustomUniqueWeapon.cs" />
|
<Compile Include="Thing_Comps\ARA_CustomUniqueWeapon\CompCustomUniqueWeapon.cs" />
|
||||||
<Compile Include="Thing_Comps\ARA_CustomUniqueWeapon\CompProperties_CustomUniqueWeapon.cs" />
|
<Compile Include="Thing_Comps\ARA_CustomUniqueWeapon\CompProperties_CustomUniqueWeapon.cs" />
|
||||||
<Compile Include="Thing_Comps\OPToxicGas.cs" />
|
<Compile Include="Thing_Comps\OPToxicGas.cs" />
|
||||||
<Compile Include="Thoughts\ARA_CreepyCrawly.cs" />
|
|
||||||
<Compile Include="Verbs\Cleave\CompCleave.cs" />
|
<Compile Include="Verbs\Cleave\CompCleave.cs" />
|
||||||
<Compile Include="Verbs\Cleave\Verb_MeleeAttack_Cleave.cs" />
|
<Compile Include="Verbs\Cleave\Verb_MeleeAttack_Cleave.cs" />
|
||||||
<Compile Include="Verbs\ExplosiveBeam\Verb_ShootBeamExplosive.cs" />
|
<Compile Include="Verbs\ExplosiveBeam\Verb_ShootBeamExplosive.cs" />
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user