diff --git a/addons/yt_world/data/yt_world_equip_item.xml b/addons/yt_world/data/yt_world_equip_item.xml index 6b3e047..30afe69 100644 --- a/addons/yt_world/data/yt_world_equip_item.xml +++ b/addons/yt_world/data/yt_world_equip_item.xml @@ -47,7 +47,7 @@ iron_armor 铁鳞甲 - 🛡️ + assets/icons/equips/iron_armor.png armor rare {"defense": 6, "hp_max": 15} @@ -57,7 +57,7 @@ dragon_scale 龙鳞甲 - 🐉 + assets/icons/equips/dragon_scale.png armor legendary {"defense": 12, "hp_max": 30, "energy_max": 10} @@ -68,7 +68,7 @@ straw_sandals 草鞋 - 🩴 + assets/icons/equips/straw_sandals.png boots common {"speed": 1} @@ -78,7 +78,7 @@ leather_boots 皮靴 - 🥾 + assets/icons/equips/leather_boots.png boots rare {"speed": 3, "defense": 1} @@ -88,7 +88,7 @@ wind_boots 疾风靴 - 👟 + assets/icons/equips/wind_boots.png boots epic {"speed": 6, "energy_max": 10} @@ -99,7 +99,7 @@ lucky_charm 幸运符 - 🍀 + assets/icons/equips/lucky_charm.png accessory common {"speed": 3} @@ -109,7 +109,7 @@ power_ring 力量戒指 - 💍 + assets/icons/equips/power_ring.png accessory rare {"attack": 4, "defense": 2} @@ -119,7 +119,7 @@ amulet_life 生命护符 - 📿 + assets/icons/equips/amulet_life.png accessory epic {"hp_max": 25, "energy_max": 15} diff --git a/assets/icons/equips/amulet_life.png b/assets/icons/equips/amulet_life.png new file mode 100644 index 0000000..2770a6a Binary files /dev/null and b/assets/icons/equips/amulet_life.png differ diff --git a/assets/icons/equips/dragon_scale.png b/assets/icons/equips/dragon_scale.png new file mode 100644 index 0000000..8dd2c51 Binary files /dev/null and b/assets/icons/equips/dragon_scale.png differ diff --git a/assets/icons/equips/gen/amulet_life_review.png b/assets/icons/equips/gen/amulet_life_review.png new file mode 100644 index 0000000..2770a6a Binary files /dev/null and b/assets/icons/equips/gen/amulet_life_review.png differ diff --git a/assets/icons/equips/gen/dragon_scale_review.png b/assets/icons/equips/gen/dragon_scale_review.png new file mode 100644 index 0000000..8dd2c51 Binary files /dev/null and b/assets/icons/equips/gen/dragon_scale_review.png differ diff --git a/assets/icons/equips/gen/iron_armor_review.png b/assets/icons/equips/gen/iron_armor_review.png new file mode 100644 index 0000000..5027171 Binary files /dev/null and b/assets/icons/equips/gen/iron_armor_review.png differ diff --git a/assets/icons/equips/gen/leather_boots_review.png b/assets/icons/equips/gen/leather_boots_review.png new file mode 100644 index 0000000..00404b4 Binary files /dev/null and b/assets/icons/equips/gen/leather_boots_review.png differ diff --git a/assets/icons/equips/gen/lucky_charm_review.png b/assets/icons/equips/gen/lucky_charm_review.png new file mode 100644 index 0000000..56ea07b Binary files /dev/null and b/assets/icons/equips/gen/lucky_charm_review.png differ diff --git a/assets/icons/equips/gen/power_ring_review.png b/assets/icons/equips/gen/power_ring_review.png new file mode 100644 index 0000000..0405758 Binary files /dev/null and b/assets/icons/equips/gen/power_ring_review.png differ diff --git a/assets/icons/equips/gen/straw_sandals_review.png b/assets/icons/equips/gen/straw_sandals_review.png new file mode 100644 index 0000000..35eafa1 Binary files /dev/null and b/assets/icons/equips/gen/straw_sandals_review.png differ diff --git a/assets/icons/equips/gen/wind_boots_review.png b/assets/icons/equips/gen/wind_boots_review.png new file mode 100644 index 0000000..68ce6cb Binary files /dev/null and b/assets/icons/equips/gen/wind_boots_review.png differ diff --git a/assets/icons/equips/iron_armor.png b/assets/icons/equips/iron_armor.png new file mode 100644 index 0000000..5027171 Binary files /dev/null and b/assets/icons/equips/iron_armor.png differ diff --git a/assets/icons/equips/leather_boots.png b/assets/icons/equips/leather_boots.png new file mode 100644 index 0000000..00404b4 Binary files /dev/null and b/assets/icons/equips/leather_boots.png differ diff --git a/assets/icons/equips/lucky_charm.png b/assets/icons/equips/lucky_charm.png new file mode 100644 index 0000000..56ea07b Binary files /dev/null and b/assets/icons/equips/lucky_charm.png differ diff --git a/assets/icons/equips/power_ring.png b/assets/icons/equips/power_ring.png new file mode 100644 index 0000000..0405758 Binary files /dev/null and b/assets/icons/equips/power_ring.png differ diff --git a/assets/icons/equips/straw_sandals.png b/assets/icons/equips/straw_sandals.png new file mode 100644 index 0000000..35eafa1 Binary files /dev/null and b/assets/icons/equips/straw_sandals.png differ diff --git a/assets/icons/equips/wind_boots.png b/assets/icons/equips/wind_boots.png new file mode 100644 index 0000000..68ce6cb Binary files /dev/null and b/assets/icons/equips/wind_boots.png differ diff --git a/world.html b/world.html index 45f9bd6..5d2875f 100644 --- a/world.html +++ b/world.html @@ -206,22 +206,20 @@ body { background: #0a0e17; overflow: hidden; font-family: 'Microsoft YaHei', sa #topBar .ua-sep{display:none;} #topBar .ua-soon{font-size:10px;color:#778;background:rgba(255,255,255,.06);padding:1px 6px;border-radius:8px;} -/* 场景悬浮工具条:浮于场景画面、紧贴顶部栏下方 - 布局策略:单列 64px 优先,行数限制决定列数(满 N 行后 Grid 自动开下一列) - 关键:grid-auto-flow: column + grid-auto-columns = grid-template-columns; - 否则 Grid 默认按行填充,超出后只会"创建隐式行继续在第 1 列堆"而不是开第 2 列 */ +/* 场景悬浮工具条:顶部栏下方居中、按钮横向排列 + 折叠态:一行 4 个核心按钮;展开态:两行 7 列共 14 个按钮 */ #sceneToolbar{ - position:fixed; top:calc(58px + env(safe-area-inset-top) + 12px); right:max(18px, env(safe-area-inset-right)); z-index:90; - display:grid; grid-template-columns:64px; grid-auto-columns:64px; - grid-template-rows:repeat(7,72px); grid-auto-rows:72px; - grid-auto-flow:column; gap:10px; pointer-events:auto; + position:fixed; top:calc(58px + env(safe-area-inset-top) + 8px); right:max(18px, env(safe-area-inset-right)); left:auto; transform:none; z-index:110; + display:grid; grid-template-columns:repeat(7,64px); + grid-template-rows:repeat(2,72px); grid-auto-rows:72px; + grid-auto-flow:row; gap:10px; pointer-events:auto; padding:11px; border-radius:16px; background:rgba(12,18,32,.78); border:1px solid rgba(139,92,246,.35); backdrop-filter:blur(10px); box-shadow:0 8px 28px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.06); - transition:padding .2s, border-radius .2s; + transition:all .25s ease; } -/* 折叠态:单列 4 行(4 个按钮:汉堡键 + 任务/设置/排行榜正好填满) */ -#sceneToolbar.collapsed{ grid-template-rows:repeat(4,72px); } +/* 折叠态:一行 4 列(汉堡键 + 任务/设置/排行榜) */ +#sceneToolbar.collapsed{ grid-template-columns:repeat(4,64px); grid-template-rows:72px; } #sceneToolbar.collapsed .top-icon:not(.toolbar-core):not(#btnToolbarToggle){ display:none; } .top-icon{ position:relative; width:64px; height:64px; border-radius:13px; flex-shrink:0; @@ -941,8 +939,8 @@ body { background: #0a0e17; overflow: hidden; font-family: 'Microsoft YaHei', sa background: linear-gradient(180deg, #1d2540 0%, #161d30 55%, #131a2b 100%); border: 1px solid rgba(139,92,246,.35); border-radius: 14px; box-shadow: 0 14px 44px rgba(0,0,0,.55), 0 0 0 1px rgba(139,92,246,.12), inset 0 1px 0 rgba(255,255,255,.06); - padding: 16px 18px; max-width: 480px; width: 94%; pointer-events: auto; - max-height: 90vh; overflow-y: auto; + padding: 16px 18px; max-width: 860px; width: 92%; pointer-events: auto; + max-height: 82vh; overflow-y: auto; } /* 头部:标题 + 右上角关闭(MMO 风格) */ #unitModal .umHead { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; @@ -953,36 +951,36 @@ body { background: #0a0e17; overflow: hidden; font-family: 'Microsoft YaHei', sa display:flex;align-items:center;justify-content:center; transition:background .15s,color .15s; } #unitModal .umClose:hover { background:rgba(255,80,80,.28); color:#fff; } /* 主体两栏:左侧立绘+环绕装备槽,右侧数值 */ -#unitModal .umGrid { display:grid; grid-template-columns: 200px 1fr; gap:14px; } -#unitModal .umLeft { position:relative; border-radius:12px; padding:14px 10px 90px; +#unitModal .umGrid { display:grid; grid-template-columns: 260px 1fr; gap:18px; } +#unitModal .umLeft { position:relative; border-radius:12px; padding:18px 12px 110px; display:flex; flex-direction:column; align-items:center; background: radial-gradient(ellipse at 50% 26%, rgba(139,92,246,.14), rgba(255,255,255,.03) 62%); border: 1px solid rgba(139,92,246,.28); box-shadow: inset 0 0 28px rgba(139,92,246,.10); } -#unitModal .umPortraitWrap { position:relative; width:160px; height:180px; margin:8px 0 2px; } +#unitModal .umPortraitWrap { position:relative; width:220px; height:250px; margin:10px 0 4px; } #unitModal .umPortrait { width:100%; height:100%; display:flex; align-items:flex-end; justify-content:center; } #unitModal .umPortrait canvas { width:100%; height:100%; display:block; } -#unitModal .umPortraitFallback { font-size:72px; line-height:180px; text-align:center; } -#unitModal .umEq { position:absolute; width:46px; height:46px; border-radius:9px; +#unitModal .umPortraitFallback { font-size:90px; line-height:250px; text-align:center; } +#unitModal .umEq { position:absolute; width:54px; height:54px; border-radius:11px; background:rgba(8,14,26,.78); border:1px solid rgba(120,200,255,.3); display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:2; transition:border-color .15s, background .15s, box-shadow .15s; } #unitModal .umEq:hover { border-color:rgba(139,92,246,.75); background:rgba(139,92,246,.2); box-shadow:0 0 10px rgba(139,92,246,.35); } -#unitModal .umEq .umEqIcon { font-size:19px; line-height:1; display:flex; align-items:center; justify-content:center; } -#unitModal .umEq .umEqIcon img { width:28px; height:28px; object-fit:contain; filter:drop-shadow(0 1px 1px rgba(0,0,0,.5)); } +#unitModal .umEq .umEqIcon { font-size:22px; line-height:1; display:flex; align-items:center; justify-content:center; } +#unitModal .umEq .umEqIcon img { width:34px; height:34px; object-fit:contain; filter:drop-shadow(0 1px 1px rgba(0,0,0,.5)); } /* 装备名称统一放在框正下方 */ #unitModal .umEq .umEqName { position:absolute; top:100%; left:50%; transform:translateX(-50%); - margin-top:3px; font-size:9px; color:#a8b8cc; white-space:nowrap; + margin-top:3px; font-size:10px; color:#a8b8cc; white-space:nowrap; text-shadow:0 1px 2px rgba(0,0,0,.7); pointer-events:none; } -#unitModal .umEq.accessory { top:-10px; left:50%; transform:translateX(-50%); } -#unitModal .umEq.weapon { left:-12px; top:50%; transform:translateY(-50%); } -#unitModal .umEq.armor { right:-12px; top:50%; transform:translateY(-50%); } -#unitModal .umEq.boots { bottom:-24px; left:50%; transform:translateX(-50%); } +#unitModal .umEq.accessory { top:-12px; left:50%; transform:translateX(-50%); } +#unitModal .umEq.weapon { left:-16px; top:50%; transform:translateY(-50%); } +#unitModal .umEq.armor { right:-16px; top:50%; transform:translateY(-50%); } +#unitModal .umEq.boots { bottom:-28px; left:50%; transform:translateX(-50%); } #unitModal .umEquipPicker { - margin-top:92px; width:100%; - max-height: 220px; + margin-top:120px; width:100%; + max-height: 260px; overflow-y: auto; background: rgba(8,14,26,0.96); border: 1px solid rgba(139,92,246,0.32); @@ -995,13 +993,14 @@ body { background: #0a0e17; overflow: hidden; font-family: 'Microsoft YaHei', sa #unitModal .umEquipPicker::-webkit-scrollbar { width: 4px; } #unitModal .umEquipPicker::-webkit-scrollbar-thumb { background: rgba(139,92,246,0.45); border-radius: 3px; } #unitModal .umRight { min-width:0; } -#unitModal .umStatGrid { display:grid; grid-template-columns:1fr 1fr; gap:2px 14px; margin-bottom:8px; } +#unitModal .umStatGrid { display:grid; grid-template-columns:1fr 1fr; gap:4px 18px; margin-bottom:10px; } #unitModal .umStatGrid .statBar { display:none; } -#unitModal .modalTitle { font-size: 16px; font-weight: bold; color: #e0e0e0; margin-bottom: 16px; } -#unitModal .statRow { display: flex; justify-content: space-between; align-items: center; margin: 6px 0; font-size: 12px; } +#unitModal .umHead { margin-bottom:14px; padding-bottom:12px; } +#unitModal .modalTitle { font-size: 18px; font-weight: bold; color: #e0e0e0; margin-bottom: 16px; } +#unitModal .statRow { display: flex; justify-content: space-between; align-items: center; margin: 8px 0; font-size: 13px; } #unitModal .statLabel { color: #8899aa; } #unitModal .statValue { color: #e0e0e0; } -#unitModal .statBar { flex: 1; height: 8px; background: rgba(255,255,255,0.08); border-radius: 4px; margin: 0 8px; overflow: hidden; } +#unitModal .statBar { flex: 1; height: 9px; background: rgba(255,255,255,0.08); border-radius: 4px; margin: 0 8px; overflow: hidden; } #unitModal .statFill { height: 100%; border-radius: 4px; } #unitModal .cmdBtn { display: block; width: 100%; margin-top: 8px; padding: 8px; @@ -1245,8 +1244,8 @@ body { background: #0a0e17; overflow: hidden; font-family: 'Microsoft YaHei', sa #navControls{bottom:calc(96px + env(safe-area-inset-bottom));right:14px; grid-template-columns:repeat(3,60px);grid-template-rows:repeat(3,60px);gap:6px;} #navControls button{width:60px;height:60px;font-size:24px;border-radius:15px;} - #sceneToolbar{right:12px;gap:7px;padding:9px 10px;grid-template-columns:52px;grid-auto-columns:52px;grid-template-rows:repeat(7,58px);grid-auto-rows:58px;grid-auto-flow:column;} - #sceneToolbar.collapsed{grid-template-rows:repeat(4,58px);} + #sceneToolbar{right:12px;left:auto;transform:none;gap:7px;padding:9px 10px;grid-template-columns:repeat(7,52px);grid-template-rows:repeat(2,58px);grid-auto-rows:58px;grid-auto-flow:row;} + #sceneToolbar.collapsed{grid-template-columns:repeat(4,52px);grid-template-rows:58px;} #sceneToolbar .top-icon{width:52px;height:52px;font-size:17px;} #sceneToolbar .top-icon img, #sceneToolbar .top-icon svg{width:22px;height:22px;} @@ -1262,8 +1261,8 @@ body { background: #0a0e17; overflow: hidden; font-family: 'Microsoft YaHei', sa #bottomBar .bb-btn{padding:7px 9px;font-size:11px;} #worldExpBarWrap{width:280px;gap:5px;} #worldExpBarWrap .we-title{display:none;} - #sceneToolbar{right:8px;gap:5px;padding:7px 8px;top:calc(58px + env(safe-area-inset-top) + 6px);grid-template-columns:46px;grid-auto-columns:46px;grid-template-rows:repeat(7,52px);grid-auto-rows:52px;grid-auto-flow:column;} - #sceneToolbar.collapsed{grid-template-rows:repeat(4,52px);} + #sceneToolbar{right:8px;left:auto;transform:none;gap:5px;padding:7px 8px;top:calc(58px + env(safe-area-inset-top) + 6px);grid-template-columns:repeat(7,46px);grid-template-rows:repeat(2,52px);grid-auto-rows:52px;grid-auto-flow:row;} + #sceneToolbar.collapsed{grid-template-columns:repeat(4,46px);grid-template-rows:52px;} #sceneToolbar .top-icon{width:46px;height:46px;font-size:15px;} #sceneToolbar .top-icon img, #sceneToolbar .top-icon svg{width:20px;height:20px;} @@ -5755,12 +5754,6 @@ async function showUnitModal(unitId) {
经验
${unit.exp||0}/${unit.exp_max||100}
-
操作指令
-
-
⬆️ 训练升级
-
😴 令其休息
-
-
`; window._umUnit = unit; if (sprite) _drawRacePortrait(sprite, document.getElementById('umPortraitCv'));