Add critical resource level view

This commit is contained in:
Anton Vakhrushev 2020-06-06 18:46:54 +03:00
parent 9240362876
commit 74cfeb6075
2 changed files with 30 additions and 1 deletions

View File

@ -77,6 +77,13 @@
<td></td>
</tr>
<resource-line
v-if="isExtended(villageState.id)"
:title="'Баланс след.:'"
:hint="'Баланс следующей задачи'"
:resources="villageState.upperCriticalLevel"
/>
<tr class="required-line" v-if="villageState.required.active">
<td class="right">След. задача:</td>
<td class="right">
@ -157,6 +164,22 @@
v-if="!villageState.incomingResources.empty() && isExtended(villageState.id)"
/>
<resource-line
v-if="isExtended(villageState.id)"
:title="'Крит. уровень:'"
:hint="'Критический уровень'"
:hide-zero="true"
:resources="villageState.upperCriticalLevel"
/>
<resource-line
v-if="isExtended(villageState.id)"
:title="'Опт. уровень:'"
:hint="'Оптимальный уровень'"
:hide-zero="true"
:resources="villageState.storageOptimumFullness"
/>
<tr class="normal-line">
<td class="right" colspan="7">
<a
@ -273,7 +296,7 @@ export default {
this.$store.dispatch(Actions.OpenVillageEditor, { villageId });
},
isExtended(villageId) {
return !!this.extendedView[villageId];
return !!this.extendedView[villageId] || this.shared.activeVillageState.id === villageId;
},
toggleExtendedView(villageId) {
this.extendedView[villageId] = !this.extendedView[villageId];

View File

@ -65,6 +65,8 @@ interface VillageOwnState {
resources: Resources;
performance: Resources;
storage: VillageStorageState;
upperCriticalLevel: Resources;
storageOptimumFullness: Resources;
/**
* Required resources for nearest task
*/
@ -195,6 +197,8 @@ function createVillageOwnState(
const resources = storage.getResources();
const resourceStorage = storage.getResourceStorage();
const performance = storage.getResourcesPerformance();
const upperCriticalLevel = Resources.fromStorage(resourceStorage).sub(performance.scale(2));
const storageOptimumFullness = Resources.fromStorage(resourceStorage).sub(performance.scale(3));
const requiredResources = taskCollection.getReadyTaskRequiredResources();
const frontierResources = taskCollection.getFrontierResources();
const totalRequiredResources = taskCollection.getAllTasksRequiredResources();
@ -206,6 +210,8 @@ function createVillageOwnState(
performance,
storage: calcStorageBalance(resources, Resources.fromStorage(resourceStorage), performance),
required: calcResourceBalance(requiredResources, resources, performance),
upperCriticalLevel,
storageOptimumFullness,
frontierRequired: calcResourceBalance(frontierResources, resources, performance),
totalRequired: calcResourceBalance(totalRequiredResources, resources, performance),
incomingResources: calcIncomingResources(storage),