This commit is contained in:
2026-02-15 17:29:39 +08:00
parent 2eabf020fd
commit 721addbfe8
17 changed files with 432 additions and 26 deletions

Binary file not shown.

View File

@@ -272,8 +272,8 @@
</ThingDef>
<AbilityDef>
<defName>ARA_AcidSprayBurst_Queen</defName>
<label>女皇种酸液轰炸</label>
<description>阿拉克涅女皇种向目标地点喷射大量腐蚀性酸液,喷射将持续数秒以完全覆盖一片区域。</description>
<label>酸液轰炸</label>
<description>向目标地点喷射大量腐蚀性酸液,完全覆盖一片区域以杀伤敌军并降低幸存者的护甲</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_AcidSprayBurst</iconPath>
<cooldownTicksRange>5000</cooldownTicksRange> <!-- 2 hours -->
<aiCanUse>false</aiCanUse>
@@ -374,7 +374,7 @@
<numProjectiles>12</numProjectiles>
<!-- 偏移配置 -->
<offsetRadius>1</offsetRadius>
<offsetRadius>0</offsetRadius>
<useRandomOffset>true</useRandomOffset>
<offsetInCircle>true</offsetInCircle>
<avoidOverlap>false</avoidOverlap>
@@ -1706,7 +1706,7 @@
<AbilityDef>
<defName>ARA_Praetorian_TailSweep</defName>
<label>扫尾</label>
<description>阿拉克涅督虫甩动尾巴猛抽面前的敌人,对扇形范围内所有的敌对目标造成伤害,如果对方在攻击中幸存,就会被击飞并眩晕一段时间。</description>
<description>甩动尾巴猛抽面前的敌人,对扇形范围内所有的敌对目标造成伤害,如果对方在攻击中幸存,就会被击飞并眩晕一段时间。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Praetorian_TailSweep</iconPath>
<aiCanUse>true</aiCanUse>
<hostile>true</hostile>

View File

