diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll
index 27c8dc8..fd41618 100644
Binary files a/1.6/1.6/Assemblies/ArachnaeSwarm.dll and b/1.6/1.6/Assemblies/ArachnaeSwarm.dll differ
diff --git a/1.6/1.6/Defs/AbilityDefs/Ability_Morph.xml b/1.6/1.6/Defs/AbilityDefs/Ability_Morph.xml
index a9dff1a..ca52581 100644
--- a/1.6/1.6/Defs/AbilityDefs/Ability_Morph.xml
+++ b/1.6/1.6/Defs/AbilityDefs/Ability_Morph.xml
@@ -7,7 +7,7 @@
将自己转换为一个坚固的静态建筑形态,或从建筑形态恢复。
UI/Commands/EggSpew
- 600
+ 6000
Misc12
false
false
diff --git a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/InteractiveProducer_Keys.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ARA_InteractiveProducer_Keys.xml
similarity index 100%
rename from 1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/InteractiveProducer_Keys.xml
rename to 1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ARA_InteractiveProducer_Keys.xml
diff --git a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ARA_MorphStrings.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ARA_MorphStrings.xml
new file mode 100644
index 0000000..98a0951
--- /dev/null
+++ b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ARA_MorphStrings.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ {PAWN_labelShort} 无法变形:空间不足或有障碍物。
+ 此能力只能对自己施放。
+
+
+ 织域者
+ 活动
+ 研究中
+ 空闲中
+ 睡眠中
+ {PAWN_labelShort} 因营养耗尽而被强制弹出!
+ {PAWN_labelShort} 因受到攻击而被强制弹出!
+ {PAWN_labelShort} 从被摧毁的 {BUILDING_label} 中弹出!
+
+
\ No newline at end of file
diff --git a/Source/ArachnaeSwarm/Morphable/Building_Morphable.cs b/Source/ArachnaeSwarm/Morphable/Building_Morphable.cs
index fad6363..a950800 100644
--- a/Source/ArachnaeSwarm/Morphable/Building_Morphable.cs
+++ b/Source/ArachnaeSwarm/Morphable/Building_Morphable.cs
@@ -1,6 +1,7 @@
using RimWorld;
using System.Text;
using System.Collections.Generic;
+using UnityEngine;
using Verse;
namespace ArachnaeSwarm
@@ -42,8 +43,6 @@ namespace ArachnaeSwarm
Pawn pawn = compMorphable.StoredPawn;
- pawn.needs?.NeedsTrackerTickInterval(1);
-
var needs = pawn.needs;
if (needs == null)
{
@@ -81,17 +80,23 @@ namespace ArachnaeSwarm
TimeAssignmentDef assignment = pawn.timetable?.CurrentAssignment ?? TimeAssignmentDefOf.Anything;
- if (forceSleep || (assignment != TimeAssignmentDefOf.Work && assignment != TimeAssignmentDefOf.Anything))
+ if (forceSleep || assignment == TimeAssignmentDefOf.Sleep || assignment == TimeAssignmentDefOf.Joy)
{
- // 休眠期
+ // 休眠期 (只有在强制休眠或日程为睡眠/娱乐时才恢复)
if (needs.rest != null)
{
- needs.rest.CurLevel += Need_Rest.BaseRestGainPerTick * 2f;
+ virtualRest = Mathf.Min(VirtualRestMax, virtualRest + (Need_Rest.BaseRestGainPerTick * 2f)); // 乘以2模拟床的效率
}
StopResearchEffect();
}
- else // 工作时间
+ else // 工作或任意时间 (只要不在休息/娱乐,就下降)
{
+ // 使用固定的、预估的下降率
+ if (virtualRest > 0)
+ {
+ virtualRest -= (0.66f / 60000f);
+ }
+
ResearchProjectDef currentProj = Find.ResearchManager.GetProject();
if (currentProj != null)
{