Browse Source

增加扩充背包功能,修复继承不消耗金币BUG

v1.0
许孟阳 2 weeks ago
parent
commit
ddff047e68
  1. 1
      src/config/i18n/zh/index.ts
  2. 49
      src/views/backpack/grid.vue
  3. 7
      src/views/backpack/inherited.vue

1
src/config/i18n/zh/index.ts

@ -53,6 +53,7 @@ export default class Zh {
equip = '装备'; equip = '装备';
backpack = '背包(B)'; backpack = '背包(B)';
addGrid = ['扩充背包', '是否花费${0}金币扩充${1}格背包?', '废话,不差钱', '算了,太贵了', '背包最多扩充到${0}格'];
neaten = '一键整理'; neaten = '一键整理';
use = '装备'; use = '装备';
strengthen = '强化'; strengthen = '强化';

49
src/views/backpack/grid.vue

@ -17,28 +17,39 @@
<span class="capacity" :class="{ 'height': itemNum / grid.length > 0.8 }"> <span class="capacity" :class="{ 'height': itemNum / grid.length > 0.8 }">
{{ itemNum }}/{{ grid.length }} {{ itemNum }}/{{ grid.length }}
</span> </span>
<button class="button addGrid" @click="addGrid">+</button>
<button class="button" @click="neaten">{{ t('neaten') }}</button> <button class="button" @click="neaten">{{ t('neaten') }}</button>
<button class="button" @click="sellAll">{{ t('sellAll') }}</button> <button class="button" @click="sellAll">{{ t('sellAll') }}</button>
<AutoSell /> <AutoSell />
</div> </div>
<Confirm ref="confirm" width="8rem" :tip="replace(t('addGrid.1'), [needCoins, addNum])" :confirm="t('addGrid.2')"
:cancel="t('addGrid.3')" @confirm="confirmAddGrid" />
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { useStore } from "vuex"; import { useStore } from "vuex";
import { computed, onMounted, ref } from "vue"; import { computed, onMounted, ref } from "vue";
import { useI18n } from "vue3-i18n"; import { useI18n } from "vue3-i18n";
import EquipIcon from "@/components/equip-icon.vue"; import { EquipIcon, Confirm } from "@/components";
import { lock_icon, backpack_num } from "@/config"; import { lock_icon, backpack_num } from "@/config";
import AutoSell from "./auto-sell.vue"; import AutoSell from "./auto-sell.vue";
import { userMobile } from "@/tool"; import { userMobile, replace } from "@/tool";
const { t } = useI18n(); const { t } = useI18n();
const { state, commit, dispatch } = useStore(); const { state, commit, dispatch } = useStore();
const grid = computed(() => { const grid = computed(() => {
return state.grid; return state.grid;
}); });
const emit = defineEmits(['openEquipMenu']) const emit = defineEmits(['openEquipMenu']);
const confirm = ref();
const userCoins = computed(() => {
return state.playerAttribute.coins;
})
const needCoins = 2000000;
const addNum = 8;
const maxNum = 160;
const itemNum = computed(() => { const itemNum = computed(() => {
let i = 0; let i = 0;
@ -78,6 +89,24 @@ mobile.onClick = (e, data) => {
commit('show_equip_tip', { equip: data[0], compare: true, e: e.touches[0] }) commit('show_equip_tip', { equip: data[0], compare: true, e: e.touches[0] })
} }
const addGrid = (e) => {
if (grid.value.length >= maxNum) {
commit("set_sys_info", { msg: replace(t('addGrid.4'), [maxNum]), type: "warning", });
return;
}
confirm.value.open(0, e)
}
const confirmAddGrid = () => {
if (userCoins.value < needCoins) {
commit("set_sys_info", { msg: t('stNoCoins'), type: "warning", });
return
}
commit("add_player_coins", -1 * needCoins);
for (let i = 0; i < addNum; i++) {
grid.value.push(null);
}
}
onMounted(() => { }); onMounted(() => { });
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -89,7 +118,8 @@ onMounted(() => { });
align-items: flex-start; align-items: flex-start;
flex-wrap: wrap; flex-wrap: wrap;
display: flex; display: flex;
padding-left: 1.3rem; padding-left: 0.8rem;
overflow: auto;
} }
.grid { .grid {
@ -154,10 +184,16 @@ onMounted(() => { });
color: red; color: red;
} }
.button { .button {
float: right; float: right;
margin-top: 0.9rem; margin-top: 0.9rem;
} }
.addGrid {
padding: 0 0.8rem;
float: left;
}
} }
@media only screen and (max-width: 768px) { @media only screen and (max-width: 768px) {
@ -196,6 +232,11 @@ onMounted(() => { });
.button { .button {
margin-top: 0.5rem; margin-top: 0.5rem;
} }
.addGrid {
padding: 0 0.4rem;
float: left;
}
} }
} }

7
src/views/backpack/inherited.vue

@ -1,7 +1,7 @@
<template> <template>
<div class="inherited" v-if="target && source"> <div class="inherited" v-if="target && source">
<div class="coins"> <div class="coins">
{{ t('coins.0') }}:{{ useCoins }} {{ t('coins.0') }}:{{ userCoins }}
</div> </div>
<div class="message"> <div class="message">
<p>{{ t('inherited.1') + needCoins }}</p> <p>{{ t('inherited.1') + needCoins }}</p>
@ -81,7 +81,7 @@ import { EquipIcon, Confirm } from "@/components";
const { t } = useI18n(); const { t } = useI18n();
const { state, commit, dispatch } = useStore(); const { state, commit, dispatch } = useStore();
const useCoins = computed(() => { const userCoins = computed(() => {
return state.playerAttribute.coins; return state.playerAttribute.coins;
}) })
const needCoins = computed(() => { const needCoins = computed(() => {
@ -108,10 +108,11 @@ const inherited = (e) => {
} }
const confirmInherited = () => { const confirmInherited = () => {
if (useCoins.value < needCoins.value) { if (userCoins.value < needCoins.value) {
commit("set_sys_info", { msg: t('stNoCoins'), type: "warning", }); commit("set_sys_info", { msg: t('stNoCoins'), type: "warning", });
return return
} }
commit("add_player_coins", -1 * needCoins.value);
prop.target.strengthenLv = prop.source.strengthenLv; prop.target.strengthenLv = prop.source.strengthenLv;
prop.source.strengthenLv = 0; prop.source.strengthenLv = 0;
commit("set_sys_info", { msg: t('inheritedConfirm.4'), type: "win", }); commit("set_sys_info", { msg: t('inheritedConfirm.4'), type: "win", });

Loading…
Cancel
Save