@@ -215,4 +215,216 @@
</AbilityDef>
<!-- T1 -->
<AbilityDef>
<defName>ARA_Neurotyrant_T1_PsyShoot</defName>
<label>灵能射弹</label>
<description>短暂蓄能之后发射一组灵能射弹。</description>
<writeCombatLog>True</writeCombatLog>
<showPsycastEffects>False</showPsycastEffects>
<cooldownTicksRange>30</cooldownTicksRange>
<aiCanUse>true</aiCanUse>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Toxic_Needle_Fire</iconPath>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<range>24</range>
<warmupTime>1</warmupTime>
<soundCast>ARA_Psi_Ability_Sound</soundCast>
<targetParams>
<canTargetPawns>True</canTargetPawns>
</targetParams>
</verbProperties>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AbilityLaunchMultiProjectile">
<!-- 默认状态参数 -->
<projectileDef>Bullet_ARA_Neurotyrant_T1_PsyShoot</projectileDef>
<numProjectiles>24</numProjectiles>
<!-- 偏移配置 -->
<offsetRadius>0</offsetRadius>
<useRandomOffset>true</useRandomOffset>
<offsetInCircle>true</offsetInCircle>
<avoidOverlap>false</avoidOverlap>
<shotIntervalTicks>3</shotIntervalTicks>
</li>
<!-- <li Class="ArachnaeSwarm.CompProperties_AbilityResearchPrereq">
<requiredResearch>ARA_Technology_5PAV</requiredResearch>
</li> -->
<li Class="ArachnaeSwarm.CompProperties_AbilityPsychicLoadCost">
<!-- 负载消耗设置 -->
<loadCostRange>
<min>0.25</min>
<max>0.5</max>
</loadCostRange>
<showCostInGizmo>true</showCostInGizmo>
<!-- <customLabel>Psychic Load Cost</customLabel> -->
<ignoreOverloadCheck>true</ignoreOverloadCheck>
<!-- 效果设置 -->
<!-- <successEffecter>PsychicPulse</successEffecter>
<overloadEffecter>ExplosionFlash</overloadEffecter> -->
<!-- 超载惩罚设置 -->
<applyOverloadPenalty>true</applyOverloadPenalty>
<consciousnessSourceDamageMult>99999</consciousnessSourceDamageMult>
<overloadPenaltyHediff>ARA_SwarmSpell_Overdrive</overloadPenaltyHediff>
<destroyConsciousnessSource>true</destroyConsciousnessSource>
</li>
</comps>
</AbilityDef>
<ThingDef ParentName="BaseBullet">
<defName>Bullet_ARA_Neurotyrant_T1_PsyShoot</defName>
<label>灵能射弹</label>
<graphicData>
<texPath>ArachnaeSwarm/Mote/ARA_Spike_Shell</texPath>
<graphicClass>Graphic_Single_AgeSecs</graphicClass>
<shaderType>MoteGlow</shaderType>
<drawSize>(0.5,0.75)</drawSize>
<color>(159, 38, 146, 250)</color>
</graphicData>
<projectile>
<damageDef>ARA_Psi_Damage</damageDef>
<damageAmountBase>5</damageAmountBase>
<armorPenetrationBase>2</armorPenetrationBase>
<speed>40</speed>
</projectile>
</ThingDef>
<AbilityDef>
<defName>ARA_Neurotyrant_T1_PsyPsuh</defName>
<label>灵能推击</label>
<description>瞬间释放指向性的灵能能量伤害靠近的敌人,随后击飞并眩晕它们。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Praetorian_TailSweep</iconPath>
<aiCanUse>true</aiCanUse>
<hostile>true</hostile>
<casterMustBeCapableOfViolence>true</casterMustBeCapableOfViolence>
<cooldownTicksRange>30</cooldownTicksRange>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<range>6</range>
<warmupTime>0.6</warmupTime>
<soundCast>ARA_Psi_Ability_Sound</soundCast>
<targetParams>
<canTargetLocations>true</canTargetLocations>
</targetParams>
</verbProperties>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AbilityFanShapedStunKnockback">
<!-- 扇形参数 -->
<range>6</range>
<coneSizeDegrees>100</coneSizeDegrees>
<lineWidthEnd>12</lineWidthEnd>
<!-- 伤害参数 -->
<damageDef>ARA_Psi_Damage</damageDef>
<damageAmount>35</damageAmount>
<armorPenetration>1</armorPenetration>
<!-- 眩晕参数 -->
<stunTicks>180</stunTicks>
<!-- 击退参数 -->
<maxKnockbackDistance>4</maxKnockbackDistance>
<canKnockbackIntoWalls>false</canKnockbackIntoWalls>
<requireLineOfSight>false</requireLineOfSight>
<affectNonPawnThings>true</affectNonPawnThings>
<canDamageNonPawnThings>true</canDamageNonPawnThings>
<nonPawnDamageMultiplier>5</nonPawnDamageMultiplier>
<applySpecialEffectsToNonPawn>false</applySpecialEffectsToNonPawn>
<!-- 视觉效果 -->
<impactEffecter>ARA_Psy_Shockwave</impactEffecter>
<impactSound>Pawn_Melee_BigBash_HitPawn</impactSound>
<!-- 飞行效果 -->
<knockbackFlyerDef>PawnFlyer</knockbackFlyerDef>
<!-- <flightEffecterDef>FlightEffect_Knockback</flightEffecterDef> -->
<landingSound>PawnFlyer_Land</landingSound>
<!-- 过滤设置 -->
<affectCaster>false</affectCaster>
<canHitFilledCells>true</canHitFilledCells>
<onlyAffectEnemies>false</onlyAffectEnemies>
<requireLineOfSightToTarget>true</requireLineOfSightToTarget>
<!-- 近战伤害系数加成 -->
<multiplyDamageByMeleeFactor>false</multiplyDamageByMeleeFactor>
<multiplyStunTimeByMeleeFactor>false</multiplyStunTimeByMeleeFactor>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityPsychicLoadCost">
<!-- 负载消耗设置 -->
<loadCostRange>
<min>0.5</min>
<max>1.25</max>
</loadCostRange>
<showCostInGizmo>true</showCostInGizmo>
<!-- <customLabel>Psychic Load Cost</customLabel> -->
<ignoreOverloadCheck>true</ignoreOverloadCheck>
<!-- 效果设置 -->
<!-- <successEffecter>PsychicPulse</successEffecter>
<overloadEffecter>ExplosionFlash</overloadEffecter> -->
<!-- 超载惩罚设置 -->
<applyOverloadPenalty>true</applyOverloadPenalty>
<consciousnessSourceDamageMult>99999</consciousnessSourceDamageMult>
<overloadPenaltyHediff>ARA_SwarmSpell_Overdrive</overloadPenaltyHediff>
<destroyConsciousnessSource>true</destroyConsciousnessSource>
</li>
</comps>
</AbilityDef>
<AbilityDef>
<defName>ARA_Neurotyrant_T1_PsyHemostasis</defName>
<label>止血</label>
<description>使用灵能强行封住目标伤口,短暂地阻止失血。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Genestealer_InjectGenes</iconPath>
<cooldownTicksRange>1</cooldownTicksRange>
<casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
<stunTargetWhileCasting>true</stunTargetWhileCasting>
<warmupMote>Mote_HoraxSmallSpellWarmup</warmupMote>
<warmupEffecter>HoraxianAbilityCasting</warmupEffecter>
<warmupSound>AnomalyAbilityWarmup</warmupSound>
<jobDef>CastAbilityOnThingMelee</jobDef>
<aiCanUse>false</aiCanUse>
<statBases>
<Ability_Duration>120</Ability_Duration>
</statBases>
<verbProperties>
<verbClass>Verb_CastAbilityTouch</verbClass>
<drawAimPie>false</drawAimPie>
<range>-1</range>
<warmupTime>3</warmupTime>
<targetParams>
<onlyTargetColonistsOrPrisonersOrSlaves>true</onlyTargetColonistsOrPrisonersOrSlaves>
<canTargetSelf>false</canTargetSelf>
<canTargetMechs>false</canTargetMechs>
<canTargetBuildings>false</canTargetBuildings>
</targetParams>
</verbProperties>
<comps>
<li Class ="CompProperties_AbilityGiveHediff">
<compClass>CompAbilityEffect_GiveHediff</compClass>
<hediffDef>ARA_PsyHemostasis_Hediff</hediffDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityPsychicLoadCost">
<!-- 负载消耗设置 -->
<loadCostRange>
<min>0.5</min>
<max>1.5</max>
</loadCostRange>
<showCostInGizmo>true</showCostInGizmo>
<!-- <customLabel>Psychic Load Cost</customLabel> -->
<ignoreOverloadCheck>true</ignoreOverloadCheck>
<!-- 效果设置 -->
<!-- <successEffecter>PsychicPulse</successEffecter>
<overloadEffecter>ExplosionFlash</overloadEffecter> -->
<!-- 超载惩罚设置 -->
<applyOverloadPenalty>true</applyOverloadPenalty>
<consciousnessSourceDamageMult>99999</consciousnessSourceDamageMult>
<overloadPenaltyHediff>ARA_SwarmSpell_Overdrive</overloadPenaltyHediff>
<destroyConsciousnessSource>true</destroyConsciousnessSource>
</li>
</comps>
</AbilityDef>
</Defs>

