From 791220e0e9020c1ac04a6c0b0dd6578af027d0f0 Mon Sep 17 00:00:00 2001 From: mengyxu Date: Mon, 21 Apr 2025 15:22:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=A3=85=E5=A4=87=E5=9B=BE?= =?UTF-8?q?=E9=89=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/icons/menu/illustrated.png | Bin 0 -> 5047 bytes src/components/drawer.vue | 137 ++++++++++++++++++++++++++ src/components/equip-icon.vue | 9 +- src/components/index.ts | 5 +- src/components/tabs/index.ts | 4 + src/components/tabs/tab.vue | 36 +++++++ src/components/tabs/tabs.vue | 102 +++++++++++++++++++ src/config/equips/armor.ts | 6 +- src/config/equips/neck.ts | 6 +- src/config/equips/ring.ts | 7 +- src/config/equips/weapon.ts | 6 +- src/config/i18n/zh.ts | 8 +- src/config/icons.ts | 1 + src/views/illustrated/equips.vue | 76 ++++++++++++++ src/views/illustrated/illustrated.vue | 69 +++++++++++++ src/views/illustrated/index.ts | 3 + src/views/menu.vue | 4 +- 17 files changed, 457 insertions(+), 22 deletions(-) create mode 100644 src/assets/icons/menu/illustrated.png create mode 100644 src/components/drawer.vue create mode 100644 src/components/tabs/index.ts create mode 100644 src/components/tabs/tab.vue create mode 100644 src/components/tabs/tabs.vue create mode 100644 src/views/illustrated/equips.vue create mode 100644 src/views/illustrated/illustrated.vue create mode 100644 src/views/illustrated/index.ts diff --git a/src/assets/icons/menu/illustrated.png b/src/assets/icons/menu/illustrated.png new file mode 100644 index 0000000000000000000000000000000000000000..83217ff67f325b4a38fa64cad34faf3dcc6c6555 GIT binary patch literal 5047 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

MW{IPF|XL@+X~89a*)8>}mY3gkPw z1$8=-P;RE*b~lX+G^|3mZQHmcv>K}PlKNk;|ARbt&gi!gdzN;OvB90*$)HMZG|+bqPYS5cHIQur!%8k@^Y(;H+}fe6YGhn6#$T@BbFKM}2?jMNSe&;$WrBVT@{_NbVIR$3H*_*>N8X$vc@jJAq; z*Q4-X-PjUzmk)eESk;&OM!WGfD&_;A-CE|Pi!BSDK4Zj3i(Bl+eWXj`8>lVPRcXDu z_BLe;74(8{gOTXnKP$r{EW)l*4|EQjKR8#BycGvBw1imNGx^!n_9GQ3Xu&DVC;n2! zrn$FK3PNZ%Gnny>P66X*IBP5l0C;+?G-N_yy7DdCd_=iMsHE*i=P5Nk|945j2P&AI zf5F{X#pWg>NHz<26Q89iWD0OY+&DvK;sb~{y#7LI=;8g6#v&>N0f`?jFhL-aCAwJ~ zS_;IS&en~{$0OTaWvDHHM$Cl3pQ%7c8eK>Uv2XT1zV`l_MNYe-Whk$P0HF*ua$U8IoM@0)bk`93% zK)MM{C{#UycKzFq#5+c`j!+x03Zp1y2d(B>4-Ar~Z2d{u`D6A>#y8b!XTvJ*D6e; tI8rbJ42Q#%QGXK(;a|z6o87x2zCyCwHGc1YN_dGQ(!8&$UZHA_`X7#>5cB{5 literal 0 HcmV?d00001 diff --git a/src/components/drawer.vue b/src/components/drawer.vue new file mode 100644 index 0000000..3b96ad5 --- /dev/null +++ b/src/components/drawer.vue @@ -0,0 +1,137 @@ + + + + \ No newline at end of file diff --git a/src/components/equip-icon.vue b/src/components/equip-icon.vue index 0e592b7..54dbd88 100644 --- a/src/components/equip-icon.vue +++ b/src/components/equip-icon.vue @@ -3,7 +3,7 @@ :style="{ 'box-shadow': 'inset 0 0 7px 2px ' + ((equip && equip.quality.color) || '#a1a1a1') }"> -

