From 9ab3300ac6b4cd35e1bbcfc8dd9dd2028bac18c4 Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Mon, 1 Sep 2025 16:56:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.6/1.6/Assemblies/ArachnaeSwarm.dll | Bin 24064 -> 24576 bytes 1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml | 8 ++- .../Thing_building/ARA_InteractiveEggSac.xml | 12 +++-- Source/ArachnaeSwarm/ArachnaeSwarm.csproj | 1 + Source/ArachnaeSwarm/Building_Incubator.cs | 16 +----- .../CompAbilityEffect_BodyPartCheck.cs | 49 ++++++++++++++++++ .../CompProperties_SpawnPawnFromList.cs | 1 + 7 files changed, 66 insertions(+), 21 deletions(-) create mode 100644 Source/ArachnaeSwarm/CompAbilityEffect_BodyPartCheck.cs diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index 25d3265575cf1c69cffe0d3175d6e6b218cc9e5a..29adbd54ed77b42e8842e3bfcec4658a5f14ed6e 100644 GIT binary patch delta 11685 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 delta 11023 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 NyTLvGQ?aty`afR=ZcqRK diff --git a/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml b/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml index 5e62cc4..d4d9ad7 100644 --- a/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml +++ b/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml @@ -30,6 +30,10 @@ 4 食物不足 +
  • + ARA_Ovary + 卵巢受损或缺失,无法生育 +
  • @@ -64,12 +68,12 @@ 32 3 - -
  • +
  • Food 0.5 食物不足
  • + diff --git a/1.6/1.6/Defs/Thing_building/ARA_InteractiveEggSac.xml b/1.6/1.6/Defs/Thing_building/ARA_InteractiveEggSac.xml index 47be407..a4c4ae6 100644 --- a/1.6/1.6/Defs/Thing_building/ARA_InteractiveEggSac.xml +++ b/1.6/1.6/Defs/Thing_building/ARA_InteractiveEggSac.xml @@ -33,11 +33,7 @@ true false - - Things/Building/Natural/Hive - Graphic_Random - 1.6 - +
  • 6 @@ -54,10 +50,16 @@ 300 true + + Things/Building/Natural/Hive + Graphic_Random + 1.6 +
  • CocoonDestroyed
  • +
    diff --git a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj index 08e78d2..115002f 100644 --- a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj +++ b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj @@ -76,6 +76,7 @@ + diff --git a/Source/ArachnaeSwarm/Building_Incubator.cs b/Source/ArachnaeSwarm/Building_Incubator.cs index ba4158f..cb2e948 100644 --- a/Source/ArachnaeSwarm/Building_Incubator.cs +++ b/Source/ArachnaeSwarm/Building_Incubator.cs @@ -7,25 +7,13 @@ namespace ArachnaeSwarm { public CompSpawnPawnFromList SpawnComp => GetComp(); - public GraphicData hatchingGraphicData; - private Graphic hatchingGraphic; - - public override void SpawnSetup(Map map, bool respawningAfterLoad) - { - base.SpawnSetup(map, respawningAfterLoad); - if (hatchingGraphicData != null) - { - hatchingGraphic = hatchingGraphicData.Graphic; - } - } - public override Graphic Graphic { get { - if (SpawnComp != null && SpawnComp.IsHatching && hatchingGraphic != null) + if (SpawnComp != null && SpawnComp.IsHatching && SpawnComp.Props.hatchingGraphicData != null) { - return hatchingGraphic; + return SpawnComp.Props.hatchingGraphicData.Graphic; } return base.Graphic; } diff --git a/Source/ArachnaeSwarm/CompAbilityEffect_BodyPartCheck.cs b/Source/ArachnaeSwarm/CompAbilityEffect_BodyPartCheck.cs new file mode 100644 index 0000000..91ab139 --- /dev/null +++ b/Source/ArachnaeSwarm/CompAbilityEffect_BodyPartCheck.cs @@ -0,0 +1,49 @@ +using System.Linq; +using RimWorld; +using Verse; + +namespace ArachnaeSwarm +{ + public class CompProperties_AbilityBodyPartCheck : CompProperties_AbilityEffect + { + public BodyPartDef requiredPart; + public float minimumHealth = 0.8f; + public string failMessage = "Missing or damaged body part."; + + public CompProperties_AbilityBodyPartCheck() + { + compClass = typeof(CompAbilityEffect_BodyPartCheck); + } + } + + public class CompAbilityEffect_BodyPartCheck : CompAbilityEffect + { + public new CompProperties_AbilityBodyPartCheck Props => (CompProperties_AbilityBodyPartCheck)props; + + public override bool GizmoDisabled(out string reason) + { + Pawn caster = parent.pawn; + if (caster != null && caster.health != null && caster.health.hediffSet != null) + { + var part = caster.health.hediffSet.GetNotMissingParts() + .FirstOrDefault(p => p.def == Props.requiredPart); + + if (part == null) + { + reason = Props.failMessage; + return true; + } + + float partHealth = caster.health.hediffSet.GetPartHealth(part) / part.def.GetMaxHealth(caster); + if (partHealth < Props.minimumHealth) + { + reason = Props.failMessage; + return true; + } + } + + reason = null; + return false; + } + } +} \ No newline at end of file diff --git a/Source/ArachnaeSwarm/CompProperties_SpawnPawnFromList.cs b/Source/ArachnaeSwarm/CompProperties_SpawnPawnFromList.cs index efef87f..c69bf18 100644 --- a/Source/ArachnaeSwarm/CompProperties_SpawnPawnFromList.cs +++ b/Source/ArachnaeSwarm/CompProperties_SpawnPawnFromList.cs @@ -13,6 +13,7 @@ namespace ArachnaeSwarm public bool destroyOnSpawn = false; public IntRange spawnCount = new IntRange(1, 1); public Type lordJob; + public GraphicData hatchingGraphicData; public CompProperties_SpawnPawnFromList() {