View File

@@ -153,7 +153,7 @@
<isRanged>true</isRanged>
<makesAnimalsFlee>false</makesAnimalsFlee>
<defaultDamage>20</defaultDamage>
<defaultArmorPenetration>1.5</defaultArmorPenetration>
<defaultArmorPenetration>2</defaultArmorPenetration>
<buildingDamageFactorImpassable>1</buildingDamageFactorImpassable>
<buildingDamageFactorPassable>1</buildingDamageFactorPassable>
</DamageDef>

View File

@@ -281,4 +281,60 @@
<solidTime>0.08</solidTime>
<fadeOutTime>0.13</fadeOutTime>
</FleckDef>
<EffecterDef>
<defName>ARA_Psy_Shockwave</defName>
<children>
<li>
<subEffecterClass>SubEffecter_SprayerTriggered</subEffecterClass>
<fleckDef>Fleck_BlastMechBandShockwave</fleckDef>
<burstCount>3~5</burstCount>
<spawnLocType>OnSource</spawnLocType>
<absoluteAngle>true</absoluteAngle>
<rotation>0~0</rotation>
</li>
<li>
<subEffecterClass>SubEffecter_SprayerTriggered</subEffecterClass>
<moteDef>ARA_PsyWave_Main</moteDef>
<burstCount>1</burstCount>
<scale>1</scale>
<speed>20</speed>
<angle>0</angle>
<positionRadius>0.01</positionRadius>
<spawnLocType>OnSource</spawnLocType>
</li>
<li>
<subEffecterClass>SubEffecter_SprayerTriggered</subEffecterClass>
<fleckDef>FlashMechBand</fleckDef>
<burstCount>1</burstCount>
<spawnLocType>OnSource</spawnLocType>
<absoluteAngle>true</absoluteAngle>
<rotation>0~0</rotation>
</li>
<li>
<subEffecterClass>SubEffecter_SprayerTriggered</subEffecterClass>
<moteDef>Mote_RedFlashStrong</moteDef>
<burstCount>1</burstCount>
<spawnLocType>OnSource</spawnLocType>
<scale>24</scale>
</li>
</children>
</EffecterDef>
<ThingDef ParentName="MoteBase">
<defName>ARA_PsyWave_Main</defName>
<graphicData>
<texPath>ArachnaeSwarm/Mote/ARA_PsyWave_Main</texPath>
<drawSize>(7,7)</drawSize>
<shaderType>MoteGlow</shaderType>
<color>(0.6,0.1,0.6,0.5)</color>
</graphicData>
<altitudeLayer>Floor</altitudeLayer>
<mote>
<fadeInTime>0.2</fadeInTime>
<solidTime>0.4</solidTime>
<fadeOutTime>0.2</fadeOutTime>
<growthRate>0.25</growthRate>
<rotateTowardsMoveDirection>true</rotateTowardsMoveDirection>
</mote>
</ThingDef>
</Defs>

