From 13a9b23b711951079d805b73016f7635f491c9ff Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Sat, 6 Sep 2025 14:48:28 +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 80896 -> 81408 bytes .../Defs/AbilityDefs/ARA_Possession_Defs.xml | 3 +- .../CompAbilityEffect_Possess.cs | 50 ++++++++++++++++-- .../ARA_HuggingFace/Hediff_Possession.cs | 2 +- .../ARA_HuggingFace/PawnDataUtility.cs | 5 ++ 5 files changed, 54 insertions(+), 6 deletions(-) diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index 9473f9b95c5ff714e12beea1a65b1dc039dcb77e..8df7244e98170febe415bc9cd748eb9d6c35d1ab 100644 GIT binary patch delta 21970 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 PJ@#5l#lOX-?%Mwcae?sC diff --git a/1.6/1.6/Defs/AbilityDefs/ARA_Possession_Defs.xml b/1.6/1.6/Defs/AbilityDefs/ARA_Possession_Defs.xml index fbc0ddc..b7d9d0e 100644 --- a/1.6/1.6/Defs/AbilityDefs/ARA_Possession_Defs.xml +++ b/1.6/1.6/Defs/AbilityDefs/ARA_Possession_Defs.xml @@ -9,6 +9,7 @@ UI/Abilities/Longjump 800 false + Misc1 ArachnaeSwarm.Verb_JumpAndCastOnLanding @@ -28,7 +29,7 @@
  • - 0.6~1.0 + 0.1 0.01 diff --git a/Source/ArachnaeSwarm/ARA_HuggingFace/CompAbilityEffect_Possess.cs b/Source/ArachnaeSwarm/ARA_HuggingFace/CompAbilityEffect_Possess.cs index 1b03b21..8712fac 100644 --- a/Source/ArachnaeSwarm/ARA_HuggingFace/CompAbilityEffect_Possess.cs +++ b/Source/ArachnaeSwarm/ARA_HuggingFace/CompAbilityEffect_Possess.cs @@ -3,6 +3,7 @@ using RimWorld.Planet; using Verse; using UnityEngine; using System.Linq; +using System.Collections.Generic; namespace ArachnaeSwarm { @@ -45,14 +46,55 @@ namespace ArachnaeSwarm private void DoPossession(Pawn caster, Pawn targetPawn) { if (targetPawn == null || caster == null) return; - + Log.Message($"[夺舍] 开始执行。施法者: {caster.LabelShort}, 目标: {targetPawn.LabelShort}"); - Hediff_Possession hediff = (Hediff_Possession)HediffMaker.MakeHediff(HediffDef.Named("ARA_Possession"), targetPawn); - if (hediff.GetDirectlyHeldThings().TryAdd(caster.SplitOff(1), true)) + // 为了保留原始宿主的技能数据,在灵魂转移前先复制一份 + var originalTargetSkills = new Dictionary(); + if (targetPawn.skills != null) { - Log.Message($"[夺舍] 成功将 {caster.LabelShort} 的副本存入Hediff。"); + foreach (var skill in targetPawn.skills.skills) + { + originalTargetSkills[skill.def] = (skill.levelInt, skill.passion); + } + } + + // 储存原始抱脸虫 + Pawn originalCaster = caster.SplitOff(1) as Pawn; + + Hediff_Possession hediff = (Hediff_Possession)HediffMaker.MakeHediff(HediffDef.Named("ARA_Possession"), targetPawn); + if (hediff.GetDirectlyHeldThings().TryAdd(originalCaster, true)) + { + Log.Message($"[夺舍] 成功将 {caster.LabelShort} 的原始副本存入Hediff。"); + + // 灵魂转移,此时 targetPawn 的技能被 caster 的技能覆盖 PawnDataUtility.TransferSoul(caster, targetPawn); + + // --- 技能合并 --- + // 在灵魂转移后,直接在最终的身体 (targetPawn) 上进行合并 + if (targetPawn.skills != null) + { + Log.Message("[夺舍] 开始合并技能..."); + foreach (var skillRecord in targetPawn.skills.skills) + { + if (originalTargetSkills.TryGetValue(skillRecord.def, out var originalSkill)) + { + // 比较等级 + if (originalSkill.Item1 > skillRecord.levelInt) + { + skillRecord.levelInt = originalSkill.Item1; + } + // 比较热情 + if (originalSkill.Item2 > skillRecord.passion) + { + skillRecord.passion = originalSkill.Item2; + } + } + } + Log.Message("[夺舍] 技能合并完成。"); + } + + targetPawn.health.AddHediff(hediff); if (Props.hediffToApplyOnSuccess != null) diff --git a/Source/ArachnaeSwarm/ARA_HuggingFace/Hediff_Possession.cs b/Source/ArachnaeSwarm/ARA_HuggingFace/Hediff_Possession.cs index 0d8903b..f7a0c96 100644 --- a/Source/ArachnaeSwarm/ARA_HuggingFace/Hediff_Possession.cs +++ b/Source/ArachnaeSwarm/ARA_HuggingFace/Hediff_Possession.cs @@ -44,7 +44,7 @@ namespace ArachnaeSwarm } Log.Message($"Host {deadBody.LabelShort} died. Transferring experience back to {storedCaster.LabelShort} and ejecting."); - PawnDataUtility.TransferSoul(deadBody, storedCaster); + // PawnDataUtility.TransferSoul(deadBody, storedCaster); // 注释掉这一行,因为我们不希望宿主的技能在死亡时传回给抱脸虫。 this.EjectContents(); } diff --git a/Source/ArachnaeSwarm/ARA_HuggingFace/PawnDataUtility.cs b/Source/ArachnaeSwarm/ARA_HuggingFace/PawnDataUtility.cs index 62cb26a..5af51f0 100644 --- a/Source/ArachnaeSwarm/ARA_HuggingFace/PawnDataUtility.cs +++ b/Source/ArachnaeSwarm/ARA_HuggingFace/PawnDataUtility.cs @@ -16,6 +16,9 @@ namespace ArachnaeSwarm } Log.Message($"Beginning soul transfer from {soulSource.LabelShort} to {bodyTarget.LabelShort}."); + + bool isPossessing = soulSource.def.defName == "ARA_HuggingFace"; + Log.Message(isPossessing ? "[夺舍] 模式:抱脸虫 -> 宿主" : "[回归] 模式:宿主 -> 抱脸虫"); // --- 1. Core Identity --- bodyTarget.Name = soulSource.Name; @@ -37,6 +40,7 @@ namespace ArachnaeSwarm } // --- 2. Growth & Experience --- + // 技能合并逻辑已移出,这里只做纯粹的数据覆盖 if (bodyTarget.skills != null) bodyTarget.skills.skills.Clear(); if (soulSource.skills != null) { @@ -52,6 +56,7 @@ namespace ArachnaeSwarm } } + if (bodyTarget.records != null && soulSource.records != null) { foreach (RecordDef recordDef in DefDatabase.AllDefs)