From d7a368855cd6ebe3d3541ebb408cddc8141d3d26 Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Mon, 22 Sep 2025 22:09:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?zc=E7=9B=AE=E6=A0=87=E4=B8=A2=E5=A4=B1?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.6/1.6/Assemblies/ArachnaeSwarm.dll | Bin 280064 -> 280576 bytes .../Building_CatastropheMissileSilo.cs | 5 +- .../World/WorldObject_CatastropheMissile.cs | 46 ++++++++++++++---- 3 files changed, 40 insertions(+), 11 deletions(-) diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index c865eabc386f70398f54a2bfbbbb357c33e099b9..9ba058d1f33027a787b496204587073a579b3fbc 100644 GIT binary patch delta 43974 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 G`uqz!j&o7~ delta 43548 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 diff --git a/Source/ArachnaeSwarm/Buildings/Building_CatastropheMissileSilo.cs b/Source/ArachnaeSwarm/Buildings/Building_CatastropheMissileSilo.cs index 332f412..56d2c56 100644 --- a/Source/ArachnaeSwarm/Buildings/Building_CatastropheMissileSilo.cs +++ b/Source/ArachnaeSwarm/Buildings/Building_CatastropheMissileSilo.cs @@ -118,8 +118,9 @@ namespace ArachnaeSwarm DefDatabase.GetNamed("CatastropheMissile_Flying") ); missile.Tile = this.Map.Tile; - missile.destinationTile = target.Tile; - missile.destinationCell = target.Cell; + missile.primaryTarget = target; // The primary target (could be a Thing) + missile.destinationTile = target.Tile; // The map tile + missile.destinationCell = target.Cell; // The fallback cell position missile.Projectile = DefDatabase.GetNamed("Projectile_CatastropheMissile"); Find.WorldObjects.Add(missile); diff --git a/Source/ArachnaeSwarm/World/WorldObject_CatastropheMissile.cs b/Source/ArachnaeSwarm/World/WorldObject_CatastropheMissile.cs index c3169da..3a3205a 100644 --- a/Source/ArachnaeSwarm/World/WorldObject_CatastropheMissile.cs +++ b/Source/ArachnaeSwarm/World/WorldObject_CatastropheMissile.cs @@ -7,8 +7,9 @@ namespace ArachnaeSwarm { public class WorldObject_CatastropheMissile : WorldObject { - public int destinationTile = -1; - public IntVec3 destinationCell = IntVec3.Invalid; + public GlobalTargetInfo primaryTarget; // The actual target (can be a Thing) + public int destinationTile = -1; // The map tile of the target + public IntVec3 destinationCell = IntVec3.Invalid; // The fallback cell position public ThingDef Projectile; private int initialTile = -1; @@ -18,6 +19,7 @@ namespace ArachnaeSwarm public override void ExposeData() { base.ExposeData(); + Scribe_TargetInfo.Look(ref primaryTarget, "primaryTarget"); Scribe_Values.Look(ref destinationTile, "destinationTile", 0); Scribe_Values.Look(ref destinationCell, "destinationCell"); Scribe_Defs.Look(ref Projectile, "Projectile"); @@ -39,6 +41,15 @@ namespace ArachnaeSwarm protected override void Tick() { base.Tick(); + + // Safety check: if the destination is invalid, log an error and remove the missile. + if (this.destinationTile < 0) + { + Log.Error("CatastropheMissile spawned with an invalid destination tile. Removing."); + Find.WorldObjects.Remove(this); + return; + } + float distance = GenMath.SphericalDistance(StartPos.normalized, EndPos.normalized); if(distance > 0) { @@ -57,17 +68,34 @@ namespace ArachnaeSwarm private void Arrived() { + // Safety check for invalid destination tile + if (destinationTile < 0) + { + Log.Error("CatastropheMissile cannot arrive at an invalid tile. Removing."); + Find.WorldObjects.Remove(this); + return; + } + Map targetMap = Current.Game.FindMap(this.destinationTile); if (targetMap != null) { - // Find a random entry point at the north edge of the target map - IntVec3 entryCell = CellFinder.RandomEdgeCell(Rot4.North, targetMap); - - // Spawn the final projectile (the cruise missile) at the entry point - Projectile_CruiseMissile missile = (Projectile_CruiseMissile)GenSpawn.Spawn(this.Projectile, entryCell, targetMap, WipeMode.Vanish); + // Determine the final target. + LocalTargetInfo finalTarget; + // Check if the primary target (Thing) is still valid and on the correct map. + if (primaryTarget.HasThing && primaryTarget.Thing.Spawned && primaryTarget.Thing.Map == targetMap) + { + // Target is still valid, aim at its current position. + finalTarget = new LocalTargetInfo(primaryTarget.Thing); + } + else + { + // Target is invalid (destroyed, moved maps, etc.), use the fallback position. + finalTarget = new LocalTargetInfo(this.destinationCell); + } - // Launch it from the entry point towards the final destination cell - missile.Launch(null, entryCell.ToVector3Shifted(), new LocalTargetInfo(this.destinationCell), new LocalTargetInfo(this.destinationCell), ProjectileHitFlags.IntendedTarget); + IntVec3 entryCell = CellFinder.RandomEdgeCell(Rot4.North, targetMap); + Projectile_CruiseMissile missile = (Projectile_CruiseMissile)GenSpawn.Spawn(this.Projectile, entryCell, targetMap, WipeMode.Vanish); + missile.Launch(null, entryCell.ToVector3Shifted(), finalTarget, finalTarget, ProjectileHitFlags.IntendedTarget); } Find.WorldObjects.Remove(this); From 58cccdc90356ef1efaa963d23088a2b03651bfad Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Mon, 22 Sep 2025 22:17:19 +0800 Subject: [PATCH 2/2] =?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 280576 -> 280576 bytes .../Building_CatastropheMissileSilo.cs | 7 +++++++ .../World/WorldObject_CatastropheMissile.cs | 8 -------- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index 9ba058d1f33027a787b496204587073a579b3fbc..ee5ee1b1ae01f40500afddfb85ea2e3201dfba32 100644 GIT binary patch delta 14789 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 delta 14908 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 Oqbe}l@Ea`bX#PKVQf0CL diff --git a/Source/ArachnaeSwarm/Buildings/Building_CatastropheMissileSilo.cs b/Source/ArachnaeSwarm/Buildings/Building_CatastropheMissileSilo.cs index 56d2c56..8a626db 100644 --- a/Source/ArachnaeSwarm/Buildings/Building_CatastropheMissileSilo.cs +++ b/Source/ArachnaeSwarm/Buildings/Building_CatastropheMissileSilo.cs @@ -37,6 +37,13 @@ namespace ArachnaeSwarm // Base tick handles all local targeting, cooldowns, and fuel consumption via XML. base.Tick(); + // --- Target Sanity Checks --- + // If we have a remote target, check if it's still valid. If not, stop targeting. + if (this.longTarget.HasThing && (this.longTarget.ThingDestroyed || !this.longTarget.Thing.Spawned)) + { + this.longTarget = GlobalTargetInfo.Invalid; + } + // If a local target is active, prevent remote targeting. if (this.forcedTarget.IsValid && this.longTarget.IsValid) { diff --git a/Source/ArachnaeSwarm/World/WorldObject_CatastropheMissile.cs b/Source/ArachnaeSwarm/World/WorldObject_CatastropheMissile.cs index 3a3205a..194a07c 100644 --- a/Source/ArachnaeSwarm/World/WorldObject_CatastropheMissile.cs +++ b/Source/ArachnaeSwarm/World/WorldObject_CatastropheMissile.cs @@ -68,14 +68,6 @@ namespace ArachnaeSwarm private void Arrived() { - // Safety check for invalid destination tile - if (destinationTile < 0) - { - Log.Error("CatastropheMissile cannot arrive at an invalid tile. Removing."); - Find.WorldObjects.Remove(this); - return; - } - Map targetMap = Current.Game.FindMap(this.destinationTile); if (targetMap != null) {