View File

@@ -1947,4 +1947,36 @@
</li>
</comps>
</HediffDef>
<HediffDef>
<defName>ArachnaeQueen_Neurotyrant_1Stage</defName>
<label>术法强度</label>
<description>术法强度</description>
<hediffClass>HediffWithComps</hediffClass>
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
<isBad>false</isBad>
<scenarioCanAdd>false</scenarioCanAdd>
<maxSeverity>1.0</maxSeverity>
<stages>
<li>
<label>等级1</label>
<statOffsets>
<ARA_SwarmSpell_Level>1</ARA_SwarmSpell_Level>
</statOffsets>
</li>
</stages>
<comps>
<!-- <li Class="HediffCompProperties_GiveAbility">
<abilityDefs>
<li>ArachnaeQueen_Neurotyrant_2Stage</li>
</abilityDefs>
</li>
<li Class="HediffCompProperties_RemoveIfOtherHediff">
<hediffs>
<li>ArachnaeQueen_Neurotyrant_2Stage</li>
</hediffs>
</li> -->
</comps>
</HediffDef>
</Defs>

View File

@@ -220,4 +220,22 @@
<li Class="HediffCompProperties_DisappearsOnDeath"/>
</comps>
</HediffDef>
<HediffDef>
<defName>ARA_PsyHemostasis_Hediff</defName>
<label>灵能封堵</label>
<description>这个殖民者被使用超自然力量封住了伤口。</description>
<hediffClass>HediffWithComps</hediffClass>
<isBad>false</isBad>
<defaultLabelColor>(0.6, 0.6, 0.6)</defaultLabelColor>
<scenarioCanAdd>false</scenarioCanAdd>
<stages>
</stages>
<comps>
<li Class="HediffCompProperties_Disappears">
<showRemainingTime>true</showRemainingTime>
</li>
<li Class="HediffCompProperties_DisappearsOnDeath"/>
</comps>
</HediffDef>
</Defs>

View File

@@ -171,8 +171,11 @@
<apparelMoney>0</apparelMoney>
<abilities>
<li>ARA_BindDrone</li>
<li>ARA_Queen_TailSweep</li>
<li>ARA_Neurotyrant_Harvest</li>
<li>ARA_Neurotyrant_PsychicLoadDump</li>
<li>ARA_Neurotyrant_T1_PsyShoot</li>
<li>ARA_Neurotyrant_T1_PsyPsuh</li>
</abilities>
</PawnKindDef>

View File

@@ -75,7 +75,7 @@
<thingDef>ARA_Shell_Thorn_Turret</thingDef>
</descriptionHyperlinks>
<recipeMaker>
<researchPrerequisite>ARA_Technology_7EVO</researchPrerequisite>
<researchPrerequisite>ARA_Technology_7EVO_T</researchPrerequisite>
</recipeMaker>
<costList>
<ARA_Activated_Bacterium>15</ARA_Activated_Bacterium>

View File

