diff --git a/UXAssist/FactoryPatch.cs b/UXAssist/FactoryPatch.cs
index 7c402d7..35fd23d 100644
--- a/UXAssist/FactoryPatch.cs
+++ b/UXAssist/FactoryPatch.cs
@@ -1056,7 +1056,17 @@ public static class FactoryPatch
if (!click.multiLevelCovering || !VFInput._chainReaction) return;
var prefDesc = click.GetPrefabDesc(click.castObjectId);
if (!prefDesc.isLab) return;
- while (true)
+ var levelMax = GameMain.history.labLevel;
+ var factory = click.factory;
+ var currLevel = 2;
+ var nid = click.castObjectId;
+ do
+ {
+ factory.ReadObjectConn(nid, 14, out _, out nid, out _);
+ if (nid <= 0) break;
+ currLevel++;
+ } while (true);
+ while (currLevel < levelMax)
{
click.UpdateRaycast();
click.DeterminePreviews();
@@ -1064,8 +1074,7 @@ public static class FactoryPatch
click.UpdateCollidersForGiantBp();
var model = click.actionBuild.model;
click.UpdatePreviewModels(model);
- var flag = click.CheckBuildConditions();
- if (!flag)
+ if (!click.CheckBuildConditions())
{
model.ClearAllPreviewsModels();
model.EarlyGameTickIgnoreActive();
@@ -1075,6 +1084,7 @@ public static class FactoryPatch
click.UpdatePreviewModelConditions(model);
click.UpdateGizmos(model);
click.CreatePrebuilds();
+ currLevel++;
}
}
diff --git a/UXAssist/PlanetFunctions.cs b/UXAssist/PlanetFunctions.cs
index be852fc..f3c9ba8 100644
--- a/UXAssist/PlanetFunctions.cs
+++ b/UXAssist/PlanetFunctions.cs
@@ -57,7 +57,15 @@ public static class PlanetFunctions
uiGame.ShutAllFunctionWindow();
uiGame.ShutAllFullScreens();
}
- GameMain.data.mainPlayer?.controller.actionBuild.Close();
+ player.controller.actionBuild.Close();
+ var groundCombatModule = player.mecha.groundCombatModule;
+ for (var i = 0; i < groundCombatModule.moduleFleets.Length; i++)
+ {
+ var entry = groundCombatModule.moduleFleets[i];
+ if (entry.fleetId <= 0 || !entry.fleetEnabled) continue;
+ entry.fleetEnabled = false;
+ groundCombatModule.RemoveFleetDirectly(i);
+ }
//planet.data = new PlanetRawData(planet.precision);
//planet.data.CalcVerts();
for (var id = factory.entityCursor - 1; id > 0; id--)
@@ -88,9 +96,9 @@ public static class PlanetFunctions
{
for (var i = planet.factory.enemyCursor - 1; i > 0; i--)
{
- ref var ptr13 = ref planet.factory.enemyPool[i];
- if (ptr13.id != i) continue;
- var combatStatId = ptr13.combatStatId;
+ ref var enemyData = ref planet.factory.enemyPool[i];
+ if (enemyData.id != i) continue;
+ var combatStatId = enemyData.combatStatId;
planet.factory.skillSystem.OnRemovingSkillTarget(combatStatId, planet.factory.skillSystem.combatStats.buffer[combatStatId].originAstroId, ETargetType.CombatStat);
planet.factory.skillSystem.combatStats.Remove(combatStatId);
planet.factory.KillEnemyFinally(player, i, ref CombatStat.empty);
diff --git a/UXAssist/README.md b/UXAssist/README.md
index 0f33dee..666e448 100644
--- a/UXAssist/README.md
+++ b/UXAssist/README.md
@@ -4,6 +4,9 @@
#### 一些提升用户体验的功能和补丁
## Changlog
+* 1.0.20
+ + Fix a infinite-loop issue when `Quick build and dismantle stacking labs` and `No condition build` are both enabled
+ + Fix a crash caused by `Re-initialize planet` in combat mode
* 1.0.19
+ New functions:
- `Quick build and dismantle stacking labs`
@@ -148,6 +151,9 @@
* [CruiseAssist](https://dsp.thunderstore.io/package/tanu/CruiseAssist/) and its extension [AutoPilot](https://dsp.thunderstore.io/package/tanu/AutoPilot/): `Auto navigation on sailings` and `Auto-cruise` implementations
## 更新日志
+* 1.0.20
+ + 修复了`快速建造和拆除堆叠研究站`和`无条件建造`同时启用时可能导致的逻辑死循环问题
+ + 修复了在战斗模式下`初始化本行星`导致的崩溃问题
* 1.0.19
+ 新功能:
- `快速建造和拆除堆叠研究站`
diff --git a/UXAssist/UXAssist.csproj b/UXAssist/UXAssist.csproj
index 0126c9f..964dd67 100644
--- a/UXAssist/UXAssist.csproj
+++ b/UXAssist/UXAssist.csproj
@@ -4,7 +4,7 @@
net472
org.soardev.uxassist
DSP MOD - UXAssist
- 1.0.19
+ 1.0.20
true
latest
UXAssist
diff --git a/UXAssist/package/manifest.json b/UXAssist/package/manifest.json
index 2f17b0b..5e949ec 100644
--- a/UXAssist/package/manifest.json
+++ b/UXAssist/package/manifest.json
@@ -1,6 +1,6 @@
{
"name": "UXAssist",
- "version_number": "1.0.19",
+ "version_number": "1.0.20",
"website_url": "https://github.com/soarqin/DSP_Mods/tree/master/UXAssist",
"description": "Some functions and patches for better user experience / 一些提升用户体验的功能和补丁",
"dependencies": [