1
0
mirror of https://github.com/soarqin/DSP_Mods.git synced 2026-03-23 16:53:27 +08:00

Compare commits

..

3 Commits

Author SHA1 Message Date
0efb7ba14d crash fix 2025-06-04 00:26:05 +08:00
e1d0eac73d CheatEnabler: dyson shell related functions 2025-06-04 00:26:05 +08:00
17aca89249 crash fix 2025-06-04 00:25:58 +08:00
2 changed files with 21 additions and 6 deletions

View File

@@ -776,7 +776,7 @@ public static class DysonSphereFunctions
isEuler.AddRange(shell.frames.Select(frame => frame.euler));
break;
}
break;
if (nodePos.Count > 0) break;
}
if (nodePos.Count == 0)
{
@@ -936,6 +936,7 @@ public static class DysonSphereFunctions
for (var j = 1; j < layer.shellCursor; j++)
{
var shell = layer.shellPool[j];
if (shell == null || shell.id != j) continue;
shell.nodeIndexMap.Clear();
for (var k = 0; k < shell.nodes.Count; k++)
{
@@ -945,6 +946,7 @@ public static class DysonSphereFunctions
for (var j = 1; j < layer.nodeCursor; j++)
{
var node = layer.nodePool[j];
if (node == null || node.id != j) continue;
dysonSphere.AddDysonNodeRData(node, true);
node.RecalcSpReq();
node.RecalcCpReq();

View File

@@ -143,6 +143,7 @@ public static class PlanetFunctions
}
}
var planetId = planet.id;
var gameScenario = GameMain.gameScenario;
if (gameScenario != null)
{
@@ -153,8 +154,8 @@ public static class PlanetFunctions
{
if (pgc.id <= 0) continue;
int protoId = factory.entityPool[pgc.entityId].protoId;
gameScenario.achievementLogic.NotifyBeforeDismantleEntity(planet.id, protoId, pgc.entityId);
gameScenario.NotifyOnDismantleEntity(planet.id, protoId, pgc.entityId);
gameScenario.achievementLogic.NotifyBeforeDismantleEntity(planetId, protoId, pgc.entityId);
gameScenario.NotifyOnDismantleEntity(planetId, protoId, pgc.entityId);
}
}
}
@@ -168,10 +169,22 @@ public static class PlanetFunctions
var index = factory.index;
var warningSystem = GameMain.data.warningSystem;
var warningPool = warningSystem.warningPool;
for (var i = warningSystem.warningCursor - 1; i > 0; i--)
for (var i = warningSystem.warningCursor - 1; i >= 0; i--)
{
if (warningPool[i].id == i && warningPool[i].factoryId == index)
warningSystem.RemoveWarningData(warningPool[i].id);
ref var warning = ref warningPool[i];
if (warning.id != i) continue;
switch (warning.factoryId) {
case -4:
if (warning.astroId == planetId)
warningSystem.RemoveWarningData(i);
break;
case >= 0:
if (warning.factoryId == index)
warningSystem.RemoveWarningData(i);
break;
default:
break;
}
}
var isCombatMode = factory.gameData.gameDesc.isCombatMode;
factory.entityCursor = 1;