@@ -68,4 +68,21 @@
</li>
</subSounds>
</SoundDef>
<SoundDef>
<defName>ARA_Psi_Ability_Sound</defName>
<context>MapOnly</context>
<subSounds>
<li>
<grains>
<li Class="AudioGrain_Folder">
<clipFolderPath>Pawn/Revenant/Death</clipFolderPath>
</li>
</grains>
<volumeRange>70~85</volumeRange>
<pitchRange>0.9311764~1.068824</pitchRange>
<!-- <distRange>0~70</distRange> -->
<sustainLoop>False</sustainLoop>
</li>
</subSounds>
</SoundDef>
</Defs>

View File

@@ -112,4 +112,16 @@
<displayPriorityInCategory>2201</displayPriorityInCategory>
<showIfUndefined>false</showIfUndefined>
</StatDef>
<StatDef>
<defName>ARA_SwarmSpell_Level</defName>
<label>术法等级</label>
<description>阿拉克涅灵能单位的术法强度。</description>
<category>Basics</category>
<defaultBaseValue>0</defaultBaseValue>
<toStringStyle>Integer</toStringStyle>
<hideAtValue>0</hideAtValue>
<minValue>0</minValue>
<displayPriorityInCategory>2202</displayPriorityInCategory>
<showIfUndefined>false</showIfUndefined>
</StatDef>
</Defs>

View File

@@ -915,6 +915,13 @@
<researchStartedMessageKey>ARA_PawnResearch_Started</researchStartedMessageKey>
<researchNoPointsMessageKey>ARA_PawnResearch_NoPoints</researchNoPointsMessageKey>
</li>
<li Class="ArachnaeSwarm.CompProperties_HediffGiver">
<hediffs>
<li>ArachnaeQueen_Neurotyrant_1Stage</li>
</hediffs>
<addChance>1.0</addChance>
<allowDuplicates>false</allowDuplicates>
</li>
</comps>
</AlienRace.ThingDef_AlienRace>
</Defs>

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

View File

