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