UI improvements

This commit is contained in:
Anton Vakhrushev 2020-06-24 14:04:26 +03:00
parent 264532c7cf
commit 1b8ba833a5
2 changed files with 9 additions and 22 deletions

View File

@ -59,24 +59,7 @@
<td></td> <td></td>
</tr> </tr>
<resource-line :title="'Добыча:'" :resources="villageState.performance" /> <resource-line :title="'Добыча:'" :resources="villageState.performance" :color="false" />
<resource-line
v-if="villageState.required.active"
:title="'След. задача:'"
:color="false"
:sign="false"
:hide-zero="false"
:resources="villageState.required.resources"
/>
<resource-line
v-if="villageState.required.active"
:title="'Баланс след.:'"
:hint="'Баланс следующей задачи'"
:resources="villageState.required.balance"
:time1="renderGatheringTime(villageState.required.time)"
/>
<resource-line <resource-line
v-for="queueState of villageState.queues" v-for="queueState of villageState.queues"
@ -87,6 +70,7 @@
:resources="queueState.firstTask.balance" :resources="queueState.firstTask.balance"
:time1="renderGatheringTime(queueState.firstTask.time)" :time1="renderGatheringTime(queueState.firstTask.time)"
:time2="renderTimeInSeconds(queueState.currentTaskFinishSeconds)" :time2="renderTimeInSeconds(queueState.currentTaskFinishSeconds)"
:color="queueState.isWaiting"
/> />
<resource-line <resource-line

View File

@ -45,6 +45,7 @@ interface VillageProductionQueueState {
queue: ProductionQueue; queue: ProductionQueue;
tasks: Array<Task>; tasks: Array<Task>;
isActive: boolean; isActive: boolean;
isWaiting: boolean;
currentTaskFinishTimestamp: number; currentTaskFinishTimestamp: number;
currentTaskFinishSeconds: number; currentTaskFinishSeconds: number;
firstTask: ResourceLineState; firstTask: ResourceLineState;
@ -165,20 +166,22 @@ function createProductionQueueState(
): VillageProductionQueueState { ): VillageProductionQueueState {
const queue = taskQueueInfo.queue; const queue = taskQueueInfo.queue;
const tasks = taskQueueInfo.tasks; const tasks = taskQueueInfo.tasks;
const taskEndingTimestamp = taskQueueInfo.finishTs;
const resources = storage.getResources(); const resources = storage.getResources();
const performance = storage.getResourcesPerformance(); const performance = storage.getResourcesPerformance();
const firstTaskResources = tasks.slice(0, 1).reduce(taskResourceReducer, Resources.zero()); const firstTaskResources = tasks.slice(0, 1).reduce(taskResourceReducer, Resources.zero());
const allTaskResources = tasks.reduce(taskResourceReducer, Resources.zero()); const allTaskResources = tasks.reduce(taskResourceReducer, Resources.zero());
const taskEndingTimestamp = taskQueueInfo.finishTs;
const currentTimestamp = timestamp();
return { return {
queue, queue,
tasks, tasks,
isActive: tasks.length !== 0 || taskEndingTimestamp > timestamp(), isActive: tasks.length !== 0 || taskEndingTimestamp > currentTimestamp,
isWaiting: tasks.length !== 0 && taskEndingTimestamp < currentTimestamp,
currentTaskFinishTimestamp: taskEndingTimestamp, currentTaskFinishTimestamp: taskEndingTimestamp,
currentTaskFinishSeconds: Math.max( currentTaskFinishSeconds: Math.max(
taskEndingTimestamp ? taskEndingTimestamp - timestamp() : 0, taskEndingTimestamp ? taskEndingTimestamp - currentTimestamp : 0,
0 0
), ),
firstTask: makeResourceBalance(firstTaskResources, resources, performance), firstTask: makeResourceBalance(firstTaskResources, resources, performance),