@@ -3,19 +3,31 @@
"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\\abilities\\ara_fanshapedstunknockback\\compproperties_abilityfanshapedstunknockback.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_fanshapedstunknockback\\compproperties_abilityfanshapedstunknockback.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\\pawn_comps\\ara_swarmspellholder\\comp_swarmspellholder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_swarmspellholder\\comp_swarmspellholder.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_fanshapedstunknockback\\compabilityeffect_fanshapedstunknockback.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_fanshapedstunknockback\\compabilityeffect_fanshapedstunknockback.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_fanshapedstunknockback\\compabilityeffect_fanshapedstunknockback.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_ejectorgans\\compabilityeffect_ejectorgans.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_fanshapedstunknockback\\compproperties_abilityfanshapedstunknockback.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_fanshapedstunknockback\\compproperties_abilityfanshapedstunknockback.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\\buildings\\building_researchblueprintreader\\researchblueprintreadermanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_researchblueprintreader\\researchblueprintreadermanager.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\\buildings\\building_researchblueprintreader\\building_researchblueprintreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_researchblueprintreader\\building_researchblueprintreader.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_ejectorgans\\compabilityeffect_ejectorgans.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_ejectorgans\\compabilityeffect_ejectorgans.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\\pawn_comps\\ara_comphediffgiver\\compproperties_hediffgiver.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\\pawn_comps\\ara_comphediffgiver\\compproperties_hediffgiver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_comphediffgiver\\compproperties_hediffgiver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
@@ -30,21 +42,60 @@
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 1,
"SelectedChildIndex": 0,
"Children": [
{
"$type": "Document",
"DocumentIndex": 0,
"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",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_SwarmSpellHolder\\Comp_SwarmSpellHolder.cs",
"RelativeToolTip": "Pawn_Comps\\ARA_SwarmSpellHolder\\Comp_SwarmSpellHolder.cs",
"ViewState": "AgIAAEUBAAAAAAAAAAASwLMCAAAJAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-02-15T09:09:37.135Z",
"EditorCaption": ""
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
{
"$type": "Document",
"DocumentIndex": 0,
"DocumentIndex": 4,
"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",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ResearchBlueprintReader\\Building_ResearchBlueprintReader.cs",
"RelativeToolTip": "Buildings\\Building_ResearchBlueprintReader\\Building_ResearchBlueprintReader.cs",
"ViewState": "AgIAAM4BAAAAAAAAAAAMwOsBAABYAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-02-15T08:15:16.626Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "ResearchBlueprintReaderManager.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ResearchBlueprintReader\\ResearchBlueprintReaderManager.cs",
"RelativeDocumentMoniker": "Buildings\\Building_ResearchBlueprintReader\\ResearchBlueprintReaderManager.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ResearchBlueprintReader\\ResearchBlueprintReaderManager.cs",
"RelativeToolTip": "Buildings\\Building_ResearchBlueprintReader\\ResearchBlueprintReaderManager.cs",
"ViewState": "AgIAAKMCAAAAAAAAAAAnwL8CAAA4AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-02-15T08:26:17.331Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"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",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_FanShapedStunKnockback\\CompProperties_AbilityFanShapedStunKnockback.cs",
"RelativeToolTip": "Abilities\\ARA_FanShapedStunKnockback\\CompProperties_AbilityFanShapedStunKnockback.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAUAAAA9AAAAAAAAAA==",
"ViewState": "AgIAABMAAAAAAAAAAAAAADIAAAAWAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-02-15T06:29:46.581Z",
"EditorCaption": ""
@@ -57,14 +108,14 @@
"RelativeDocumentMoniker": "Abilities\\ARA_FanShapedStunKnockback\\CompAbilityEffect_FanShapedStunKnockback.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_FanShapedStunKnockback\\CompAbilityEffect_FanShapedStunKnockback.cs",
"RelativeToolTip": "Abilities\\ARA_FanShapedStunKnockback\\CompAbilityEffect_FanShapedStunKnockback.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAA==",
"ViewState": "AgIAAOMAAAAAAAAAAAAuwPcAAAARAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-02-15T06:29:34.172Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"DocumentIndex": 5,
"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",
@@ -72,12 +123,11 @@
"RelativeToolTip": "Abilities\\ARA_EjectOrgans\\CompAbilityEffect_EjectOrgans.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAQAAAAXAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-02-15T06:29:29.494Z",
"EditorCaption": ""
"WhenOpened": "2026-02-15T06:29:29.494Z"
},
{
"$type": "Document",
"DocumentIndex": 4,
"DocumentIndex": 7,
"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",
@@ -89,7 +139,7 @@
},
{
"$type": "Document",
"DocumentIndex": 3,
"DocumentIndex": 6,
"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",
@@ -97,8 +147,7 @@
"RelativeToolTip": "Pawn_Comps\\ARA_CompHediffGiver\\CompProperties_HediffGiver.cs",
"ViewState": "AgIAAAgAAAAAAAAAAAAAAC8AAAAWAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-02-15T01:43:54.125Z",
"EditorCaption": ""
"WhenOpened": "2026-02-15T01:43:54.125Z"
}
]
}

View File

@@ -94,7 +94,7 @@ namespace ArachnaeSwarm
public static StatDef ARA_GestaltBandwidth;
public static StatDef ARA_GestaltBandwidthCost;
public static StatDef ARA_SwarmSpell_Cooldown_Delay;
public static StatDef ARA_SwarmSpell_Level;
static ARA_StatDefOf()
{
DefOfHelper.EnsureInitializedInCtor(typeof(ARA_StatDefOf));

View File

@@ -172,7 +172,7 @@ namespace ArachnaeSwarm
private set
{
float oldLevel = spellLevel;
spellLevel = Mathf.Max(0f, value);
spellLevel = parent.GetStatValue(ARA_StatDefOf.ARA_SwarmSpell_Level);
// 更新负载容量
PsychicLoadCapacity = spellLevel * PSYCHIC_LOAD_PER_LEVEL;
@@ -290,7 +290,7 @@ namespace ArachnaeSwarm
return;
// 设置初始值
spellLevel = SPELL_LEVEL_MULTIPLIER;
spellLevel = parent.GetStatValue(ARA_StatDefOf.ARA_SwarmSpell_Level);
psychicLoadCapacity = spellLevel * PSYCHIC_LOAD_PER_LEVEL;
psychicLoad = 0f;
psychicResearchPoints = 0f;
@@ -690,7 +690,7 @@ namespace ArachnaeSwarm
/// </summary>
public float GetSpellLevel()
{
return spellLevel;
return parent.GetStatValue(ARA_StatDefOf.ARA_SwarmSpell_Level);
}
/// <summary>