暂存
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user