diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..a33cf57 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,10 @@ +# 1.0.2 +* 重写`体力`渲染 +* 增加`#图鉴设置体力开关`防止跟乐神的冲突默认是关闭的 +* 增加`#图鉴帮助`查看插件包功能概况 +* 增加`#图鉴版本`查看插件版本(借鉴喵喵代码 emmm好吧cv) + +# 1.0.1 +* 增加`#**图鉴`用于查看逍遥全图鉴 +* 增加`#图鉴更新`用于获取图鉴数据 +* 增加`#图鉴插件(强制)更新`用于插件包更新 \ No newline at end of file diff --git a/apps/help.js b/apps/help.js index 65cf69d..c9b35ab 100644 --- a/apps/help.js +++ b/apps/help.js @@ -1,12 +1,52 @@ +import { Cfg } from "../components/index.js"; import { segment } from "oicq"; - +import lodash from "lodash"; +import { currentVersion, changelogs } from "../components/Changelog.js"; +import Common from "../components/Common.js"; const _path = process.cwd(); -export async function calendar(e) { - e.reply("当前版本支持:\n角色、武器、食谱、怪物、圣遗物\n指令例:魔女图鉴") - return true; + +const helpFilePath = `${_path}/plugins/xiaoyao-cvs-plugin/resources/help/help-list.js`; +const path_=`/plugins/xiaoyao-cvs-plugin/resources/common/layout/`; +export async function help(e, { render }) { + if (!/图鉴/.test(e.msg) && !Cfg.get("sys.help", false)) { + return false; + } + let helpFile = {}; + helpFile = await import(`file://${helpFilePath}?version=${new Date().getTime()}`); + + const { helpCfg } = helpFile; + let helpGroup = []; + + lodash.forEach(helpCfg, (group) => { + if (group.auth && group.auth === "master" && !e.isMaster) { + return; + } + + + lodash.forEach(group.list, (help) => { + let icon = help.icon * 1; + if (!icon) { + help.css = `display:none`; + } else { + let x = (icon - 1) % 10, y = (icon - x - 1) / 10; + help.css = `background-position:-${x * 50}px -${y * 50}px`; + } + + }); + + helpGroup.push(group); + }); + + return await Common.render_path("help/index", { + helpCfg: helpGroup, + element: 'default' + }, { e, render, scale: 1.2 },path_) } -export async function versionInfo(e) { - e.reply("当前图鉴版本:1.0.1") - return true; +export async function versionInfo(e, { render }) { + return await Common.render_path("help/version-info", { + currentVersion, + changelogs, + elem: "cryo", + }, { e, render, scale: 1.2 },path_) } diff --git a/components/Changelog.js b/components/Changelog.js index 72eaadd..6546644 100644 --- a/components/Changelog.js +++ b/components/Changelog.js @@ -2,7 +2,7 @@ import fs from "fs"; import lodash from "lodash"; const _path = process.cwd(); -const _logPath = `${_path}/plugins/miao-plugin/CHANGELOG.md`; +const _logPath = `${_path}/plugins/xiaoyao-cvs-plugin/CHANGELOG.md`; let logs = {}; let changelogs = []; diff --git a/components/Common.js b/components/Common.js index 2871027..e93c82f 100644 --- a/components/Common.js +++ b/components/Common.js @@ -13,7 +13,29 @@ export const render = async function (path, params, cfg) { elemLayout: _layout_path + "elem.html", sys: { scale: Cfg.scale(cfg.scale || 1), - copyright: `Created By Yunzai-Bot${yunzaiVersion} & Miao-Plugin${currentVersion}` + copyright: `Created By Yunzai-Bot${yunzaiVersion} & xiaoyao-cvs-Plugin${currentVersion}` + } + }); + + if (base64) { + e.reply(segment.image(`base64://${base64}`)); + } + + return true; +} + +export const render_path = async function (path, params, cfg,path_) { + let paths = path.split("/"); + let { render, e } = cfg; + let _layout_path = process.cwd() + path_; + let base64 = await render(paths[0], paths[1], { + ...params, + _layout_path, + defaultLayout: _layout_path + "default.html", + elemLayout: _layout_path + "elem.html", + sys: { + scale: Cfg.scale(cfg.scale || 1), + copyright: `Created By Yunzai-Bot${yunzaiVersion} & xiaoyao-cvs-Plugin${currentVersion}` } }); @@ -25,8 +47,9 @@ export const render = async function (path, params, cfg) { } + export default { - render, + render,render_path, cfg: Cfg.get, isDisable: Cfg.isDisable }; \ No newline at end of file diff --git a/index.js b/index.js index d09579b..4548383 100644 --- a/index.js +++ b/index.js @@ -4,7 +4,7 @@ import { } from "./apps/xiaoyao_image.js"; import { versionInfo, - calendar + help } from "./apps/help.js"; import { Note @@ -18,7 +18,7 @@ export { updateRes, updateMiaoPlugin, versionInfo,sysCfg, - calendar, + help, AtlasAlias, Note }; @@ -28,16 +28,16 @@ let rule = { reg: "^#图鉴版本$", describe: "【#帮助】 喵喵版本介绍", }, - calendar: { - reg: "^#图鉴列表$", - describe: "【#日历】 活动日历", + help: { + reg: "^#图鉴(列表|帮助|help)$", + describe: "查看插件的功能", }, AtlasAlias: { - reg: "#*(.*)(信息|图鉴|命座|天赋|突破|材料|特色料理|特殊料理)$", //匹配消息正则,命令正则 - describe: "【刻晴信息、刻晴图鉴、刻晴突破、刻晴命座】角色信息图鉴", //【命令】功能说明 + reg: "#*(.*)(信息|图鉴|命座|天赋|突破|材料|特色料理|特殊料理)$", + describe: "【刻晴信息、刻晴图鉴、刻晴突破、刻晴命座】角色信息图鉴", }, Note: { - reg: "^#*(体力|树脂|查询体力|便笺|便签)$", //匹配消息正则,命令正则 + reg: "^#*(体力|树脂|查询体力|便笺|便签)$", describe: "体力", }, ...adminRule diff --git a/resources/common/bg/bg-anemo.jpg b/resources/common/bg/bg-anemo.jpg new file mode 100644 index 0000000..985a7d4 Binary files /dev/null and b/resources/common/bg/bg-anemo.jpg differ diff --git a/resources/common/bg/bg-cryo.jpg b/resources/common/bg/bg-cryo.jpg new file mode 100644 index 0000000..cf4bd1d Binary files /dev/null and b/resources/common/bg/bg-cryo.jpg differ diff --git a/resources/common/bg/bg-electro.jpg b/resources/common/bg/bg-electro.jpg new file mode 100644 index 0000000..5dec746 Binary files /dev/null and b/resources/common/bg/bg-electro.jpg differ diff --git a/resources/common/bg/bg-geo.jpg b/resources/common/bg/bg-geo.jpg new file mode 100644 index 0000000..d68405f Binary files /dev/null and b/resources/common/bg/bg-geo.jpg differ diff --git a/resources/common/bg/bg-hydro.jpg b/resources/common/bg/bg-hydro.jpg new file mode 100644 index 0000000..cc262f7 Binary files /dev/null and b/resources/common/bg/bg-hydro.jpg differ diff --git a/resources/common/bg/bg-pyro.jpg b/resources/common/bg/bg-pyro.jpg new file mode 100644 index 0000000..302d612 Binary files /dev/null and b/resources/common/bg/bg-pyro.jpg differ diff --git a/resources/common/bg/talent-anemo.png b/resources/common/bg/talent-anemo.png new file mode 100644 index 0000000..e9926f2 Binary files /dev/null and b/resources/common/bg/talent-anemo.png differ diff --git a/resources/common/bg/talent-cryo.png b/resources/common/bg/talent-cryo.png new file mode 100644 index 0000000..2defb36 Binary files /dev/null and b/resources/common/bg/talent-cryo.png differ diff --git a/resources/common/bg/talent-electro.png b/resources/common/bg/talent-electro.png new file mode 100644 index 0000000..8e3c59d Binary files /dev/null and b/resources/common/bg/talent-electro.png differ diff --git a/resources/common/bg/talent-geo.png b/resources/common/bg/talent-geo.png new file mode 100644 index 0000000..87d7d0d Binary files /dev/null and b/resources/common/bg/talent-geo.png differ diff --git a/resources/common/bg/talent-hydro.png b/resources/common/bg/talent-hydro.png new file mode 100644 index 0000000..9408117 Binary files /dev/null and b/resources/common/bg/talent-hydro.png differ diff --git a/resources/common/bg/talent-pyro.png b/resources/common/bg/talent-pyro.png new file mode 100644 index 0000000..3349fde Binary files /dev/null and b/resources/common/bg/talent-pyro.png differ diff --git a/resources/common/common.css b/resources/common/common.css new file mode 100644 index 0000000..31e7765 --- /dev/null +++ b/resources/common/common.css @@ -0,0 +1,324 @@ +@font-face { + font-family: "HWZS"; + src: url("../common/font/华文中宋.TTF"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: "Number"; + src: url("../common/font/tttgbnumber.ttf"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: "NZBZ"; + src: url("../common/font/NZBZ.ttf"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: "YS"; + src: url("../common/font/HYWH-85W.ttf"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: "YS2"; + src: url("../common/font/HYWH-65W.ttf"); + font-weight: normal; + font-style: normal; +} +* { + margin: 0; + padding: 0; + box-sizing: border-box; + user-select: none; +} +body { + font-size: 18px; + color: #1e1f20; + font-family: Number, YS2, PingFangSC-Medium, PingFang SC, sans-serif; + transform: scale(1.4); + transform-origin: 0 0; + width: 600px; +} +.container { + width: 600px; + padding: 20px 15px 10px 15px; + background-size: contain; +} +.head-box { + border-radius: 15px; + padding: 10px 20px; + position: relative; + color: #fff; + margin-top: 30px; +} +.head-box .title { + font-size: 36px; + font-family: NZBZ, sans-serif; + text-shadow: 0 0 1px #000, 1px 1px 3px rgba(0, 0, 0, 0.9); +} +.head-box .genshin_logo { + position: absolute; + top: 1px; + right: 15px; + width: 97px; +} +.head-box .label { + font-size: 16px; + text-shadow: 0 0 1px #000, 1px 1px 3px rgba(0, 0, 0, 0.9); +} +.notice { + color: #888; + font-size: 12px; + text-align: right; + padding: 12px 5px 5px; +} +.notice-center { + color: #fff; + text-align: center; + margin-bottom: 10px; + text-shadow: 1px 1px 1px #333; +} +.copyright { + font-size: 16px; + font-family: Number, sans-serif; + text-align: center; + color: #fff; + position: relative; + padding-left: 10px; + text-shadow: 1px 1px 1px #000; + margin: 10px 0; +} +.copyright .version { + font-size: 13px; + color: #d3bc8e; + display: inline-block; + padding: 0 3px; +} +/* */ +.cons { + display: inline-block; + vertical-align: middle; + padding: 0 5px; + font-family: Number, YS; + border-radius: 4px; +} +.cons-0 { + background: #666; + color: #fff; +} +.cons-n0 { + background: #404949; + color: #fff; +} +.cons-1 { + background: #5cbac2; + color: #fff; +} +.cons-2 { + background: #339d61; + color: #fff; +} +.cons-3 { + background: #3e95b9; + color: #fff; +} +.cons-4 { + background: #3955b7; + color: #fff; +} +.cons-5 { + background: #531ba9cf; + color: #fff; +} +.cons-6 { + background: #ff5722; + color: #fff; +} +.cons2-0 { + border-radius: 4px; + background: #666; + color: #fff; +} +.cons2-1 { + border-radius: 4px; + background: #71b1b7; + color: #fff; +} +.cons2-2 { + border-radius: 4px; + background: #369961; + color: #fff; +} +.cons2-3 { + border-radius: 4px; + background: #4596b9; + color: #fff; +} +.cons2-4 { + border-radius: 4px; + background: #4560b9; + color: #fff; +} +.cons2-5 { + border-radius: 4px; + background: #531ba9cf; + color: #fff; +} +.cons2-6 { + border-radius: 4px; + background: #ff5722; + color: #fff; +} +/******** ELEM ********/ +.elem-anemo .talent-icon { + background-image: url("./bg/talent-anemo.png"); +} +.elem-anemo .elem-bg, +.anemo-bg { + background-image: url("./bg/bg-anemo.jpg"); +} +.elem-cryo .talent-icon { + background-image: url("./bg/talent-cryo.png"); +} +.elem-cryo .elem-bg, +.cryo-bg { + background-image: url("./bg/bg-cryo.jpg"); +} +.elem-electro .talent-icon { + background-image: url("./bg/talent-electro.png"); +} +.elem-electro .elem-bg, +.electro-bg { + background-image: url("./bg/bg-electro.jpg"); +} +.elem-geo .talent-icon { + background-image: url("./bg/talent-geo.png"); +} +.elem-geo .elem-bg, +.geo-bg { + background-image: url("./bg/bg-geo.jpg"); +} +.elem-hydro .talent-icon { + background-image: url("./bg/talent-hydro.png"); +} +.elem-hydro .elem-bg, +.hydro-bg { + background-image: url("./bg/bg-hydro.jpg"); +} +.elem-pyro .talent-icon { + background-image: url("./bg/talent-pyro.png"); +} +.elem-pyro .elem-bg, +.pyro-bg { + background-image: url("./bg/bg-pyro.jpg"); +} +/* cont */ +.cont { + border-radius: 10px; + background: url("../common/cont/card-bg.png") top left repeat-x; + background-size: auto 100%; + margin: 5px 15px 5px 10px; + position: relative; + box-shadow: 0 0 1px 0 #ccc, 2px 2px 4px 0 rgba(50, 50, 50, 0.8); + overflow: hidden; + color: #fff; + font-size: 16px; +} +.cont-title { + background: rgba(0, 0, 0, 0.4); + box-shadow: 0 0 1px 0 #fff; + color: #d3bc8e; + font-family: Number, YS; + padding: 10px 20px; + text-align: left; + border-radius: 10px 10px 0 0; +} +.cont-title span { + font-size: 12px; + color: #aaa; + margin-left: 10px; + font-family: Number, YS; + font-weight: normal; +} +.cont-body { + padding: 10px 15px; + font-size: 12px; + background: rgba(0, 0, 0, 0.5); + box-shadow: 0 0 1px 0 #fff; + font-family: YS; + font-weight: normal; +} +ul.cont-msg { + padding-left: 15px; +} +ul.cont-msg li { + margin: 5px 0; +} +ul.cont-msg li strong { + font-weight: normal; + margin: 0 2px; + color: #d3bc8e; +} +.cont-footer { + padding: 10px 15px; + font-size: 12px; + background: rgba(0, 0, 0, 0.5); + font-family: YS; + font-weight: normal; +} +.cont-table { + display: table; + width: 100%; +} +.cont-table .tr { + display: table-row; +} +.cont-table .tr:nth-child(even) { + background: rgba(0, 0, 0, 0.4); +} +.cont-table .tr:nth-child(odd) { + background: rgba(50, 50, 50, 0.4); +} +.cont-table .tr > div, +.cont-table .tr > td { + display: table-cell; + box-shadow: 0 0 1px 0 #fff; +} +.cont-table .tr > div.value-full { + display: table; + width: 200%; +} +.cont-table .tr > div.value-none { + box-shadow: none; +} +.cont-table .thead { + text-align: center; +} +.cont-table .thead > div, +.cont-table .thead > td { + font-family: YS; + color: #d3bc8e; + background: rgba(0, 0, 0, 0.4); + line-height: 40px; + height: 40px; +} +.cont-table .title, +.cont-table .th { + font-family: YS; + color: #d3bc8e; + padding-right: 15px; + text-align: right; + background: rgba(0, 0, 0, 0.4); + min-width: 100px; + vertical-align: middle; +} +.logo { + font-size: 18px; + text-align: center; + color: #fff; + margin: 20px 0 10px 0; +} +/*# sourceMappingURL=common.css.map */ \ No newline at end of file diff --git a/resources/common/common.less b/resources/common/common.less new file mode 100644 index 0000000..1b033db --- /dev/null +++ b/resources/common/common.less @@ -0,0 +1,308 @@ +@font-face { + font-family: "HWZS"; + src: url("../common/font/华文中宋.TTF"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "Number"; + src: url("../common/font/tttgbnumber.ttf"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "NZBZ"; + src: url("../common/font/NZBZ.ttf"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "YS"; + src: url("../common/font/HYWH-85W.ttf"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "YS2"; + src: url("../common/font/HYWH-65W.ttf"); + font-weight: normal; + font-style: normal; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + user-select: none; +} + +body { + font-size: 18px; + color: #1e1f20; + font-family: Number, YS2, PingFangSC-Medium, PingFang SC, sans-serif; + transform: scale(1.4); + transform-origin: 0 0; + width: 600px; +} + +.container { + width: 600px; + padding: 20px 15px 10px 15px; + background-size: contain; +} + + +.head-box { + border-radius: 15px; + padding: 10px 20px; + position: relative; + color: #fff; + margin-top: 30px; + +} + +.head-box .title { + font-size: 36px; + font-family: NZBZ, sans-serif; + text-shadow: 0 0 1px #000, 1px 1px 3px rgba(0, 0, 0, .9); +} + + +.head-box .genshin_logo { + position: absolute; + top: 1px; + right: 15px; + width: 97px; +} + +.head-box .label { + font-size: 16px; + text-shadow: 0 0 1px #000, 1px 1px 3px rgba(0, 0, 0, .9); +} + + +.notice { + color: #888; + font-size: 12px; + text-align: right; + padding: 12px 5px 5px; +} + +.notice-center { + color: #fff; + text-align: center; + margin-bottom: 10px; + text-shadow: 1px 1px 1px #333; +} + +.copyright { + font-size: 16px; + font-family: Number, sans-serif; + text-align: center; + color: #fff; + position: relative; + padding-left: 10px; + text-shadow: 1px 1px 1px #000; + margin: 10px 0; + + .version { + font-size: 13px; + color: #d3bc8e; + display: inline-block; + padding: 0 3px; + } +} + + +/* */ + +.cons { + display: inline-block; + vertical-align: middle; + padding: 0 5px; + border-radius: 4px; + font-family: Number, YS; + border-radius: 4px; +} + + +.cons(@idx, @bg, @color:#fff) { + .cons-@{idx} { + background: @bg; + color: @color; + } +} + +.cons(0, #666); +.cons(n0, #404949); +.cons(1, #5cbac2); +.cons(2, #339d61); +.cons(3, #3e95b9); +.cons(4, #3955b7); +.cons(5, #531ba9cf); +.cons(6, #ff5722); + +.cons2(@idx, @bg, @color:#fff) { + .cons2-@{idx} { + border-radius: 4px; + background: @bg; + color: @color; + } +} + +.cons2(0, #666); +.cons2(1, #71b1b7); +.cons2(2, #369961); +.cons2(3, #4596b9); +.cons2(4, #4560b9); +.cons2(5, #531ba9cf); +.cons2(6, #ff5722); + + +/******** ELEM ********/ + +@elems: anemo, cryo, electro, geo, hydro, pyro; + +each(@elems, { + .elem-@{value} .talent-icon { + background-image: url("./bg/talent-@{value}.png"); + } + + .elem-@{value} .elem-bg, + .@{value}-bg { + background-image: url("./bg/bg-@{value}.jpg"); + } +}) + + +/* cont */ + +.cont { + border-radius: 10px; + background: url("../common/cont/card-bg.png") top left repeat-x; + background-size: auto 100%; + margin: 5px 15px 5px 10px; + position: relative; + box-shadow: 0 0 1px 0 #ccc, 2px 2px 4px 0 rgba(50, 50, 50, .8); + overflow: hidden; + color: #fff; + font-size: 16px; +} + + +.cont-title { + background: rgba(0, 0, 0, .4); + box-shadow: 0 0 1px 0 #fff; + color: #d3bc8e; + font-family: Number, YS; + padding: 10px 20px; + text-align: left; + border-radius: 10px 10px 0 0; +} + +.cont-title span { + font-size: 12px; + color: #aaa; + margin-left: 10px; + font-family: Number, YS; + font-weight: normal; +} + +.cont-body { + padding: 10px 15px; + font-size: 12px; + background: rgba(0, 0, 0, 0.5); + box-shadow: 0 0 1px 0 #fff; + font-family: YS; + font-weight: normal; +} + +ul.cont-msg { + padding-left: 15px; +} + +ul.cont-msg li { + margin: 5px 0; +} + +ul.cont-msg li strong { + font-weight: normal; + margin: 0 2px; + color: #d3bc8e; +} + +.cont-footer { + padding: 10px 15px; + font-size: 12px; + background: rgba(0, 0, 0, 0.5); + font-family: YS; + font-weight: normal; +} + +.cont-table { + display: table; + width: 100%; +} + +.cont-table .tr { + display: table-row; +} + +.cont-table .tr:nth-child(even) { + background: rgba(0, 0, 0, .4); +} + +.cont-table .tr:nth-child(odd) { + background: rgba(50, 50, 50, .4); +} + +.cont-table .tr > div, +.cont-table .tr > td { + display: table-cell; + box-shadow: 0 0 1px 0 #fff; +} + +.cont-table .tr > div.value-full { + display: table; + width: 200%; +} + +.cont-table .tr > div.value-none { + box-shadow: none; +} + +.cont-table .thead { + text-align: center; +} + +.cont-table .thead > div, +.cont-table .thead > td { + font-family: YS; + color: #d3bc8e; + background: rgba(0, 0, 0, .4); + line-height: 40px; + height: 40px; +} + + +.cont-table .title, +.cont-table .th { + font-family: YS; + color: #d3bc8e; + padding-right: 15px; + text-align: right; + background: rgba(0, 0, 0, .4); + min-width: 100px; + vertical-align: middle; +} + +.logo { + font-size: 18px; + text-align: center; + color: #fff; + margin: 20px 0 10px 0; +} diff --git a/resources/common/cont/card-bg.png b/resources/common/cont/card-bg.png new file mode 100644 index 0000000..036d416 Binary files /dev/null and b/resources/common/cont/card-bg.png differ diff --git a/resources/common/font/HYWH-65W.ttf b/resources/common/font/HYWH-65W.ttf new file mode 100644 index 0000000..e3cfe72 Binary files /dev/null and b/resources/common/font/HYWH-65W.ttf differ diff --git a/resources/common/font/HYWH-85W.ttf b/resources/common/font/HYWH-85W.ttf new file mode 100644 index 0000000..cc6adb1 Binary files /dev/null and b/resources/common/font/HYWH-85W.ttf differ diff --git a/resources/common/font/NZBZ.ttf b/resources/common/font/NZBZ.ttf new file mode 100644 index 0000000..61601b0 Binary files /dev/null and b/resources/common/font/NZBZ.ttf differ diff --git a/resources/common/font/tttgbnumber.ttf b/resources/common/font/tttgbnumber.ttf new file mode 100644 index 0000000..89a392f Binary files /dev/null and b/resources/common/font/tttgbnumber.ttf differ diff --git a/resources/common/font/华文中宋.TTF b/resources/common/font/华文中宋.TTF new file mode 100644 index 0000000..2ddb8b2 Binary files /dev/null and b/resources/common/font/华文中宋.TTF differ diff --git a/resources/common/item/bg3.png b/resources/common/item/bg3.png new file mode 100644 index 0000000..44aa8c3 Binary files /dev/null and b/resources/common/item/bg3.png differ diff --git a/resources/common/item/bg4.png b/resources/common/item/bg4.png new file mode 100644 index 0000000..8079547 Binary files /dev/null and b/resources/common/item/bg4.png differ diff --git a/resources/common/item/bg5.png b/resources/common/item/bg5.png new file mode 100644 index 0000000..2630db5 Binary files /dev/null and b/resources/common/item/bg5.png differ diff --git a/resources/common/item/star.png b/resources/common/item/star.png new file mode 100644 index 0000000..80d1888 Binary files /dev/null and b/resources/common/item/star.png differ diff --git a/resources/common/layout/default.html b/resources/common/layout/default.html new file mode 100644 index 0000000..9e14568 --- /dev/null +++ b/resources/common/layout/default.html @@ -0,0 +1,16 @@ + + + + + + + {{block 'css'}} + {{/block}} + + +
+ {{block 'main'}}{{/block}} + +
+ + \ No newline at end of file diff --git a/resources/common/layout/elem.html b/resources/common/layout/elem.html new file mode 100644 index 0000000..378ced6 --- /dev/null +++ b/resources/common/layout/elem.html @@ -0,0 +1,16 @@ + + + + + + + {{block 'css'}} + {{/block}} + + +
+ {{block 'main'}}{{/block}} + +
+ + \ No newline at end of file diff --git a/resources/common/theme/bg-01.jpg b/resources/common/theme/bg-01.jpg new file mode 100644 index 0000000..6726b9a Binary files /dev/null and b/resources/common/theme/bg-01.jpg differ diff --git a/resources/common/theme/main-01.png b/resources/common/theme/main-01.png new file mode 100644 index 0000000..a3e8918 Binary files /dev/null and b/resources/common/theme/main-01.png differ diff --git a/resources/common/tpl.css b/resources/common/tpl.css new file mode 100644 index 0000000..248108b --- /dev/null +++ b/resources/common/tpl.css @@ -0,0 +1,469 @@ +.item-card { + width: 66px; + margin: 4px; + position: relative; + border-radius: 5px; +} +.item-card .badge { + overflow: hidden; + border-radius: 50%; + display: block; + width: 26px; + height: 26px; + position: absolute; + right: -4px; + top: -4px; + background: #e9e5dc; + box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.8), 2px 2px 2px rgba(50, 50, 50, 0.5); + z-index: 10; +} +.item-card .badge img { + width: 140%; + left: -27%; + top: -45%; + overflow: hidden; + background-size: 100%; + background-repeat: no-repeat; + position: absolute; +} +.item-card .item-bg { + width: 100%; + padding: 100% 0 0; + background-size: cover; + background-repeat: no-repeat; + margin: 0; +} +.item-card .bg1 { + background-image: url("./item/bg1.png"); + border-radius: 5px 5px 15px 0; +} +.item-card .bg-1 { + background-image: url("./item/bg1.png"); + border-radius: 5px 5px 15px 0; +} +.item-card .bg2 { + background-image: url("./item/bg2.png"); + border-radius: 5px 5px 15px 0; +} +.item-card .bg-2 { + background-image: url("./item/bg2.png"); + border-radius: 5px 5px 15px 0; +} +.item-card .bg3 { + background-image: url("./item/bg3.png"); + border-radius: 5px 5px 15px 0; +} +.item-card .bg-3 { + background-image: url("./item/bg3.png"); + border-radius: 5px 5px 15px 0; +} +.item-card .bg4 { + background-image: url("./item/bg4.png"); + border-radius: 5px 5px 15px 0; +} +.item-card .bg-4 { + background-image: url("./item/bg4.png"); + border-radius: 5px 5px 15px 0; +} +.item-card .bg5 { + background-image: url("./item/bg5.png"); + border-radius: 5px 5px 15px 0; +} +.item-card .bg-5 { + background-image: url("./item/bg5.png"); + border-radius: 5px 5px 15px 0; +} +.item-card .box { + border-radius: 5px; + overflow: hidden; + background: #e9e5dc; +} +.item-card .box .item-desc { + display: block; + font-weight: 500; + text-align: center; + bottom: 0; + background: #e9e5dc; + width: 100%; + font-size: 12px; + line-height: 16px; + font-family: Number, YS; + white-space: nowrap; + overflow: hidden; + padding: 0 3px; +} +.item-card .box .item-desc:last-child { + padding-bottom: 2px; +} +.item-card .box .name { + overflow: hidden; + white-space: nowrap; + margin-top: 5px; + font-weight: 500; + text-align: center; + font-size: 14px; +} +.item-card .box .item-img { + width: 100%; + overflow: hidden; + background-size: 100%; + background-repeat: no-repeat; + position: absolute; + top: 0; +} +.item-card .item-life { + position: absolute; + top: 0px; + left: 0px; + z-index: 9; + font-size: 13px; + text-align: center; + color: #fff; + border-radius: 2px; + padding: 1px 4px; + border-radius: 3px; + font-family: "tttgbnumber"; +} +.item-card .life1 { + background-color: #62a8ea; +} +.item-card .life2 { + background-color: #62a8ea; +} +.item-card .life3 { + background-color: #62a8ea; +} +.item-card .life4 { + background-color: #ff5722; +} +.item-card .life5 { + background-color: #ff5722; +} +.profile { + position: relative; + margin-bottom: 10px; +} +.profile:after { + content: ""; + display: block; + position: absolute; + left: 8px; + top: 115px; + bottom: 0; + right: 8px; + box-shadow: 0 0 2px 0 #fff; + border-radius: 5px; + z-index: 1; +} +.profile .main-pic { + width: 800px; + height: 500px; + background-size: contain; + background-repeat: no-repeat; + background-position: center; + margin-left: -260px; + position: relative; + z-index: 2; +} +.profile .detail { + position: absolute; + right: 20px; + top: 20px; + color: #fff; + z-index: 3; +} +.profile .char-name { + font-size: 50px; + font-family: NZBZ; + text-shadow: 0 0 3px #000, 2px 2px 4px rgba(0, 0, 0, 0.7); + text-align: right; +} +.profile .char-lv { + font-family: Number; + margin-bottom: 20px; + text-shadow: 0 0 3px #000, 2px 2px 4px rgba(0, 0, 0, 0.7); + text-align: right; +} +.profile .attr { + border-radius: 4px; + overflow: hidden; + background: rgba(0, 0, 0, 0.3); +} +.profile .detail li { + width: 300px; + font-size: 17px; + list-style: none; + padding: 0 100px 0 35px; + position: relative; + font-family: YS; + height: 32px; + line-height: 32px; + text-shadow: 0 0 1px rgba(0, 0, 0, 0.5); +} +.profile .attr li i { + display: inline-block; + height: 20px; + width: 20px; + background-image: url("../character/icon.png"); + background-size: auto 20px; + position: absolute; + left: 10px; + top: 8px; + opacity: 0.9; + transform: scale(0.9); +} +.profile .i-hp { + background-position: -20px 0; +} +.profile .i-atk { + background-position: -40px 0; +} +.profile .i-def { + background-position: -60px 0; +} +.profile .i-mastery { + background-position: -80px 0; +} +.profile .i-cr { + background-position: -100px 0; +} +.profile .i-cd { + background-position: -140px 0; +} +.profile .i-re { + background-position: -120px 0; +} +.profile .i-dmg { + background-position: -160px 0; +} +.profile .detail li:nth-child(even) { + background: rgba(0, 0, 0, 0.4); +} +.profile .detail li:nth-child(odd) { + background: rgba(50, 50, 50, 0.4); +} +.profile .detail li strong { + display: inline-block; + position: absolute; + right: 85px; + text-align: right; + font-family: Number, sans-serif; + font-weight: normal; +} +.profile .detail li span { + position: absolute; + right: 0; + text-align: left; + width: 75px; + display: inline-block; + font-family: Number, sans-serif; + color: #90e800; + font-size: 15px; +} +.profile .talent-icon { + width: 100px; + height: 100px; + padding: 5px; + display: table; + border-radius: 50%; + position: relative; + background-size: contain; + background-repeat: no-repeat; + background-position: center center; + z-index: 90; +} +.profile .talent-icon img, +.profile .talent-icon .profile .talent-icon-img { + width: 46%; + height: 46%; + position: absolute; + top: 50%; + left: 50%; + margin: -22% 0 0 -23%; + background-size: contain; + background-repeat: no-repeat; + background-position: center; +} +.profile .talent-icon span { + background: #fff; + width: 34px; + height: 26px; + line-height: 26px; + font-size: 17px; + text-align: center; + border-radius: 5px; + position: absolute; + bottom: 2px; + left: 50%; + margin-left: -15px; + color: #000; + box-shadow: 0 0 5px 0 #000; + font-family: Number; +} +.profile .talent-icon.talent-plus span { + background: #2e353e; + color: #ffdfa0; + font-weight: bold; + box-shadow: 0 0 1px 0 #d3bc8e, 1px 1px 2px 0 rgba(0, 0, 0, 0.5); +} +.profile .talent-icon.talent-crown:after { + content: ""; + display: block; + width: 28px; + height: 28px; + background: url("../../character/imgs/crown.png") no-repeat; + background-size: contain; + position: absolute; + left: 50%; + top: 0; + margin-left: -14px; +} +.profile .char-talents { + display: flex; + width: 300px; + margin-bottom: 10px; +} +.profile .char-cons .talent-item, +.profile .char-talents .talent-item { + flex: 1; +} +.profile .char-cons { + display: flex; + width: 250px; + position: absolute; + bottom: 5px; + left: 20px; +} +.profile .char-cons .talent-icon { + width: 50px; + height: 50px; + margin: 0 -5px; +} +.profile .char-cons .talent-icon.off { + filter: grayscale(100%); + opacity: 0.4; +} +.arti-detail { + width: 185px; + border-radius: 10px; + background: url("./cont/card-bg.png") top left repeat-x; + background-size: auto 100%; + margin: 5px; + position: relative; + box-shadow: 0 0 1px 0 #ccc, 2px 2px 4px 0 rgba(50, 50, 50, 0.8); + height: 205px; + overflow: hidden; +} +.arti-detail .arti-icon { + width: 60px; + height: 60px; + position: absolute; + left: 2px; + top: 3px; +} +.arti-detail .arti-icon span { + position: absolute; + right: 2px; + bottom: 0; + margin-left: 5px; + background: rgba(0, 0, 0, 0.5); + border-radius: 5px; + height: 18px; + line-height: 18px; + padding: 0 3px; + color: #fff; + font-size: 12px; + display: block; +} +.arti-detail .arti-icon img { + width: 60px; + height: 60px; +} +.arti-detail .head { + color: #fff; + padding: 12px 0 8px 68px; +} +.arti-detail .head strong { + font-size: 15px; + display: block; + white-space: nowrap; + overflow: hidden; + font-font: YS; +} +.arti-detail .head span { + font-size: 14px; +} +.arti-detail .head .mark { + font-family: Number, YS; +} +.arti-detail ul.detail { + width: 100%; + padding: 0; + position: initial; + font-family: YS; +} +.arti-detail ul.detail li { + padding: 0 3px; + font-size: 14px; + position: initial; + width: 100%; + display: table; + line-height: 26px; + height: 26px; +} +.arti-detail ul.detail li.nouse span { + color: #888; +} +.arti-detail ul.detail li.arti-main { + font-size: 16px; + padding: 3px 3px; + font-weight: bold; +} +.arti-detail ul.detail li span { + position: initial; + display: table-cell; + color: #fff; + font-family: YS; +} +.arti-detail ul.detail li span.title { + text-align: left; + padding-left: 10px; +} +.arti-detail ul.detail li span.val { + text-align: right; + padding-right: 10px; + font-family: Number; +} +.arti-detail ul.detail li:nth-child(even) { + background: rgba(0, 0, 0, 0.4); +} +.arti-detail ul.detail li:nth-child(odd) { + background: rgba(50, 50, 50, 0.4); +} +.arti-detail .avatar-icon { + position: absolute; + left: 32px; + top: 26px; + width: 38px; + height: 38px; + border-radius: 50%; + overflow: hidden; + z-index: 3; +} +.arti-detail .avatar-icon img { + max-width: 100%; + max-height: 100%; +} +.arti-detail .arti-icon img { + width: 52px; + height: 52px; +} +.item-list { + display: flex; + flex-wrap: wrap; + transform-origin: 0 0; +} +.item-list .item { + width: 65px; +} +/*# sourceMappingURL=tpl.css.map */ \ No newline at end of file diff --git a/resources/common/tpl.less b/resources/common/tpl.less new file mode 100644 index 0000000..9900692 --- /dev/null +++ b/resources/common/tpl.less @@ -0,0 +1,16 @@ + + +@import url('tpl/item-card'); +@import url('tpl/avatar-profile'); +@import url('tpl/artis-detail'); + + +.item-list { + display: flex; + flex-wrap: wrap; + transform-origin: 0 0; +} + +.item-list .item { + width: 65px; +} \ No newline at end of file diff --git a/resources/common/tpl/artis-detail.css b/resources/common/tpl/artis-detail.css new file mode 100644 index 0000000..06ce5f2 --- /dev/null +++ b/resources/common/tpl/artis-detail.css @@ -0,0 +1,116 @@ +.arti-detail { + width: 185px; + border-radius: 10px; + background: url("../cont/card-bg.png") top left repeat-x; + background-size: auto 100%; + margin: 5px; + position: relative; + box-shadow: 0 0 1px 0 #ccc, 2px 2px 4px 0 rgba(50, 50, 50, 0.8); + height: 205px; + overflow: hidden; +} +.arti-detail .arti-icon { + width: 60px; + height: 60px; + position: absolute; + left: 2px; + top: 3px; +} +.arti-detail .arti-icon span { + position: absolute; + right: 2px; + bottom: 0; + margin-left: 5px; + background: rgba(0, 0, 0, 0.5); + border-radius: 5px; + height: 18px; + line-height: 18px; + padding: 0 3px; + color: #fff; + font-size: 12px; + display: block; +} +.arti-detail .arti-icon img { + width: 60px; + height: 60px; +} +.arti-detail .head { + color: #fff; + padding: 12px 0 8px 68px; +} +.arti-detail .head strong { + font-size: 15px; + display: block; + white-space: nowrap; + overflow: hidden; + font-font: YS; +} +.arti-detail .head span { + font-size: 14px; +} +.arti-detail .head .mark { + font-family: Number, YS; +} +.arti-detail ul.detail { + width: 100%; + padding: 0; + position: initial; + font-family: YS; +} +.arti-detail ul.detail li { + padding: 0 3px; + font-size: 14px; + position: initial; + width: 100%; + display: table; + line-height: 26px; + height: 26px; +} +.arti-detail ul.detail li.nouse span { + color: #888; +} +.arti-detail ul.detail li.arti-main { + font-size: 16px; + padding: 3px 3px; + font-weight: bold; +} +.arti-detail ul.detail li span { + position: initial; + display: table-cell; + color: #fff; + font-family: YS; +} +.arti-detail ul.detail li.title { + text-align: left; + padding-left: 10px; +} +.arti-detail ul.detail li.val { + text-align: right; + padding-right: 10px; + font-family: Number; +} +.arti-detail ul.detail:nth-child(even) { + background: rgba(0, 0, 0, 0.4); +} +.arti-detail ul.detail:nth-child(odd) { + background: rgba(50, 50, 50, 0.4); +} +.arti-detail .avatar { + position: absolute; + left: 32px; + top: 26px; + width: 38px; + height: 38px; + border-radius: 50%; + overflow: hidden; + z-index: 3; +} +.arti-detail .avatar img { + max-width: 100%; + max-height: 100%; +} +.arti-detail .arti-icon img { + width: 52px; + height: 52px; +} +/*# sourceMappingURL=artis-detail.less.map */ \ No newline at end of file diff --git a/resources/common/tpl/artis-detail.html b/resources/common/tpl/artis-detail.html new file mode 100644 index 0000000..5350505 --- /dev/null +++ b/resources/common/tpl/artis-detail.html @@ -0,0 +1,25 @@ +{{set ds = $data[0]}} +{{set {_res_path,_char,_sys_res_path} = $data[1]}} +{{if ds.name && ds.main && ds.main[0] && ds.main[0]!="undefined"}} +
+
+ +
+
+ +
+
+ {{ds.name}} + {{ds.mark}}分 - {{ds.markType}} +
+ +
+{{/if}} \ No newline at end of file diff --git a/resources/common/tpl/artis-detail.less b/resources/common/tpl/artis-detail.less new file mode 100644 index 0000000..f1fb8e3 --- /dev/null +++ b/resources/common/tpl/artis-detail.less @@ -0,0 +1,137 @@ +.arti-detail { + width: 185px; + border-radius: 10px; + background: url("./cont/card-bg.png") top left repeat-x; + background-size: auto 100%; + margin: 5px; + position: relative; + box-shadow: 0 0 1px 0 #ccc, 2px 2px 4px 0 rgba(50, 50, 50, .8); + height: 205px; + overflow: hidden; + + .arti-icon { + width: 60px; + height: 60px; + position: absolute; + left: 2px; + top: 3px; + + span { + position: absolute; + right: 2px; + bottom: 0; + margin-left: 5px; + background: rgba(0, 0, 0, .5); + border-radius: 5px; + height: 18px; + line-height: 18px; + padding: 0 3px; + color: #fff; + font-size: 12px; + display: block; + } + + img { + width: 60px; + height: 60px; + } + } + + .head { + color: #fff; + padding: 12px 0 8px 68px; + + strong { + font-size: 15px; + display: block; + white-space: nowrap; + overflow: hidden; + font-font: YS; + } + + span { + font-size: 14px; + } + + .mark { + font-family: Number, YS; + } + } + + ul.detail { + width: 100%; + padding: 0; + position: initial; + font-family: YS; + + li { + padding: 0 3px; + font-size: 14px; + position: initial; + width: 100%; + display: table; + line-height: 26px; + height: 26px; + + &.nouse span { + color: #888; + } + + &.arti-main { + font-size: 16px; + padding: 3px 3px; + font-weight: bold; + } + + span { + position: initial; + display: table-cell; + color: #fff; + font-family: YS; + + + &.title { + text-align: left; + padding-left: 10px; + } + + &.val { + text-align: right; + padding-right: 10px; + font-family: Number; + } + } + + + &:nth-child(even) { + background: rgba(0, 0, 0, .4) + } + + &:nth-child(odd) { + background: rgba(50, 50, 50, .4) + } + } + } + + .avatar-icon { + position: absolute; + left: 32px; + top: 26px; + width: 38px; + height: 38px; + border-radius: 50%; + overflow: hidden; + z-index: 3; + + img { + max-width: 100%; + max-height: 100%; + } + } + + .arti-icon img { + width: 52px; + height: 52px; + } + +} \ No newline at end of file diff --git a/resources/common/tpl/artis-item.html b/resources/common/tpl/artis-item.html new file mode 100644 index 0000000..b8e4a6e --- /dev/null +++ b/resources/common/tpl/artis-item.html @@ -0,0 +1,19 @@ +{{set ds = $data[0]}} +{{set {_res_path,_char,_sys_res_path} = $data[1]}} + +
+ + + +
+ {{ if ds.affix_level>1}} + + {{ds.affix_level}} + + {{/if}} +
+ +
Lv.{{ds.level}}
+
{{ds.name}}
+
+
\ No newline at end of file diff --git a/resources/common/tpl/avatar-card.css b/resources/common/tpl/avatar-card.css new file mode 100644 index 0000000..e69de29 diff --git a/resources/common/tpl/avatar-card.html b/resources/common/tpl/avatar-card.html new file mode 100644 index 0000000..24623a4 --- /dev/null +++ b/resources/common/tpl/avatar-card.html @@ -0,0 +1,15 @@ +{{set avatar = $data[0]}} +{{set {_res_path,_char} = $data[1]}} +{{set _char = _char || "meta/character/"}} + +
+
+
+ +
+ {{ if avatar.cons>0}} +
{{avatar.cons}}命
+ {{/if}} +
{{avatar.label || avatar.name}}
+
+
diff --git a/resources/common/tpl/avatar-card.less b/resources/common/tpl/avatar-card.less new file mode 100644 index 0000000..e69de29 diff --git a/resources/common/tpl/avatar-profile.css b/resources/common/tpl/avatar-profile.css new file mode 100644 index 0000000..59552d8 --- /dev/null +++ b/resources/common/tpl/avatar-profile.css @@ -0,0 +1,204 @@ +.profile { + position: relative; + margin-bottom: 10px; +} +.profile:after { + content: ""; + display: block; + position: absolute; + left: 8px; + top: 115px; + bottom: 0; + right: 8px; + box-shadow: 0 0 2px 0 #fff; + border-radius: 5px; + z-index: 1; +} +.profile .main-pic { + width: 800px; + height: 500px; + background-size: contain; + background-repeat: no-repeat; + background-position: center; + margin-left: -260px; + position: relative; + z-index: 2; +} +.profile .detail { + position: absolute; + right: 20px; + top: 20px; + color: #fff; + z-index: 3; +} +.profile .char-name { + font-size: 50px; + font-family: NZBZ; + text-shadow: 0 0 3px #000, 2px 2px 4px rgba(0, 0, 0, 0.7); + text-align: right; +} +.profile .char-lv { + font-family: Number; + margin-bottom: 20px; + text-shadow: 0 0 3px #000, 2px 2px 4px rgba(0, 0, 0, 0.7); + text-align: right; +} +.profile .attr { + border-radius: 4px; + overflow: hidden; +} +.profile .detail li { + width: 300px; + font-size: 17px; + list-style: none; + padding: 0 100px 0 35px; + position: relative; + font-family: YS; + height: 32px; + line-height: 32px; + text-shadow: 0 0 1px rgba(0, 0, 0, 0.5); +} +.profile .attr li i { + display: inline-block; + height: 20px; + width: 20px; + background-image: url("../../character/icon.png"); + background-size: auto 20px; + position: absolute; + left: 10px; + top: 8px; + opacity: 0.9; + transform: scale(0.9); +} +.profile .i-hp { + background-position: -20px 0; +} +.profile .i-atk { + background-position: -40px 0; +} +.profile .i-def { + background-position: -60px 0; +} +.profile .i-mastery { + background-position: -80px 0; +} +.profile .i-cr { + background-position: -100px 0; +} +.profile .i-cd { + background-position: -140px 0; +} +.profile .i-re { + background-position: -120px 0; +} +.profile .i-dmg { + background-position: -160px 0; +} +.profile .detail li:nth-child(even) { + background: rgba(0, 0, 0, 0.4); +} +.profile .detail li:nth-child(odd) { + background: rgba(50, 50, 50, 0.4); +} +.profile .detail li strong { + display: inline-block; + position: absolute; + right: 85px; + text-align: right; + font-family: Number, sans-serif; + font-weight: normal; +} +.profile .detail li span { + position: absolute; + right: 0; + text-align: left; + width: 75px; + display: inline-block; + font-family: Number, sans-serif; + color: #90e800; + font-size: 15px; +} +.profile .talent-icon { + width: 100px; + height: 100px; + padding: 5px; + display: table; + border-radius: 50%; + position: relative; + background-size: contain; + background-repeat: no-repeat; + background-position: center center; + z-index: 90; +} +.profile .talent-icon img, +.profile .talent-icon .profile .talent-icon-img { + width: 46%; + height: 46%; + position: absolute; + top: 50%; + left: 50%; + margin: -22% 0 0 -23%; + background-size: contain; + background-repeat: no-repeat; + background-position: center; +} +.profile .talent-icon span { + background: #fff; + width: 34px; + height: 26px; + line-height: 26px; + font-size: 17px; + text-align: center; + border-radius: 5px; + position: absolute; + bottom: 2px; + left: 50%; + margin-left: -15px; + color: #000; + box-shadow: 0 0 5px 0 #000; + font-family: Number; +} +.profile .talent-icon.talent-plus span { + background: #2e353e; + color: #ffdfa0; + font-weight: bold; + box-shadow: 0 0 1px 0 #d3bc8e, 1px 1px 2px 0 rgba(0, 0, 0, 0.5); +} +.profile .talent-icon.talent-crown:after { + content: ""; + display: block; + width: 28px; + height: 28px; + background: url("../character/imgs/crown.png") no-repeat; + background-size: contain; + position: absolute; + left: 50%; + top: 0; + margin-left: -14px; +} +.profile .char-talents { + display: flex; + width: 300px; + margin-bottom: 10px; +} +.profile .char-cons .talent-item, +.profile .char-talents .talent-item { + flex: 1; +} +.profile .char-cons { + display: flex; + width: 250px; + position: absolute; + bottom: 5px; + left: 20px; +} +.profile .char-cons .talent-icon { + width: 50px; + height: 50px; + margin: 0 -5px; +} +.profile .char-cons .talent-icon.off { + filter: grayscale(100%); + opacity: 0.4; +} +/*# sourceMappingURL=avatar-profile.css.map */ \ No newline at end of file diff --git a/resources/common/tpl/avatar-profile.html b/resources/common/tpl/avatar-profile.html new file mode 100644 index 0000000..4d768a6 --- /dev/null +++ b/resources/common/tpl/avatar-profile.html @@ -0,0 +1,47 @@ +{{set ds = $data[0]}} +{{set {_res_path, _char, _sys_res_path, uid} = $data[1]}} +{{set {attr} = ds}} + +
+
+
+
{{ds.name}}
+
+ {{if uid}}UID {{uid}} - {{/if}} + {{ds.cons}}命 {{if ds.lv}} Lv.{{ds.lv}}{{/if}} +
+
+ {{each ds.talentMap tName key}} +
+
+
+ {{talent[key].level_current}} +
+
+ {{/each}} +
+ +
+
+ {{each cons con idx}} +
+
+ +
+
+ {{/each}} +
+
diff --git a/resources/common/tpl/avatar-profile.less b/resources/common/tpl/avatar-profile.less new file mode 100644 index 0000000..9e187a8 --- /dev/null +++ b/resources/common/tpl/avatar-profile.less @@ -0,0 +1,241 @@ +.profile { + position: relative; + margin-bottom: 10px; + + &:after { + content: ""; + display: block; + position: absolute; + left: 8px; + top: 115px; + bottom: 0; + right: 8px; + box-shadow: 0 0 2px 0 #fff; + border-radius: 5px; + z-index: 1; + } + + .main-pic { + width: 800px; + height: 500px; + background-size: contain; + background-repeat: no-repeat; + background-position: center; + margin-left: -260px; + position: relative; + z-index: 2; + } + + .detail { + position: absolute; + right: 20px; + top: 20px; + color: #fff; + z-index: 3; + } + + .char-name { + font-size: 50px; + font-family: NZBZ; + text-shadow: 0 0 3px #000, 2px 2px 4px rgba(0, 0, 0, .7); + text-align: right; + } + + .char-lv { + font-family: Number; + margin-bottom: 20px; + text-shadow: 0 0 3px #000, 2px 2px 4px rgba(0, 0, 0, .7); + text-align: right; + } + + .attr { + border-radius: 4px; + overflow: hidden; + background: rgba(0, 0, 0, .3); + } + + .detail li { + width: 300px; + font-size: 17px; + list-style: none; + padding: 0 100px 0 35px; + position: relative; + font-family: YS; + height: 32px; + line-height: 32px; + text-shadow: 0 0 1px rgba(0, 0, 0, .5); + } + + .attr li i { + display: inline-block; + height: 20px; + width: 20px; + background-image: url("../character/icon.png"); + background-size: auto 20px; + position: absolute; + left: 10px; + top: 8px; + opacity: .9; + transform: scale(.9); + + } + + .i-hp { + background-position: -20px 0; + } + + .i-atk { + background-position: -40px 0; + } + + .i-def { + background-position: -60px 0; + } + + .i-mastery { + background-position: -80px 0; + } + + .i-cr { + background-position: -100px 0; + } + + .i-cd { + background-position: -140px 0; + } + + .i-re { + background-position: -120px 0; + } + + .i-dmg { + background-position: -160px 0; + } + + .detail li { + + &:nth-child(even) { + background: rgba(0, 0, 0, .4) + } + + &:nth-child(odd) { + background: rgba(50, 50, 50, .4) + } + + strong { + display: inline-block; + position: absolute; + right: 85px; + text-align: right; + font-family: Number, sans-serif; + font-weight: normal; + } + + span { + position: absolute; + right: 0; + text-align: left; + width: 75px; + display: inline-block; + font-family: Number, sans-serif; + color: #90e800; + font-size: 15px; + } + } + + .talent-icon { + width: 100px; + height: 100px; + padding: 5px; + display: table; + border-radius: 50%; + position: relative; + background-size: contain; + background-repeat: no-repeat; + background-position: center center; + z-index: 90; + + + img, + .profile .talent-icon-img { + width: 46%; + height: 46%; + position: absolute; + top: 50%; + left: 50%; + margin: -22% 0 0 -23%; + background-size: contain; + background-repeat: no-repeat; + background-position: center; + } + + span { + background: #fff; + width: 34px; + height: 26px; + line-height: 26px; + font-size: 17px; + text-align: center; + border-radius: 5px; + position: absolute; + bottom: 2px; + left: 50%; + margin-left: -15px; + color: #000; + box-shadow: 0 0 5px 0 #000; + font-family: Number; + } + + &.talent-plus span { + background: #2e353e; + color: #ffdfa0; + font-weight: bold; + box-shadow: 0 0 1px 0 #d3bc8e, 1px 1px 2px 0 rgba(0, 0, 0, 0.5); + } + + &.talent-crown:after { + content: ""; + display: block; + width: 28px; + height: 28px; + background: url("../../character/imgs/crown.png") no-repeat; + background-size: contain; + position: absolute; + left: 50%; + top: 0; + margin-left: -14px; + } + + } + + .char-talents { + display: flex; + width: 300px; + margin-bottom: 10px; + } + + + .char-cons .talent-item, + .char-talents .talent-item { + flex: 1; + } + + .char-cons { + display: flex; + width: 250px; + position: absolute; + bottom: 5px; + left: 20px; + + .talent-icon { + width: 50px; + height: 50px; + margin: 0 -5px + } + + .talent-icon.off { + filter: grayscale(100%); + opacity: .4; + } + } +} \ No newline at end of file diff --git a/resources/common/tpl/item-card.css b/resources/common/tpl/item-card.css new file mode 100644 index 0000000..d5bfc61 --- /dev/null +++ b/resources/common/tpl/item-card.css @@ -0,0 +1,113 @@ +.item-card { + width: 52px; + margin: 0px 0 5px 7px; + position: relative; +} +.item-card .badge { + overflow: hidden; + border-radius: 5px; + position: relative; + background: #e9e5dc; + box-shadow: 0 2px 6px 0 rgba(132, 93, 90, 0.3); +} +.item-card .badge img { + width: 100%; + overflow: hidden; + background-size: 100%; + background-repeat: no-repeat; + position: absolute; + top: 0; + /*filter: contrast(95%);*/ +} +.item-card .bg1 { + background-image: url("imgs/bg1.png"); + width: 100%; + height: 70px; + background-size: 100%; + background-repeat: no-repeat; +} +.item-card .bg2 { + background-image: url("imgs/bg2.png"); + width: 100%; + height: 70px; + background-size: 100%; + background-repeat: no-repeat; +} +.item-card .bg3 { + background-image: url("imgs/bg3.png"); + width: 100%; + height: 70px; + background-size: 100%; + background-repeat: no-repeat; +} +.item-card .bg4 { + background-image: url("imgs/bg4.png"); + width: 100%; + height: 70px; + background-size: 100%; + background-repeat: no-repeat; +} +.item-card .bg5 { + background-image: url("imgs/bg5.png"); + width: 100%; + height: 70px; + background-size: 100%; + background-repeat: no-repeat; +} +.item-card .box:after { + content: ""; + display: block; + position: absolute; + width: 15px; + right: 0; + bottom: 15px; +} +.item-card .box .desc { + font-weight: 500; + text-align: center; + position: absolute; + bottom: 0; + background: #e9e5dc; + width: 100%; + height: 16px; + font-size: 12px; + line-height: 16px; + font-family: Number; +} +.item-card .box .name { + overflow: hidden; + white-space: nowrap; + margin-top: 5px; + font-weight: 500; + text-align: center; + font-size: 14px; +} +.item-card .life { + position: absolute; + top: 0px; + left: 0px; + z-index: 9; + font-size: 13px; + text-align: center; + color: #fff; + border-radius: 2px; + padding: 1px 4px; + border-radius: 3px; + font-family: "tttgbnumber"; +} +.item-card .life1 { + background-color: #62a8ea; +} +.item-card .life2 { + background-color: #62a8ea; +} +.item-card .life3 { + background-color: #62a8ea; +} +.item-card .life4 { + background-color: #ff5722; +} +.item-card .life5 { + background-color: #ff5722; +} +/*# sourceMappingURL=item-card.less.map */ \ No newline at end of file diff --git a/resources/common/tpl/item-card.less b/resources/common/tpl/item-card.less new file mode 100644 index 0000000..5af0263 --- /dev/null +++ b/resources/common/tpl/item-card.less @@ -0,0 +1,122 @@ + +.item-card { + width: 66px; + margin: 4px; + position: relative; + border-radius: 5px; + + + .badge { + overflow: hidden; + border-radius: 50%; + display: block; + width: 26px; + height: 26px; + position: absolute; + right: -4px; + top: -4px; + background: #e9e5dc; + box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.8), 2px 2px 2px rgba(50, 50, 50, .5); + z-index: 10; + + + img { + width: 140%; + left: -27%; + top: -45%; + overflow: hidden; + background-size: 100%; + background-repeat: no-repeat; + position: absolute; + } + } + + .item-bg { + width: 100%; + padding: 100% 0 0; + background-size: cover; + background-repeat: no-repeat; + margin: 0; + } + + each(range(5), { + .bg@{value} { + background-image: url("./item/bg@{value}.png"); + border-radius: 5px 5px 15px 0; + } + .bg-@{value} { + background-image: url("./item/bg@{value}.png"); + border-radius: 5px 5px 15px 0; + } + }) + + .box { + border-radius: 5px; + overflow: hidden; + background: #e9e5dc; + + .item-desc { + display: block; + font-weight: 500; + text-align: center; + bottom: 0; + background: #e9e5dc; + width: 100%; + font-size: 12px; + line-height: 16px; + font-family: Number, YS; + white-space: nowrap; + overflow: hidden; + padding: 0 3px; + + &:last-child { + padding-bottom: 2px; + } + } + + .name { + overflow: hidden; + white-space: nowrap; + margin-top: 5px; + font-weight: 500; + text-align: center; + font-size: 14px; + } + + .item-img { + width: 100%; + overflow: hidden; + background-size: 100%; + background-repeat: no-repeat; + position: absolute; + top: 0; + } + } + + .item-life { + position: absolute; + top: 0px; + left: 0px; + z-index: 9; + font-size: 13px; + text-align: center; + color: #fff; + border-radius: 2px; + padding: 1px 4px; + border-radius: 3px; + font-family: "tttgbnumber"; + } + + .life(@idx, @color) { + .life@{idx} { + background-color: @color; + } + } + + .life(1, #62a8ea); + .life(2, #62a8ea); + .life(3, #62a8ea); + .life(4, #ff5722); + .life(5, #ff5722); +} + diff --git a/resources/common/tpl/weapon-item.html b/resources/common/tpl/weapon-item.html new file mode 100644 index 0000000..1eccf22 --- /dev/null +++ b/resources/common/tpl/weapon-item.html @@ -0,0 +1,17 @@ +{{ set weapon = $data[0] }} +{{ set {_sys_res_path} = $data[1] }} + +
+ + + +
+ {{ if weapon.affix_level>1}} + {{weapon.affix_level}} + {{/if}} +
+ +
Lv.{{weapon.level}}
+
{{weapon.showName || weapon.name}}
+
+
\ No newline at end of file diff --git a/resources/help/help-list.js b/resources/help/help-list.js new file mode 100644 index 0000000..828d493 --- /dev/null +++ b/resources/help/help-list.js @@ -0,0 +1,51 @@ +export const helpCfg = [{ + "group": "信息查询", + "list": [{ + "icon": 61, + "title": "#角色图鉴", + "desc": "目前已知原神角色概况" + }, + { + "icon": 66, + "title": "#武器图鉴", + "desc": "目前已知原神武器概况" + }, + { + "icon": 71, + "title": "#食谱图鉴", + "desc": "目前已知原神食谱概况" + }, + { + "icon": 74, + "title": "#怪物图鉴", + "desc": "目前已知原神怪物概况" + }, + { + "icon": 63, + "title": "#圣遗物图鉴", + "desc": "目前已知原神圣遗物概况" + }, + { + "icon": 14, + "title": "#体力", + "desc": "重写原有的查询当前米游社体力" + }, + ] +},{ + "group": "管理命令,仅管理员可用", + "auth": "master", + "list": [{ + "icon": 57, + "title": "#图鉴设置", + "desc": "例如#图鉴设置体力开启(关闭)" + },{ + "icon": 58, + "title": "#图鉴更新", + "desc": "用于获取最新的图鉴数据图" + },{ + "icon": 60, + "title": "#图鉴插件更新", + "desc": "用于获取最新的插件包数据" + } + ] +}] diff --git a/resources/help/icon.png b/resources/help/icon.png new file mode 100644 index 0000000..fb15d68 Binary files /dev/null and b/resources/help/icon.png differ diff --git a/resources/help/index.css b/resources/help/index.css new file mode 100644 index 0000000..e052415 --- /dev/null +++ b/resources/help/index.css @@ -0,0 +1,114 @@ +body { + transform: scale(1); + width: 800px; + background: url("../common/theme/bg-01.jpg"); +} + +.container { + background: url(../common/theme/main-01.png) top left no-repeat; + background-size: 100% auto; + width: 800px; +} + +.label { + font-family: Number, "微软雅黑", sans-serif; +} + +.head-box { + margin: 60px 0 0 0; + padding-bottom: 0; +} + +.head-box .title { + font-size: 50px; +} + +.cont-box { + border-radius: 15px; + margin-top: 20px; + margin-bottom: 20px; + padding: 5px 15px; + overflow: hidden; + box-shadow: 0 5px 10px 0 rgb(0 0 0 / 15%); + position: relative; + background: rgba(43, 52, 61, 0.8); + +} + +.help-group { + color: #ceb78b; + font-size: 18px; + font-weight: bold; + padding: 8px 0 5px 10px; +} + +.help-table { + text-align: center; + border-collapse: collapse; + margin: 5px -10px -10px -15px; + border-radius: 0 0 10px 10px; + display: table; + overflow: hidden; + width: calc(100% + 30px); + color: #fff; +} + +.help-table .tr { + display: table-row; +} + +.help-table .td, +.help-table .th { + font-size: 14px; + display: table-cell; + box-shadow: 0 0 1px 0 #888 inset; + padding: 12px 0 12px 50px; + line-height: 24px; + position: relative; + width: 33.33%; + text-align: left; +} + +.help-table .tr:nth-child(odd) { + background: rgba(34, 41, 51, .6) +} + +.help-table .tr:nth-child(even) { + background: rgba(34, 41, 51, .3) +} + +.help-table .tr:last-child .td { + padding-bottom: 12px; +} + +.help-table .th { + background: rgba(34, 41, 51, .5) +} + +.help-icon { + width: 40px; + height: 40px; + display: block; + position: absolute; + background: url("icon.png") 0 0 no-repeat; + background-size: 500px 500px; + border-radius: 5px; + left: 6px; + top: 12px; + transform: scale(0.85); +} + +.help-title { + display: block; + color: #d3bc8e; + font-size: 16px; + line-height: 24px; +} + +.help-desc { + display: block; + font-size: 13px; + line-height: 18px; + color: #eee; +} + diff --git a/resources/help/index.html b/resources/help/index.html new file mode 100644 index 0000000..cce18ae --- /dev/null +++ b/resources/help/index.html @@ -0,0 +1,35 @@ +{{extend defaultLayout}} + +{{block 'css'}} + +{{/block}} + +{{block 'main'}} +
+
+
使用帮助
+
Yunzai-Bot & xiaoyao-cvs-Plugin
+
+
+ +{{each helpCfg helpGroup}} +
+
{{helpGroup.group}}
+
+ {{each helpGroup.list help idx}} + {{if idx%3 == 0}} +
+ {{/if}} +
+ + {{help.title}} + {{help.desc}} +
+ {{if idx%3 ==2 || idx == helpGroup.list.length -1}} +
+ {{/if}} + {{/each}} +
+
+{{/each}} +{{/block}} \ No newline at end of file diff --git a/resources/help/version-info.css b/resources/help/version-info.css new file mode 100644 index 0000000..069a8c8 --- /dev/null +++ b/resources/help/version-info.css @@ -0,0 +1,71 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; + user-select: none; +} +body { + font-size: 18px; + color: #1e1f20; + font-family: Number, YS2; + transform: scale(1.3); + transform-origin: 0 0; + width: 520px; +} +.container { + width: 520px; + padding: 10px 0 10px 0; + background-size: 100% 100%; +} +.log-cont { + background-size: cover; + margin: 5px 15px 5px 10px; + border-radius: 10px; +} +.log-cont .cont { + margin: 0; +} +.log-cont .cont-title { + font-size: 16px; + padding: 10px 20px 6px; +} +.log-cont .cont-title.current-version { + font-size: 20px; +} +.log-cont .cont-body { + font-family: Number, YS2; +} +.log-cont ul { + font-size: 14px; + padding-left: 20px; +} +.log-cont ul li { + margin: 3px 0; +} +.log-cont ul.sub-log-ul li { + margin: 1px 0; +} +.log-cont .cmd { + font-family: Number, YS; + color: #d3bc8e; + display: inline-block; + border-radius: 3px; + background: rgba(0, 0, 0, 0.5); + padding: 0 3px; + margin: 1px 3px; +} +.log-cont .new { + display: inline-block; + width: 18px; + margin: 0 -3px 0 1px; +} +.log-cont .new:before { + content: "NEW"; + font-family: Number; + display: inline-block; + transform: scale(0.6); + transform-origin: 0 0; + color: #d3bc8e; + white-space: nowrap; +} +/*# sourceMappingURL=version-info.css.map */ \ No newline at end of file diff --git a/resources/help/version-info.html b/resources/help/version-info.html new file mode 100644 index 0000000..74f53ca --- /dev/null +++ b/resources/help/version-info.html @@ -0,0 +1,35 @@ +{{extend elemLayout}} + +{{block 'css'}} + +{{/block}} + +{{block 'main'}} +{{each changelogs ds idx}} +
+
+ {{if idx === 0 }} +
当前版本 {{ds.version}}
+ {{else}} +
喵喵版本 {{ds.version}}
+ {{/if}} +
+
    + {{each ds.logs log}} +
  • +

    {{@log.title}}

    + {{if log.logs.length > 0}} +
      + {{each log.logs ls}} +
    • {{@ls}}
    • + {{/each}} +
    + {{/if}} +
  • + {{/each}} +
+
+
+
+{{/each}} +{{/block}} \ No newline at end of file diff --git a/resources/help/version-info.less b/resources/help/version-info.less new file mode 100644 index 0000000..166294c --- /dev/null +++ b/resources/help/version-info.less @@ -0,0 +1,90 @@ +.linear-bg(@color) { + background-image: linear-gradient(to right, @color, @color 80%, fade(@color, 0) 100%); +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + user-select: none; +} + +body { + font-size: 18px; + color: #1e1f20; + font-family: Number, YS2; + transform: scale(1.3); + transform-origin: 0 0; + width: 520px; +} + +.container { + width: 520px; + padding: 10px 0 10px 0; + background-size: 100% 100%; + +} + +.log-cont { + background-size: cover; + margin: 5px 15px 5px 10px; + border-radius: 10px; + + .cont { + margin: 0; + } + + .cont-title { + font-size: 16px; + padding: 10px 20px 6px; + + &.current-version { + font-size: 20px; + } + } + + .cont-body { + font-family: Number, YS2; + } + + ul { + font-size: 14px; + padding-left: 20px; + + li { + margin: 3px 0; + } + + &.sub-log-ul { + li { + margin: 1px 0; + } + } + } + + .cmd { + font-family: Number, YS; + color: #d3bc8e; + display: inline-block; + border-radius: 3px; + background: rgba(0, 0, 0, 0.5); + padding: 0 3px; + margin: 1px 3px; + } + + .new { + display: inline-block; + width: 18px; + margin: 0 -3px 0 1px; + } + + .new:before { + content: "NEW"; + font-family: Number; + display: inline-block; + transform: scale(0.6); + transform-origin: 0 0; + color: #d3bc8e; + white-space: nowrap; + } +} \ No newline at end of file