From a3d15c30e8a64396a51dbf5848c4b097a44ac5f4 Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Fri, 5 Sep 2025 17:10:45 +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 74240 -> 77312 bytes .../Defs/AbilityDefs/ARA_Possession_Defs.xml | 38 ++++++++++- .../CompAbilityEffect_Possess.cs | 22 ++++--- .../Verb_JumpAndCastOnLanding.cs | 59 ++++++++++++++++++ Source/ArachnaeSwarm/ArachnaeSwarm.csproj | 1 + 5 files changed, 110 insertions(+), 10 deletions(-) create mode 100644 Source/ArachnaeSwarm/ARA_HuggingFace/Verb_JumpAndCastOnLanding.cs diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index 9b6b97f549ec16521fcf02b1c3bc1e1a834a8a29..632dc14886c592dad197c2c136e6806c2a5b0788 100644 GIT binary patch delta 25137 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 delta 22435 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

%@<@Ty){&J!#9F#RQY04)60m+WDDJ&0$c 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 KAJv*->;D0cTBY^? 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 8acf8bb..d581a06 100644 --- a/1.6/1.6/Defs/AbilityDefs/ARA_Possession_Defs.xml +++ b/1.6/1.6/Defs/AbilityDefs/ARA_Possession_Defs.xml @@ -1,13 +1,14 @@ - - + + + + + + ARA_Ability_Possess + + 向目标跳跃,将你的意识注入另一个生物的身体,完全占据它。 + UI/Abilities/Longjump + 800 + false + + + ArachnaeSwarm.Verb_JumpAndCastOnLanding + 1.0 + 19.9 + true + Longjump_Jump + Longjump_Land + + true + false + false + false + + + + +

  • +
  • + CompAbilityEffect_GiveHediff + ARA_HiveMindDrone +
  • + \ No newline at end of file diff --git a/Source/ArachnaeSwarm/ARA_HuggingFace/CompAbilityEffect_Possess.cs b/Source/ArachnaeSwarm/ARA_HuggingFace/CompAbilityEffect_Possess.cs index f162724..d14db56 100644 --- a/Source/ArachnaeSwarm/ARA_HuggingFace/CompAbilityEffect_Possess.cs +++ b/Source/ArachnaeSwarm/ARA_HuggingFace/CompAbilityEffect_Possess.cs @@ -1,26 +1,29 @@ using RimWorld; +using RimWorld.Planet; using Verse; namespace ArachnaeSwarm { - public class CompAbilityEffect_Possess : CompAbilityEffect + public class CompAbilityEffect_Possess : CompAbilityEffect, ICompAbilityEffectOnJumpCompleted { public override void Apply(LocalTargetInfo target, LocalTargetInfo dest) { + Log.Message($"[CompAbilityEffect_Possess] Apply called. Target: {target.Thing?.LabelShort ?? "null"}"); base.Apply(target, dest); Pawn caster = this.parent.pawn; Pawn targetPawn = target.Pawn; - if (targetPawn == null || caster == null) return; + if (targetPawn == null || caster == null) + { + Log.Warning($"[CompAbilityEffect_Possess] Apply aborted. TargetPawn or Caster is null."); + return; + } Log.Message($"[夺舍] 开始执行。施法者: {caster.LabelShort}, 目标: {targetPawn.LabelShort}"); - // 步骤 1: 创建Hediff实例 Hediff_Possession hediff = (Hediff_Possession)HediffMaker.MakeHediff(HediffDef.Named("ARA_Possession"), targetPawn); - // 步骤 2: 使用SplitOff(1)将施法者的一个安全、独立的副本存入容器。 - // 这是从地图上移除Pawn并将其存入容器的标准、原子性操作。 if (hediff.GetDirectlyHeldThings().TryAdd(caster.SplitOff(1), true)) { Log.Message($"[夺舍] 成功将 {caster.LabelShort} 的副本存入Hediff。"); @@ -31,14 +34,17 @@ namespace ArachnaeSwarm return; } - // 步骤 3: 使用原始施法者的数据覆盖目标Pawn。 - // 即使caster的stackCount变为0,其数据在当前Tick中依然可读。 PawnDataUtility.TransferSoul(caster, targetPawn); - // 步骤 4: 将准备好的Hediff添加到目标身上。 targetPawn.health.AddHediff(hediff); Log.Message($"[夺舍] {targetPawn.LabelShort} (原 {caster.LabelShort}) 夺舍完成。"); } + + public void OnJumpCompleted(IntVec3 JUMPINPOS_UNUSED, LocalTargetInfo landingTarget) + { + Log.Message($"[CompAbilityEffect_Possess] OnJumpCompleted called. Landing target: {landingTarget.Thing?.LabelShort ?? "null"}"); + this.Apply(landingTarget, null); + } } } \ No newline at end of file diff --git a/Source/ArachnaeSwarm/ARA_HuggingFace/Verb_JumpAndCastOnLanding.cs b/Source/ArachnaeSwarm/ARA_HuggingFace/Verb_JumpAndCastOnLanding.cs new file mode 100644 index 0000000..0140dd1 --- /dev/null +++ b/Source/ArachnaeSwarm/ARA_HuggingFace/Verb_JumpAndCastOnLanding.cs @@ -0,0 +1,59 @@ +using RimWorld; +using RimWorld.Utility; +using UnityEngine; +using Verse; +using Verse.AI; + +namespace ArachnaeSwarm +{ + public class Verb_JumpAndCastOnLanding : Verb_CastAbility + { + private LocalTargetInfo capturedTarget; + + public override bool TryStartCastOn(LocalTargetInfo castTarg, LocalTargetInfo destTarg, bool surpriseAttack = false, bool canHitNonTargetPawns = true, bool preventFriendlyFire = false, bool nonInterruptingSelfCast = false) + { + this.capturedTarget = castTarg; + return base.TryStartCastOn(castTarg, destTarg, surpriseAttack, canHitNonTargetPawns, preventFriendlyFire, nonInterruptingSelfCast); + } + + public virtual ThingDef JumpFlyerDef => ThingDefOf.PawnFlyer; + public override float EffectiveRange => this.verbProps.range; + + public override void DrawHighlight(LocalTargetInfo target) + { + if (target.IsValid && JumpUtility.ValidJumpTarget(CasterPawn, caster.Map, target.Cell)) + { + GenDraw.DrawTargetHighlightWithLayer(target.CenterVector3, AltitudeLayer.MetaOverlays); + } + GenDraw.DrawRadiusRing(caster.Position, EffectiveRange, Color.white, (IntVec3 c) => GenSight.LineOfSight(caster.Position, c, caster.Map) && JumpUtility.ValidJumpTarget(caster, caster.Map, c)); + } + + public override bool ValidateTarget(LocalTargetInfo target, bool showMessages = true) + { + if (!base.ValidateTarget(target, showMessages)) return false; + if (!JumpUtility.ValidJumpTarget(CasterPawn, caster.Map, target.Cell)) return false; + return true; + } + + protected override bool TryCastShot() + { + LocalTargetInfo physicalTarget = this.currentTarget; + LocalTargetInfo logicalTargetForUs = this.capturedTarget; + + if (logicalTargetForUs == null || !logicalTargetForUs.HasThing) + { + return false; + } + + return JumpUtility.DoJump( + CasterPawn, + physicalTarget, + this.ReloadableCompSource, + verbProps, + this.ability, + logicalTargetForUs, + this.JumpFlyerDef + ); + } + } +} \ No newline at end of file diff --git a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj index e0e4d06..8b68949 100644 --- a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj +++ b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj @@ -119,6 +119,7 @@ +