Add frontier balance
This commit is contained in:
parent
4c90af31aa
commit
3adabd6785
@ -120,23 +120,6 @@
|
|||||||
<td class="right" v-text="renderGatheringTime(villageState.required.time)"></td>
|
<td class="right" v-text="renderGatheringTime(villageState.required.time)"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr class="required-line">
|
|
||||||
<td class="right">Баланс очереди:</td>
|
|
||||||
<td class="right">
|
|
||||||
<resource :value="villageState.totalRequired.balance.lumber"></resource>
|
|
||||||
</td>
|
|
||||||
<td class="right">
|
|
||||||
<resource :value="villageState.totalRequired.balance.clay"></resource>
|
|
||||||
</td>
|
|
||||||
<td class="right">
|
|
||||||
<resource :value="villageState.totalRequired.balance.iron"></resource>
|
|
||||||
</td>
|
|
||||||
<td class="right">
|
|
||||||
<resource :value="villageState.totalRequired.balance.crop"></resource>
|
|
||||||
</td>
|
|
||||||
<td class="right" v-text="renderGatheringTime(villageState.totalRequired.time)"></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr v-for="queueState of villageState.queues" v-if="queueState.active" class="required-line">
|
<tr v-for="queueState of villageState.queues" v-if="queueState.active" class="required-line">
|
||||||
<td class="right">{{ queueTitle(queueState.queue) }}:</td>
|
<td class="right">{{ queueTitle(queueState.queue) }}:</td>
|
||||||
<td class="right">
|
<td class="right">
|
||||||
@ -154,6 +137,40 @@
|
|||||||
<td class="right" v-text="renderGatheringTime(queueState.firstTask.time)"></td>
|
<td class="right" v-text="renderGatheringTime(queueState.firstTask.time)"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr class="required-line">
|
||||||
|
<td class="right">Баланс фронтира:</td>
|
||||||
|
<td class="right">
|
||||||
|
<resource :value="villageState.frontierRequired.balance.lumber"></resource>
|
||||||
|
</td>
|
||||||
|
<td class="right">
|
||||||
|
<resource :value="villageState.frontierRequired.balance.clay"></resource>
|
||||||
|
</td>
|
||||||
|
<td class="right">
|
||||||
|
<resource :value="villageState.frontierRequired.balance.iron"></resource>
|
||||||
|
</td>
|
||||||
|
<td class="right">
|
||||||
|
<resource :value="villageState.frontierRequired.balance.crop"></resource>
|
||||||
|
</td>
|
||||||
|
<td class="right" v-text="renderGatheringTime(villageState.frontierRequired.time)"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr class="required-line">
|
||||||
|
<td class="right">Баланс очереди:</td>
|
||||||
|
<td class="right">
|
||||||
|
<resource :value="villageState.totalRequired.balance.lumber"></resource>
|
||||||
|
</td>
|
||||||
|
<td class="right">
|
||||||
|
<resource :value="villageState.totalRequired.balance.clay"></resource>
|
||||||
|
</td>
|
||||||
|
<td class="right">
|
||||||
|
<resource :value="villageState.totalRequired.balance.iron"></resource>
|
||||||
|
</td>
|
||||||
|
<td class="right">
|
||||||
|
<resource :value="villageState.totalRequired.balance.crop"></resource>
|
||||||
|
</td>
|
||||||
|
<td class="right" v-text="renderGatheringTime(villageState.totalRequired.time)"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr class="commitments-line" v-if="!villageState.commitments.empty()">
|
<tr class="commitments-line" v-if="!villageState.commitments.empty()">
|
||||||
<td class="right">Обязательства:</td>
|
<td class="right">Обязательства:</td>
|
||||||
<td class="right">
|
<td class="right">
|
||||||
|
@ -62,6 +62,10 @@ interface VillageOwnState {
|
|||||||
* Required resources for nearest task
|
* Required resources for nearest task
|
||||||
*/
|
*/
|
||||||
required: ResourceLineState;
|
required: ResourceLineState;
|
||||||
|
/**
|
||||||
|
* Required resources for first tasks in production queues
|
||||||
|
*/
|
||||||
|
frontierRequired: ResourceLineState;
|
||||||
/**
|
/**
|
||||||
* Required resources for all tasks
|
* Required resources for all tasks
|
||||||
*/
|
*/
|
||||||
@ -154,15 +158,15 @@ function createAllProductionQueueStates(villageId: number, storage: VillageStora
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// function firstTaskRequirements(villageId: number, scheduler: Scheduler): Resources {
|
function calcFrontierResources(villageId: number, scheduler: Scheduler): Resources {
|
||||||
// let result = Resources.zero();
|
let result = Resources.zero();
|
||||||
// for (let queue of Object.keys(ProductionQueue)) {
|
for (let queue of ProductionQueueTypes) {
|
||||||
// const tasks = scheduler.getProductionQueueTasks(villageId, queue as ProductionQueue);
|
const tasks = scheduler.getProductionQueueTasks(villageId, queue);
|
||||||
// const firstTaskResources = tasks.filter(() => true).reduce(taskResourceReducer, Resources.zero());
|
const firstTaskResources = tasks.slice(0, 1).reduce(taskResourceReducer, Resources.zero());
|
||||||
// result = result.add(firstTaskResources);
|
result = result.add(firstTaskResources);
|
||||||
// }
|
}
|
||||||
// return result;
|
return result;
|
||||||
// }
|
}
|
||||||
|
|
||||||
function createVillageOwnState(village: Village, scheduler: Scheduler): VillageOwnState {
|
function createVillageOwnState(village: Village, scheduler: Scheduler): VillageOwnState {
|
||||||
const storage = new VillageStorage(village.id);
|
const storage = new VillageStorage(village.id);
|
||||||
@ -171,6 +175,7 @@ function createVillageOwnState(village: Village, scheduler: Scheduler): VillageO
|
|||||||
const performance = storage.getResourcesPerformance();
|
const performance = storage.getResourcesPerformance();
|
||||||
const buildQueueInfo = storage.getBuildingQueueInfo();
|
const buildQueueInfo = storage.getBuildingQueueInfo();
|
||||||
const requiredResources = scheduler.getVillageRequiredResources(village.id);
|
const requiredResources = scheduler.getVillageRequiredResources(village.id);
|
||||||
|
const frontierResources = calcFrontierResources(village.id, scheduler);
|
||||||
const totalRequiredResources = scheduler.getTotalVillageRequiredResources(village.id);
|
const totalRequiredResources = scheduler.getTotalVillageRequiredResources(village.id);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -180,6 +185,7 @@ function createVillageOwnState(village: Village, scheduler: Scheduler): VillageO
|
|||||||
performance,
|
performance,
|
||||||
storage: calcStorageBalance(resources, Resources.fromStorage(resourceStorage), performance),
|
storage: calcStorageBalance(resources, Resources.fromStorage(resourceStorage), performance),
|
||||||
required: calcResourceBalance(requiredResources, resources, performance),
|
required: calcResourceBalance(requiredResources, resources, performance),
|
||||||
|
frontierRequired: calcResourceBalance(frontierResources, resources, performance),
|
||||||
totalRequired: calcResourceBalance(totalRequiredResources, resources, performance),
|
totalRequired: calcResourceBalance(totalRequiredResources, resources, performance),
|
||||||
buildRemainingSeconds: buildQueueInfo.seconds,
|
buildRemainingSeconds: buildQueueInfo.seconds,
|
||||||
incomingResources: calcIncomingResources(storage),
|
incomingResources: calcIncomingResources(storage),
|
||||||
|
Loading…
Reference in New Issue
Block a user