1
This commit is contained in:
Binary file not shown.
@@ -1,84 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
<HediffDef>
|
||||
<defName>ARA_Incubator_1_Flaw_Hediffs</defName>
|
||||
<label>内分泌失调</label>
|
||||
<description>急速的孵化使得该阿拉克涅督虫的内分泌系统发育异常,体内各种激素长期维持在低水平。\n\n由于较差的孵化质量,阿拉克涅督虫获得了这个不利突变。</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<isBad>false</isBad>
|
||||
<defaultLabelColor>(0.9, 0.2 , 0.1)</defaultLabelColor>
|
||||
<scenarioCanAdd>true</scenarioCanAdd>
|
||||
<stages>
|
||||
<li>
|
||||
<statOffsets>
|
||||
<MoveSpeed>-1</MoveSpeed>
|
||||
</statOffsets>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
<HediffDef>
|
||||
<defName>ARA_Incubator_2_Flaw_Hediffs</defName>
|
||||
<label>外骨骼缺失</label>
|
||||
<description>急速的孵化使得该阿拉克涅督虫没有发育出完整的外骨骼,这使得它们弱不禁风。\n\n由于较差的孵化质量,阿拉克涅督虫获得了这个不利突变。</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<isBad>false</isBad>
|
||||
<defaultLabelColor>(0.9, 0.2 , 0.1)</defaultLabelColor>
|
||||
<scenarioCanAdd>true</scenarioCanAdd>
|
||||
<stages>
|
||||
<li>
|
||||
<statOffsets>
|
||||
<ArmorRating_Blunt>-0.3</ArmorRating_Blunt>
|
||||
<ArmorRating_Sharp>-0.3</ArmorRating_Sharp>
|
||||
</statOffsets>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
<HediffDef>
|
||||
<defName>ARA_Incubator_3_Flaw_Hediffs</defName>
|
||||
<label>动作失调</label>
|
||||
<description>急速的孵化使得该阿拉克涅督虫的神经系统非常迟钝,不仅记不住什么东西,甚至有些寻常的动作都会受到干扰。\n\n由于较差的孵化质量,阿拉克涅督虫获得了这个不利突变。</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<isBad>false</isBad>
|
||||
<defaultLabelColor>(0.9, 0.2 , 0.1)</defaultLabelColor>
|
||||
<scenarioCanAdd>true</scenarioCanAdd>
|
||||
<stages>
|
||||
<li>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Consciousness</capacity>
|
||||
<offset>-0.1</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
<statOffsets>
|
||||
<GlobalLearningFactor>-0.5</GlobalLearningFactor>
|
||||
</statOffsets>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
<HediffDef>
|
||||
<defName>ARA_Incubator_4_Flaw_Hediffs</defName>
|
||||
<label>视觉极差</label>
|
||||
<description>急速的孵化使得该阿拉克涅督虫的外界感受器官发育不良。\n\n由于较差的孵化质量,阿拉克涅督虫获得了这个不利突变。</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<isBad>false</isBad>
|
||||
<defaultLabelColor>(0.9, 0.2 , 0.1)</defaultLabelColor>
|
||||
<scenarioCanAdd>true</scenarioCanAdd>
|
||||
<stages>
|
||||
<li>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Sight</capacity>
|
||||
<setMax>0.1</setMax>
|
||||
</li>
|
||||
<li>
|
||||
<capacity>Hearing</capacity>
|
||||
<setMax>0.1</setMax>
|
||||
</li>
|
||||
</capMods>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
|
||||
<HediffDef>
|
||||
<defName>ARA_Incubator_1_Reward_Hediffs</defName>
|
||||
<label>致密甲壳</label>
|
||||
@@ -218,6 +139,84 @@
|
||||
</HediffDef>
|
||||
|
||||
<!-- ==================== 额外差特质(Bad Pool) ==================== -->
|
||||
<HediffDef>
|
||||
<defName>ARA_Incubator_1_Flaw_Hediffs</defName>
|
||||
<label>内分泌失调</label>
|
||||
<description>急速的孵化使得该阿拉克涅督虫的内分泌系统发育异常,体内各种激素长期维持在低水平。\n\n由于较差的孵化质量,阿拉克涅督虫获得了这个不利突变。</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<isBad>false</isBad>
|
||||
<defaultLabelColor>(0.9, 0.2 , 0.1)</defaultLabelColor>
|
||||
<scenarioCanAdd>true</scenarioCanAdd>
|
||||
<stages>
|
||||
<li>
|
||||
<statOffsets>
|
||||
<MoveSpeed>-1</MoveSpeed>
|
||||
</statOffsets>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
<HediffDef>
|
||||
<defName>ARA_Incubator_2_Flaw_Hediffs</defName>
|
||||
<label>外骨骼缺失</label>
|
||||
<description>急速的孵化使得该阿拉克涅督虫没有发育出完整的外骨骼,这使得它们弱不禁风。\n\n由于较差的孵化质量,阿拉克涅督虫获得了这个不利突变。</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<isBad>false</isBad>
|
||||
<defaultLabelColor>(0.9, 0.2 , 0.1)</defaultLabelColor>
|
||||
<scenarioCanAdd>true</scenarioCanAdd>
|
||||
<stages>
|
||||
<li>
|
||||
<statOffsets>
|
||||
<ArmorRating_Blunt>-0.3</ArmorRating_Blunt>
|
||||
<ArmorRating_Sharp>-0.3</ArmorRating_Sharp>
|
||||
</statOffsets>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
<HediffDef>
|
||||
<defName>ARA_Incubator_3_Flaw_Hediffs</defName>
|
||||
<label>动作失调</label>
|
||||
<description>急速的孵化使得该阿拉克涅督虫的神经系统非常迟钝,不仅记不住什么东西,甚至有些寻常的动作都会受到干扰。\n\n由于较差的孵化质量,阿拉克涅督虫获得了这个不利突变。</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<isBad>false</isBad>
|
||||
<defaultLabelColor>(0.9, 0.2 , 0.1)</defaultLabelColor>
|
||||
<scenarioCanAdd>true</scenarioCanAdd>
|
||||
<stages>
|
||||
<li>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Consciousness</capacity>
|
||||
<offset>-0.1</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
<statOffsets>
|
||||
<GlobalLearningFactor>-0.5</GlobalLearningFactor>
|
||||
</statOffsets>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
<HediffDef>
|
||||
<defName>ARA_Incubator_4_Flaw_Hediffs</defName>
|
||||
<label>视觉极差</label>
|
||||
<description>急速的孵化使得该阿拉克涅督虫的外界感受器官发育不良。\n\n由于较差的孵化质量,阿拉克涅督虫获得了这个不利突变。</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<isBad>false</isBad>
|
||||
<defaultLabelColor>(0.9, 0.2 , 0.1)</defaultLabelColor>
|
||||
<scenarioCanAdd>true</scenarioCanAdd>
|
||||
<stages>
|
||||
<li>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Sight</capacity>
|
||||
<setMax>0.1</setMax>
|
||||
</li>
|
||||
<li>
|
||||
<capacity>Hearing</capacity>
|
||||
<setMax>0.1</setMax>
|
||||
</li>
|
||||
</capMods>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
<HediffDef>
|
||||
<defName>ARA_Incubator_5_Flaw_Hediffs</defName>
|
||||
<label>肌肉萎缩</label>
|
||||
@@ -283,11 +282,10 @@
|
||||
</HediffDef>
|
||||
|
||||
<!-- ==================== 精英特质(Elite Pool)- 普通特质增强版 ==================== -->
|
||||
<!-- 致密甲壳 增强版 -->
|
||||
<HediffDef>
|
||||
<defName>ARA_Incubator_Elite_Regeneration</defName>
|
||||
<label>超密甲壳</label>
|
||||
<description>该阿拉克涅督虫的甲壳密度远超常规个体,几乎坚不可摧,同时还具有优秀的热抗性。\n\n由于极佳的孵化质量,阿拉克涅督虫获得了这个稀有突变。</description>
|
||||
<defName>ARA_Incubator_1_EliteReward_Hediffs</defName>
|
||||
<label>超密度甲壳</label>
|
||||
<description>该阿拉克涅督虫的甲壳密度令人发指——这真的是一个生物可以从身上生长出来的组织吗?不过因为自重太大,这只督虫几乎难以移动。\n\n这个稀有突变是致密甲壳的变种。</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<isBad>false</isBad>
|
||||
<defaultLabelColor>(0.8, 0.6, 0.0)</defaultLabelColor>
|
||||
@@ -295,34 +293,113 @@
|
||||
<stages>
|
||||
<li>
|
||||
<statOffsets>
|
||||
<ArmorRating_Blunt>1.0</ArmorRating_Blunt>
|
||||
<ArmorRating_Sharp>1.0</ArmorRating_Sharp>
|
||||
<ArmorRating_Heat>0.8</ArmorRating_Heat>
|
||||
</statOffsets>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
<!-- 行动激素 增强版 -->
|
||||
<HediffDef>
|
||||
<defName>ARA_Incubator_Elite_AdaptiveArmor</defName>
|
||||
<label>超级激素</label>
|
||||
<description>该阿拉克涅督虫的腺体异常发达,持续分泌高浓度激素,使其处于极度亢奋状态,攻击速度惊人。\n\n由于极佳的孵化质量,阿拉克涅督虫获得了这个稀有突变。</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<isBad>false</isBad>
|
||||
<defaultLabelColor>(0.8, 0.6, 0.0)</defaultLabelColor>
|
||||
<scenarioCanAdd>true</scenarioCanAdd>
|
||||
<stages>
|
||||
<li>
|
||||
<statOffsets>
|
||||
<MoveSpeed>1.5</MoveSpeed>
|
||||
<MoveSpeed>-1.5</MoveSpeed>
|
||||
</statOffsets>
|
||||
<statFactors>
|
||||
<MeleeCooldownFactor>0.4</MeleeCooldownFactor>
|
||||
<RangedCooldownFactor>0.5</RangedCooldownFactor>
|
||||
<ArmorRating_Blunt>1.75</ArmorRating_Blunt>
|
||||
<ArmorRating_Sharp>1.75</ArmorRating_Sharp>
|
||||
<IncomingDamageFactor>0.25</IncomingDamageFactor>
|
||||
</statFactors>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
<HediffDef>
|
||||
<defName>ARA_Incubator_2_EliteReward_Hediffs</defName>
|
||||
<label>壳下强酸脂</label>
|
||||
<description>该阿拉克涅督虫的皮下层有一层致密的强酸性脂肪,这种流体使得督虫变得更加耐冲击、并且完全阻挡外部灼烧和酸蚀,还赋予督虫以酸液迸溅的方式向对其发起近战攻击的敌人反射伤害。\n\n这个稀有突变是壳下阻燃脂的变种。</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<isBad>false</isBad>
|
||||
<defaultLabelColor>(0.8, 0.6, 0.0)</defaultLabelColor>
|
||||
<scenarioCanAdd>true</scenarioCanAdd>
|
||||
<stages>
|
||||
<li>
|
||||
<statFactors>
|
||||
<Flammability>0</Flammability>
|
||||
</statFactors>
|
||||
<statOffsets>
|
||||
<ArmorRating_Blunt>0.25</ArmorRating_Blunt>
|
||||
<ArmorRating_Sharp>0.25</ArmorRating_Sharp>
|
||||
<ArmorRating_Heat>2</ArmorRating_Heat>
|
||||
</statOffsets>
|
||||
<damageFactors>
|
||||
<ARA_AcidBurn>0</ARA_AcidBurn>
|
||||
<ARA_AcidBomb>0</ARA_AcidBomb>
|
||||
<AcidBurn>0</AcidBurn>
|
||||
</damageFactors>
|
||||
</li>
|
||||
</stages>
|
||||
<comps>
|
||||
<li Class="ArachnaeSwarmVerse.HediffCompProperties_ReflectMeleeDamage">
|
||||
<reflectMultiplier>3</reflectMultiplier>
|
||||
</li>
|
||||
</comps>
|
||||
</HediffDef>
|
||||
<HediffDef>
|
||||
<defName>ARA_Incubator_3_EliteReward_Hediffs</defName>
|
||||
<label>无限制激素</label>
|
||||
<description>该阿拉克涅督虫的激素腺体使得其血管内充斥着大量的激素,简直比磕了群勃龙醋酸群勃龙美替诺龙司腾博龙曲托龙西斯龙氧雄龙康复龙康力龙还要强大,一切敌人在其眼里几乎都是慢动作播放——但是这种透支生命的行为使得这只督虫必然承受短命的代价。\n\n这个稀有突变是行动激素的变种。</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<isBad>false</isBad>
|
||||
<defaultLabelColor>(0.8, 0.6, 0.0)</defaultLabelColor>
|
||||
<scenarioCanAdd>true</scenarioCanAdd>
|
||||
<stages>
|
||||
<li>
|
||||
<statOffsets>
|
||||
<MoveSpeed>2</MoveSpeed>
|
||||
</statOffsets>
|
||||
<statFactors>
|
||||
<MeleeCooldownFactor>0.1</MeleeCooldownFactor>
|
||||
<RangedCooldownFactor>0.2</RangedCooldownFactor>
|
||||
</statFactors>
|
||||
</li>
|
||||
</stages>
|
||||
<comps>
|
||||
<li Class="HediffCompProperties_DisappearsAndKills">
|
||||
<disappearsAfterTicks>2520000~2880000</disappearsAfterTicks> <!-- 42 ~ 48 days -->
|
||||
<showRemainingTime>true</showRemainingTime>
|
||||
</li>
|
||||
<li Class="HediffCompProperties_DisappearsOnDeath" />
|
||||
</comps>
|
||||
</HediffDef>
|
||||
<HediffDef>
|
||||
<defName>ARA_Incubator_4_EliteReward_Hediffs</defName>
|
||||
<label>全域视力</label>
|
||||
<description>该阿拉克涅督虫的眼睛可以近乎无限地聚焦,并且几乎不需要时间进行射击瞄准。\n\n这个稀有突变是高静态视力的变种。</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<isBad>false</isBad>
|
||||
<defaultLabelColor>(0.8, 0.6, 0.0)</defaultLabelColor>
|
||||
<scenarioCanAdd>true</scenarioCanAdd>
|
||||
<stages>
|
||||
<li>
|
||||
<statFactors>
|
||||
<RangedCooldownFactor>0.5</RangedCooldownFactor>
|
||||
<ShootingAccuracyPawn>10</ShootingAccuracyPawn>
|
||||
<AimingDelayFactor>0.01</AimingDelayFactor>
|
||||
</statFactors>
|
||||
<statOffsets>
|
||||
<ShootingAccuracyOutdoorsDarkOffset>1</ShootingAccuracyOutdoorsDarkOffset>
|
||||
<ShootingAccuracyOutdoorsLitOffset>1</ShootingAccuracyOutdoorsLitOffset>
|
||||
<ShootingAccuracyIndoorsDarkOffset>1</ShootingAccuracyIndoorsDarkOffset>
|
||||
<ShootingAccuracyIndoorsLitOffset>1</ShootingAccuracyIndoorsLitOffset>
|
||||
<MeleeHitChanceOutdoorsDarkOffset>1</MeleeHitChanceOutdoorsDarkOffset>
|
||||
<MeleeHitChanceOutdoorsLitOffset>1</MeleeHitChanceOutdoorsLitOffset>
|
||||
<MeleeHitChanceIndoorsDarkOffset>1</MeleeHitChanceIndoorsDarkOffset>
|
||||
<MeleeHitChanceIndoorsLitOffset>1</MeleeHitChanceIndoorsLitOffset>
|
||||
<MeleeDodgeChanceOutdoorsDarkOffset>1</MeleeDodgeChanceOutdoorsDarkOffset>
|
||||
<MeleeDodgeChanceOutdoorsLitOffset>1</MeleeDodgeChanceOutdoorsLitOffset>
|
||||
<MeleeDodgeChanceIndoorsDarkOffset>0.1</MeleeDodgeChanceIndoorsDarkOffset>
|
||||
<MeleeDodgeChanceIndoorsLitOffset>-0.1</MeleeDodgeChanceIndoorsLitOffset>
|
||||
</statOffsets>
|
||||
</li>
|
||||
</stages>
|
||||
<comps>
|
||||
<li Class="HediffCompProperties_DisappearsAndKills">
|
||||
<disappearsAfterTicks>2520000~2880000</disappearsAfterTicks> <!-- 42 ~ 48 days -->
|
||||
<showRemainingTime>true</showRemainingTime>
|
||||
</li>
|
||||
<li Class="HediffCompProperties_DisappearsOnDeath" />
|
||||
</comps>
|
||||
</HediffDef>
|
||||
<!-- 强壮肌肉 增强版 -->
|
||||
<HediffDef>
|
||||
<defName>ARA_Incubator_Elite_BerserkGlands</defName>
|
||||
|
||||
Binary file not shown.
@@ -2,24 +2,32 @@
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\hediffs\\hediffcomp_reflectmeleedamage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\hediffcomp_reflectmeleedamage.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\\ara_defof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:ara_defof.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\\jobs\\jobdriver_supercarry\\jobdriver_supercarry.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_supercarry\\jobdriver_supercarry.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\\jobs\\jobdriver_swarmmaintain\\jobdriver_swarmmaintain.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\\jobs\\jobdriver_swarmmaintain\\jobdriver_swarmmaintain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_swarmmaintain\\jobdriver_swarmmaintain.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\\jobs\\jobdriver_swarmmaintain\\jobgiver_swarmmaintain.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\\jobs\\jobdriver_swarmmaintain\\jobgiver_swarmmaintain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_swarmmaintain\\jobgiver_swarmmaintain.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\\jobs\\jobdriver_swarmmaintain\\thinknode_conditionalshouldmaintain.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\\jobs\\jobdriver_swarmmaintain\\thinknode_conditionalshouldmaintain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_swarmmaintain\\thinknode_conditionalshouldmaintain.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\\damage\\damageworker_explosionwithterrain.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\\damage\\damageworker_explosionwithterrain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:damage\\damageworker_explosionwithterrain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
@@ -98,24 +106,54 @@
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 0,
|
||||
"SelectedChildIndex": 2,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"Title": "ARA_DefOf.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_DefOf.cs",
|
||||
"RelativeDocumentMoniker": "ARA_DefOf.cs",
|
||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_DefOf.cs*",
|
||||
"RelativeToolTip": "ARA_DefOf.cs*",
|
||||
"ViewState": "AgIAAFQAAAAAAAAAAAAUwGcAAAAmAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T08:34:43.383Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "HediffComp_ReflectMeleeDamage.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\HediffComp_ReflectMeleeDamage.cs",
|
||||
"RelativeDocumentMoniker": "Hediffs\\HediffComp_ReflectMeleeDamage.cs",
|
||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\HediffComp_ReflectMeleeDamage.cs*",
|
||||
"RelativeToolTip": "Hediffs\\HediffComp_ReflectMeleeDamage.cs*",
|
||||
"ViewState": "AgIAAFUAAAAAAAAAAAAowGoAAAA/AAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T08:33:52.75Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"Title": "JobDriver_SuperCarry.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_SuperCarry\\JobDriver_SuperCarry.cs",
|
||||
"RelativeDocumentMoniker": "Jobs\\JobDriver_SuperCarry\\JobDriver_SuperCarry.cs",
|
||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_SuperCarry\\JobDriver_SuperCarry.cs",
|
||||
"RelativeToolTip": "Jobs\\JobDriver_SuperCarry\\JobDriver_SuperCarry.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAABcAAABWAAAAAAAAAA==",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAA3AAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-06T03:21:58.524Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"DocumentIndex": 3,
|
||||
"Title": "JobDriver_SwarmMaintain.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_SwarmMaintain\\JobDriver_SwarmMaintain.cs",
|
||||
"RelativeDocumentMoniker": "Jobs\\JobDriver_SwarmMaintain\\JobDriver_SwarmMaintain.cs",
|
||||
@@ -123,16 +161,11 @@
|
||||
"RelativeToolTip": "Jobs\\JobDriver_SwarmMaintain\\JobDriver_SwarmMaintain.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAAXAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-06T03:21:31.585Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
|
||||
"WhenOpened": "2026-03-06T03:21:31.585Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"DocumentIndex": 4,
|
||||
"Title": "JobGiver_SwarmMaintain.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_SwarmMaintain\\JobGiver_SwarmMaintain.cs",
|
||||
"RelativeDocumentMoniker": "Jobs\\JobDriver_SwarmMaintain\\JobGiver_SwarmMaintain.cs",
|
||||
@@ -140,12 +173,11 @@
|
||||
"RelativeToolTip": "Jobs\\JobDriver_SwarmMaintain\\JobGiver_SwarmMaintain.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-06T03:21:34.528Z",
|
||||
"EditorCaption": ""
|
||||
"WhenOpened": "2026-03-06T03:21:34.528Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 3,
|
||||
"DocumentIndex": 5,
|
||||
"Title": "ThinkNode_ConditionalShouldMaintain.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_SwarmMaintain\\ThinkNode_ConditionalShouldMaintain.cs",
|
||||
"RelativeDocumentMoniker": "Jobs\\JobDriver_SwarmMaintain\\ThinkNode_ConditionalShouldMaintain.cs",
|
||||
@@ -153,12 +185,11 @@
|
||||
"RelativeToolTip": "Jobs\\JobDriver_SwarmMaintain\\ThinkNode_ConditionalShouldMaintain.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-06T03:21:32.052Z",
|
||||
"EditorCaption": ""
|
||||
"WhenOpened": "2026-03-06T03:21:32.052Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 4,
|
||||
"DocumentIndex": 6,
|
||||
"Title": "DamageWorker_ExplosionWithTerrain.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Damage\\DamageWorker_ExplosionWithTerrain.cs",
|
||||
"RelativeDocumentMoniker": "Damage\\DamageWorker_ExplosionWithTerrain.cs",
|
||||
@@ -166,12 +197,11 @@
|
||||
"RelativeToolTip": "Damage\\DamageWorker_ExplosionWithTerrain.cs",
|
||||
"ViewState": "AgIAAA0AAAAAAAAAAAAQwB4AAAARAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-06T01:33:29.803Z",
|
||||
"EditorCaption": ""
|
||||
"WhenOpened": "2026-03-06T01:33:29.803Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 5,
|
||||
"DocumentIndex": 7,
|
||||
"Title": "DamageDefExtension_TerrainCover.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Damage\\DamageDefExtension_TerrainCover.cs",
|
||||
"RelativeDocumentMoniker": "Damage\\DamageDefExtension_TerrainCover.cs",
|
||||
@@ -183,7 +213,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 6,
|
||||
"DocumentIndex": 8,
|
||||
"Title": "JobDriver_StripChitin.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_StripChitin\\JobDriver_StripChitin.cs",
|
||||
"RelativeDocumentMoniker": "Jobs\\JobDriver_StripChitin\\JobDriver_StripChitin.cs",
|
||||
@@ -195,7 +225,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 7,
|
||||
"DocumentIndex": 9,
|
||||
"Title": "JobDriver_FeedWithHoney.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\JobDriver_FeedWithHoney.cs",
|
||||
"RelativeDocumentMoniker": "Jobs\\JobDriver_FeedWithHoney\\JobDriver_FeedWithHoney.cs",
|
||||
@@ -207,7 +237,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 8,
|
||||
"DocumentIndex": 10,
|
||||
"Title": "JobGiver_ExtractHoney.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\JobGiver_ExtractHoney.cs",
|
||||
"RelativeDocumentMoniker": "Jobs\\JobDriver_ExtractHoney\\JobGiver_ExtractHoney.cs",
|
||||
@@ -219,7 +249,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 9,
|
||||
"DocumentIndex": 11,
|
||||
"Title": "JobDriver_ExtractHoney.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\JobDriver_ExtractHoney.cs",
|
||||
"RelativeDocumentMoniker": "Jobs\\JobDriver_ExtractHoney\\JobDriver_ExtractHoney.cs",
|
||||
@@ -231,7 +261,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 12,
|
||||
"DocumentIndex": 14,
|
||||
"Title": "WorldComponent_AircraftManager.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_AircraftHangar\\WorldComponent_AircraftManager.cs",
|
||||
"RelativeDocumentMoniker": "Flyover\\ARA_AircraftHangar\\WorldComponent_AircraftManager.cs",
|
||||
@@ -243,7 +273,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 11,
|
||||
"DocumentIndex": 13,
|
||||
"Title": "GameComponent_DropPodInterceptor.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\GameComponent_DropPodInterceptor.cs",
|
||||
"RelativeDocumentMoniker": "Flyover\\GameComponent_DropPodInterceptor.cs",
|
||||
@@ -255,7 +285,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 10,
|
||||
"DocumentIndex": 12,
|
||||
"Title": "CompAbilityEffect_ToggleDropPodIntercept.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\CompAbilityEffect_ToggleDropPodIntercept.cs",
|
||||
"RelativeDocumentMoniker": "Abilities\\CompAbilityEffect_ToggleDropPodIntercept.cs",
|
||||
@@ -267,7 +297,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 13,
|
||||
"DocumentIndex": 15,
|
||||
"Title": "HediffComp_GestaltNode.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_GestaltNode\\HediffComp_GestaltNode.cs",
|
||||
"RelativeDocumentMoniker": "Hediffs\\ARA_GestaltNode\\HediffComp_GestaltNode.cs",
|
||||
@@ -279,7 +309,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 14,
|
||||
"DocumentIndex": 16,
|
||||
"Title": "Comp_SwarmSpellHolder.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_SwarmSpellHolder\\Comp_SwarmSpellHolder.cs",
|
||||
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_SwarmSpellHolder\\Comp_SwarmSpellHolder.cs",
|
||||
@@ -291,7 +321,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 18,
|
||||
"DocumentIndex": 20,
|
||||
"Title": "Building_ResearchBlueprintReader.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ResearchBlueprintReader\\Building_ResearchBlueprintReader.cs",
|
||||
"RelativeDocumentMoniker": "Buildings\\Building_ResearchBlueprintReader\\Building_ResearchBlueprintReader.cs",
|
||||
@@ -303,7 +333,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 17,
|
||||
"DocumentIndex": 19,
|
||||
"Title": "ResearchBlueprintReaderManager.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ResearchBlueprintReader\\ResearchBlueprintReaderManager.cs",
|
||||
"RelativeDocumentMoniker": "Buildings\\Building_ResearchBlueprintReader\\ResearchBlueprintReaderManager.cs",
|
||||
@@ -315,7 +345,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 16,
|
||||
"DocumentIndex": 18,
|
||||
"Title": "CompProperties_AbilityFanShapedStunKnockback.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_FanShapedStunKnockback\\CompProperties_AbilityFanShapedStunKnockback.cs",
|
||||
"RelativeDocumentMoniker": "Abilities\\ARA_FanShapedStunKnockback\\CompProperties_AbilityFanShapedStunKnockback.cs",
|
||||
@@ -327,7 +357,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 15,
|
||||
"DocumentIndex": 17,
|
||||
"Title": "CompAbilityEffect_FanShapedStunKnockback.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_FanShapedStunKnockback\\CompAbilityEffect_FanShapedStunKnockback.cs",
|
||||
"RelativeDocumentMoniker": "Abilities\\ARA_FanShapedStunKnockback\\CompAbilityEffect_FanShapedStunKnockback.cs",
|
||||
@@ -339,7 +369,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 19,
|
||||
"DocumentIndex": 21,
|
||||
"Title": "CompAbilityEffect_EjectOrgans.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_EjectOrgans\\CompAbilityEffect_EjectOrgans.cs",
|
||||
"RelativeDocumentMoniker": "Abilities\\ARA_EjectOrgans\\CompAbilityEffect_EjectOrgans.cs",
|
||||
@@ -351,7 +381,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 21,
|
||||
"DocumentIndex": 23,
|
||||
"Title": "CompHediffGiver.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_CompHediffGiver\\CompHediffGiver.cs",
|
||||
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_CompHediffGiver\\CompHediffGiver.cs",
|
||||
@@ -363,7 +393,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 20,
|
||||
"DocumentIndex": 22,
|
||||
"Title": "CompProperties_HediffGiver.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_CompHediffGiver\\CompProperties_HediffGiver.cs",
|
||||
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_CompHediffGiver\\CompProperties_HediffGiver.cs",
|
||||
|
||||
@@ -100,4 +100,13 @@ namespace ArachnaeSwarm
|
||||
DefOfHelper.EnsureInitializedInCtor(typeof(ARA_StatDefOf));
|
||||
}
|
||||
}
|
||||
[DefOf]
|
||||
public static class ARA_ThingDefOf
|
||||
{
|
||||
public static ThingDef Mote_SparkSimple;
|
||||
static ARA_ThingDefOf()
|
||||
{
|
||||
DefOfHelper.EnsureInitializedInCtor(typeof(ARA_ThingDefOf));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -312,6 +312,7 @@
|
||||
<Compile Include="Hediffs\ARA_ProductionQueue\HediffComp_ProductionQueue.cs" />
|
||||
<Compile Include="Hediffs\DRM_HediffCurseFlame\Hediff_CurseFlame.cs" />
|
||||
<Compile Include="Hediffs\HediffComp_LifespanDisplay.cs" />
|
||||
<Compile Include="Hediffs\HediffComp_ReflectMeleeDamage.cs" />
|
||||
<Compile Include="Hediffs\HediffComp_SpawnPawnOnRemoved.cs" />
|
||||
<Compile Include="Hediffs\HediffComp_Temperature.cs" />
|
||||
<Compile Include="Hediffs\HediffComp_TerrainBasedSeverity\HediffCompProperties_TerrainBasedSeverity.cs" />
|
||||
|
||||
298
Source/ArachnaeSwarm/Hediffs/HediffComp_ReflectMeleeDamage.cs
Normal file
298
Source/ArachnaeSwarm/Hediffs/HediffComp_ReflectMeleeDamage.cs
Normal file
@@ -0,0 +1,298 @@
|
||||
using ArachnaeSwarm;
|
||||
using RimWorld;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Verse;
|
||||
|
||||
namespace ArachnaeSwarmVerse
|
||||
{
|
||||
/// <summary>
|
||||
/// 近战伤害反射组件的属性
|
||||
/// </summary>
|
||||
public class HediffCompProperties_ReflectMeleeDamage : HediffCompProperties
|
||||
{
|
||||
public float reflectMultiplier = 3.0f; // 反射倍数,默认300%
|
||||
public bool showReflectionEffect = true; // 是否显示反射效果
|
||||
public bool reflectOnlyMelee = true; // 是否只反射近战伤害
|
||||
public bool includeToolBasedRanged = false; // 是否包含使用工具的远程伤害
|
||||
public float minDamageToReflect = 0.1f; // 最小反射伤害阈值
|
||||
|
||||
public HediffCompProperties_ReflectMeleeDamage()
|
||||
{
|
||||
this.compClass = typeof(HediffComp_ReflectMeleeDamage);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 近战伤害反射组件
|
||||
/// 当Pawn受到近战伤害时,将300%的伤害反射给攻击者
|
||||
/// </summary>
|
||||
public class HediffComp_ReflectMeleeDamage : HediffComp
|
||||
{
|
||||
private bool isProcessingReflection = false; // 防止递归调用
|
||||
private int lastReflectionTick = -100; // 上次反射的tick
|
||||
private const int MIN_TICKS_BETWEEN_REFLECTIONS = 2; // 最小反射间隔
|
||||
|
||||
public HediffCompProperties_ReflectMeleeDamage Props => (HediffCompProperties_ReflectMeleeDamage)props;
|
||||
|
||||
/// <summary>
|
||||
/// 获取反射倍率
|
||||
/// </summary>
|
||||
public float ReflectMultiplier => Props.reflectMultiplier;
|
||||
|
||||
/// <summary>
|
||||
/// 检查是否为近战伤害
|
||||
/// 根据题目要求:所有damageinfo有tool的,视为近战伤害
|
||||
/// </summary>
|
||||
private bool IsMeleeDamage(DamageInfo dinfo)
|
||||
{
|
||||
// 如果有Tool,视为近战伤害
|
||||
if (dinfo.Tool != null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// 如果没有Tool,进一步检查武器类型
|
||||
if (dinfo.Weapon != null)
|
||||
{
|
||||
// 检查是否为近战武器
|
||||
if (dinfo.Weapon.IsMeleeWeapon)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// 如果设置为包含使用工具的远程伤害,且武器有工具定义
|
||||
if (Props.includeToolBasedRanged && dinfo.Weapon.tools != null && dinfo.Weapon.tools.Count > 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// 默认情况下,不视为近战伤害
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检查是否应该反射此伤害
|
||||
/// </summary>
|
||||
private bool ShouldReflectDamage(DamageInfo dinfo, Pawn pawn)
|
||||
{
|
||||
// 防止递归调用
|
||||
if (isProcessingReflection)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// 检查最小伤害阈值
|
||||
if (dinfo.Amount < Props.minDamageToReflect)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// 检查是否只反射近战伤害
|
||||
if (Props.reflectOnlyMelee && !IsMeleeDamage(dinfo))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// 检查伤害来源
|
||||
if (dinfo.Instigator == null || dinfo.Instigator == pawn)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// 检查最小反射间隔
|
||||
if (Find.TickManager.TicksGame - lastReflectionTick < MIN_TICKS_BETWEEN_REFLECTIONS)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// 检查攻击者是否有效
|
||||
Pawn attacker = dinfo.Instigator as Pawn;
|
||||
if (attacker != null && (attacker.Dead || attacker.Destroyed))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 反射伤害给攻击者
|
||||
/// </summary>
|
||||
private void ReflectDamageToAttacker(DamageInfo originalDinfo, Pawn pawn)
|
||||
{
|
||||
try
|
||||
{
|
||||
isProcessingReflection = true;
|
||||
lastReflectionTick = Find.TickManager.TicksGame;
|
||||
|
||||
// 计算反射伤害
|
||||
float reflectedAmount = originalDinfo.Amount * ReflectMultiplier;
|
||||
|
||||
// 确保有最小伤害
|
||||
if (reflectedAmount < 1f)
|
||||
{
|
||||
reflectedAmount = 1f;
|
||||
}
|
||||
|
||||
// 获取攻击者
|
||||
Thing attacker = originalDinfo.Instigator;
|
||||
if (attacker == null || attacker.Destroyed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 创建反射伤害信息
|
||||
DamageInfo reflectedDinfo = new DamageInfo(
|
||||
def: originalDinfo.Def,
|
||||
amount: reflectedAmount,
|
||||
armorPenetration: originalDinfo.ArmorPenetrationInt,
|
||||
angle: Rand.Range(0, 359),
|
||||
instigator: pawn, // 反射者作为伤害来源
|
||||
hitPart: null,
|
||||
weapon: originalDinfo.Weapon,
|
||||
category: DamageInfo.SourceCategory.ThingOrUnknown,
|
||||
intendedTarget: attacker
|
||||
);
|
||||
|
||||
// 设置反射伤害的特殊属性
|
||||
reflectedDinfo.SetAllowDamagePropagation(true);
|
||||
reflectedDinfo.SetIgnoreArmor(false);
|
||||
|
||||
// 如果有Tool,传递Tool信息(但标记为反射伤害)
|
||||
if (originalDinfo.Tool != null)
|
||||
{
|
||||
reflectedDinfo.SetTool(originalDinfo.Tool);
|
||||
}
|
||||
|
||||
// 记录日志
|
||||
if (Prefs.DevMode)
|
||||
{
|
||||
Log.Message($"[ReflectMeleeDamage] {pawn.LabelShortCap} reflected {reflectedAmount:F1} damage " +
|
||||
$"({originalDinfo.Amount:F1} × {ReflectMultiplier:F1}) to {attacker.LabelShortCap}");
|
||||
}
|
||||
|
||||
// 对攻击者造成伤害
|
||||
attacker.TakeDamage(reflectedDinfo);
|
||||
|
||||
// 显示反射效果
|
||||
if (Props.showReflectionEffect)
|
||||
{
|
||||
ShowReflectionEffect(pawn, attacker);
|
||||
}
|
||||
|
||||
// 发送消息
|
||||
if (pawn.Faction == Faction.OfPlayer && attacker.Faction != Faction.OfPlayer)
|
||||
{
|
||||
Messages.Message(
|
||||
"ASV_ReflectDamageMessage".Translate(
|
||||
pawn.LabelShort,
|
||||
attacker.LabelShort,
|
||||
reflectedAmount.ToString("F0")
|
||||
),
|
||||
pawn,
|
||||
MessageTypeDefOf.NeutralEvent
|
||||
);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error($"[ReflectMeleeDamage] Error reflecting damage: {ex}");
|
||||
}
|
||||
finally
|
||||
{
|
||||
isProcessingReflection = false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 显示反射效果
|
||||
/// </summary>
|
||||
private void ShowReflectionEffect(Pawn pawn, Thing attacker)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 显示反弹粒子
|
||||
if (pawn.Spawned && attacker.Spawned && pawn.Map == attacker.Map)
|
||||
{
|
||||
Vector3 startPos = pawn.DrawPos;
|
||||
Vector3 endPos = attacker.DrawPos;
|
||||
|
||||
// 创建一个从反射者到攻击者的弹道效果
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
MoteThrown mote = (MoteThrown)ThingMaker.MakeThing(ARA_ThingDefOf.Mote_SparkSimple, null);
|
||||
mote.Scale = Rand.Range(0.5f, 0.8f);
|
||||
mote.exactPosition = startPos + new Vector3(
|
||||
Rand.Range(-0.3f, 0.3f),
|
||||
0f,
|
||||
Rand.Range(-0.3f, 0.3f)
|
||||
);
|
||||
mote.SetVelocity(
|
||||
(endPos - startPos).normalized.x * Rand.Range(15f, 25f),
|
||||
0f
|
||||
);
|
||||
GenSpawn.Spawn(mote, pawn.Position, pawn.Map);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error($"[ReflectMeleeDamage] Error showing reflection effect: {ex}");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 在Pawn受到伤害后调用
|
||||
/// </summary>
|
||||
public override void Notify_PawnPostApplyDamage(DamageInfo dinfo, float totalDamageDealt)
|
||||
{
|
||||
base.Notify_PawnPostApplyDamage(dinfo, totalDamageDealt);
|
||||
|
||||
Pawn pawn = this.Pawn;
|
||||
if (pawn == null || pawn.Dead || pawn.Destroyed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 检查是否应该反射伤害
|
||||
if (ShouldReflectDamage(dinfo, pawn))
|
||||
{
|
||||
// 反射伤害给攻击者
|
||||
ReflectDamageToAttacker(dinfo, pawn);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取组件描述
|
||||
/// </summary>
|
||||
public override string CompTipStringExtra
|
||||
{
|
||||
get
|
||||
{
|
||||
string tip = "ASV_ReflectMeleeDamage_Tip".Translate(ReflectMultiplier.ToStringPercent());
|
||||
|
||||
if (Props.includeToolBasedRanged)
|
||||
{
|
||||
tip += "\n" + "ASV_ReflectIncludesToolRanged".Translate();
|
||||
}
|
||||
|
||||
return tip;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取调试信息
|
||||
/// </summary>
|
||||
public override string CompDebugString()
|
||||
{
|
||||
return $"Reflect multiplier: {ReflectMultiplier:F1}x\n" +
|
||||
$"Last reflection tick: {lastReflectionTick}\n" +
|
||||
$"Min damage to reflect: {Props.minDamageToReflect}\n" +
|
||||
$"Reflects only melee: {Props.reflectOnlyMelee}\n" +
|
||||
$"Includes tool-based ranged: {Props.includeToolBasedRanged}";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user