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) {