Remove shipment information
This commit is contained in:
parent
a358fe743e
commit
c14ce042d8
@ -45,8 +45,6 @@ interface GameState {
|
||||
removeTask(taskId: string): void;
|
||||
refreshVillages(): void;
|
||||
pause(): void;
|
||||
scheduleResourceTransferTasks(fromVillageId: number, toVillageId: number): void;
|
||||
dropResourceTransferTasks(fromVillageId: number, toVillageId: number): void;
|
||||
}
|
||||
|
||||
export class ControlPanel {
|
||||
@ -110,14 +108,6 @@ export class ControlPanel {
|
||||
pause() {
|
||||
executionState.setExecutionSettings({ pauseTs: timestamp() + 120 });
|
||||
},
|
||||
|
||||
scheduleResourceTransferTasks(fromVillageId: number, toVillageId: number): void {
|
||||
scheduler.scheduleResourceTransferTasks(fromVillageId, toVillageId);
|
||||
},
|
||||
|
||||
dropResourceTransferTasks(fromVillageId: number, toVillageId: number): void {
|
||||
scheduler.dropResourceTransferTasks(fromVillageId, toVillageId);
|
||||
},
|
||||
};
|
||||
|
||||
state.refresh();
|
||||
|
@ -132,13 +132,6 @@
|
||||
:time1="renderGatheringTime(villageState.totalRequired.time)"
|
||||
/>
|
||||
|
||||
<resource-line
|
||||
:title="'Обязательства:'"
|
||||
:resources="villageState.commitments"
|
||||
:hide-zero="true"
|
||||
v-if="!villageState.commitments.empty()"
|
||||
/>
|
||||
|
||||
<resource-line
|
||||
:title="'Торговцы:'"
|
||||
:resources="villageState.incomingResources"
|
||||
@ -152,17 +145,8 @@
|
||||
v-for="s in shared.villageStates"
|
||||
v-if="s.id !== villageState.id"
|
||||
class="village-quick-link"
|
||||
:class="{ active: villageState.shipment.includes(s.id) }"
|
||||
:href="marketPath(villageState.village, s.village)"
|
||||
:title="
|
||||
'Отправить ресурсы из ' +
|
||||
villageState.village.name +
|
||||
' в ' +
|
||||
s.village.name +
|
||||
'(shift+click - настроить отправку)'
|
||||
"
|
||||
v-on:click.prevent.shift.exact="setupResourceTransfer(villageState, s)"
|
||||
v-on:click.prevent.exact="goToMarket(villageState.village, s.village)"
|
||||
:title="'Отправить ресурсы из ' + villageState.village.name + ' в ' + s.village.name"
|
||||
>$->{{ s.village.name }}</a
|
||||
>
|
||||
<a class="village-quick-link" :href="quartersPath(villageState.village)">Казармы</a>
|
||||
@ -261,20 +245,6 @@ export default {
|
||||
}
|
||||
return secondsToTime(value.seconds);
|
||||
},
|
||||
goToMarket(fromVillage, toVillage) {
|
||||
window.location.assign(this.marketPath(fromVillage, toVillage));
|
||||
},
|
||||
setupResourceTransfer(villageState, toVillageState) {
|
||||
villageState.shipment.includes(toVillageState.id)
|
||||
? this.dropResourceTransferTasks(villageState.id, toVillageState.id)
|
||||
: this.scheduleResourceTransferTasks(villageState.id, toVillageState.id);
|
||||
},
|
||||
scheduleResourceTransferTasks(fromVillageId, toVillageId) {
|
||||
this.shared.scheduleResourceTransferTasks(fromVillageId, toVillageId);
|
||||
},
|
||||
dropResourceTransferTasks(fromVillageId, toVillageId) {
|
||||
this.shared.dropResourceTransferTasks(fromVillageId, toVillageId);
|
||||
},
|
||||
openEditor(villageId) {
|
||||
this.$store.dispatch(Actions.OpenVillageEditor, { villageId });
|
||||
},
|
||||
|
@ -175,28 +175,4 @@ export class Scheduler {
|
||||
clearActions() {
|
||||
this.actionQueue.clear();
|
||||
}
|
||||
|
||||
dropResourceTransferTasks(fromVillageId: number, toVillageId: number): void {
|
||||
this.taskQueue.remove(
|
||||
t =>
|
||||
t.name === SendResourcesTask.name &&
|
||||
t.args.villageId === fromVillageId &&
|
||||
t.args.targetVillageId === toVillageId
|
||||
);
|
||||
}
|
||||
|
||||
scheduleResourceTransferTasks(fromVillageId: number, toVillageId: number): void {
|
||||
this.dropResourceTransferTasks(fromVillageId, toVillageId);
|
||||
const village = this.villageRepository.all().find(v => v.id === toVillageId);
|
||||
if (!village) {
|
||||
throw new VillageNotFound(`Village ${toVillageId} not found`);
|
||||
}
|
||||
this.scheduleTask(SendResourcesTask.name, {
|
||||
villageId: fromVillageId,
|
||||
targetVillageId: toVillageId,
|
||||
coordinates: village.crd,
|
||||
buildTypeId: MARKET_ID,
|
||||
tabId: 5,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -88,10 +88,6 @@ export interface VillageState extends VillageOwnState {
|
||||
* Resource commitments of this village to other (may be negative)
|
||||
*/
|
||||
commitments: Resources;
|
||||
/**
|
||||
* List of village id, from which resources ship to this village
|
||||
*/
|
||||
shipment: Array<number>;
|
||||
}
|
||||
|
||||
function calcResourceBalance(resources: Resources, current: Resources, performance: Resources): ResourceLineState {
|
||||
@ -163,16 +159,6 @@ function createAllProductionQueueStates(storage: VillageStorage, taskCollection:
|
||||
return result;
|
||||
}
|
||||
|
||||
function calcFrontierResources(taskCollection: VillageTaskCollection): Resources {
|
||||
let result = Resources.zero();
|
||||
for (let queue of OrderedProductionQueues) {
|
||||
const tasks = taskCollection.getTasksInProductionQueue(queue);
|
||||
const firstTaskResources = tasks.slice(0, 1).reduce(taskResourceReducer, Resources.zero());
|
||||
result = result.add(firstTaskResources);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function createVillageOwnState(
|
||||
village: Village,
|
||||
storage: VillageStorage,
|
||||
@ -182,9 +168,9 @@ function createVillageOwnState(
|
||||
const resourceStorage = storage.getResourceStorage();
|
||||
const performance = storage.getResourcesPerformance();
|
||||
const buildQueueInfo = storage.getBuildingQueueInfo();
|
||||
const requiredResources = taskCollection.getVillageRequiredResources();
|
||||
const frontierResources = calcFrontierResources(taskCollection);
|
||||
const totalRequiredResources = taskCollection.getTotalVillageRequiredResources();
|
||||
const requiredResources = taskCollection.getReadyTaskRequiredResources();
|
||||
const frontierResources = taskCollection.getFrontierResources();
|
||||
const totalRequiredResources = taskCollection.getAllTasksRequiredResources();
|
||||
|
||||
return {
|
||||
id: village.id,
|
||||
@ -227,7 +213,7 @@ function createVillageState(state: VillageOwnState, ownStates: VillageOwnStateDi
|
||||
const targetVillageMissing = shipmentVillageRequired.balance.add(shipmentVillageIncoming).min(Resources.zero());
|
||||
return memo.add(targetVillageMissing);
|
||||
}, Resources.zero());
|
||||
return { ...state, commitments, shipment: villageIds };
|
||||
return { ...state, commitments };
|
||||
}
|
||||
|
||||
function getVillageStates(
|
||||
|
@ -105,7 +105,7 @@ export class VillageTaskCollection {
|
||||
}
|
||||
}
|
||||
|
||||
getVillageRequiredResources(): Resources {
|
||||
getReadyTaskRequiredResources(): Resources {
|
||||
const first = this.getReadyForProductionTask();
|
||||
if (first && first.args.resources) {
|
||||
return Resources.fromObject(first.args.resources);
|
||||
@ -113,7 +113,19 @@ export class VillageTaskCollection {
|
||||
return Resources.zero();
|
||||
}
|
||||
|
||||
getTotalVillageRequiredResources(): Resources {
|
||||
getFrontierResources(): Resources {
|
||||
let result = Resources.zero();
|
||||
const groups = this.getQueueGroupedTasks();
|
||||
for (let group of groups) {
|
||||
const firstTask = _.first(group.tasks);
|
||||
if (firstTask && firstTask.args.resources) {
|
||||
result = result.add(Resources.fromObject(firstTask.args.resources));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
getAllTasksRequiredResources(): Resources {
|
||||
const tasks = this.storage.getTasks().filter(t => t.args.resources);
|
||||
return tasks.reduce((acc, t) => acc.add(t.args.resources!), Resources.zero());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user