This commit is contained in:
2025-09-11 21:35:47 +08:00
parent 8cbd09e036
commit a114b6f037
5 changed files with 30 additions and 7 deletions

View File

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