fix: 把被两个提交“优化”坏的督虫出生链路修回来

- 恢复 NodeSwarm 基础种族的 ARA_HiveMindDrone 注入(撤销 d69dc3b 引入的回归)
- Ootheca 与队列孵化统一改为 forceGenerateNewPawn=true,绕开 redress 路径跳过 startingHediffs
- 新出生督虫稳定携带 ARA_HiveMindDrone,不再靠运气触发
This commit is contained in:
2026-02-10 17:47:15 +08:00
parent 3ee4a60c4b
commit 34548bba61
6 changed files with 135 additions and 123 deletions

Binary file not shown.

View File

@@ -648,6 +648,7 @@
<comps> <comps>
<li Class="ArachnaeSwarm.CompProperties_HediffGiver"> <li Class="ArachnaeSwarm.CompProperties_HediffGiver">
<hediffs> <hediffs>
<li>ARA_HiveMindDrone</li>
<li>ARA_HiveStrength_Low</li> <li>ARA_HiveStrength_Low</li>
<li>ARA_Hive_Cannot_Speak</li> <li>ARA_Hive_Cannot_Speak</li>
</hediffs> </hediffs>

View File

@@ -115,7 +115,10 @@ namespace ArachnaeSwarm
{ {
if (order.spawnUntilTick > 0 && Find.TickManager.TicksGame >= order.spawnUntilTick) if (order.spawnUntilTick > 0 && Find.TickManager.TicksGame >= order.spawnUntilTick)
{ {
Pawn pawn = PawnGenerator.GeneratePawn(new PawnGenerationRequest(order.entry.pawnKind, parent.Faction)); Pawn pawn = PawnGenerator.GeneratePawn(new PawnGenerationRequest(
order.entry.pawnKind,
parent.Faction,
forceGenerateNewPawn: true));
if (pawn != null) GenPlace.TryPlaceThing(pawn, parent.Position, parent.Map, ThingPlaceMode.Near); if (pawn != null) GenPlace.TryPlaceThing(pawn, parent.Position, parent.Map, ThingPlaceMode.Near);
return true; return true;
} }

View File

@@ -355,7 +355,10 @@ namespace ArachnaeSwarm
{ {
if (order.config?.pawnKind == null) return; if (order.config?.pawnKind == null) return;
Pawn pawn = PawnGenerator.GeneratePawn(new PawnGenerationRequest(order.config.pawnKind, parent.Faction)); Pawn pawn = PawnGenerator.GeneratePawn(new PawnGenerationRequest(
order.config.pawnKind,
parent.Faction,
forceGenerateNewPawn: true));
if (pawn != null) if (pawn != null)
{ {
ApplyQualityEffects(pawn, order.QualityPercent, order.config); ApplyQualityEffects(pawn, order.QualityPercent, order.config);

View File

@@ -339,7 +339,11 @@ namespace ArachnaeSwarm
if (incubatingPawnKind == null) return; if (incubatingPawnKind == null) return;
float finalQuality = QualityPercent; float finalQuality = QualityPercent;
var pawn = PawnGenerator.GeneratePawn(incubatingPawnKind, Faction); var request = new PawnGenerationRequest(
incubatingPawnKind,
Faction,
forceGenerateNewPawn: true);
var pawn = PawnGenerator.GeneratePawn(request);
ApplyQualityEffects(pawn, finalQuality); ApplyQualityEffects(pawn, finalQuality);
GenSpawn.Spawn(pawn, Position, Map); GenSpawn.Spawn(pawn, Position, Map);
@@ -564,6 +568,7 @@ namespace ArachnaeSwarm
// 首先添加中子通量Gizmo最重要的控制 // 首先添加中子通量Gizmo最重要的控制
if (Faction == Faction.OfPlayer) if (Faction == Faction.OfPlayer)
{ {
yield return new Gizmo_PawnProgressBar(this);
yield return new Gizmo_NeutronFlux(this); yield return new Gizmo_NeutronFlux(this);
} }
// 然后是基础Gizmo但过滤一些不需要的 // 然后是基础Gizmo但过滤一些不需要的