lv{{ equip.lv }}
+
lv{{ equip.lv }}
@@ -25,12 +25,12 @@ const prop = defineProps({ }) const isUnique = (equip) => { - if(!equip){ + if (!equip) { return false; } const quality = equip.quality.quality; return quality && quality == qualitys[4]; - } +} const iconClass = computed(() => { if (prop.equip && prop.equip.isUnique()) { @@ -51,7 +51,8 @@ onMounted(() => { }); justify-content: center; border-radius: 0.3rem; position: relative; - .lv{ + + .lv { position: absolute; left: 0.1rem; bottom: 0.1rem; diff --git a/src/components/index.ts b/src/components/index.ts index 142a581..58a1c70 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -4,6 +4,9 @@ import EquipTip from './equip-tip.vue'; import EquipTips from './equip-tips.vue'; import EquipIcon from './equip-icon.vue'; import Dialog from './dialog.vue'; +import Drawer from './drawer.vue'; import PopoverMenu from './popover-menu.vue'; import Confirm from './confirm.vue'; -export { Tooltip, Equip, EquipTip, EquipTips, EquipIcon, Dialog, PopoverMenu, Confirm }; +export { Tooltip, Equip, EquipTip, EquipTips, EquipIcon, Dialog, Drawer, PopoverMenu, Confirm }; + +export * from './tabs'; diff --git a/src/components/tabs/index.ts b/src/components/tabs/index.ts new file mode 100644 index 0000000..b9d4815 --- /dev/null +++ b/src/components/tabs/index.ts @@ -0,0 +1,4 @@ +import Tab from './tab.vue'; +import Tabs from './tabs.vue'; + +export { Tabs, Tab }; diff --git a/src/components/tabs/tab.vue b/src/components/tabs/tab.vue new file mode 100644 index 0000000..35fce06 --- /dev/null +++ b/src/components/tabs/tab.vue @@ -0,0 +1,36 @@ + + + + \ No newline at end of file diff --git a/src/components/tabs/tabs.vue b/src/components/tabs/tabs.vue new file mode 100644 index 0000000..fd63e5f --- /dev/null +++ b/src/components/tabs/tabs.vue @@ -0,0 +1,102 @@ + + + + \ No newline at end of file diff --git a/src/config/equips/armor.ts b/src/config/equips/armor.ts index acbc1c5..6f680a8 100644 --- a/src/config/equips/armor.ts +++ b/src/config/equips/armor.ts @@ -3,7 +3,7 @@ import { qualitys, entry_initor, extra_entry_num, quality_coefficient } from './ const extraEntrys = ['atk', 'hp', 'def', 'defPercent', 'hpPercent']; -const uniqueCategorys = [ +export const armorUniqueCategorys = [ { name: 'dispute', icon: 'U_Armor01.png', @@ -67,7 +67,7 @@ const uniqueCategorys = [ ], }, ]; -const categorys = [ +export const armorCategorys = [ { name: 'guard', icon: 'A_A2.png', @@ -141,7 +141,7 @@ export const armorExtraEntry = (quality, lv) => { }; const createBase = (quality, lv) => { - const array = quality == 'unique' ? uniqueCategorys : categorys; + const array = quality == 'unique' ? armorUniqueCategorys : armorCategorys; const category = array[Math.floor(Math.random() * array.length)]; const entry = new Array(); category.entry.forEach((item) => { diff --git a/src/config/equips/neck.ts b/src/config/equips/neck.ts index 3e4a9d5..66838f3 100644 --- a/src/config/equips/neck.ts +++ b/src/config/equips/neck.ts @@ -3,7 +3,7 @@ import { qualitys, entry_initor, extra_entry_num, quality_coefficient } from './ const extraEntrys = ['atk', 'crit', 'critDmg', 'hp', 'def', 'bloc']; -const uniqueCategorys = [ +export const neckUniqueCategorys = [ { name: 'demonSlayer', icon: 'U_neck01.png', @@ -49,7 +49,7 @@ const uniqueCategorys = [ ], }, ]; -const categorys = [ +export const neckCategorys = [ { name: 'crusade', icon: 'Ac_1.png', @@ -108,7 +108,7 @@ export const neckExtraEntry = (quality, lv) => { }; const createBase = (quality, lv) => { - const array = quality == 'unique' ? uniqueCategorys : categorys; + const array = quality == 'unique' ? neckUniqueCategorys : neckCategorys; const category = array[Math.floor(Math.random() * array.length)]; const entry = new Array(); category.entry.forEach((item) => { diff --git a/src/config/equips/ring.ts b/src/config/equips/ring.ts index 51a5ad7..2edb88c 100644 --- a/src/config/equips/ring.ts +++ b/src/config/equips/ring.ts @@ -3,7 +3,7 @@ import { qualitys, entry_initor, extra_entry_num, quality_coefficient } from './ const extraEntrys = ['atk', 'crit', 'critDmg', 'hp', 'def']; -const uniqueCategorys = [ +export const ringUniqueCategorys = [ { name: 'death', icon: 'U_ring01.png', @@ -48,7 +48,7 @@ const uniqueCategorys = [ ], }, ]; -const categorys = [ +export const ringCategorys = [ { name: 'life', icon: 'Ac_9.png', @@ -102,7 +102,7 @@ export const ringExtraEntry = (quality, lv) => { }; const createBase = (quality, lv) => { - const array = quality == 'unique' ? uniqueCategorys : categorys; + const array = quality == 'unique' ? ringUniqueCategorys : ringCategorys; const category = array[Math.floor(Math.random() * array.length)]; const entry = new Array(); category.entry.forEach((item) => { @@ -112,4 +112,3 @@ const createBase = (quality, lv) => { }); return new EquipBase(category.name, category.icon, entry); }; - diff --git a/src/config/equips/weapon.ts b/src/config/equips/weapon.ts index 08cff46..3f7ad35 100644 --- a/src/config/equips/weapon.ts +++ b/src/config/equips/weapon.ts @@ -3,7 +3,7 @@ import { qualitys, entry_initor, extra_entry_num, quality_coefficient } from './ const extraEntrys = ['atk', 'crit', 'critDmg', 'hp', 'def', 'atkPercent', 'defPercent', 'hpPercent']; -const uniqueCategorys = [ +export const weaponUniqueCategorys = [ { name: 'creation', icon: 'U_Sword01.png', @@ -87,7 +87,7 @@ const uniqueCategorys = [ ], }, ]; -const categorys = [ +export const weaponCategorys = [ { name: 'hellrock', icon: 'W_Sword016.png', @@ -169,7 +169,7 @@ export const weaponExtraEntry = (quality, lv) => { }; const createBase = (quality, lv) => { - const array = quality == 'unique' ? uniqueCategorys : categorys; + const array = quality == 'unique' ? weaponUniqueCategorys : weaponCategorys; const category = array[Math.floor(Math.random() * array.length)]; const entry = new Array(); category.entry.forEach((item) => { diff --git a/src/config/i18n/zh.ts b/src/config/i18n/zh.ts index 6e84462..e63487d 100644 --- a/src/config/i18n/zh.ts +++ b/src/config/i18n/zh.ts @@ -106,9 +106,9 @@ export default class Zh { neaten = '一键整理'; use = '装备'; strengthen = '强化'; - stren = ['需要金币', '强化至','垫一刀', '自动强化目标等级', '自动强化', '自动强化中', '中断自动强化']; - success= '成功'; - fail= '失败'; + stren = ['需要金币', '强化至', '垫一刀', '自动强化目标等级', '自动强化', '自动强化中', '中断自动强化']; + success = '成功'; + fail = '失败'; stDesc = [ '强化说明', '花费金币强化装备', @@ -172,4 +172,6 @@ export default class Zh { importArchive = ['导入', '导入存档成功,继续游戏吧!', '导入存档失败']; music = ['播放或禁音背景音乐(M)']; + + illustrated = ['装备图鉴(I)']; } diff --git a/src/config/icons.ts b/src/config/icons.ts index 22aa975..14d84bf 100644 --- a/src/config/icons.ts +++ b/src/config/icons.ts @@ -8,6 +8,7 @@ export const menu_icons = { importGame: require('@/assets/icons/menu/icon-import.png'), musicPlay: require('@/assets/icons/menu/music-play.png'), musicPause: require('@/assets/icons/menu/music-pause.png'), + illustrated: require('@/assets/icons/menu/illustrated.png'), }; export const attr_icon_urls = { diff --git a/src/views/illustrated/equips.vue b/src/views/illustrated/equips.vue new file mode 100644 index 0000000..1f9f51f --- /dev/null +++ b/src/views/illustrated/equips.vue @@ -0,0 +1,76 @@ + + + + \ No newline at end of file diff --git a/src/views/illustrated/illustrated.vue b/src/views/illustrated/illustrated.vue new file mode 100644 index 0000000..f99f19d --- /dev/null +++ b/src/views/illustrated/illustrated.vue @@ -0,0 +1,69 @@ + + + + \ No newline at end of file diff --git a/src/views/illustrated/index.ts b/src/views/illustrated/index.ts new file mode 100644 index 0000000..8097a4b --- /dev/null +++ b/src/views/illustrated/index.ts @@ -0,0 +1,3 @@ +import Illustrated from './illustrated.vue'; + +export default Illustrated; diff --git a/src/views/menu.vue b/src/views/menu.vue index 52daf84..b053be0 100644 --- a/src/views/menu.vue +++ b/src/views/menu.vue @@ -7,6 +7,7 @@ + @@ -21,6 +22,7 @@ import Reborn from "./reborn"; import SaveGame from "./save-game.vue"; import Archive from "./archive.vue"; import Music from "./music.vue"; +import Illustrated from "./illustrated"; const { t } = useI18n(); const { state, commit, dispatch } = useStore(); @@ -33,7 +35,7 @@ onMounted(() => { }); top: 1rem; background: rgba($color: #000000, $alpha: 0.1); left: 0.5rem; - bottom:0.5rem; + bottom: 0.5rem; padding: 0.1rem; border-top-right-radius: 0.1rem; // width:2.5rem;