From 36c56248029d6326afc785e594d68c1e9a75e9ab Mon Sep 17 00:00:00 2001 From: Logic <923132714@qq.com> Date: Tue, 4 May 2021 15:26:29 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20#28=203=20worker=E5=8F=AA=E5=87=8F?= =?UTF-8?q?=E4=B8=8D=E5=A2=9E=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原因是 countEnergyChangeRatio 一个 tick 多次调用,totalEnergy总被置NAN 导致 expect一直不正常。 但为什么多次调用会为nan仍未明确,希望大佬 @LokiSharp 能看出原因 解决方法是如果当前tick调用过就直接返回结果,我觉得就算没这个问题也应该如此做减少计算量 --- src/modules/energyController/countEnergyChangeRatio.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/modules/energyController/countEnergyChangeRatio.ts b/src/modules/energyController/countEnergyChangeRatio.ts index e1ff9c29..f8d54786 100644 --- a/src/modules/energyController/countEnergyChangeRatio.ts +++ b/src/modules/energyController/countEnergyChangeRatio.ts @@ -1,5 +1,5 @@ +import { getRoomStats, setRoomStats } from "@/modules/stats"; import { ENERGY_USE_LIMIT } from "./findStrategy"; -import { setRoomStats } from "@/modules/stats"; /** * 统计指定房间的能量状态(包括可用能量总量、能量获取速率) @@ -9,6 +9,10 @@ import { setRoomStats } from "@/modules/stats"; * @returns 该房间的能量获取速率,单位(点/tick) */ export const countEnergyChangeRatio = function (room: Room, withLimit = false): number { + if (getRoomStats(room.name).energyCalcTime === Game.time) { + return getRoomStats(room.name).energyGetRate; + } + // 收集房间建筑内的可用总能量 const structureEnergy = [room.terminal, room.storage, ...room[STRUCTURE_CONTAINER], ...room[STRUCTURE_LINK]] .filter(Boolean)