the merge project
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

128 lines
3.4 KiB

4 years ago
<template>
<div class="container container-fluid" id="main-container">
<div class="float-right shop-tab-wrapper row">
<div class="col-6">
<div v-on:click="active = 'buy'" :class="'btn btn-sm btn-pixel-border ' + (active === 'buy' ? ' active' : '') + ' shop-tab'">Buy</div>
</div>
<div class="col-6">
<div v-on:click="active = 'sell'" :class="'btn btn-sm btn-pixel-border ' + (active === 'sell' ? ' active' : '') + ' shop-tab'">Sell</div>
</div>
</div>
<div class="pixel-border-static shop-front" style="border-bottom: none;">
<div class="row" v-for="item in items" v-bind:key="item">
<div class="col-12 item-card">
<div class="float-end">
<img :src="item.icon" class="item-icon" :alt="item.name">
</div>
{{ item.name }}<br/>
Costs {{ item.economy.buy }}$<span v-if="item.cropData">, Sells for {{ item.economy.sell }}$ when harvested</span><br>
<span v-if="item.cropData">
Takes {{ item.cropData.timeToGrow }} minutes to grow
</span>
</div>
<div class="col-4">
<a href="javascript:"
v-on:click="$store.commit('buyItem', {item: item, quantity: 1})"
class="btn btn-sm btn-pixel-border">Buy 1</a>
</div>
<div class="col-4">
<a href="javascript:"
v-on:click="$store.commit('buyItem', {item: item, quantity: 5})"
class="btn btn-sm btn-pixel-border">Buy 5</a>
</div>
<div class="col-4">
<a href="javascript:"
v-on:click="$store.commit('buyItem', {item: item, quantity: 20})"
class="btn btn-sm btn-pixel-border">Buy 20</a>
</div>
<hr>
</div>
</div>
</div>
</template>
<script>
import ItemService from "@/services/ItemService";
import {ItemTypes} from "@/data/ItemTypes";
export default {
name: "CropShopView",
data() {
return {
active: 'buy'
}
},
methods: {
getMaxQuantity(seed) {
return Math.floor(this.$store.state.player.money / seed.economy.buy).toFixed(0)
}
},
mounted() {
},
computed: {
items() {
return ItemService.getItemsByType([ItemTypes.Seeds, ItemTypes.AnimalProducts]);
}
}
}
</script>
<style scoped>
#main-container {
padding: 4.9em 1em;
}
.item-card {
font-size: 0.75em;
margin-bottom: 1em;
}
.item-icon {
max-height: 3.5em;
width: 42px;
background-color: rgba(255, 255, 255, 0.2);
padding: 5px;
border-radius: 5px;
border: 1px solid saddlebrown;
margin-top: 1em;
}
.btn-pixel-border {
margin: 0 0 0.5em;
font-size: 0.8em;
white-space: nowrap;
padding-left: 0;
padding-right: 0;
width: 100%;
}
.buy-buttons a {
width: 100%;
}
hr {
margin-top: 1em;
color: white;
}
.shop-tab {
text-align: center;
padding : 0.1em;
width: 100%;
border-radius: 20px;
}
.shop-tab:not(.active) {
display: inline-block;
opacity: 0.7;
}
.shop-front {
background-color: white;
margin-top: 1em;
border-radius: 20px;
}
</style>