Refactorings village state view
This commit is contained in:
parent
f005072d9c
commit
d4aca5162c
@ -166,25 +166,15 @@ class VillageController {
|
||||
public readonly crop;
|
||||
public readonly resources;
|
||||
public readonly performance;
|
||||
public readonly requiredResources;
|
||||
public readonly totalRequiredResources;
|
||||
public readonly requiredResources: Resources;
|
||||
public readonly requiredBalance: Resources;
|
||||
public readonly totalRequiredResources: Resources;
|
||||
public readonly totalRequiredBalance: Resources;
|
||||
public readonly incomingResources: Resources;
|
||||
public readonly storage;
|
||||
public readonly lumber_hour;
|
||||
public readonly clay_hour;
|
||||
public readonly iron_hour;
|
||||
public readonly crop_hour;
|
||||
public readonly lumber_need;
|
||||
public readonly clay_need;
|
||||
public readonly iron_need;
|
||||
public readonly crop_need;
|
||||
public readonly lumber_total_need;
|
||||
public readonly clay_total_need;
|
||||
public readonly iron_total_need;
|
||||
public readonly crop_total_need;
|
||||
public readonly warehouse;
|
||||
public readonly granary;
|
||||
public readonly buildRemainingSeconds;
|
||||
public readonly incomingResources: Resources;
|
||||
|
||||
constructor(village: Village, state: VillageState, scheduler: Scheduler) {
|
||||
const resources = state.getResources();
|
||||
@ -204,20 +194,10 @@ class VillageController {
|
||||
this.resources = resources;
|
||||
this.performance = performance;
|
||||
this.requiredResources = requiredResources;
|
||||
this.requiredBalance = resources.sub(requiredResources);
|
||||
this.totalRequiredResources = totalRequiredResources;
|
||||
this.totalRequiredBalance = resources.sub(totalRequiredResources);
|
||||
this.storage = storage;
|
||||
this.lumber_hour = performance.lumber;
|
||||
this.clay_hour = performance.clay;
|
||||
this.iron_hour = performance.iron;
|
||||
this.crop_hour = performance.crop;
|
||||
this.lumber_need = requiredResources.lumber;
|
||||
this.clay_need = requiredResources.clay;
|
||||
this.iron_need = requiredResources.iron;
|
||||
this.crop_need = requiredResources.crop;
|
||||
this.lumber_total_need = totalRequiredResources.lumber;
|
||||
this.clay_total_need = totalRequiredResources.clay;
|
||||
this.iron_total_need = totalRequiredResources.iron;
|
||||
this.crop_total_need = totalRequiredResources.crop;
|
||||
this.warehouse = storage.warehouse;
|
||||
this.granary = storage.granary;
|
||||
this.buildRemainingSeconds = buildQueueInfo.seconds;
|
||||
|
@ -4,7 +4,23 @@
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: ['value'],
|
||||
props: {
|
||||
value: {
|
||||
type: Number,
|
||||
},
|
||||
hideZero: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
color: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
sign: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
@ -12,17 +28,22 @@ export default {
|
||||
formatted() {
|
||||
if (this.value === undefined) {
|
||||
return '';
|
||||
} else if (this.value > 0) {
|
||||
return '+' + this.value;
|
||||
}
|
||||
if (this.value === 0) {
|
||||
return this.hideZero ? '' : '0';
|
||||
}
|
||||
if (this.value > 0) {
|
||||
return (this.sign ? '+' : '') + this.value;
|
||||
} else {
|
||||
return '' + this.value;
|
||||
}
|
||||
},
|
||||
classes() {
|
||||
return {
|
||||
const colorClasses = {
|
||||
good: this.value > 0,
|
||||
bad: this.value < 0,
|
||||
};
|
||||
return this.color ? colorClasses : {};
|
||||
},
|
||||
},
|
||||
};
|
||||
|
@ -17,16 +17,16 @@
|
||||
<tr class="normal-line top-line">
|
||||
<td :class="{ active: village.active }" :title="village.id">{{ village.name }}</td>
|
||||
<td class="right">
|
||||
<filling :value="village.lumber" :max="village.warehouse" :speed="village.lumber_hour"></filling>
|
||||
<filling :value="village.lumber" :max="village.warehouse" :speed="village.performance.lumber"></filling>
|
||||
</td>
|
||||
<td class="right">
|
||||
<filling :value="village.clay" :max="village.warehouse" :speed="village.clay_hour"></filling>
|
||||
<filling :value="village.clay" :max="village.warehouse" :speed="village.performance.clay"></filling>
|
||||
</td>
|
||||
<td class="right">
|
||||
<filling :value="village.iron" :max="village.warehouse" :speed="village.iron_hour"></filling>
|
||||
<filling :value="village.iron" :max="village.warehouse" :speed="village.performance.iron"></filling>
|
||||
</td>
|
||||
<td class="right">
|
||||
<filling :value="village.crop" :max="village.granary" :speed="village.crop_hour"></filling>
|
||||
<filling :value="village.crop" :max="village.granary" :speed="village.performance.crop"></filling>
|
||||
</td>
|
||||
<td class="right">
|
||||
<a :href="warehousePath(village)" v-text="village.warehouse"></a>
|
||||
@ -35,35 +35,71 @@
|
||||
</tr>
|
||||
<tr class="performance-line">
|
||||
<td class="right">Прирост:</td>
|
||||
<td class="right">+{{ village.lumber_hour }}</td>
|
||||
<td class="right">+{{ village.clay_hour }}</td>
|
||||
<td class="right">+{{ village.iron_hour }}</td>
|
||||
<td class="right">+{{ village.crop_hour }}</td>
|
||||
<td class="right">
|
||||
<resource :value="village.performance.lumber"></resource>
|
||||
</td>
|
||||
<td class="right">
|
||||
<resource :value="village.performance.clay"></resource>
|
||||
</td>
|
||||
<td class="right">
|
||||
<resource :value="village.performance.iron"></resource>
|
||||
</td>
|
||||
<td class="right">
|
||||
<resource :value="village.performance.crop"></resource>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr class="required-line">
|
||||
<td class="right">След:</td>
|
||||
<td class="right" v-text="village.lumber_need || ''"></td>
|
||||
<td class="right" v-text="village.clay_need || ''"></td>
|
||||
<td class="right" v-text="village.iron_need || ''"></td>
|
||||
<td class="right" v-text="village.crop_need || ''"></td>
|
||||
<td class="right">
|
||||
<resource
|
||||
:value="village.requiredResources.lumber"
|
||||
:hide-zero="true"
|
||||
:color="false"
|
||||
:sign="false"
|
||||
></resource>
|
||||
</td>
|
||||
<td class="right">
|
||||
<resource
|
||||
:value="village.requiredResources.clay"
|
||||
:hide-zero="true"
|
||||
:color="false"
|
||||
:sign="false"
|
||||
></resource>
|
||||
</td>
|
||||
<td class="right">
|
||||
<resource
|
||||
:value="village.requiredResources.iron"
|
||||
:hide-zero="true"
|
||||
:color="false"
|
||||
:sign="false"
|
||||
></resource>
|
||||
</td>
|
||||
<td class="right">
|
||||
<resource
|
||||
:value="village.requiredResources.crop"
|
||||
:hide-zero="true"
|
||||
:color="false"
|
||||
:sign="false"
|
||||
></resource>
|
||||
</td>
|
||||
<td class="right" v-text="secondsToTime(village.buildRemainingSeconds)"></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr class="required-line">
|
||||
<td class="right">Баланс:</td>
|
||||
<td class="right">
|
||||
<resource :value="village.lumber - (village.lumber_need || 0)"></resource>
|
||||
<resource :value="village.requiredBalance.lumber"></resource>
|
||||
</td>
|
||||
<td class="right">
|
||||
<resource :value="village.clay - (village.clay_need || 0)"></resource>
|
||||
<resource :value="village.requiredBalance.clay"></resource>
|
||||
</td>
|
||||
<td class="right">
|
||||
<resource :value="village.iron - (village.iron_need || 0)"></resource>
|
||||
<resource :value="village.requiredBalance.iron"></resource>
|
||||
</td>
|
||||
<td class="right">
|
||||
<resource :value="village.crop - (village.crop_need || 0)"></resource>
|
||||
<resource :value="village.requiredBalance.crop"></resource>
|
||||
</td>
|
||||
<td class="right" v-text="timeToRequired(village)"></td>
|
||||
<td></td>
|
||||
@ -71,16 +107,16 @@
|
||||
<tr class="required-line">
|
||||
<td class="right">Баланс очереди:</td>
|
||||
<td class="right">
|
||||
<resource :value="village.lumber - village.lumber_total_need"></resource>
|
||||
<resource :value="village.totalRequiredBalance.lumber"></resource>
|
||||
</td>
|
||||
<td class="right">
|
||||
<resource :value="village.clay - village.clay_total_need"></resource>
|
||||
<resource :value="village.totalRequiredBalance.clay"></resource>
|
||||
</td>
|
||||
<td class="right">
|
||||
<resource :value="village.iron - village.iron_total_need"></resource>
|
||||
<resource :value="village.totalRequiredBalance.iron"></resource>
|
||||
</td>
|
||||
<td class="right">
|
||||
<resource :value="village.crop - village.crop_total_need"></resource>
|
||||
<resource :value="village.totalRequiredBalance.crop"></resource>
|
||||
</td>
|
||||
<td class="right" v-text="timeToTotalRequired(village)"></td>
|
||||
<td></td>
|
||||
@ -88,16 +124,16 @@
|
||||
<tr class="incoming-line">
|
||||
<td class="right">Торговцы:</td>
|
||||
<td class="right">
|
||||
<resource :value="village.incomingResources.lumber"></resource>
|
||||
<resource :value="village.incomingResources.lumber" :hide-zero="true"></resource>
|
||||
</td>
|
||||
<td class="right">
|
||||
<resource :value="village.incomingResources.clay"></resource>
|
||||
<resource :value="village.incomingResources.clay" :hide-zero="true"></resource>
|
||||
</td>
|
||||
<td class="right">
|
||||
<resource :value="village.incomingResources.iron"></resource>
|
||||
<resource :value="village.incomingResources.iron" :hide-zero="true"></resource>
|
||||
</td>
|
||||
<td class="right">
|
||||
<resource :value="village.incomingResources.crop"></resource>
|
||||
<resource :value="village.incomingResources.crop" :hide-zero="true"></resource>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
|
Loading…
Reference in New Issue
Block a user