* #喵喵设置
支持设置 面板查询 的功能开关
* `#喵喵版本` 使用图片展示更新信息 * 页面版权信息展示Yunzai及喵喵版本号 * `#角色面板` 伤害计算增加 迪奥娜ⁿᵉʷ、安柏ⁿᵉʷ、凯亚ⁿᵉʷ
14
CHANGELOG.md
@ -1,16 +1,20 @@
|
|||||||
# 1.5.6
|
# 1.6.0
|
||||||
|
|
||||||
|
* `#喵喵设置` 支持设置 面板查询 的功能开关
|
||||||
|
* `#喵喵版本` 使用图片展示更新信息
|
||||||
* `#喵喵日历` 升级
|
* `#喵喵日历` 升级
|
||||||
* 增加 `#喵喵日历列表`命令,以列表形式展示活动信息
|
* 增加 `#喵喵日历列表`命令,以列表形式展示活动信息
|
||||||
* 增加从活动详情信息中解析活动日期的逻辑,使一些活动日期更加准确
|
* 增加从活动详情信息中解析活动日期的逻辑,使一些活动日期更加准确
|
||||||
* `#深渊出场率`、`#角色持有率` 等功能样式及字体微调
|
|
||||||
* 增加鹿野院平藏的角色信息,可通过`#平藏天赋`、`#平藏命座`查看信息
|
* 增加鹿野院平藏的角色信息,可通过`#平藏天赋`、`#平藏命座`查看信息
|
||||||
* `#角色面板` 伤害计算增加双手剑计算逻辑,增加物伤计算逻辑
|
* 其他升级调整
|
||||||
|
* `#深渊出场率`、`#角色持有率` 等页面功能及样式微调
|
||||||
|
* `#角色面板` 伤害计算增加双手剑计算逻辑,增加物伤计算逻辑
|
||||||
|
* 页面版权信息展示Yunzai及喵喵版本号
|
||||||
* `#角色面板` 伤害计算增加部分角色,目前支持
|
* `#角色面板` 伤害计算增加部分角色,目前支持
|
||||||
* 长柄武器:雷神、胡桃、魈、钟离、香菱
|
* 长柄武器:雷神、胡桃、魈、钟离、香菱
|
||||||
* 法器:神子、心海、可莉ⁿᵉʷ、凝光ⁿᵉʷ、芭芭拉ⁿᵉʷ
|
* 法器:神子、心海、可莉ⁿᵉʷ、凝光ⁿᵉʷ、芭芭拉ⁿᵉʷ
|
||||||
* 弓:甘雨、宵宫、公子,九条ⁿᵉʷ
|
* 弓:甘雨、宵宫、公子,九条ⁿᵉʷ,迪奥娜ⁿᵉʷ、安柏ⁿᵉʷ
|
||||||
* 单手剑:绫人、绫华、刻晴、阿贝多、行秋、班尼特、七七ⁿᵉʷ
|
* 单手剑:绫人、绫华、刻晴、阿贝多、行秋、班尼特、七七ⁿᵉʷ、凯亚ⁿᵉʷ
|
||||||
* 双手剑:一斗ⁿᵉʷ、优菈ⁿᵉʷ、迪卢克ⁿᵉʷ、诺艾尔ⁿᵉʷ、重云ⁿᵉʷ
|
* 双手剑:一斗ⁿᵉʷ、优菈ⁿᵉʷ、迪卢克ⁿᵉʷ、诺艾尔ⁿᵉʷ、重云ⁿᵉʷ
|
||||||
|
|
||||||
# 1.5.0
|
# 1.5.0
|
||||||
|
@ -4,16 +4,17 @@ import lodash from "lodash";
|
|||||||
import { createRequire } from "module";
|
import { createRequire } from "module";
|
||||||
import { exec } from "child_process";
|
import { exec } from "child_process";
|
||||||
import { Cfg } from "../components/index.js";
|
import { Cfg } from "../components/index.js";
|
||||||
|
import Common from "../components/Common.js";
|
||||||
|
|
||||||
|
|
||||||
const require = createRequire(import.meta.url);
|
const require = createRequire(import.meta.url);
|
||||||
|
|
||||||
let cfgMap = {
|
let cfgMap = {
|
||||||
"角色": "char.char",
|
"角色": "char.char",
|
||||||
|
"面板": "char.profile",
|
||||||
"老婆": "char.wife",
|
"老婆": "char.wife",
|
||||||
"查他人": "char.queryOther",
|
"查他人": "char.queryOther",
|
||||||
"天赋": "wiki.talent",
|
"图鉴": "wiki.wiki",
|
||||||
"命座": "wiki.cons",
|
|
||||||
"图片": "wiki.pic",
|
"图片": "wiki.pic",
|
||||||
"深渊": "wiki.abyss",
|
"深渊": "wiki.abyss",
|
||||||
"渲染": "sys.scale",
|
"渲染": "sys.scale",
|
||||||
@ -81,10 +82,10 @@ export async function sysCfg(e, { render }) {
|
|||||||
|
|
||||||
let cfg = {
|
let cfg = {
|
||||||
chars: getStatus("char.char"),
|
chars: getStatus("char.char"),
|
||||||
|
profile: getStatus("char.profile"),
|
||||||
wife: getStatus("char.wife"),
|
wife: getStatus("char.wife"),
|
||||||
other: getStatus("char.queryOther"),
|
other: getStatus("char.queryOther"),
|
||||||
talent: getStatus("wiki.talent"),
|
wiki: getStatus("wiki.wiki"),
|
||||||
cons: getStatus("wiki.cons"),
|
|
||||||
pic: getStatus("wiki.pic"),
|
pic: getStatus("wiki.pic"),
|
||||||
abyss: getStatus("wiki.abyss"),
|
abyss: getStatus("wiki.abyss"),
|
||||||
imgPlus: fs.existsSync(plusPath),
|
imgPlus: fs.existsSync(plusPath),
|
||||||
@ -92,14 +93,10 @@ export async function sysCfg(e, { render }) {
|
|||||||
scale: Cfg.get("sys.scale", 100)
|
scale: Cfg.get("sys.scale", 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
let base64 = await render("admin", "index", {
|
//渲染图像
|
||||||
|
return await Common.render("admin/index", {
|
||||||
...cfg,
|
...cfg,
|
||||||
cfgScale: Cfg.scale(1.4)
|
}, { e, render, scale: 1.4 });
|
||||||
});
|
|
||||||
if (base64) {
|
|
||||||
e.reply(segment.image(`base64://${base64}`));
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const getStatus = function (rote, def = true) {
|
const getStatus = function (rote, def = true) {
|
||||||
@ -167,17 +164,17 @@ export async function updateMiaoPlugin(e) {
|
|||||||
exec(command, { cwd: `${_path}/plugins/miao-plugin/` }, function (error, stdout, stderr) {
|
exec(command, { cwd: `${_path}/plugins/miao-plugin/` }, function (error, stdout, stderr) {
|
||||||
//console.log(stdout);
|
//console.log(stdout);
|
||||||
if (/Already up to date/.test(stdout)) {
|
if (/Already up to date/.test(stdout)) {
|
||||||
e.reply("目前已经是最新版了~");
|
e.reply("目前已经是最新版喵喵了~");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (error) {
|
if (error) {
|
||||||
e.reply("更新失败!\nError code: " + error.code + "\n" + error.stack + "\n 请稍后重试。");
|
e.reply("喵喵更新失败!\nError code: " + error.code + "\n" + error.stack + "\n 请稍后重试。");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
e.reply("更新成功,尝试重新启动Yunzai以应用更新...");
|
e.reply("喵喵更新成功,尝试重新启动Yunzai以应用更新...");
|
||||||
timer && clearTimeout(timer);
|
timer && clearTimeout(timer);
|
||||||
redis.set("miao:restart-msg", JSON.stringify({
|
redis.set("miao:restart-msg", JSON.stringify({
|
||||||
msg: "重启成功,新版喵喵Plugin已经生效",
|
msg: "重启成功,新版喵喵已经生效",
|
||||||
qq: e.user_id
|
qq: e.user_id
|
||||||
}), { EX: 30 });
|
}), { EX: 30 });
|
||||||
timer = setTimeout(function () {
|
timer = setTimeout(function () {
|
||||||
|
@ -7,6 +7,7 @@ import Format from "../components/Format.js"
|
|||||||
import Reliquaries from "../components/models/Reliquaries.js";
|
import Reliquaries from "../components/models/Reliquaries.js";
|
||||||
import Calc from "../components/Calc.js";
|
import Calc from "../components/Calc.js";
|
||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
|
import Common from "../components/Common.js";
|
||||||
|
|
||||||
|
|
||||||
//角色昵称
|
//角色昵称
|
||||||
@ -58,9 +59,6 @@ export async function character(e, { render, User }) {
|
|||||||
if (!msg) {
|
if (!msg) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Cfg.isDisable(e, "char.char")) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let mode = 'card';
|
let mode = 'card';
|
||||||
let name = msg.replace(/#|老婆|老公|[1|2|5][0-9]{8}/g, "").trim();
|
let name = msg.replace(/#|老婆|老公|[1|2|5][0-9]{8}/g, "").trim();
|
||||||
@ -80,6 +78,12 @@ export async function character(e, { render, User }) {
|
|||||||
name = name.replace(/详情|详细|面板|面版|更新/g, "").trim();
|
name = name.replace(/详情|详细|面板|面版|更新/g, "").trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
(mode === "card" && Common.isDisable(e, "char.char")) ||
|
||||||
|
(mode !== "card" && Common.isDisable(e, "char.profile"))) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let char = Character.get(name);
|
let char = Character.get(name);
|
||||||
|
|
||||||
if (!char) {
|
if (!char) {
|
||||||
@ -353,23 +357,19 @@ async function renderCard(e, avatar, render, renderType = "card") {
|
|||||||
e.reply(segment.image(process.cwd() + "/plugins/miao-plugin/resources/" + bg.img));
|
e.reply(segment.image(process.cwd() + "/plugins/miao-plugin/resources/" + bg.img));
|
||||||
} else {
|
} else {
|
||||||
//渲染图像
|
//渲染图像
|
||||||
let base64 = await render("character", "card", {
|
return await Common.render("character/card", {
|
||||||
save_id: uid,
|
save_id: uid,
|
||||||
uid: uid,
|
uid: uid,
|
||||||
talent,
|
talent,
|
||||||
crownNum,
|
crownNum,
|
||||||
talentMap: { a: "普攻", e: "战技", q: "爆发" },
|
talentMap: { a: "普攻", e: "战技", q: "爆发" },
|
||||||
//bg: getCharacterImg(avatar.name),
|
|
||||||
bg,
|
bg,
|
||||||
...getCharacterData(avatar),
|
...getCharacterData(avatar),
|
||||||
ds: char.getData("name,id,title,desc"),
|
ds: char.getData("name,id,title,desc"),
|
||||||
cfgScale: Cfg.scale(1.6)
|
}, { e, render, scale: 1.6 });
|
||||||
});
|
|
||||||
if (base64) {
|
|
||||||
e.reply(segment.image(`base64://${base64}`));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -698,8 +698,8 @@ export async function renderProfile(e, char, render, mode = "profile", params =
|
|||||||
basic.dmg = Format.comma(basic.dmg);
|
basic.dmg = Format.comma(basic.dmg);
|
||||||
basic.avg = Format.comma(basic.avg);
|
basic.avg = Format.comma(basic.avg);
|
||||||
}
|
}
|
||||||
|
//渲染图像
|
||||||
let base64 = await render("character", "detail", {
|
return await Common.render("character/detail", {
|
||||||
save_id: uid,
|
save_id: uid,
|
||||||
uid: uid,
|
uid: uid,
|
||||||
data: profile,
|
data: profile,
|
||||||
@ -723,13 +723,9 @@ export async function renderProfile(e, char, render, mode = "profile", params =
|
|||||||
usefulTitles,
|
usefulTitles,
|
||||||
usefulMark,
|
usefulMark,
|
||||||
talentMap: { a: "普攻", e: "战技", q: "爆发" },
|
talentMap: { a: "普攻", e: "战技", q: "爆发" },
|
||||||
|
bodyClass: `char-${char.name}`,
|
||||||
mode,
|
mode,
|
||||||
cfgScale: Cfg.scale(1.8)
|
}, { e, render, scale: 1.6 });
|
||||||
});
|
|
||||||
if (base64) {
|
|
||||||
e.reply(segment.image(`base64://${base64}`));
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* #敌人等级 */
|
/* #敌人等级 */
|
||||||
@ -811,17 +807,12 @@ export async function getArtis(e, { render }) {
|
|||||||
artis = artis.reverse();
|
artis = artis.reverse();
|
||||||
artis = artis.slice(0, 20);
|
artis = artis.slice(0, 20);
|
||||||
|
|
||||||
|
//渲染图像
|
||||||
let base64 = await render("character", "artis", {
|
return await Common.render("character/artis", {
|
||||||
save_id: uid,
|
save_id: uid,
|
||||||
uid: uid,
|
uid: uid,
|
||||||
artis,
|
artis,
|
||||||
cfgScale: Cfg.scale(1.4)
|
}, { e, render, scale: 1.4 });
|
||||||
});
|
|
||||||
if (base64) {
|
|
||||||
e.reply(segment.image(`base64://${base64}`));
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getProfileAll(e) {
|
export async function getProfileAll(e) {
|
||||||
|
21
apps/help.js
@ -2,7 +2,7 @@ import { Cfg } from "../components/index.js";
|
|||||||
import { segment } from "oicq";
|
import { segment } from "oicq";
|
||||||
import lodash from "lodash";
|
import lodash from "lodash";
|
||||||
import { currentVersion, changelogs } from "../components/Changelog.js";
|
import { currentVersion, changelogs } from "../components/Changelog.js";
|
||||||
import common from "../../../lib/common.js";
|
import Common from "../components/Common.js";
|
||||||
|
|
||||||
const _path = process.cwd();
|
const _path = process.cwd();
|
||||||
const helpFilePath = `${_path}/plugins/miao-plugin/resources/help/help-list.js`;
|
const helpFilePath = `${_path}/plugins/miao-plugin/resources/help/help-list.js`;
|
||||||
@ -39,18 +39,15 @@ export async function help(e, { render }) {
|
|||||||
helpGroup.push(group);
|
helpGroup.push(group);
|
||||||
});
|
});
|
||||||
|
|
||||||
let base64 = await render("help", "index", {
|
return await Common.render("help/index", {
|
||||||
helpCfg: helpGroup,
|
helpCfg: helpGroup,
|
||||||
cfgScale: Cfg.scale(1.2)
|
element: 'default'
|
||||||
});
|
}, { e, render, scale: 1.2 })
|
||||||
if (base64) {
|
|
||||||
e.reply(segment.image(`base64://${base64}`));
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function versionInfo(e) {
|
export async function versionInfo(e, { render }) {
|
||||||
let msgs = [`当前喵喵版本: ${currentVersion}`, ...changelogs];
|
return await Common.render("help/version-info", {
|
||||||
e.reply(msgs.join("\n"));
|
currentVersion,
|
||||||
return true;
|
changelogs,
|
||||||
|
}, { e, render, scale: 1.2 })
|
||||||
}
|
}
|
33
apps/stat.js
@ -7,6 +7,7 @@ import { Cfg } from "../components/index.js";
|
|||||||
import lodash from "lodash";
|
import lodash from "lodash";
|
||||||
import { segment } from "oicq";
|
import { segment } from "oicq";
|
||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
|
import Common from "../components/Common.js";
|
||||||
|
|
||||||
export async function consStat(e, { render }) {
|
export async function consStat(e, { render }) {
|
||||||
if (Cfg.isDisable(e, "wiki.abyss")) {
|
if (Cfg.isDisable(e, "wiki.abyss")) {
|
||||||
@ -68,8 +69,8 @@ export async function consStat(e, { render }) {
|
|||||||
} else {
|
} else {
|
||||||
ret = lodash.sortBy(ret, ['hold']);
|
ret = lodash.sortBy(ret, ['hold']);
|
||||||
}
|
}
|
||||||
|
//渲染图像
|
||||||
let base64 = await render("stat", "character", {
|
return await Common.render("stat/character", {
|
||||||
chars: ret,
|
chars: ret,
|
||||||
abbr: Character.getAbbr(),
|
abbr: Character.getAbbr(),
|
||||||
mode: mode,
|
mode: mode,
|
||||||
@ -78,12 +79,7 @@ export async function consStat(e, { render }) {
|
|||||||
pct: function (num) {
|
pct: function (num) {
|
||||||
return (num * 100).toFixed(2);
|
return (num * 100).toFixed(2);
|
||||||
},
|
},
|
||||||
cfgScale: Cfg.scale(1.5)
|
}, { e, render, scale: 1.5 });
|
||||||
});
|
|
||||||
if (base64) {
|
|
||||||
e.reply(segment.image(`base64://${base64}`));
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function abyssPct(e, { render }) {
|
export async function abyssPct(e, { render }) {
|
||||||
@ -144,8 +140,7 @@ export async function abyssPct(e, { render }) {
|
|||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
||||||
|
return await Common.render("stat/abyss-pct", {
|
||||||
let base64 = await render("stat", "abyss-pct", {
|
|
||||||
abyss: ret,
|
abyss: ret,
|
||||||
floorName,
|
floorName,
|
||||||
chooseFloor,
|
chooseFloor,
|
||||||
@ -153,12 +148,7 @@ export async function abyssPct(e, { render }) {
|
|||||||
pct: function (num) {
|
pct: function (num) {
|
||||||
return (num * 100).toFixed(2);
|
return (num * 100).toFixed(2);
|
||||||
},
|
},
|
||||||
cfgScale: Cfg.scale(1.5)
|
}, { e, render, scale: 1.5 });
|
||||||
});
|
|
||||||
if (base64) {
|
|
||||||
e.reply(segment.image(`base64://${base64}`));
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -381,15 +371,8 @@ export async function abyssTeam(e, { render }) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
return await Common.render("stat/abyss-team", {
|
||||||
let base64 = await render("stat", "abyss-team", {
|
|
||||||
teams: ret,
|
teams: ret,
|
||||||
avatars: avatarMap,
|
avatars: avatarMap,
|
||||||
cfgScale: Cfg.scale(1.5)
|
}, { e, render, scale: 1.5 });
|
||||||
});
|
|
||||||
if (base64) {
|
|
||||||
e.reply(segment.image(`base64://${base64}`));
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
49
apps/wiki.js
@ -1,12 +1,9 @@
|
|||||||
import { segment } from "oicq";
|
import { segment } from "oicq";
|
||||||
import fs from "fs";
|
|
||||||
import { Character } from "../components/models.js";
|
import { Character } from "../components/models.js";
|
||||||
import lodash from "lodash";
|
import lodash from "lodash";
|
||||||
import { Cfg } from "../components/index.js";
|
import Calendar from "../components/Calendar.js";
|
||||||
import Cal from "../components/Calcendar.js";
|
import Common from "../components/Common.js";
|
||||||
import Calcendar from "../components/Calcendar.js";
|
|
||||||
|
|
||||||
//import {wikiCharacter} from "../modules/wiki.js";
|
|
||||||
|
|
||||||
let action = {
|
let action = {
|
||||||
wiki: {
|
wiki: {
|
||||||
@ -35,11 +32,11 @@ export async function wiki(e, { render }) {
|
|||||||
mode = "pic";
|
mode = "pic";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Cfg.isDisable(e, `wiki.${mode}`)) {
|
if ((mode === "pic" && Common.isDisable(e, "wiki.pic"))
|
||||||
|
|| (mode !== "pic" && Common.isDisable("wiki.wiki"))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let char = Character.get(ret[1]);
|
let char = Character.get(ret[1]);
|
||||||
if (!char) {
|
if (!char) {
|
||||||
return false;
|
return false;
|
||||||
@ -55,19 +52,13 @@ export async function wiki(e, { render }) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
let base64 = await render("wiki", "character", {
|
return await Common.render("wiki/character", {
|
||||||
save_id: "天赋" + char.name,
|
save_id: "天赋" + char.name,
|
||||||
...char,
|
...char,
|
||||||
mode,
|
mode,
|
||||||
line: getLineData(char),
|
line: getLineData(char),
|
||||||
_char: `/meta/character/${char.name}/`,
|
_char: `/meta/character/${char.name}/`,
|
||||||
cfgScale: Cfg.scale(1)
|
}, { e, render, scale: 1 });
|
||||||
});
|
|
||||||
|
|
||||||
if (base64) {
|
|
||||||
e.reply(segment.image(`base64://${base64}`));
|
|
||||||
}
|
|
||||||
return true; //事件结束不再往下
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const getLineData = function (data) {
|
const getLineData = function (data) {
|
||||||
@ -82,37 +73,15 @@ const getLineData = function (data) {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新图像缓存
|
|
||||||
async function wikiCache(e) {
|
|
||||||
const meta = JSON.parse(fs.readFileSync("./data/meta/characters.json", "utf8"));
|
|
||||||
let count = 0;
|
|
||||||
let data;
|
|
||||||
console.log("开始生成角色资料缓存...")
|
|
||||||
for (let idx in meta) {
|
|
||||||
let base64 = await genWikiImg(meta[idx].Name);
|
|
||||||
if (base64) {
|
|
||||||
count++;
|
|
||||||
console.log(`角色资料缓存: ${meta[idx].Name},count:${count}`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
e.reply(`生成Wiki缓存${count}个`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function calendar(e, { render }) {
|
export async function calendar(e, { render }) {
|
||||||
let calData = await Calcendar.get();
|
let calData = await Calendar.get();
|
||||||
let mode = "calendar";
|
let mode = "calendar";
|
||||||
if (/(日历列表|活动)$/.test(e.msg)) {
|
if (/(日历列表|活动)$/.test(e.msg)) {
|
||||||
mode = "list";
|
mode = "list";
|
||||||
}
|
}
|
||||||
|
|
||||||
let base64 = await render("wiki", "calendar", {
|
return await Common.render("wiki/calendar", {
|
||||||
...calData,
|
...calData,
|
||||||
displayMode: mode,
|
displayMode: mode,
|
||||||
cfgScale: Cfg.scale(1.1)
|
}, { e, render, scale: 1.1 });
|
||||||
});
|
|
||||||
|
|
||||||
if (base64) {
|
|
||||||
e.reply(segment.image(`base64://${base64}`));
|
|
||||||
}
|
|
||||||
return true; //事件结束不再往下
|
|
||||||
}
|
}
|
@ -7,33 +7,58 @@ const _logPath = `${_path}/plugins/miao-plugin/CHANGELOG.md`;
|
|||||||
let logs = {};
|
let logs = {};
|
||||||
let changelogs = [];
|
let changelogs = [];
|
||||||
let currentVersion;
|
let currentVersion;
|
||||||
let versionCount = 2;
|
let versionCount = 4;
|
||||||
|
|
||||||
|
let packageJson = JSON.parse(fs.readFileSync("package.json", "utf8"));
|
||||||
|
|
||||||
|
const getLine = function (line) {
|
||||||
|
line = line.replace(/(^\s*\*|\r)/g, '');
|
||||||
|
line = line.replace(/\s*`([^`]+`)/g, '<span class="cmd">$1');
|
||||||
|
line = line.replace(/`\s*/g, '</span>');
|
||||||
|
line = line.replace(/ⁿᵉʷ/g, '<span class="new"></span>');
|
||||||
|
return line;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (fs.existsSync(_logPath)) {
|
if (fs.existsSync(_logPath)) {
|
||||||
logs = fs.readFileSync(_logPath, "utf8") || "";
|
logs = fs.readFileSync(_logPath, "utf8") || "";
|
||||||
logs = logs.split("\n");
|
logs = logs.split("\n");
|
||||||
|
|
||||||
|
let temp = {}, lastLine = {};
|
||||||
lodash.forEach(logs, (line) => {
|
lodash.forEach(logs, (line) => {
|
||||||
if (versionCount === -1) {
|
if (versionCount <= -1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
let versionRet = /^#\s*([0-9\\.]+)\s*$/.exec(line);
|
let versionRet = /^#\s*([0-9\\.~\s]+?)\s*$/.exec(line);
|
||||||
if (versionRet && versionRet[1]) {
|
if (versionRet && versionRet[1]) {
|
||||||
let v = versionRet[1];
|
let v = versionRet[1].trim();
|
||||||
|
|
||||||
|
|
||||||
if (!currentVersion) {
|
if (!currentVersion) {
|
||||||
currentVersion = v;
|
currentVersion = v;
|
||||||
|
} else {
|
||||||
|
changelogs.push(temp);
|
||||||
|
if (/0\s*$/.test(v) && versionCount > 0) {
|
||||||
|
versionCount = 0;
|
||||||
|
} else {
|
||||||
|
versionCount--;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
versionCount--;
|
|
||||||
versionCount === 0 && changelogs.push(" ");
|
|
||||||
versionCount > -1 && changelogs.push(`【 版本: ${v} 】`)
|
|
||||||
|
|
||||||
return;
|
temp = {
|
||||||
}
|
version: v,
|
||||||
if (versionCount > -1) {
|
logs: []
|
||||||
line = line.replace(/`/g, "");
|
}
|
||||||
if (line.trim()) {
|
} else {
|
||||||
changelogs.push(line);
|
if (!line.trim()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (/^\*/.test(line)) {
|
||||||
|
lastLine = {
|
||||||
|
title: getLine(line),
|
||||||
|
logs: []
|
||||||
|
}
|
||||||
|
temp.logs.push(lastLine);
|
||||||
|
} else if (/^\s{3,}\*/.test(line)) {
|
||||||
|
lastLine.logs.push(getLine(line));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -42,4 +67,6 @@ try {
|
|||||||
// do nth
|
// do nth
|
||||||
}
|
}
|
||||||
|
|
||||||
export { currentVersion, changelogs };
|
const yunzaiVersion = packageJson.version;
|
||||||
|
|
||||||
|
export { currentVersion, yunzaiVersion, changelogs };
|
32
components/Common.js
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import { Cfg } from "./index.js";
|
||||||
|
import { segment } from "oicq";
|
||||||
|
import { currentVersion, yunzaiVersion } from "./Changelog.js";
|
||||||
|
|
||||||
|
export const render = async function (path, params, cfg) {
|
||||||
|
let paths = path.split("/");
|
||||||
|
let { render, e } = cfg;
|
||||||
|
let _layout_path = process.cwd() + "/plugins/miao-plugin/resources/common/layout/";
|
||||||
|
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<span class="version">${yunzaiVersion}</span> & Miao-Plugin<span class="version">${currentVersion}</span>`
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (base64) {
|
||||||
|
e.reply(segment.image(`base64://${base64}`));
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
render,
|
||||||
|
cfg: Cfg.get,
|
||||||
|
isDisable: Cfg.isDisable
|
||||||
|
};
|
4
index.js
@ -14,7 +14,7 @@ import { help, versionInfo } from "./apps/help.js";
|
|||||||
import lodash from "lodash";
|
import lodash from "lodash";
|
||||||
import common from "../../lib/common.js";
|
import common from "../../lib/common.js";
|
||||||
import { rule as adminRule, updateRes, sysCfg, updateMiaoPlugin } from "./apps/admin.js";
|
import { rule as adminRule, updateRes, sysCfg, updateMiaoPlugin } from "./apps/admin.js";
|
||||||
import { currentVersion, changelogs } from "./components/Changelog.js";
|
import { currentVersion } from "./components/Changelog.js";
|
||||||
|
|
||||||
export {
|
export {
|
||||||
character,
|
character,
|
||||||
@ -114,7 +114,7 @@ setTimeout(async function () {
|
|||||||
let msg = JSON.parse(msgStr);
|
let msg = JSON.parse(msgStr);
|
||||||
await common.relpyPrivate(msg.qq, msg.msg);
|
await common.relpyPrivate(msg.qq, msg.msg);
|
||||||
await redis.del("miao:restart-msg");
|
await redis.del("miao:restart-msg");
|
||||||
let msgs = [`当前喵喵版本: ${currentVersion}`, ...changelogs];
|
let msgs = [`当前喵喵版本: ${currentVersion}`, `您可使用 #喵喵版本 命令查看更新信息`];
|
||||||
await common.relpyPrivate(msg.qq, msgs.join("\n"));
|
await common.relpyPrivate(msg.qq, msgs.join("\n"));
|
||||||
}
|
}
|
||||||
}, 1000);
|
}, 1000);
|
Before Width: | Height: | Size: 2.3 MiB After Width: | Height: | Size: 2.3 MiB |
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB |
@ -2,17 +2,14 @@ body {
|
|||||||
transform: scale(1);
|
transform: scale(1);
|
||||||
width: 520px;
|
width: 520px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
background: url("bg.png") #000144 left top no-repeat;
|
background: url("./imgs/bg.png") #000144 left top no-repeat;
|
||||||
background-size: 520px auto;
|
background-size: 520px auto;
|
||||||
width:520px;
|
width: 520px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.head-box {
|
.head-box {
|
||||||
margin: 0 0 80px 0;
|
margin: 0 0 80px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cfg-box {
|
.cfg-box {
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
@ -20,23 +17,16 @@ body {
|
|||||||
padding: 5px 15px;
|
padding: 5px 15px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background: #f5f5f5;
|
background: #f5f5f5;
|
||||||
box-shadow: 0 5px 10px 0 rgb(0 0 0 / 15%);
|
box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.15);
|
||||||
position: relative;
|
position: relative;
|
||||||
background: rgba(35, 38, 57, .8);
|
background: rgba(35, 38, 57, 0.8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.cfg-group {
|
.cfg-group {
|
||||||
color: #ceb78b;
|
color: #ceb78b;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
padding: 10px 20px;
|
padding: 10px 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cfg-ul {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.cfg-li {
|
.cfg-li {
|
||||||
border-radius: 18px;
|
border-radius: 18px;
|
||||||
min-height: 36px;
|
min-height: 36px;
|
||||||
@ -45,7 +35,6 @@ body {
|
|||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
background: rgba(203, 196, 190, 0);
|
background: rgba(203, 196, 190, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
.cfg-line {
|
.cfg-line {
|
||||||
color: #4e5769;
|
color: #4e5769;
|
||||||
line-height: 36px;
|
line-height: 36px;
|
||||||
@ -53,17 +42,15 @@ body {
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border-radius: 16px;
|
border-radius: 16px;
|
||||||
box-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
|
box-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
|
||||||
background: url("./cfg-right.jpg") right top #cbc4be no-repeat;
|
background: url("./imgs/cfg-right.jpg") right top #cbc4be no-repeat;
|
||||||
background-size: auto 36px;
|
background-size: auto 36px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cfg-hint {
|
.cfg-hint {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
margin-top: 3px;
|
margin-top: 3px;
|
||||||
margin-bottom: -3px;
|
margin-bottom: -3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cfg-status {
|
.cfg-status {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
@ -78,13 +65,12 @@ body {
|
|||||||
border-radius: 0 16px 16px 0;
|
border-radius: 0 16px 16px 0;
|
||||||
font-family: Number, "微软雅黑", sans-serif;
|
font-family: Number, "微软雅黑", sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cfg-status.status-off {
|
.cfg-status.status-off {
|
||||||
color: #a95151;
|
color: #a95151;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cfg-desc {
|
.cfg-desc {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #cbc4be;
|
color: #cbc4be;
|
||||||
margin: 5px 0 5px 20px;
|
margin: 5px 0 5px 20px;
|
||||||
}
|
}
|
||||||
|
/*# sourceMappingURL=index.css.map */
|
@ -1,123 +1,119 @@
|
|||||||
<!DOCTYPE html>
|
{{extend defaultLayout}}
|
||||||
<html>
|
{{block 'css'}}
|
||||||
<head>
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/admin/index.css"/>
|
||||||
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
|
{{/block}}
|
||||||
<link rel="shortcut icon" href="#"/>
|
{{block 'main'}}
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/common/common.css"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/admin/index.css"/>
|
|
||||||
</head>
|
|
||||||
<body class="body_box" {{cfgScale}}>
|
|
||||||
<div id="container" class="container">
|
|
||||||
<div class="info_box">
|
|
||||||
<div class="head-box type{{bgType}}">
|
|
||||||
<div class="label">#喵喵设置</div>
|
|
||||||
<div class="title">喵喵管理面板</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="cfg-box">
|
|
||||||
<div class="cfg-group">玩家&老婆卡片展示</div>
|
|
||||||
<ul class="cfg-ul">
|
|
||||||
<li class="cfg-li">
|
|
||||||
<div class="cfg-line">
|
|
||||||
角色查询
|
|
||||||
<span class="cfg-hint"> #喵喵设置角色 + 开启/关闭</span>
|
|
||||||
{{@chars}}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="cfg-li">
|
|
||||||
<div class="cfg-line">
|
|
||||||
老婆查询
|
|
||||||
<span class="cfg-hint"> #喵喵设置老婆 + 开启/关闭</span>
|
|
||||||
{{@wife}}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="cfg-li">
|
|
||||||
<div class="cfg-line">
|
|
||||||
允许查他人
|
|
||||||
<span class="cfg-hint"> #喵喵设置查他人 + 开启/关闭</span>
|
|
||||||
{{@other}}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="cfg-li">
|
|
||||||
<div class="cfg-line">
|
|
||||||
角色图片扩展包
|
|
||||||
<span class="cfg-hint"> #喵喵更新图像</span>
|
|
||||||
{{if imgPlus}}
|
|
||||||
<div class="cfg-status">已安装</div>
|
|
||||||
{{else}}
|
|
||||||
<div class="cfg-status status-off">未安装</div>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
<div class="cfg-desc">角色图片的扩展包,包含更多的角色图片</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="cfg-box">
|
|
||||||
<div class="cfg-group">角色资料与信息查询</div>
|
|
||||||
<ul class="cfg-ul">
|
|
||||||
<li class="cfg-li">
|
|
||||||
<div class="cfg-line">
|
|
||||||
角色天赋
|
|
||||||
<span class="cfg-hint"> #喵喵设置天赋 + 开启/关闭</span>
|
|
||||||
{{@talent}}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="cfg-li">
|
|
||||||
<div class="cfg-line">
|
|
||||||
角色命座
|
|
||||||
<span class="cfg-hint"> #喵喵设置命座 + 开启/关闭</span>
|
|
||||||
{{@cons}}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="cfg-li">
|
|
||||||
<div class="cfg-line">
|
|
||||||
角色图片
|
|
||||||
<span class="cfg-hint"> #喵喵设置图片 + 开启/关闭</span>
|
|
||||||
{{@pic}}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="cfg-li">
|
|
||||||
<div class="cfg-line">
|
|
||||||
深渊资料
|
|
||||||
<span class="cfg-hint"> #喵喵设置深渊 + 开启/关闭</span>
|
|
||||||
{{@abyss}}
|
|
||||||
</div>
|
|
||||||
<div class="cfg-desc">角色持有率、深渊出场率等信息</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="cfg-box">
|
|
||||||
<div class="cfg-group">系统设置</div>
|
|
||||||
<ul class="cfg-ul">
|
|
||||||
<li class="cfg-li">
|
|
||||||
<div class="cfg-line">
|
|
||||||
渲染精度
|
|
||||||
<span class="cfg-hint">#喵喵设置渲染100 </span>
|
|
||||||
<div class="cfg-status">{{scale}}</div>
|
|
||||||
</div>
|
|
||||||
<div class="cfg-desc">可选值50~200,建议100。设置高精度会提高图片的精细度,但因图片较大可能会影响渲染与发送速度</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="cfg-li">
|
|
||||||
<div class="cfg-line">
|
|
||||||
喵喵作为默认帮助
|
|
||||||
<span class="cfg-hint">#喵喵设置帮助 + 开启/关闭 </span>
|
|
||||||
{{@help}}
|
|
||||||
</div>
|
|
||||||
<div class="cfg-desc">开启后将使用喵喵版帮助作为Yunzai的默认帮助</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- <li class="cfg-li">
|
|
||||||
<div class="cfg-line">
|
|
||||||
更新版本
|
|
||||||
<div class="cfg-status">#喵喵更新</div>
|
|
||||||
</div>
|
|
||||||
<div class="cfg-desc">更新喵喵Plugin,可能需要重启Yunzai-Bot</div>
|
|
||||||
</li>-->
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
<div class="info_box">
|
||||||
|
<div class="head-box type{{bgType}}">
|
||||||
|
<div class="label">#喵喵设置</div>
|
||||||
|
<div class="title">喵喵管理面板</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cfg-box">
|
||||||
|
<div class="cfg-group">玩家&老婆卡片展示</div>
|
||||||
|
<ul class="cfg-ul">
|
||||||
|
<li class="cfg-li">
|
||||||
|
<div class="cfg-line">
|
||||||
|
角色查询
|
||||||
|
<span class="cfg-hint"> #喵喵设置角色 + 开启/关闭</span>
|
||||||
|
{{@chars}}
|
||||||
</div>
|
</div>
|
||||||
<div class="copyright"> Created By Yunzai-Bot & Miao-Plugin</div>
|
</li>
|
||||||
</div>
|
<li class="cfg-li">
|
||||||
</body>
|
<div class="cfg-line">
|
||||||
</html>
|
面板查询
|
||||||
|
<span class="cfg-hint"> #喵喵设置面板 + 开启/关闭</span>
|
||||||
|
{{@profile}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="cfg-li">
|
||||||
|
<div class="cfg-line">
|
||||||
|
老婆查询
|
||||||
|
<span class="cfg-hint"> #喵喵设置老婆 + 开启/关闭</span>
|
||||||
|
{{@wife}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="cfg-li">
|
||||||
|
<div class="cfg-line">
|
||||||
|
允许查他人
|
||||||
|
<span class="cfg-hint"> #喵喵设置查他人 + 开启/关闭</span>
|
||||||
|
{{@other}}
|
||||||
|
</div>
|
||||||
|
<div class="cfg-desc">面板查询暂不支持查他人</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="cfg-box">
|
||||||
|
<div class="cfg-group">角色资料与信息查询</div>
|
||||||
|
<ul class="cfg-ul">
|
||||||
|
<li class="cfg-li">
|
||||||
|
<div class="cfg-line">
|
||||||
|
角色图鉴
|
||||||
|
<span class="cfg-hint"> #喵喵设置图鉴 + 开启/关闭</span>
|
||||||
|
{{@wiki}}
|
||||||
|
</div>
|
||||||
|
<div class="cfg-desc">角色天赋、角色命座、角色图鉴(尚未完成)等资料</div>
|
||||||
|
</li>
|
||||||
|
<li class="cfg-li">
|
||||||
|
<div class="cfg-line">
|
||||||
|
深渊资料
|
||||||
|
<span class="cfg-hint"> #喵喵设置深渊 + 开启/关闭</span>
|
||||||
|
{{@abyss}}
|
||||||
|
</div>
|
||||||
|
<div class="cfg-desc">角色持有率、深渊出场率、深渊配队等统计信息</div>
|
||||||
|
</li>
|
||||||
|
<li class="cfg-li">
|
||||||
|
<div class="cfg-line">
|
||||||
|
角色图片
|
||||||
|
<span class="cfg-hint"> #喵喵设置图片 + 开启/关闭</span>
|
||||||
|
{{@pic}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="cfg-li">
|
||||||
|
<div class="cfg-line">
|
||||||
|
角色图片扩展包
|
||||||
|
<span class="cfg-hint"> #喵喵更新图像</span>
|
||||||
|
{{if imgPlus}}
|
||||||
|
<div class="cfg-status">已安装</div>
|
||||||
|
{{else}}
|
||||||
|
<div class="cfg-status status-off">未安装</div>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
<div class="cfg-desc">角色图片的扩展包,包含更多的角色图片</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="cfg-box">
|
||||||
|
<div class="cfg-group">系统设置</div>
|
||||||
|
<ul class="cfg-ul">
|
||||||
|
<li class="cfg-li">
|
||||||
|
<div class="cfg-line">
|
||||||
|
渲染精度
|
||||||
|
<span class="cfg-hint">#喵喵设置渲染100 </span>
|
||||||
|
<div class="cfg-status">{{scale}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="cfg-desc">可选值50~200,建议100。设置高精度会提高图片的精细度,但因图片较大可能会影响渲染与发送速度</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="cfg-li">
|
||||||
|
<div class="cfg-line">
|
||||||
|
喵喵作为默认帮助
|
||||||
|
<span class="cfg-hint">#喵喵设置帮助 + 开启/关闭 </span>
|
||||||
|
{{@help}}
|
||||||
|
</div>
|
||||||
|
<div class="cfg-desc">开启后将使用喵喵版帮助作为Yunzai的默认帮助</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- <li class="cfg-li">
|
||||||
|
<div class="cfg-line">
|
||||||
|
更新版本
|
||||||
|
<div class="cfg-status">#喵喵更新</div>
|
||||||
|
</div>
|
||||||
|
<div class="cfg-desc">更新喵喵Plugin,可能需要重启Yunzai-Bot</div>
|
||||||
|
</li>-->
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
{{/block}}
|
90
resources/admin/index.less
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
body {
|
||||||
|
transform: scale(1);
|
||||||
|
width: 520px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
background: url("./imgs/bg.png") #000144 left top no-repeat;
|
||||||
|
background-size: 520px auto;
|
||||||
|
width:520px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.head-box {
|
||||||
|
margin: 0 0 80px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cfg-box {
|
||||||
|
border-radius: 15px;
|
||||||
|
margin-top: 20px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
padding: 5px 15px;
|
||||||
|
overflow: hidden;
|
||||||
|
background: #f5f5f5;
|
||||||
|
box-shadow: 0 5px 10px 0 rgb(0 0 0 / 15%);
|
||||||
|
position: relative;
|
||||||
|
background: rgba(35, 38, 57, .8);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.cfg-group {
|
||||||
|
color: #ceb78b;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
padding: 10px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cfg-ul {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.cfg-li {
|
||||||
|
border-radius: 18px;
|
||||||
|
min-height: 36px;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
background: rgba(203, 196, 190, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cfg-line {
|
||||||
|
color: #4e5769;
|
||||||
|
line-height: 36px;
|
||||||
|
padding-left: 20px;
|
||||||
|
font-weight: bold;
|
||||||
|
border-radius: 16px;
|
||||||
|
box-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
|
||||||
|
background: url("./imgs/cfg-right.jpg") right top #cbc4be no-repeat;
|
||||||
|
background-size: auto 36px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cfg-hint {
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin-top: 3px;
|
||||||
|
margin-bottom: -3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cfg-status {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
height: 36px;
|
||||||
|
width: 160px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 36px;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #495366;
|
||||||
|
font-weight: bold;
|
||||||
|
border-radius: 0 16px 16px 0;
|
||||||
|
font-family: Number, "微软雅黑", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cfg-status.status-off {
|
||||||
|
color: #a95151;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cfg-desc {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #cbc4be;
|
||||||
|
margin: 5px 0 5px 20px;
|
||||||
|
}
|
@ -1,16 +1,13 @@
|
|||||||
.container {
|
.container {
|
||||||
width: 790px;
|
width: 790px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis {
|
.artis {
|
||||||
width: 790px;
|
width: 790px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .item {
|
.artis .item {
|
||||||
height: 205px;
|
height: 205px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .item .avatar {
|
.artis .item .avatar {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 32px;
|
left: 32px;
|
||||||
@ -21,13 +18,12 @@
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .item .arti-icon img {
|
.artis .item .arti-icon img {
|
||||||
width: 52px;
|
width: 52px;
|
||||||
height: 52px;
|
height: 52px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .item .avatar img {
|
.artis .item .avatar img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
}
|
}
|
||||||
|
/*# sourceMappingURL=artis.css.map */
|
@ -1,43 +1,36 @@
|
|||||||
<!DOCTYPE html>
|
{{extend elemLayout}}
|
||||||
<html>
|
|
||||||
<head>
|
{{block 'css'}}
|
||||||
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/character/detail.css"/>
|
||||||
<link rel="shortcut icon" href="#"/>
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/character/artis.css"/>
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/common/common.css"/>
|
{{/block}}
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/character/detail.css"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/character/artis.css"/>
|
{{block 'main'}}
|
||||||
</head>
|
<div class="artis">
|
||||||
<body {{cfgScale}} class="elem_geo char-{{name}}">
|
{{each artis ds}}
|
||||||
<div class="container" id="container">
|
<div class="item arti">
|
||||||
<div class="artis">
|
{{if ds.name && ds.main && ds.main[0] && ds.main[0]!="undefined"}}
|
||||||
{{each artis ds}}
|
<div class="avatar">
|
||||||
<div class="item arti">
|
<img src="{{_res_path}}meta/character/{{ds.avatar}}/side.png" onerror="whenError(this)"/>
|
||||||
{{if ds.name && ds.main && ds.main[0] && ds.main[0]!="undefined"}}
|
|
||||||
<div class="avatar">
|
|
||||||
<img src="{{_res_path}}meta/character/{{ds.avatar}}/side.png" onerror="whenError(this)"/>
|
|
||||||
</div>
|
|
||||||
<div class="arti-icon">
|
|
||||||
<img src="{{_sys_res_path}}/genshin/logo/reliquaries/{{ds.name}}.png"/>
|
|
||||||
</div>
|
|
||||||
<div class="head">
|
|
||||||
<strong>{{ds.name}}</strong>
|
|
||||||
<span class="mark mark-{{ds.markType}}"><span>{{ds.mark}}分</span> - {{ds.markType}}</span>
|
|
||||||
</div>
|
|
||||||
<ul class="detail">
|
|
||||||
<li class="arti-main"><span class="title">{{ds.main[0]}}</span><span class="val">+{{ds.main[1]}}</span></li>
|
|
||||||
{{each ds.attrs attr}}
|
|
||||||
{{if attr[0]}}
|
|
||||||
<li class="{{ds.usefulMark[attr[0]] ? `useful`:`nouse`}}"><span class="title">{{attr[0]}}</span><span
|
|
||||||
class="val">+{{attr[1]}}</span></li>
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
</ul>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
<div class="copyright">Created By Yunzai-Bot & Miao-Plugin</div>
|
|
||||||
</div>
|
</div>
|
||||||
</body>
|
<div class="arti-icon">
|
||||||
<script type="text/javascript"></script>
|
<img src="{{_sys_res_path}}/genshin/logo/reliquaries/{{ds.name}}.png"/>
|
||||||
</html>
|
</div>
|
||||||
|
<div class="head">
|
||||||
|
<strong>{{ds.name}}</strong>
|
||||||
|
<span class="mark mark-{{ds.markType}}"><span>{{ds.mark}}分</span> - {{ds.markType}}</span>
|
||||||
|
</div>
|
||||||
|
<ul class="detail">
|
||||||
|
<li class="arti-main"><span class="title">{{ds.main[0]}}</span><span class="val">+{{ds.main[1]}}</span></li>
|
||||||
|
{{each ds.attrs attr}}
|
||||||
|
{{if attr[0]}}
|
||||||
|
<li class="{{ds.usefulMark[attr[0]] ? `useful`:`nouse`}}"><span class="title">{{attr[0]}}</span><span
|
||||||
|
class="val">+{{attr[1]}}</span></li>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
{{/block}}
|
33
resources/character/artis.less
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
.container {
|
||||||
|
width: 790px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis {
|
||||||
|
width: 790px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .item {
|
||||||
|
height: 205px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .item .avatar {
|
||||||
|
position: absolute;
|
||||||
|
left: 32px;
|
||||||
|
top: 26px;
|
||||||
|
width: 38px;
|
||||||
|
height: 38px;
|
||||||
|
border-radius: 50%;
|
||||||
|
overflow: hidden;
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .item .arti-icon img {
|
||||||
|
width: 52px;
|
||||||
|
height: 52px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .item .avatar img {
|
||||||
|
max-width: 100%;
|
||||||
|
max-height: 100%;
|
||||||
|
}
|
@ -6,7 +6,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/common/common.css?v=1.0"/>
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/common/common.css?v=1.0"/>
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/character/card.css?v=1.0"/>
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/character/card.css?v=1.0"/>
|
||||||
</head>
|
</head>
|
||||||
<body class="{{bg.mode}}_mode" {{cfgScale}}>
|
<body class="{{bg.mode}}_mode" {{sys.scale}}>
|
||||||
<div class="container" id="container">
|
<div class="container" id="container">
|
||||||
<div class="char_name">
|
<div class="char_name">
|
||||||
<div class="uid">ID:{{uid}}</div>
|
<div class="uid">ID:{{uid}}</div>
|
||||||
@ -27,7 +27,6 @@
|
|||||||
<p class="weapon_affix">{{weapon.affix_level}}</p>
|
<p class="weapon_affix">{{weapon.affix_level}}</p>
|
||||||
</div>
|
</div>
|
||||||
<p class="weapon_name">
|
<p class="weapon_name">
|
||||||
|
|
||||||
<span class="for_left">Lv.{{weapon.level}} 精{{weapon.affix_level}}</span>
|
<span class="for_left">Lv.{{weapon.level}} 精{{weapon.affix_level}}</span>
|
||||||
<span class="for_bottom">精{{weapon.affix_level}} </span>
|
<span class="for_bottom">精{{weapon.affix_level}} </span>
|
||||||
{{weapon.name}}
|
{{weapon.name}}
|
||||||
@ -50,7 +49,7 @@
|
|||||||
<div class="text">{{text2 || "-"}}</div>
|
<div class="text">{{text2 || "-"}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="copyright">Created By Yunzai-Bot & Miao-Plugin</div>
|
<div class="copyright">{{@sys.copyright}}</div>
|
||||||
<div>
|
<div>
|
||||||
<img src="{{_res_path}}{{bg.img}}" title="{{name}}" class="bg"></div>
|
<img src="{{_res_path}}{{bg.img}}" title="{{name}}" class="bg"></div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,21 +1,16 @@
|
|||||||
|
|
||||||
body {
|
body {
|
||||||
width: 600px;
|
width: 600px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
width: 600px;
|
width: 600px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.basic {
|
.basic {
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.basic:after {
|
.basic:after {
|
||||||
content: "";
|
content: "";
|
||||||
display: block;
|
display: block;
|
||||||
@ -28,7 +23,6 @@ body {
|
|||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-pic {
|
.main-pic {
|
||||||
width: 800px;
|
width: 800px;
|
||||||
height: 500px;
|
height: 500px;
|
||||||
@ -39,7 +33,6 @@ body {
|
|||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.detail {
|
.detail {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 20px;
|
right: 20px;
|
||||||
@ -47,26 +40,22 @@ body {
|
|||||||
color: #fff;
|
color: #fff;
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
.char-name {
|
.char-name {
|
||||||
font-size: 50px;
|
font-size: 50px;
|
||||||
font-family: NZBZ;
|
font-family: NZBZ;
|
||||||
text-shadow: 0 0 3px #000, 2px 2px 4px rgba(0, 0, 0, .7);
|
text-shadow: 0 0 3px #000, 2px 2px 4px rgba(0, 0, 0, 0.7);
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.char-lv {
|
.char-lv {
|
||||||
font-family: Number;
|
font-family: Number;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
text-shadow: 0 0 3px #000, 2px 2px 4px rgba(0, 0, 0, .7);
|
text-shadow: 0 0 3px #000, 2px 2px 4px rgba(0, 0, 0, 0.7);
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.attr {
|
.attr {
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.detail li {
|
.detail li {
|
||||||
width: 300px;
|
width: 300px;
|
||||||
font-size: 17px;
|
font-size: 17px;
|
||||||
@ -76,63 +65,50 @@ body {
|
|||||||
font-family: YS;
|
font-family: YS;
|
||||||
height: 32px;
|
height: 32px;
|
||||||
line-height: 32px;
|
line-height: 32px;
|
||||||
text-shadow: 0 0 1px rgba(0, 0, 0, .5);
|
text-shadow: 0 0 1px rgba(0, 0, 0, 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.attr li i {
|
.attr li i {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
width: 20px;
|
width: 20px;
|
||||||
background-image: url("./icon.png");
|
background-image: url("./imgs/icon.png");
|
||||||
background-size: auto 20px;
|
background-size: auto 20px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 10px;
|
left: 10px;
|
||||||
top: 8px;
|
top: 8px;
|
||||||
opacity: .9;
|
opacity: 0.9;
|
||||||
transform: scale(.9);
|
transform: scale(0.9);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.i-hp {
|
.i-hp {
|
||||||
background-position: -20px 0;
|
background-position: -20px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.i-atk {
|
.i-atk {
|
||||||
background-position: -40px 0;
|
background-position: -40px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.i-def {
|
.i-def {
|
||||||
background-position: -60px 0;
|
background-position: -60px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.i-mastery {
|
.i-mastery {
|
||||||
background-position: -80px 0;
|
background-position: -80px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.i-cr {
|
.i-cr {
|
||||||
background-position: -100px 0;
|
background-position: -100px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.i-cd {
|
.i-cd {
|
||||||
background-position: -140px 0;
|
background-position: -140px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.i-re {
|
.i-re {
|
||||||
background-position: -120px 0;
|
background-position: -120px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.i-dmg {
|
.i-dmg {
|
||||||
background-position: -160px 0;
|
background-position: -160px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.detail li:nth-child(even) {
|
.detail li:nth-child(even) {
|
||||||
background: rgba(0, 0, 0, .4)
|
background: rgba(0, 0, 0, 0.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
.detail li:nth-child(odd) {
|
.detail li:nth-child(odd) {
|
||||||
background: rgba(50, 50, 50, .4)
|
background: rgba(50, 50, 50, 0.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
.detail li strong {
|
.detail li strong {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -141,7 +117,6 @@ body {
|
|||||||
font-family: Number, sans-serif;
|
font-family: Number, sans-serif;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
.detail li span {
|
.detail li span {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0;
|
right: 0;
|
||||||
@ -152,7 +127,6 @@ body {
|
|||||||
color: #90e800;
|
color: #90e800;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.talent-icon {
|
.talent-icon {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
height: 100px;
|
height: 100px;
|
||||||
@ -165,7 +139,6 @@ body {
|
|||||||
background-position: center center;
|
background-position: center center;
|
||||||
z-index: 90;
|
z-index: 90;
|
||||||
}
|
}
|
||||||
|
|
||||||
.talent-icon img,
|
.talent-icon img,
|
||||||
.talent-icon .talent-icon-img {
|
.talent-icon .talent-icon-img {
|
||||||
width: 46%;
|
width: 46%;
|
||||||
@ -178,7 +151,6 @@ body {
|
|||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.talent-icon span {
|
.talent-icon span {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
width: 34px;
|
width: 34px;
|
||||||
@ -195,14 +167,12 @@ body {
|
|||||||
box-shadow: 0 0 5px 0 #000;
|
box-shadow: 0 0 5px 0 #000;
|
||||||
font-family: Number;
|
font-family: Number;
|
||||||
}
|
}
|
||||||
|
|
||||||
.talent-icon.talent-plus span {
|
.talent-icon.talent-plus span {
|
||||||
background: #2e353e;
|
background: #2e353e;
|
||||||
color: #ffdfa0;
|
color: #ffdfa0;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
box-shadow: 0 0 1px 0 #d3bc8e, 1px 1px 2px 0 rgba(0, 0, 0, 0.5);
|
box-shadow: 0 0 1px 0 #d3bc8e, 1px 1px 2px 0 rgba(0, 0, 0, 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.talent-icon.talent-crown:after {
|
.talent-icon.talent-crown:after {
|
||||||
content: "";
|
content: "";
|
||||||
display: block;
|
display: block;
|
||||||
@ -215,14 +185,11 @@ body {
|
|||||||
top: 0;
|
top: 0;
|
||||||
margin-left: -14px;
|
margin-left: -14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.char-talents {
|
.char-talents {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 300px;
|
width: 300px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.char-cons {
|
.char-cons {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 250px;
|
width: 250px;
|
||||||
@ -230,78 +197,55 @@ body {
|
|||||||
bottom: 5px;
|
bottom: 5px;
|
||||||
left: 20px;
|
left: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.char-cons .talent-item,
|
.char-cons .talent-item,
|
||||||
.char-talents .talent-item {
|
.char-talents .talent-item {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.char-cons .talent-icon {
|
.char-cons .talent-icon {
|
||||||
width: 50px;
|
width: 50px;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
margin: 0 -5px
|
margin: 0 -5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.char-cons .talent-icon.off {
|
.char-cons .talent-icon.off {
|
||||||
filter: grayscale(100%);
|
filter: grayscale(100%);
|
||||||
opacity: .4;
|
opacity: 0.4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.elem_anemo .talent-icon {
|
.elem_anemo .talent-icon {
|
||||||
background-image: url(../common/bg/talent-anemo.png)
|
background-image: url(../common/bg/talent-anemo.png);
|
||||||
}
|
}
|
||||||
|
|
||||||
.elem_anemo .container {
|
.elem_anemo .container {
|
||||||
background-image: url(../common/bg/bg-anemo.jpg);
|
background-image: url(../common/bg/bg-anemo.jpg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.elem_cryo .talent-icon {
|
.elem_cryo .talent-icon {
|
||||||
background-image: url(../common/bg/talent-cryo.png)
|
background-image: url(../common/bg/talent-cryo.png);
|
||||||
}
|
}
|
||||||
|
|
||||||
.elem_cryo .container {
|
.elem_cryo .container {
|
||||||
background-image: url(../common/bg/bg-cryo.jpg);
|
background-image: url(../common/bg/bg-cryo.jpg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.elem_electro .talent-icon {
|
.elem_electro .talent-icon {
|
||||||
background-image: url(../common/bg/talent-electro.png)
|
background-image: url(../common/bg/talent-electro.png);
|
||||||
}
|
}
|
||||||
|
|
||||||
.elem_electro .container {
|
.elem_electro .container {
|
||||||
background-image: url(../common/bg/bg-electro.jpg);
|
background-image: url(../common/bg/bg-electro.jpg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.elem_geo .talent-icon {
|
.elem_geo .talent-icon {
|
||||||
background-image: url(../common/bg/talent-geo.png)
|
background-image: url(../common/bg/talent-geo.png);
|
||||||
}
|
}
|
||||||
|
|
||||||
.elem_geo .container {
|
.elem_geo .container {
|
||||||
background-image: url(../common/bg/bg-geo.jpg);
|
background-image: url(../common/bg/bg-geo.jpg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.elem_hydro .talent-icon {
|
.elem_hydro .talent-icon {
|
||||||
background-image: url(../common/bg/talent-hydro.png)
|
background-image: url(../common/bg/talent-hydro.png);
|
||||||
}
|
}
|
||||||
|
|
||||||
.elem_hydro .container {
|
.elem_hydro .container {
|
||||||
background-image: url(../common/bg/bg-hydro.jpg);
|
background-image: url(../common/bg/bg-hydro.jpg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.elem_pyro .talent-icon {
|
.elem_pyro .talent-icon {
|
||||||
background-image: url(../common/bg/talent-pyro.png)
|
background-image: url(../common/bg/talent-pyro.png);
|
||||||
}
|
}
|
||||||
|
|
||||||
.elem_pyro .container {
|
.elem_pyro .container {
|
||||||
background-image: url(../common/bg/bg-pyro.jpg);
|
background-image: url(../common/bg/bg-pyro.jpg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*** dmg ***/
|
/*** dmg ***/
|
||||||
.cont {
|
.cont {
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
@ -309,31 +253,27 @@ body {
|
|||||||
background-size: auto 100%;
|
background-size: auto 100%;
|
||||||
margin: 5px 15px 5px 10px;
|
margin: 5px 15px 5px 10px;
|
||||||
position: relative;
|
position: relative;
|
||||||
box-shadow: 0 0 1px 0 #ccc, 2px 2px 4px 0 rgba(50, 50, 50, .8);
|
box-shadow: 0 0 1px 0 #ccc, 2px 2px 4px 0 rgba(50, 50, 50, 0.8);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-cont {
|
.dmg-cont {
|
||||||
display: table;
|
display: table;
|
||||||
width: calc(100% - 25px);
|
width: calc(100% - 25px);
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-mode .dmg-list .cont-footer {
|
.dmg-mode .dmg-list .cont-footer {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cont-title {
|
.cont-title {
|
||||||
background: rgba(0, 0, 0, .4);
|
background: rgba(0, 0, 0, 0.4);
|
||||||
color: #d3bc8e;
|
color: #d3bc8e;
|
||||||
font-family: YS;
|
font-family: YS;
|
||||||
padding: 10px 20px;
|
padding: 10px 20px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cont-title span {
|
.cont-title span {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #aaa;
|
color: #aaa;
|
||||||
@ -341,7 +281,6 @@ body {
|
|||||||
font-family: Number, YS;
|
font-family: Number, YS;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cont-footer {
|
.cont-footer {
|
||||||
padding: 10px 15px;
|
padding: 10px 15px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
@ -349,69 +288,55 @@ body {
|
|||||||
font-family: YS;
|
font-family: YS;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cont-table {
|
.cont-table {
|
||||||
display: table;
|
display: table;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-cont .tr {
|
.dmg-cont .tr {
|
||||||
display: table-row;
|
display: table-row;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-cont .tr:nth-child(even) {
|
.dmg-cont .tr:nth-child(even) {
|
||||||
background: rgba(0, 0, 0, .4);
|
background: rgba(0, 0, 0, 0.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-cont .tr:nth-child(odd) {
|
.dmg-cont .tr:nth-child(odd) {
|
||||||
background: rgba(50, 50, 50, .4);
|
background: rgba(50, 50, 50, 0.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-cont .tr > div {
|
.dmg-cont .tr > div {
|
||||||
display: table-cell;
|
display: table-cell;
|
||||||
box-shadow: 0 0 1px 0 #fff;
|
box-shadow: 0 0 1px 0 #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-cont .tr > div.value-full {
|
.dmg-cont .tr > div.value-full {
|
||||||
display: table;
|
display: table;
|
||||||
width: 200%;
|
width: 200%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-cont .tr > div.value-none {
|
.dmg-cont .tr > div.value-none {
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-cont .thead {
|
.dmg-cont .thead {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-cont .thead > div {
|
.dmg-cont .thead > div {
|
||||||
font-family: YS;
|
font-family: YS;
|
||||||
color: #d3bc8e;
|
color: #d3bc8e;
|
||||||
background: rgba(0, 0, 0, .4);
|
background: rgba(0, 0, 0, 0.4);
|
||||||
line-height: 40px;
|
line-height: 40px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.dmg-cont .title,
|
.dmg-cont .title,
|
||||||
.dmg-cont .th {
|
.dmg-cont .th {
|
||||||
font-family: YS;
|
font-family: YS;
|
||||||
color: #d3bc8e;
|
color: #d3bc8e;
|
||||||
padding-right: 15px;
|
padding-right: 15px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
background: rgba(0, 0, 0, .4);
|
background: rgba(0, 0, 0, 0.4);
|
||||||
min-width: 100px;
|
min-width: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.profile-mode .dmg-idx {
|
.profile-mode .dmg-idx {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.profile-mode .dmg-title {
|
.profile-mode .dmg-title {
|
||||||
width: 33.3333%;
|
width: 33.3333%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-mode .dmg-idx {
|
.dmg-mode .dmg-idx {
|
||||||
display: table-cell;
|
display: table-cell;
|
||||||
width: 5%;
|
width: 5%;
|
||||||
@ -419,7 +344,6 @@ body {
|
|||||||
padding-right: 0;
|
padding-right: 0;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-mode .dmg-title {
|
.dmg-mode .dmg-title {
|
||||||
width: 31%;
|
width: 31%;
|
||||||
min-width: initial;
|
min-width: initial;
|
||||||
@ -427,8 +351,6 @@ body {
|
|||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
padding-right: 0;
|
padding-right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.dmg .value {
|
.dmg .value {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@ -437,17 +359,14 @@ body {
|
|||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
font-family: Number;
|
font-family: Number;
|
||||||
line-height: 40px;
|
line-height: 40px;
|
||||||
width: 32%
|
width: 32%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-notice {
|
.dmg-notice {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
color: #f5f5f5;
|
color: #f5f5f5;
|
||||||
margin-right: 15px;
|
margin-right: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*** artis***/
|
/*** artis***/
|
||||||
.artis {
|
.artis {
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -456,7 +375,6 @@ body {
|
|||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .item {
|
.artis .item {
|
||||||
width: 185px;
|
width: 185px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
@ -465,10 +383,8 @@ body {
|
|||||||
margin: 5px;
|
margin: 5px;
|
||||||
height: 210px;
|
height: 210px;
|
||||||
position: relative;
|
position: relative;
|
||||||
box-shadow: 0 0 1px 0 #ccc, 2px 2px 4px 0 rgba(50, 50, 50, .8);
|
box-shadow: 0 0 1px 0 #ccc, 2px 2px 4px 0 rgba(50, 50, 50, 0.8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.artis .item .arti-icon {
|
.artis .item .arti-icon {
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
@ -476,13 +392,12 @@ body {
|
|||||||
left: 2px;
|
left: 2px;
|
||||||
top: 3px;
|
top: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .item .arti-icon span {
|
.artis .item .arti-icon span {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 2px;
|
right: 2px;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
background: rgba(0, 0, 0, .5);
|
background: rgba(0, 0, 0, 0.5);
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
line-height: 18px;
|
line-height: 18px;
|
||||||
@ -491,17 +406,14 @@ body {
|
|||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .item .arti-icon img {
|
.artis .item .arti-icon img {
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .head {
|
.artis .head {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
padding: 12px 0 8px 68px;
|
padding: 12px 0 8px 68px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .head strong {
|
.artis .head strong {
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
display: block;
|
display: block;
|
||||||
@ -509,46 +421,37 @@ body {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
font-font: YS;
|
font-font: YS;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .head span {
|
.artis .head span {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .head .mark {
|
.artis .head .mark {
|
||||||
font-family: Number, YS;
|
font-family: Number, YS;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mark-ACE,
|
.mark-ACE,
|
||||||
.mark-ACE² {
|
.mark-ACE² {
|
||||||
color: #e85656;
|
color: #e85656;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mark-SSS,
|
.mark-SSS,
|
||||||
.mark-SS {
|
.mark-SS {
|
||||||
color: #ffe699;
|
color: #ffe699;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mark-S,
|
.mark-S,
|
||||||
.mark-A {
|
.mark-A {
|
||||||
color: #d699ff;
|
color: #d699ff;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.arti-main {
|
.arti-main {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
padding: 6px 15px;
|
padding: 6px 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.artis ul.detail {
|
.artis ul.detail {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
position: initial;
|
position: initial;
|
||||||
font-family: YS;
|
font-family: YS;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis ul.detail li {
|
.artis ul.detail li {
|
||||||
padding: 0 3px;
|
padding: 0 3px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
@ -558,36 +461,29 @@ body {
|
|||||||
line-height: 26px;
|
line-height: 26px;
|
||||||
height: 26px;
|
height: 26px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.artis ul.detail li.nouse span {
|
.artis ul.detail li.nouse span {
|
||||||
color: #888;
|
color: #888;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis ul.detail li.arti-main {
|
.artis ul.detail li.arti-main {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
padding: 3px 3px;
|
padding: 3px 3px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis ul.detail li span {
|
.artis ul.detail li span {
|
||||||
position: initial;
|
position: initial;
|
||||||
display: table-cell;
|
display: table-cell;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-family: YS;
|
font-family: YS;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis ul.detail li span.title {
|
.artis ul.detail li span.title {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis ul.detail li span.val {
|
.artis ul.detail li span.val {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
font-family: Number;
|
font-family: Number;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .weapon .star {
|
.artis .weapon .star {
|
||||||
height: 20px;
|
height: 20px;
|
||||||
width: 100px;
|
width: 100px;
|
||||||
@ -597,29 +493,22 @@ body {
|
|||||||
transform-origin: 100px 10px;
|
transform-origin: 100px 10px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .weapon .star.star-2 {
|
.artis .weapon .star.star-2 {
|
||||||
background-position: 0 -20px;
|
background-position: 0 -20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .weapon .star.star-3 {
|
.artis .weapon .star.star-3 {
|
||||||
background-position: 0 -40px;
|
background-position: 0 -40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .weapon .star.star-4 {
|
.artis .weapon .star.star-4 {
|
||||||
background-position: 0 -60px;
|
background-position: 0 -60px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .weapon .star.star-5 {
|
.artis .weapon .star.star-5 {
|
||||||
background-position: 0 -80px;
|
background-position: 0 -80px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.artis .weapon {
|
.artis .weapon {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
height: 100px;
|
height: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .weapon img {
|
.artis .weapon img {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
height: 100px;
|
height: 100px;
|
||||||
@ -628,7 +517,6 @@ body {
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .weapon .head {
|
.artis .weapon .head {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
@ -639,23 +527,18 @@ body {
|
|||||||
z-index: 3;
|
z-index: 3;
|
||||||
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.7));
|
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.7));
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .weapon .head strong {
|
.artis .weapon .head strong {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
margin-bottom: 3px;
|
margin-bottom: 3px;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
font-family: YS;
|
font-family: YS;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .weapon .head > span {
|
.artis .weapon .head > span {
|
||||||
display: block;
|
display: block;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .weapon span {
|
.artis .weapon span {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .weapon .affix {
|
.artis .weapon .affix {
|
||||||
color: #000;
|
color: #000;
|
||||||
padding: 0 7px;
|
padding: 0 7px;
|
||||||
@ -663,50 +546,40 @@ body {
|
|||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.artis .weapon .affix-1 {
|
.artis .weapon .affix-1 {
|
||||||
box-shadow: 0 0 4px 0 #a3a3a3 inset;
|
box-shadow: 0 0 4px 0 #a3a3a3 inset;
|
||||||
background: #ebebebaa;
|
background: #ebebebaa;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .weapon .affix-2 {
|
.artis .weapon .affix-2 {
|
||||||
box-shadow: 0 0 4px 0 #51b72fbd inset;
|
box-shadow: 0 0 4px 0 #51b72fbd inset;
|
||||||
background: #ddffdeaa;
|
background: #ddffdeaa;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .weapon .affix-3 {
|
.artis .weapon .affix-3 {
|
||||||
box-shadow: 0 0 4px 0 #396cdecf inset;
|
box-shadow: 0 0 4px 0 #396cdecf inset;
|
||||||
background: #ddebffaa;
|
background: #ddebffaa;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .weapon .affix-4 {
|
.artis .weapon .affix-4 {
|
||||||
box-shadow: 0 0 4px 0 #c539debf inset;
|
box-shadow: 0 0 4px 0 #c539debf inset;
|
||||||
background: #ffddf0aa;
|
background: #ffddf0aa;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .weapon .affix-5 {
|
.artis .weapon .affix-5 {
|
||||||
box-shadow: 0 0 4px 0 #deaf39 inset;
|
box-shadow: 0 0 4px 0 #deaf39 inset;
|
||||||
background: #fff6dd;
|
background: #fff6dd;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .stat {
|
.artis .stat {
|
||||||
height: 100px;
|
height: 100px;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .stat {
|
.artis .stat {
|
||||||
display: table-row;
|
display: table-row;
|
||||||
padding: 18px 10px;
|
padding: 18px 10px;
|
||||||
display: table;
|
display: table;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .stat > div {
|
.artis .stat > div {
|
||||||
display: table-cell;
|
display: table-cell;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .stat strong {
|
.artis .stat strong {
|
||||||
display: block;
|
display: block;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
@ -714,135 +587,100 @@ body {
|
|||||||
font-family: Number;
|
font-family: Number;
|
||||||
line-height: 40px;
|
line-height: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-msg {
|
.dmg-msg {
|
||||||
font-family: Number, YS;
|
font-family: Number, YS;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-msg .thead > div {
|
.dmg-msg .thead > div {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-msg .th {
|
.dmg-msg .th {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-msg .tr .td {
|
.dmg-msg .tr .td {
|
||||||
padding: 8px 10px;
|
padding: 8px 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-msg .info {
|
.dmg-msg .info {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.dmg-calc {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.dmg-calc .thead {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.dmg-calc .thead > div {
|
.dmg-calc .thead > div {
|
||||||
line-height: initial;
|
line-height: initial;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-calc .cont-table div {
|
.dmg-calc .cont-table div {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-calc .title {
|
.dmg-calc .title {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding-right: 0;
|
padding-right: 0;
|
||||||
min-width: 70px;
|
min-width: 70px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-calc .td {
|
.dmg-calc .td {
|
||||||
padding: 5px 0;
|
padding: 5px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-calc strong {
|
.dmg-calc strong {
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
display: block;
|
display: block;
|
||||||
font-family: Number, YS;
|
font-family: Number, YS;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-calc span {
|
.dmg-calc span {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #aaa;
|
color: #aaa;
|
||||||
font-family: Number, YS;
|
font-family: Number, YS;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-calc .na,
|
.dmg-calc .na,
|
||||||
.dmg-calc .eq {
|
.dmg-calc .eq {
|
||||||
background: rgba(50, 50, 50, .5);
|
background: rgba(50, 50, 50, 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-calc .na {
|
.dmg-calc .na {
|
||||||
color: #888;
|
color: #888;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-calc .lt {
|
.dmg-calc .lt {
|
||||||
background: rgba(23, 112, 41, 0.5);
|
background: rgba(23, 112, 41, 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-calc .gt {
|
.dmg-calc .gt {
|
||||||
background: rgba(112, 23, 23, 0.5);
|
background: rgba(112, 23, 23, 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-desc {
|
.dmg-desc {
|
||||||
color: #aaa;
|
color: #aaa;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-desc ul {
|
.dmg-desc ul {
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-desc ul li {
|
.dmg-desc ul li {
|
||||||
color: #aaa;
|
color: #aaa;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmg-desc strong {
|
.dmg-desc strong {
|
||||||
color: #d3bc8e;
|
color: #d3bc8e;
|
||||||
display: inline;
|
display: inline;
|
||||||
padding: 0 3px;
|
padding: 0 3px;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.artis .stat span {
|
.artis .stat span {
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
color: #bbb;
|
color: #bbb;
|
||||||
}
|
}
|
||||||
|
|
||||||
.char-优菈 .main-pic {
|
.char-优菈 .main-pic {
|
||||||
margin-left: -175px;
|
margin-left: -175px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.char-烟绯 .main-pic {
|
.char-烟绯 .main-pic {
|
||||||
margin-left: -135px;
|
margin-left: -135px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.char-香菱 .main-pic {
|
.char-香菱 .main-pic {
|
||||||
margin-left: -195px;
|
margin-left: -195px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.char-迪奥娜 .main-pic {
|
.char-迪奥娜 .main-pic {
|
||||||
margin-left: -180px;
|
margin-left: -180px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.char-可莉 .main-pic {
|
.char-可莉 .main-pic {
|
||||||
margin-left: -210px;
|
margin-left: -210px;
|
||||||
}
|
}
|
||||||
|
/*# sourceMappingURL=detail.css.map */
|
@ -1,194 +1,186 @@
|
|||||||
<!DOCTYPE html>
|
{{extend elemLayout}}
|
||||||
<html>
|
{{block 'css'}}
|
||||||
<head>
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/character/detail.css"/>
|
||||||
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
|
{{/block}}
|
||||||
<link rel="shortcut icon" href="#"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/common/common.css"/>
|
{{block 'main'}}
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/character/detail.css"/>
|
<div class="basic">
|
||||||
</head>
|
<div class="main-pic"
|
||||||
<body {{cfgScale}} class="elem_{{elem}} char-{{name}} {{mode}}-mode">
|
style="background-image:url({{_res_path}}/meta/character/{{name}}/gacha_splash.png)"></div>
|
||||||
<div class="container" id="container">
|
<div class="detail">
|
||||||
<div class="basic">
|
<div class="char-name">{{name}}</div>
|
||||||
<div class="main-pic"
|
<div class="char-lv">UID {{uid}} - Lv.{{data.lv}}</div>
|
||||||
style="background-image:url({{_res_path}}/meta/character/{{name}}/gacha_splash.png)"></div>
|
<div class="char-talents">
|
||||||
<div class="detail">
|
{{each talentMap tName key}}
|
||||||
<div class="char-name">{{name}}</div>
|
<div class="talent-item">
|
||||||
<div class="char-lv">UID {{uid}} - Lv.{{data.lv}}</div>
|
<div class="talent-icon
|
||||||
<div class="char-talents">
|
|
||||||
{{each talentMap tName key}}
|
|
||||||
<div class="talent-item">
|
|
||||||
<div class="talent-icon
|
|
||||||
{{talent[key].level_current > talent[key].level_original ? `talent-plus`:``}}
|
{{talent[key].level_current > talent[key].level_original ? `talent-plus`:``}}
|
||||||
{{talent[key].level_original == 10 ? `talent-crown`:``}}">
|
{{talent[key].level_original == 10 ? `talent-crown`:``}}">
|
||||||
<div class="talent-icon-img"
|
<div class="talent-icon-img"
|
||||||
style="background-image:url({{_res_path}}/meta/character/{{name}}/talent_{{key}}.png)"></div>
|
style="background-image:url({{_res_path}}/meta/character/{{name}}/talent_{{key}}.png)"></div>
|
||||||
<span>{{talent[key].level_current}}</span>
|
<span>{{talent[key].level_current}}</span>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
<ul class="attr">
|
|
||||||
<li><i class="i-hp"></i>生命值<strong>{{attr.hp}}</strong><span>(+{{attr.hpPlus}})</span></li>
|
|
||||||
<li><i class="i-atk"></i>攻击力<strong>{{attr.atk}}</strong><span>(+{{attr.atkPlus}})</span></li>
|
|
||||||
<li><i class="i-def"></i>防御力<strong>{{attr.def}}</strong><span>(+{{attr.defPlus}})</span></li>
|
|
||||||
<li><i class="i-mastery"></i>元素精通<strong>{{attr.mastery}}</strong></li>
|
|
||||||
<li><i class="i-cr"></i>暴击率<strong>{{attr.cRate}}</strong></li>
|
|
||||||
<li><i class="i-cd"></i>暴击伤害<strong>{{attr.cDmg}}</strong></li>
|
|
||||||
<li><i class="i-re"></i>元素充能<strong>{{attr.recharge}}</strong></li>
|
|
||||||
<li><i class="i-dmg"></i>伤害加成<strong>{{attr.dmgBonus}}</strong></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="char-cons">
|
|
||||||
{{each cons con idx}}
|
|
||||||
<div class="cons-item">
|
|
||||||
<div class="talent-icon {{idx * 1 > avatar.actived_constellation_num * 1 ? 'off' : '' }}">
|
|
||||||
<img src="{{_res_path}}/meta/character/{{name}}/cons_{{idx}}.png"/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{if dmgData.length > 0}}
|
{{/each}}
|
||||||
<div class="dmg-cont dmg-list cont">
|
|
||||||
<div class="cont-title">
|
|
||||||
伤害计算<span>目标为{{enemyLv}}级{{enemyName}},如需调整等级可使用 #敌人等级{{enemyLv}} 来进行设置</span>
|
|
||||||
</div>
|
|
||||||
<div class="cont-table">
|
|
||||||
<div class="tr thead">
|
|
||||||
<div class="title dmg-idx">#</div>
|
|
||||||
<div class="title dmg-title">伤害类型</div>
|
|
||||||
<div>暴击伤害</div>
|
|
||||||
<div>平均伤害(计算暴击率)</div>
|
|
||||||
</div>
|
|
||||||
{{each dmgData dmg idx}}
|
|
||||||
<div class="dmg tr">
|
|
||||||
<div class="title dmg-idx">{{idx+1}}</div>
|
|
||||||
<div class="title dmg-title">{{dmg.title}}</div>
|
|
||||||
{{if dmg.dmg === "NaN"}}
|
|
||||||
<div class="value value-full">{{dmg.avg}}</div>
|
|
||||||
<div class="value value-none"></div>
|
|
||||||
{{else}}
|
|
||||||
<div class="value">{{dmg.dmg}}</div>
|
|
||||||
<div class="value">{{dmg.avg}}</div>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
<div class="cont-footer dmg-desc">
|
|
||||||
使用命令<strong>#{{name}}伤害</strong>可以查看伤害详情,使用命令<strong>#角色面板帮助</strong>可查看帮助说明
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{if mode === "profile"}}
|
|
||||||
<div class="artis">
|
|
||||||
<div>
|
|
||||||
<div class="item weapon">
|
|
||||||
<img src="{{_sys_res_path}}/genshin/logo/weapon/{{weapon.name}}.png"/>
|
|
||||||
<div class="head">
|
|
||||||
<strong>{{weapon.name}}</strong>
|
|
||||||
<div class="star star-{{weapon.rarity}}"></div>
|
|
||||||
<span>Lv.{{weapon.level}} <span
|
|
||||||
class="affix affix-{{weapon.affix_level}}">精{{weapon.affix_level}}</span></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="item stat">
|
|
||||||
<div><strong class="mark-{{markScore}}">{{markScore}}</strong><span>圣遗物评级</span></div>
|
|
||||||
<div><strong>{{totalMark}}</strong><span>圣遗物总分</span></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{each reliquaries ds}}
|
|
||||||
<div class="item arti">
|
|
||||||
{{if ds.name && ds.main && ds.main[0] && ds.main[0]!="undefined"}}
|
|
||||||
<div class="arti-icon">
|
|
||||||
<img src="{{_sys_res_path}}/genshin/logo/reliquaries/{{ds.name}}.png"/>
|
|
||||||
<span>+{{ds.level}}</span>
|
|
||||||
</div>
|
|
||||||
<div class="head">
|
|
||||||
<strong>{{ds.name}}</strong>
|
|
||||||
<span class="mark mark-{{ds.markType}}"><span>{{ds.mark}}分</span> - {{ds.markType}}</span>
|
|
||||||
</div>
|
|
||||||
<ul class="detail">
|
|
||||||
<li class="arti-main"><span class="title">{{ds.main[0]}}</span><span class="val">+{{ds.main[1]}}</span></li>
|
|
||||||
{{each ds.attrs attr}}
|
|
||||||
{{if attr[0]}}
|
|
||||||
<li class="{{usefulMark[attr[0]] ? `useful`:`nouse`}}"><span class="title">{{attr[0]}}</span><span
|
|
||||||
class="val">+{{attr[1]}}</span></li>
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
</ul>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{if mode === "dmg"}}
|
|
||||||
|
|
||||||
{{if dmgCfg && dmgCfg.attr && dmgCfg.attr.length>0}}
|
|
||||||
<div class="dmg-calc dmg-cont cont">
|
|
||||||
<div class="cont-title">
|
|
||||||
词条伤害计算<span>#{{name}}伤害{{dmgCfg.userIdx+1}}: 当前计算为[{{dmgCfg.title}}]</span>
|
|
||||||
</div>
|
|
||||||
<div class="cont-table">
|
|
||||||
<div class="tr thead ">
|
|
||||||
<div class="td">词条变化</div>
|
|
||||||
{{each dmgCfg.attr attr}}
|
|
||||||
<div class="td">
|
|
||||||
<strong>{{attr.title}}</strong>
|
|
||||||
<span>+{{attr.text}}</span>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
{{each dmgRet row rowIdx}}
|
|
||||||
<div class="tr">
|
|
||||||
<div class="title">
|
|
||||||
<strong>{{dmgCfg.attr[rowIdx].title}}</strong>
|
|
||||||
<span>-{{dmgCfg.attr[rowIdx].text}}</span>
|
|
||||||
</div>
|
|
||||||
{{each row cell colIdx}}
|
|
||||||
{{if cell.type === "na"}}
|
|
||||||
<div class="td na">
|
|
||||||
<strong>-</strong>
|
|
||||||
<span>{{dmgCfg.basicRet.avg}}{{dmgCfg.basicRet.dmg!="NaN"?`/${dmgCfg.basicRet.dmg}`:''}}</span>
|
|
||||||
</div>
|
|
||||||
{{else}}
|
|
||||||
<div class="td {{cell.type}}">
|
|
||||||
<strong>{{cell.val}}</strong>
|
|
||||||
|
|
||||||
<span>{{cell.avg}}{{cell.dmg!="NaN"?`/${cell.dmg}`:''}}</span>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
<div class="cont-footer dmg-desc">
|
|
||||||
<ul>
|
|
||||||
<li>大数字的含义为圣遗物副词条置换后<strong>平均伤害</strong>的变化,下方的详情数字为<strong>平均伤害</strong>/<strong>暴击伤害</strong>。</li>
|
|
||||||
<li>关于<strong>平均伤害</strong>:是将暴击率计算在内的伤害期望,能反映综合的输出能力,不等于实际伤害数字。</li>
|
|
||||||
<li>可用于评估当前面板下圣遗物副词条的侧重方向。实际游戏情况更加复杂,结果供参考~</li>
|
|
||||||
<li>如需更换计算的伤害类型,可使用命令 <strong>#{{name}}伤害+序号</strong>来切换,序号参见伤害计算板块</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div class="dmg-cont dmg-msg cont">
|
|
||||||
<div class="cont-title">Buff列表<span>部分Buff的触发条件以及层数可能影响实际伤害结果</span></div>
|
|
||||||
<div class="cont-table">
|
|
||||||
{{each dmgMsg msg}}
|
|
||||||
<div class="tr">
|
|
||||||
<div class="th">{{msg[0]}}</div>
|
|
||||||
<div class="td">{{msg[1]}}</div>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
<div class="copyright">Created By Yunzai-Bot & Miao-Plugin</div>
|
|
||||||
</div>
|
</div>
|
||||||
</body>
|
<ul class="attr">
|
||||||
<script type="text/javascript"></script>
|
<li><i class="i-hp"></i>生命值<strong>{{attr.hp}}</strong><span>(+{{attr.hpPlus}})</span></li>
|
||||||
</html>
|
<li><i class="i-atk"></i>攻击力<strong>{{attr.atk}}</strong><span>(+{{attr.atkPlus}})</span></li>
|
||||||
|
<li><i class="i-def"></i>防御力<strong>{{attr.def}}</strong><span>(+{{attr.defPlus}})</span></li>
|
||||||
|
<li><i class="i-mastery"></i>元素精通<strong>{{attr.mastery}}</strong></li>
|
||||||
|
<li><i class="i-cr"></i>暴击率<strong>{{attr.cRate}}</strong></li>
|
||||||
|
<li><i class="i-cd"></i>暴击伤害<strong>{{attr.cDmg}}</strong></li>
|
||||||
|
<li><i class="i-re"></i>元素充能<strong>{{attr.recharge}}</strong></li>
|
||||||
|
<li><i class="i-dmg"></i>伤害加成<strong>{{attr.dmgBonus}}</strong></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="char-cons">
|
||||||
|
{{each cons con idx}}
|
||||||
|
<div class="cons-item">
|
||||||
|
<div class="talent-icon {{idx * 1 > avatar.actived_constellation_num * 1 ? 'off' : '' }}">
|
||||||
|
<img src="{{_res_path}}/meta/character/{{name}}/cons_{{idx}}.png"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{if dmgData.length > 0}}
|
||||||
|
<div class="dmg-cont dmg-list cont">
|
||||||
|
<div class="cont-title">
|
||||||
|
伤害计算<span>目标为{{enemyLv}}级{{enemyName}},如需调整等级可使用 #敌人等级{{enemyLv}} 来进行设置</span>
|
||||||
|
</div>
|
||||||
|
<div class="cont-table">
|
||||||
|
<div class="tr thead">
|
||||||
|
<div class="title dmg-idx">#</div>
|
||||||
|
<div class="title dmg-title">伤害类型</div>
|
||||||
|
<div>暴击伤害</div>
|
||||||
|
<div>平均伤害(计算暴击率)</div>
|
||||||
|
</div>
|
||||||
|
{{each dmgData dmg idx}}
|
||||||
|
<div class="dmg tr">
|
||||||
|
<div class="title dmg-idx">{{idx+1}}</div>
|
||||||
|
<div class="title dmg-title">{{dmg.title}}</div>
|
||||||
|
{{if dmg.dmg === "NaN"}}
|
||||||
|
<div class="value value-full">{{dmg.avg}}</div>
|
||||||
|
<div class="value value-none"></div>
|
||||||
|
{{else}}
|
||||||
|
<div class="value">{{dmg.dmg}}</div>
|
||||||
|
<div class="value">{{dmg.avg}}</div>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
<div class="cont-footer dmg-desc">
|
||||||
|
使用命令<strong>#{{name}}伤害</strong>可以查看伤害详情,使用命令<strong>#角色面板帮助</strong>可查看帮助说明
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{if mode === "profile"}}
|
||||||
|
<div class="artis">
|
||||||
|
<div>
|
||||||
|
<div class="item weapon">
|
||||||
|
<img src="{{_sys_res_path}}/genshin/logo/weapon/{{weapon.name}}.png"/>
|
||||||
|
<div class="head">
|
||||||
|
<strong>{{weapon.name}}</strong>
|
||||||
|
<div class="star star-{{weapon.rarity}}"></div>
|
||||||
|
<span>Lv.{{weapon.level}} <span
|
||||||
|
class="affix affix-{{weapon.affix_level}}">精{{weapon.affix_level}}</span></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="item stat">
|
||||||
|
<div><strong class="mark-{{markScore}}">{{markScore}}</strong><span>圣遗物评级</span></div>
|
||||||
|
<div><strong>{{totalMark}}</strong><span>圣遗物总分</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{each reliquaries ds}}
|
||||||
|
<div class="item arti">
|
||||||
|
{{if ds.name && ds.main && ds.main[0] && ds.main[0]!="undefined"}}
|
||||||
|
<div class="arti-icon">
|
||||||
|
<img src="{{_sys_res_path}}/genshin/logo/reliquaries/{{ds.name}}.png"/>
|
||||||
|
<span>+{{ds.level}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="head">
|
||||||
|
<strong>{{ds.name}}</strong>
|
||||||
|
<span class="mark mark-{{ds.markType}}"><span>{{ds.mark}}分</span> - {{ds.markType}}</span>
|
||||||
|
</div>
|
||||||
|
<ul class="detail">
|
||||||
|
<li class="arti-main"><span class="title">{{ds.main[0]}}</span><span class="val">+{{ds.main[1]}}</span></li>
|
||||||
|
{{each ds.attrs attr}}
|
||||||
|
{{if attr[0]}}
|
||||||
|
<li class="{{usefulMark[attr[0]] ? `useful`:`nouse`}}"><span class="title">{{attr[0]}}</span><span
|
||||||
|
class="val">+{{attr[1]}}</span></li>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{if mode === "dmg"}}
|
||||||
|
|
||||||
|
{{if dmgCfg && dmgCfg.attr && dmgCfg.attr.length>0}}
|
||||||
|
<div class="dmg-calc dmg-cont cont">
|
||||||
|
<div class="cont-title">
|
||||||
|
词条伤害计算<span>#{{name}}伤害{{dmgCfg.userIdx+1}}: 当前计算为[{{dmgCfg.title}}]</span>
|
||||||
|
</div>
|
||||||
|
<div class="cont-table">
|
||||||
|
<div class="tr thead ">
|
||||||
|
<div class="td">词条变化</div>
|
||||||
|
{{each dmgCfg.attr attr}}
|
||||||
|
<div class="td">
|
||||||
|
<strong>{{attr.title}}</strong>
|
||||||
|
<span>+{{attr.text}}</span>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
{{each dmgRet row rowIdx}}
|
||||||
|
<div class="tr">
|
||||||
|
<div class="title">
|
||||||
|
<strong>{{dmgCfg.attr[rowIdx].title}}</strong>
|
||||||
|
<span>-{{dmgCfg.attr[rowIdx].text}}</span>
|
||||||
|
</div>
|
||||||
|
{{each row cell colIdx}}
|
||||||
|
{{if cell.type === "na"}}
|
||||||
|
<div class="td na">
|
||||||
|
<strong>-</strong>
|
||||||
|
<span>{{dmgCfg.basicRet.avg}}{{dmgCfg.basicRet.dmg!="NaN"?`/${dmgCfg.basicRet.dmg}`:''}}</span>
|
||||||
|
</div>
|
||||||
|
{{else}}
|
||||||
|
<div class="td {{cell.type}}">
|
||||||
|
<strong>{{cell.val}}</strong>
|
||||||
|
|
||||||
|
<span>{{cell.avg}}{{cell.dmg!="NaN"?`/${cell.dmg}`:''}}</span>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
<div class="cont-footer dmg-desc">
|
||||||
|
<ul>
|
||||||
|
<li>大数字的含义为圣遗物副词条置换后<strong>平均伤害</strong>的变化,下方的详情数字为<strong>平均伤害</strong>/<strong>暴击伤害</strong>。</li>
|
||||||
|
<li>关于<strong>平均伤害</strong>:是将暴击率计算在内的伤害期望,能反映综合的输出能力,不等于实际伤害数字。</li>
|
||||||
|
<li>可用于评估当前面板下圣遗物副词条的侧重方向。实际游戏情况更加复杂,结果供参考~</li>
|
||||||
|
<li>如需更换计算的伤害类型,可使用命令 <strong>#{{name}}伤害+序号</strong>来切换,序号参见伤害计算板块</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="dmg-cont dmg-msg cont">
|
||||||
|
<div class="cont-title">Buff列表<span>部分Buff的触发条件以及层数可能影响实际伤害结果</span></div>
|
||||||
|
<div class="cont-table">
|
||||||
|
{{each dmgMsg msg}}
|
||||||
|
<div class="tr">
|
||||||
|
<div class="th">{{msg[0]}}</div>
|
||||||
|
<div class="td">{{msg[1]}}</div>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/block}}
|
848
resources/character/detail.less
Normal file
@ -0,0 +1,848 @@
|
|||||||
|
|
||||||
|
body {
|
||||||
|
width: 600px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
width: 600px;
|
||||||
|
padding: 0;
|
||||||
|
background-size: cover;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.basic {
|
||||||
|
position: relative;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.basic: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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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("./imgs/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)
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail li:nth-child(odd) {
|
||||||
|
background: rgba(50, 50, 50, .4)
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail li strong {
|
||||||
|
display: inline-block;
|
||||||
|
position: absolute;
|
||||||
|
right: 85px;
|
||||||
|
text-align: right;
|
||||||
|
font-family: Number, sans-serif;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.talent-icon img,
|
||||||
|
.talent-icon .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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.char-talents {
|
||||||
|
display: flex;
|
||||||
|
width: 300px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.char-cons {
|
||||||
|
display: flex;
|
||||||
|
width: 250px;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 5px;
|
||||||
|
left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.char-cons .talent-item,
|
||||||
|
.char-talents .talent-item {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.char-cons .talent-icon {
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
margin: 0 -5px
|
||||||
|
}
|
||||||
|
|
||||||
|
.char-cons .talent-icon.off {
|
||||||
|
filter: grayscale(100%);
|
||||||
|
opacity: .4;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.elem_anemo .talent-icon {
|
||||||
|
background-image: url(../common/bg/talent-anemo.png)
|
||||||
|
}
|
||||||
|
|
||||||
|
.elem_anemo .container {
|
||||||
|
background-image: url(../common/bg/bg-anemo.jpg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.elem_cryo .talent-icon {
|
||||||
|
background-image: url(../common/bg/talent-cryo.png)
|
||||||
|
}
|
||||||
|
|
||||||
|
.elem_cryo .container {
|
||||||
|
background-image: url(../common/bg/bg-cryo.jpg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.elem_electro .talent-icon {
|
||||||
|
background-image: url(../common/bg/talent-electro.png)
|
||||||
|
}
|
||||||
|
|
||||||
|
.elem_electro .container {
|
||||||
|
background-image: url(../common/bg/bg-electro.jpg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.elem_geo .talent-icon {
|
||||||
|
background-image: url(../common/bg/talent-geo.png)
|
||||||
|
}
|
||||||
|
|
||||||
|
.elem_geo .container {
|
||||||
|
background-image: url(../common/bg/bg-geo.jpg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.elem_hydro .talent-icon {
|
||||||
|
background-image: url(../common/bg/talent-hydro.png)
|
||||||
|
}
|
||||||
|
|
||||||
|
.elem_hydro .container {
|
||||||
|
background-image: url(../common/bg/bg-hydro.jpg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.elem_pyro .talent-icon {
|
||||||
|
background-image: url(../common/bg/talent-pyro.png)
|
||||||
|
}
|
||||||
|
|
||||||
|
.elem_pyro .container {
|
||||||
|
background-image: url(../common/bg/bg-pyro.jpg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*** dmg ***/
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-cont {
|
||||||
|
display: table;
|
||||||
|
width: calc(100% - 25px);
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-mode .dmg-list .cont-footer {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cont-title {
|
||||||
|
background: rgba(0, 0, 0, .4);
|
||||||
|
color: #d3bc8e;
|
||||||
|
font-family: YS;
|
||||||
|
padding: 10px 20px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cont-title span {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #aaa;
|
||||||
|
margin-left: 10px;
|
||||||
|
font-family: Number, YS;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-cont .tr {
|
||||||
|
display: table-row;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-cont .tr:nth-child(even) {
|
||||||
|
background: rgba(0, 0, 0, .4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-cont .tr:nth-child(odd) {
|
||||||
|
background: rgba(50, 50, 50, .4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-cont .tr > div {
|
||||||
|
display: table-cell;
|
||||||
|
box-shadow: 0 0 1px 0 #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-cont .tr > div.value-full {
|
||||||
|
display: table;
|
||||||
|
width: 200%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-cont .tr > div.value-none {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-cont .thead {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-cont .thead > div {
|
||||||
|
font-family: YS;
|
||||||
|
color: #d3bc8e;
|
||||||
|
background: rgba(0, 0, 0, .4);
|
||||||
|
line-height: 40px;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.dmg-cont .title,
|
||||||
|
.dmg-cont .th {
|
||||||
|
font-family: YS;
|
||||||
|
color: #d3bc8e;
|
||||||
|
padding-right: 15px;
|
||||||
|
text-align: right;
|
||||||
|
background: rgba(0, 0, 0, .4);
|
||||||
|
min-width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile-mode .dmg-idx {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile-mode .dmg-title {
|
||||||
|
width: 33.3333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-mode .dmg-idx {
|
||||||
|
display: table-cell;
|
||||||
|
width: 5%;
|
||||||
|
min-width: initial;
|
||||||
|
padding-right: 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-mode .dmg-title {
|
||||||
|
width: 31%;
|
||||||
|
min-width: initial;
|
||||||
|
text-align: left;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.dmg .value {
|
||||||
|
text-align: center;
|
||||||
|
color: #fff;
|
||||||
|
display: block;
|
||||||
|
height: 40px;
|
||||||
|
font-size: 18px;
|
||||||
|
font-family: Number;
|
||||||
|
line-height: 40px;
|
||||||
|
width: 32%
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-notice {
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: right;
|
||||||
|
color: #f5f5f5;
|
||||||
|
margin-right: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*** artis***/
|
||||||
|
.artis {
|
||||||
|
display: flex;
|
||||||
|
width: 600px;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .item {
|
||||||
|
width: 185px;
|
||||||
|
border-radius: 10px;
|
||||||
|
background: url("../common/cont/card-bg.png") top left repeat-x;
|
||||||
|
background-size: auto 100%;
|
||||||
|
margin: 5px;
|
||||||
|
height: 210px;
|
||||||
|
position: relative;
|
||||||
|
box-shadow: 0 0 1px 0 #ccc, 2px 2px 4px 0 rgba(50, 50, 50, .8);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.artis .item .arti-icon {
|
||||||
|
width: 60px;
|
||||||
|
height: 60px;
|
||||||
|
position: absolute;
|
||||||
|
left: 2px;
|
||||||
|
top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .item .arti-icon 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .item .arti-icon img {
|
||||||
|
width: 60px;
|
||||||
|
height: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .head {
|
||||||
|
color: #fff;
|
||||||
|
padding: 12px 0 8px 68px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .head strong {
|
||||||
|
font-size: 15px;
|
||||||
|
display: block;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
font-font: YS;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .head span {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .head .mark {
|
||||||
|
font-family: Number, YS;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mark-ACE,
|
||||||
|
.mark-ACE² {
|
||||||
|
color: #e85656;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mark-SSS,
|
||||||
|
.mark-SS {
|
||||||
|
color: #ffe699;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mark-S,
|
||||||
|
.mark-A {
|
||||||
|
color: #d699ff;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.arti-main {
|
||||||
|
color: #fff;
|
||||||
|
padding: 6px 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.artis ul.detail {
|
||||||
|
width: 100%;
|
||||||
|
padding: 0;
|
||||||
|
position: initial;
|
||||||
|
font-family: YS;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis ul.detail li {
|
||||||
|
padding: 0 3px;
|
||||||
|
font-size: 14px;
|
||||||
|
position: initial;
|
||||||
|
width: 100%;
|
||||||
|
display: table;
|
||||||
|
line-height: 26px;
|
||||||
|
height: 26px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.artis ul.detail li.nouse span {
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis ul.detail li.arti-main {
|
||||||
|
font-size: 16px;
|
||||||
|
padding: 3px 3px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis ul.detail li span {
|
||||||
|
position: initial;
|
||||||
|
display: table-cell;
|
||||||
|
color: #fff;
|
||||||
|
font-family: YS;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis ul.detail li span.title {
|
||||||
|
text-align: left;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis ul.detail li span.val {
|
||||||
|
text-align: right;
|
||||||
|
padding-right: 10px;
|
||||||
|
font-family: Number;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .weapon .star {
|
||||||
|
height: 20px;
|
||||||
|
width: 100px;
|
||||||
|
background: url("../common/item/star.png") no-repeat;
|
||||||
|
background-size: 100px 100px;
|
||||||
|
transform: scale(0.8);
|
||||||
|
transform-origin: 100px 10px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .weapon .star.star-2 {
|
||||||
|
background-position: 0 -20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .weapon .star.star-3 {
|
||||||
|
background-position: 0 -40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .weapon .star.star-4 {
|
||||||
|
background-position: 0 -60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .weapon .star.star-5 {
|
||||||
|
background-position: 0 -80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.artis .weapon {
|
||||||
|
overflow: hidden;
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .weapon img {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .weapon .head {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
left: 0;
|
||||||
|
text-align: right;
|
||||||
|
padding: 13px 12px 13px 0;
|
||||||
|
z-index: 3;
|
||||||
|
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.7));
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .weapon .head strong {
|
||||||
|
font-size: 18px;
|
||||||
|
margin-bottom: 3px;
|
||||||
|
font-weight: normal;
|
||||||
|
font-family: YS;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .weapon .head > span {
|
||||||
|
display: block;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .weapon span {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .weapon .affix {
|
||||||
|
color: #000;
|
||||||
|
padding: 0 7px;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-left: 5px;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.artis .weapon .affix-1 {
|
||||||
|
box-shadow: 0 0 4px 0 #a3a3a3 inset;
|
||||||
|
background: #ebebebaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .weapon .affix-2 {
|
||||||
|
box-shadow: 0 0 4px 0 #51b72fbd inset;
|
||||||
|
background: #ddffdeaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .weapon .affix-3 {
|
||||||
|
box-shadow: 0 0 4px 0 #396cdecf inset;
|
||||||
|
background: #ddebffaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .weapon .affix-4 {
|
||||||
|
box-shadow: 0 0 4px 0 #c539debf inset;
|
||||||
|
background: #ffddf0aa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .weapon .affix-5 {
|
||||||
|
box-shadow: 0 0 4px 0 #deaf39 inset;
|
||||||
|
background: #fff6dd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .stat {
|
||||||
|
height: 100px;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .stat {
|
||||||
|
display: table-row;
|
||||||
|
padding: 18px 10px;
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .stat > div {
|
||||||
|
display: table-cell;
|
||||||
|
text-align: center;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .stat strong {
|
||||||
|
display: block;
|
||||||
|
height: 40px;
|
||||||
|
font-size: 30px;
|
||||||
|
font-family: Number;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-msg {
|
||||||
|
font-family: Number, YS;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-msg .thead > div {
|
||||||
|
text-align: left;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-msg .th {
|
||||||
|
text-align: left;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-msg .tr .td {
|
||||||
|
padding: 8px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-msg .info {
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: left;
|
||||||
|
padding-left: 10px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.dmg-calc {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-calc .thead {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-calc .thead > div {
|
||||||
|
line-height: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-calc .cont-table div {
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: center;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-calc .title {
|
||||||
|
text-align: center;
|
||||||
|
padding-right: 0;
|
||||||
|
min-width: 70px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-calc .td {
|
||||||
|
padding: 5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-calc strong {
|
||||||
|
font-weight: normal;
|
||||||
|
display: block;
|
||||||
|
font-family: Number, YS;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-calc span {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #aaa;
|
||||||
|
font-family: Number, YS;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-calc .na,
|
||||||
|
.dmg-calc .eq {
|
||||||
|
background: rgba(50, 50, 50, .5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-calc .na {
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-calc .lt {
|
||||||
|
background: rgba(23, 112, 41, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-calc .gt {
|
||||||
|
background: rgba(112, 23, 23, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-desc {
|
||||||
|
color: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-desc ul {
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-desc ul li {
|
||||||
|
color: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmg-desc strong {
|
||||||
|
color: #d3bc8e;
|
||||||
|
display: inline;
|
||||||
|
padding: 0 3px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.artis .stat span {
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 20px;
|
||||||
|
color: #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.char-优菈 .main-pic {
|
||||||
|
margin-left: -175px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.char-烟绯 .main-pic {
|
||||||
|
margin-left: -135px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.char-香菱 .main-pic {
|
||||||
|
margin-left: -195px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.char-迪奥娜 .main-pic {
|
||||||
|
margin-left: -180px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.char-可莉 .main-pic {
|
||||||
|
margin-left: -210px;
|
||||||
|
}
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
@ -37,7 +37,7 @@
|
|||||||
body {
|
body {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
color: #1e1f20;
|
color: #1e1f20;
|
||||||
font-family: PingFangSC-Medium, PingFang SC, sans-serif;
|
font-family: Number, YS2, PingFangSC-Medium, PingFang SC, sans-serif;
|
||||||
transform: scale(1.4);
|
transform: scale(1.4);
|
||||||
transform-origin: 0 0;
|
transform-origin: 0 0;
|
||||||
width: 600px;
|
width: 600px;
|
||||||
@ -89,7 +89,13 @@ body {
|
|||||||
position: relative;
|
position: relative;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
text-shadow: 1px 1px 1px #000;
|
text-shadow: 1px 1px 1px #000;
|
||||||
margin-bottom: 10px;
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
.copyright .version {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #d3bc8e;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 3px;
|
||||||
}
|
}
|
||||||
/* */
|
/* */
|
||||||
.cons {
|
.cons {
|
||||||
@ -225,7 +231,7 @@ body {
|
|||||||
background: rgba(0, 0, 0, 0.4);
|
background: rgba(0, 0, 0, 0.4);
|
||||||
box-shadow: 0 0 1px 0 #fff;
|
box-shadow: 0 0 1px 0 #fff;
|
||||||
color: #d3bc8e;
|
color: #d3bc8e;
|
||||||
font-family: YS;
|
font-family: Number, YS;
|
||||||
padding: 10px 20px;
|
padding: 10px 20px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
border-radius: 10px 10px 0 0;
|
border-radius: 10px 10px 0 0;
|
||||||
@ -309,4 +315,10 @@ ul.cont-msg li strong {
|
|||||||
min-width: 100px;
|
min-width: 100px;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
.logo {
|
||||||
|
font-size: 18px;
|
||||||
|
text-align: center;
|
||||||
|
color: #fff;
|
||||||
|
margin: 20px 0 10px 0;
|
||||||
|
}
|
||||||
/*# sourceMappingURL=common.css.map */
|
/*# sourceMappingURL=common.css.map */
|
@ -43,7 +43,7 @@
|
|||||||
body {
|
body {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
color: #1e1f20;
|
color: #1e1f20;
|
||||||
font-family: PingFangSC-Medium, PingFang SC, sans-serif;
|
font-family: Number, YS2, PingFangSC-Medium, PingFang SC, sans-serif;
|
||||||
transform: scale(1.4);
|
transform: scale(1.4);
|
||||||
transform-origin: 0 0;
|
transform-origin: 0 0;
|
||||||
width: 600px;
|
width: 600px;
|
||||||
@ -107,9 +107,17 @@ body {
|
|||||||
position: relative;
|
position: relative;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
text-shadow: 1px 1px 1px #000;
|
text-shadow: 1px 1px 1px #000;
|
||||||
margin-bottom: 10px;
|
margin: 10px 0;
|
||||||
|
|
||||||
|
.version {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #d3bc8e;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 3px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* */
|
/* */
|
||||||
|
|
||||||
.cons {
|
.cons {
|
||||||
@ -122,10 +130,6 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.cons(@idx, @bg, @color:#fff) {
|
.cons(@idx, @bg, @color:#fff) {
|
||||||
.cons-@{idx} {
|
.cons-@{idx} {
|
||||||
background: @bg;
|
background: @bg;
|
||||||
@ -194,7 +198,7 @@ each(@elems, {
|
|||||||
background: rgba(0, 0, 0, .4);
|
background: rgba(0, 0, 0, .4);
|
||||||
box-shadow: 0 0 1px 0 #fff;
|
box-shadow: 0 0 1px 0 #fff;
|
||||||
color: #d3bc8e;
|
color: #d3bc8e;
|
||||||
font-family: YS;
|
font-family: Number, YS;
|
||||||
padding: 10px 20px;
|
padding: 10px 20px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
border-radius: 10px 10px 0 0;
|
border-radius: 10px 10px 0 0;
|
||||||
@ -294,4 +298,11 @@ ul.cont-msg li strong {
|
|||||||
background: rgba(0, 0, 0, .4);
|
background: rgba(0, 0, 0, .4);
|
||||||
min-width: 100px;
|
min-width: 100px;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
font-size: 18px;
|
||||||
|
text-align: center;
|
||||||
|
color: #fff;
|
||||||
|
margin: 20px 0 10px 0;
|
||||||
|
}
|
||||||
|
16
resources/common/layout/default.html
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
|
||||||
|
<link rel="shortcut icon" href="#"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/common/common.css"/>
|
||||||
|
{{block 'css'}}
|
||||||
|
{{/block}}
|
||||||
|
</head>
|
||||||
|
<body class="elem-{{element||elem||`hydro`}} {{displayMode || mode || `default`}}-mode {{bodyClass}}" {{sys.scale}}>
|
||||||
|
<div class="container" id="container">
|
||||||
|
{{block 'main'}}{{/block}}
|
||||||
|
<div class="copyright">{{@sys.copyright}}</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
16
resources/common/layout/elem.html
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
|
||||||
|
<link rel="shortcut icon" href="#"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/common/common.css"/>
|
||||||
|
{{block 'css'}}
|
||||||
|
{{/block}}
|
||||||
|
</head>
|
||||||
|
<body class="elem-{{element||elem||`hydro`}} {{displayMode || mode || `default`}}-mode {{bodyClass}}" {{sys.scale}}>
|
||||||
|
<div class="container elem-bg" id="container">
|
||||||
|
{{block 'main'}}{{/block}}
|
||||||
|
<div class="copyright">{{@sys.copyright}}</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -113,4 +113,4 @@
|
|||||||
width: 52px;
|
width: 52px;
|
||||||
height: 52px;
|
height: 52px;
|
||||||
}
|
}
|
||||||
/*# sourceMappingURL=artis-detail.css.map */
|
/*# sourceMappingURL=artis-detail.less.map */
|
@ -1,41 +1,35 @@
|
|||||||
<!DOCTYPE html>
|
{{extend defaultLayout}}
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
|
|
||||||
<link rel="shortcut icon" href="#"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/common/common.css"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/help/index.css"/>
|
|
||||||
</head>
|
|
||||||
<body class="body_box" {{cfgScale}}>
|
|
||||||
<div id="container" class="container">
|
|
||||||
<div class="info_box">
|
|
||||||
<div class="head-box type{{bgType}}">
|
|
||||||
<div class="title">使用帮助</div>
|
|
||||||
<div class="label">Yunzai-Bot & Miao-Plugin</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{each helpCfg helpGroup}}
|
{{block 'css'}}
|
||||||
<div class="cont-box">
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/help/index.css"/>
|
||||||
<div class="help-group">{{helpGroup.group}}</div>
|
{{/block}}
|
||||||
<div class="help-table">
|
|
||||||
{{each helpGroup.list help idx}}
|
{{block 'main'}}
|
||||||
{{if idx%3 == 0}}
|
<div class="info_box">
|
||||||
<div class="tr">
|
<div class="head-box type{{bgType}}">
|
||||||
{{/if}}
|
<div class="title">使用帮助</div>
|
||||||
<div class="td">
|
<div class="label">Yunzai-Bot & Miao-Plugin</div>
|
||||||
<span class="help-icon" style="{{help.css}}"></span>
|
</div>
|
||||||
<strong class="help-title">{{help.title}}</strong>
|
</div>
|
||||||
<span class="help-desc">{{help.desc}}</span>
|
|
||||||
</div>
|
{{each helpCfg helpGroup}}
|
||||||
{{if idx%3 ==2 || idx == helpGroup.list.length -1}}
|
<div class="cont-box">
|
||||||
</div>
|
<div class="help-group">{{helpGroup.group}}</div>
|
||||||
{{/if}}
|
<div class="help-table">
|
||||||
{{/each}}
|
{{each helpGroup.list help idx}}
|
||||||
</div>
|
{{if idx%3 == 0}}
|
||||||
|
<div class="tr">
|
||||||
|
{{/if}}
|
||||||
|
<div class="td">
|
||||||
|
<span class="help-icon" style="{{help.css}}"></span>
|
||||||
|
<strong class="help-title">{{help.title}}</strong>
|
||||||
|
<span class="help-desc">{{help.desc}}</span>
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{if idx%3 ==2 || idx == helpGroup.list.length -1}}
|
||||||
<div class="copyright"> Created By Yunzai-Bot & Miao-Plugin</div>
|
|
||||||
</div>
|
</div>
|
||||||
</body>
|
{{/if}}
|
||||||
</html>
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
{{/block}}
|
66
resources/help/version-info.css
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
* {
|
||||||
|
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 {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.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 */
|
33
resources/help/version-info.html
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{{extend elemLayout}}
|
||||||
|
|
||||||
|
{{block 'css'}}
|
||||||
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/help/version-info.css"/>
|
||||||
|
{{/block}}
|
||||||
|
|
||||||
|
{{block 'main'}}
|
||||||
|
{{each changelogs ds idx}}
|
||||||
|
<div class="cont log-cont">
|
||||||
|
{{if idx === 0 }}
|
||||||
|
<div class="cont-title current-version">当前版本 {{ds.version}}</div>
|
||||||
|
{{else}}
|
||||||
|
<div class="cont-title">喵喵版本 {{ds.version}}</div>
|
||||||
|
{{/if}}
|
||||||
|
<div class="cont-body">
|
||||||
|
<ul class="log-ul">
|
||||||
|
{{each ds.logs log}}
|
||||||
|
<li>
|
||||||
|
<p>{{@log.title}}</p>
|
||||||
|
{{if log.logs.length > 0}}
|
||||||
|
<ul class="sub-log-ul">
|
||||||
|
{{each log.logs ls}}
|
||||||
|
<li>{{@ls}}</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
{{/if}}
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
{{/block}}
|
83
resources/help/version-info.less
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
.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 {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
}
|
11
resources/meta/character/凯亚/calc.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
export const details = [{
|
||||||
|
title: "霜袭E伤害",
|
||||||
|
dmg: ({ talent }, dmg) => dmg(talent.e['技能伤害'], 'e')
|
||||||
|
}, {
|
||||||
|
title: "Q单段伤害",
|
||||||
|
dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害'], 'q')
|
||||||
|
}];
|
||||||
|
|
||||||
|
export const mainAttr = "atk,cpct,cdmg";
|
||||||
|
|
||||||
|
export const buffs = [];
|
39
resources/meta/character/安柏/calc.js
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
export const details = [{
|
||||||
|
title: "重击伤害",
|
||||||
|
dmg: ({ talent }, dmg) => dmg(talent.a['满蓄力瞄准射击'], 'a2')
|
||||||
|
}, {
|
||||||
|
title: "兔兔伯爵爆炸",
|
||||||
|
dmg: ({ talent }, dmg) => dmg(talent.e['爆炸伤害'], 'e')
|
||||||
|
}, {
|
||||||
|
title: "兔兔伯爵蒸发",
|
||||||
|
check: ({ cons }) => cons < 2,
|
||||||
|
dmg: ({ talent }, dmg) => dmg(talent.e['爆炸伤害'], 'e', 'zf')
|
||||||
|
}, {
|
||||||
|
title: "引爆兔兔伯爵蒸发",
|
||||||
|
cons: 2,
|
||||||
|
dmg: ({ talent }, dmg) => dmg(talent.e['爆炸伤害'] * 3, 'e', 'zf')
|
||||||
|
}, {
|
||||||
|
title: "Q箭雨总伤害",
|
||||||
|
params: { q: true },
|
||||||
|
dmg: ({ talent }, dmg) => dmg(talent.q['箭雨总伤害'], 'q')
|
||||||
|
}];
|
||||||
|
|
||||||
|
export const mainAttr = "atk,cpct,cdmg,mastery";
|
||||||
|
|
||||||
|
export const buffs = [{
|
||||||
|
title: "安柏天赋:命中弱点后攻击力提升15%",
|
||||||
|
data: {
|
||||||
|
atkPct: 15
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
title: "安柏被动:Q暴击率提高10%",
|
||||||
|
data: {
|
||||||
|
qCpct: 10
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
title: "元素精通:蒸发融化伤害提高[zf]%",
|
||||||
|
mastery: "zf,rh"
|
||||||
|
}, {
|
||||||
|
title: "安柏2命:瞄准引爆兔兔伯爵伤害提高200%",
|
||||||
|
cons: 2
|
||||||
|
}];
|
36
resources/meta/character/迪奥娜/calc.js
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
export const details = [{
|
||||||
|
title: "长按E总伤害",
|
||||||
|
dmg: ({ talent }, dmg) => dmg(talent.e['猫爪伤害'] * 5, 'e')
|
||||||
|
}, {
|
||||||
|
title: "长按E总伤害",
|
||||||
|
dmg: ({ talent, attr, calc }, { shield }) =>
|
||||||
|
shield(talent.e['护盾基础吸收量2'][0] * calc(attr.hp) / 100 + talent.e['护盾基础吸收量2'][1] * 1)
|
||||||
|
}, ({ cons }) => {
|
||||||
|
return {
|
||||||
|
title: `${cons === 6 ? "半血" : ""}Q每跳治疗`,
|
||||||
|
dmg: ({ talent, calc, attr }, { heal }) =>
|
||||||
|
heal(talent.q['持续治疗量2'][0] * calc(attr.hp) / 100 + talent.q['持续治疗量2'][1] * 1)
|
||||||
|
}
|
||||||
|
}];
|
||||||
|
|
||||||
|
export const mainAttr = "atk,hp,cpct,cdmg";
|
||||||
|
|
||||||
|
export const buffs = [{
|
||||||
|
title: "迪奥娜天赋:长按E获得75%护盾吸收量加成",
|
||||||
|
data: {
|
||||||
|
shield: 75
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
title: "迪奥娜2命:猫爪冻冻造成的伤害提高15%,护盾吸收量提高15%",
|
||||||
|
cons: 2,
|
||||||
|
data: {
|
||||||
|
eDmg: 15,
|
||||||
|
shield: 15
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
title: "迪奥娜6命:生命值低于50%时受治疗加成提升30%",
|
||||||
|
cons: 6,
|
||||||
|
data: {
|
||||||
|
heal: 30
|
||||||
|
}
|
||||||
|
}];
|
@ -1,55 +1,47 @@
|
|||||||
<!DOCTYPE html>
|
{{extend defaultLayout}}
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
|
|
||||||
<link rel="shortcut icon" href="#"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/common/common.css?v=1.0"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/stat/common.css?v=1.0"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/stat/abyss-pct.css?v=1.0"/>
|
|
||||||
<link rel="preload" href="{{_res_path}}/font/tttgbnumber.ttf" as="font">
|
|
||||||
</head>
|
|
||||||
<body id="container" class="body_box" {{cfgScale}}>
|
|
||||||
<div class="container">
|
|
||||||
<div class="info_box">
|
|
||||||
<div class="head-box type{{bgType}}">
|
|
||||||
{{if chooseFloor == -1}}
|
|
||||||
<div class="title">深渊出场率统计</div>
|
|
||||||
<div class="label">全角色出场率统计(出场记录/总记录)</div>
|
|
||||||
{{else}}
|
|
||||||
<div class="title">深渊第{{floorName[chooseFloor]}}出场率</div>
|
|
||||||
<div class="label">全角色出场率统计(出场记录/总记录)</div>
|
|
||||||
{{/if}}
|
|
||||||
<img class="genshin_logo" src="{{_sys_res_path}}/genshin/roleAll/原神.png"/>
|
|
||||||
</div>
|
|
||||||
<% let pct = function (num) {
|
|
||||||
return (num * 100).toFixed(2);
|
|
||||||
} %>
|
|
||||||
{{each abyss ds}}
|
|
||||||
{{if chooseFloor == -1 || chooseFloor == ds.floor}}
|
|
||||||
<div class="info_box_border">
|
|
||||||
<div class="line_box">
|
|
||||||
<span class="line"></span>
|
|
||||||
<span class="text">第{{floorName[ds.floor]}}</span>
|
|
||||||
<span class="line"></span>
|
|
||||||
</div>
|
|
||||||
<div class="card-list">
|
|
||||||
{{each ds.avatars char}}
|
|
||||||
<div class="item star{{char.star == 4? 4:5}}">
|
|
||||||
<img class="role"
|
|
||||||
src="{{_sys_res_path}}/genshin/logo/role/{{char.name}}.png"
|
|
||||||
/>
|
|
||||||
<div class="num_name">{{pct(char.value)}}%</div>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{/if}}
|
{{block 'css'}}
|
||||||
{{/each}}
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/stat/common.css?v=1.0"/>
|
||||||
<p class="notice notice-center"> 数据来源:DGP-Studio-胡桃API . 最后更新时间:{{lastUpdate}} </p>
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/stat/abyss-pct.css?v=1.0"/>
|
||||||
<div class="copyright"> Created By Yunzai-Bot & Miao-Plugin</div>
|
{{/block}}
|
||||||
</div>
|
|
||||||
|
{{block 'main'}}
|
||||||
|
<div class="info_box">
|
||||||
|
<div class="head-box type{{bgType}}">
|
||||||
|
{{if chooseFloor == -1}}
|
||||||
|
<div class="title">深渊出场率统计</div>
|
||||||
|
<div class="label">全角色出场率统计(出场记录/总记录)</div>
|
||||||
|
{{else}}
|
||||||
|
<div class="title">深渊第{{floorName[chooseFloor]}}出场率</div>
|
||||||
|
<div class="label">全角色出场率统计(出场记录/总记录)</div>
|
||||||
|
{{/if}}
|
||||||
|
<img class="genshin_logo" src="{{_sys_res_path}}/genshin/roleAll/原神.png"/>
|
||||||
|
</div>
|
||||||
|
<% let pct = function (num) {
|
||||||
|
return (num * 100).toFixed(2);
|
||||||
|
} %>
|
||||||
|
{{each abyss ds}}
|
||||||
|
{{if chooseFloor == -1 || chooseFloor == ds.floor}}
|
||||||
|
<div class="info_box_border">
|
||||||
|
<div class="line_box">
|
||||||
|
<span class="line"></span>
|
||||||
|
<span class="text">第{{floorName[ds.floor]}}</span>
|
||||||
|
<span class="line"></span>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="card-list">
|
||||||
|
{{each ds.avatars char}}
|
||||||
|
<div class="item star{{char.star == 4? 4:5}}">
|
||||||
|
<img class="role"
|
||||||
|
src="{{_sys_res_path}}/genshin/logo/role/{{char.name}}.png"
|
||||||
|
/>
|
||||||
|
<div class="num_name">{{pct(char.value)}}%</div>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</body>
|
{{/if}}
|
||||||
</html>
|
{{/each}}
|
||||||
|
<p class="notice notice-center"> 数据来源:DGP-Studio-胡桃API . 最后更新时间:{{lastUpdate}} </p>
|
||||||
|
</div>
|
||||||
|
{{/block}}
|
@ -1,74 +1,65 @@
|
|||||||
<!DOCTYPE html>
|
{{extend defaultLayout}}
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
|
|
||||||
<link rel="shortcut icon" href="#"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/common/common.css?v=1.0"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/stat/common.css?v=1.0"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/stat/abyss-team.css?v=1.0"/>
|
|
||||||
<link rel="preload" href="{{_res_path}}/font/tttgbnumber.ttf" as="font">
|
|
||||||
</head>
|
|
||||||
<body id="container" class="body_box" {{cfgScale}}>
|
|
||||||
<div class="container">
|
|
||||||
<div class="info_box">
|
|
||||||
<div class="head-box type{{bgType}}">
|
|
||||||
<div class="title">深渊配队建议</div>
|
|
||||||
<img class="genshin_logo" src="{{_sys_res_path}}/genshin/roleAll/原神.png"/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="cont">
|
{{block 'css'}}
|
||||||
<div class="cont-title">深渊配队说明</div>
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/stat/common.css?v=1.0"/>
|
||||||
<div class="cont-body">
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/stat/abyss-team.css?v=1.0"/>
|
||||||
<ul class="cont-msg">
|
{{/block}}
|
||||||
<li>根据<strong>当前账号的角色练度</strong>及本期深渊出场数据,推荐较匹配的配队方案</li>
|
|
||||||
<li>若当前记录可用配队方案少于4组时,会使用未持有角色的方案进行补充</li>
|
|
||||||
<li>深渊出场数据来自<strong>胡桃API</strong>,为SnapGenshin用户自主上传的深渊挑战记录,感谢SG团队</li>
|
|
||||||
<li>月初及月中深渊刚刷新后挑战数据可能不足,请等待几天之后数据会逐步稳定</li>
|
|
||||||
<li>配队列表<strong>仅供参考</strong>,可根据账号实际情况及个人倾向进行灵活调整</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{each teams floorTeam floor}}
|
{{block 'main'}}
|
||||||
<div class="cont">
|
<div class="info_box">
|
||||||
|
<div class="head-box type{{bgType}}">
|
||||||
|
<div class="title">深渊配队建议</div>
|
||||||
|
<img class="genshin_logo" src="{{_sys_res_path}}/genshin/roleAll/原神.png"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="cont-table">
|
<div class="cont">
|
||||||
<div class="tr thead">
|
<div class="cont-title">深渊配队说明</div>
|
||||||
<div>{{floor}}层</div>
|
<div class="cont-body">
|
||||||
<div>上半</div>
|
<ul class="cont-msg">
|
||||||
<div>下半</div>
|
<li>根据<strong>当前账号的角色练度</strong>及本期深渊出场数据,推荐较匹配的配队方案</li>
|
||||||
</div>
|
<li>若当前记录可用配队方案少于4组时,会使用未持有角色的方案进行补充</li>
|
||||||
{{each floorTeam team idx}}
|
<li>深渊出场数据来自<strong>胡桃API</strong>,为SnapGenshin用户自主上传的深渊挑战记录,感谢SG团队</li>
|
||||||
<div class="tr">
|
<li>月初及月中深渊刚刷新后挑战数据可能不足,请等待几天之后数据会逐步稳定</li>
|
||||||
<div class="title">配队{{idx+1}}<span class="team-count">{{team.count}}次记录</span></div>
|
<li>配队列表<strong>仅供参考</strong>,可根据账号实际情况及个人倾向进行灵活调整</li>
|
||||||
{{each team teamData key}}
|
</ul>
|
||||||
{{if key === "up" || key === "down"}}
|
</div>
|
||||||
<div>
|
</div>
|
||||||
<div class="card-list">
|
|
||||||
{{each teamData.teamArr id}}
|
|
||||||
<div
|
|
||||||
class="card star{{avatars[id].star == 4 ? 4:5}} {{avatars[id].level*1 === 0 ? 'no-character':'has-character'}}">
|
|
||||||
<img class="role"
|
|
||||||
src="{{_sys_res_path}}/genshin/logo/role/{{avatars[id].name}}.png"
|
|
||||||
/>
|
|
||||||
<span class="cons cons-{{avatars[id].cons}} for-has">{{avatars[id].cons}}</span>
|
|
||||||
<span class="lvl for-has">Lv.{{avatars[id].level}}</span>
|
|
||||||
<span class="for-no no-label">暂无</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{/each}}
|
{{each teams floorTeam floor}}
|
||||||
</div>
|
<div class="cont">
|
||||||
</div>
|
|
||||||
{{/if}}
|
<div class="cont-table">
|
||||||
{{/each}}
|
<div class="tr thead">
|
||||||
|
<div>{{floor}}层</div>
|
||||||
|
<div>上半</div>
|
||||||
|
<div>下半</div>
|
||||||
|
</div>
|
||||||
|
{{each floorTeam team idx}}
|
||||||
|
<div class="tr">
|
||||||
|
<div class="title">配队{{idx+1}}<span class="team-count">{{team.count}}次记录</span></div>
|
||||||
|
{{each team teamData key}}
|
||||||
|
{{if key === "up" || key === "down"}}
|
||||||
|
<div>
|
||||||
|
<div class="card-list">
|
||||||
|
{{each teamData.teamArr id}}
|
||||||
|
<div
|
||||||
|
class="card star{{avatars[id].star == 4 ? 4:5}} {{avatars[id].level*1 === 0 ? 'no-character':'has-character'}}">
|
||||||
|
<img class="role"
|
||||||
|
src="{{_sys_res_path}}/genshin/logo/role/{{avatars[id].name}}.png"
|
||||||
|
/>
|
||||||
|
<span class="cons cons-{{avatars[id].cons}} for-has">{{avatars[id].cons}}</span>
|
||||||
|
<span class="lvl for-has">Lv.{{avatars[id].level}}</span>
|
||||||
|
<span class="for-no no-label">暂无</span>
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{{/if}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
<div class="copyright"> Created By Yunzai-Bot & Miao-Plugin</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</body>
|
{{/each}}
|
||||||
</html>
|
</div>
|
||||||
|
{{/block}}
|
@ -1,92 +1,86 @@
|
|||||||
<!DOCTYPE html>
|
{{extend defaultLayout}}
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
|
|
||||||
<link rel="shortcut icon" href="#"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/common/common.css?v=1.0"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/stat/common.css?v=1.0"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/stat/character.css?v=1.0"/>
|
|
||||||
<link rel="preload" href="{{_res_path}}/font/tttgbnumber.ttf" as="font">
|
|
||||||
<% let pct = function (num) {
|
|
||||||
return (num * 100).toFixed(2);
|
|
||||||
} %>
|
|
||||||
</head>
|
|
||||||
<body id="container" class="body_box" {{cfgScale}}>
|
|
||||||
<div class="container">
|
|
||||||
<div class="info_box">
|
|
||||||
<div class="head-box type{{bgType}}">
|
|
||||||
{{if mode === "char"}}
|
|
||||||
<div class="title">角色持有率统计</div>
|
|
||||||
<div class="label">全角色综合持有率统计</div>
|
|
||||||
{{else}}
|
|
||||||
<div class="title">角色{{conNum == -1 ? "命座" : "零一二三四五满"[conNum]+"命"}}分布统计</div>
|
|
||||||
<div class="label">统计所有角色命座,无论角色是否出场</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<img class="genshin_logo" src="{{_sys_res_path}}/genshin/roleAll/原神.png"/>
|
{{block 'css'}}
|
||||||
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/stat/common.css?v=1.0"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/stat/character.css?v=1.0"/>
|
||||||
|
{{/block}}
|
||||||
|
|
||||||
|
<% let pct = function (num) {
|
||||||
|
return (num * 100).toFixed(2);
|
||||||
|
} %>
|
||||||
|
|
||||||
|
{{block 'main'}}
|
||||||
|
|
||||||
|
<div class="info_box">
|
||||||
|
<div class="head-box type{{bgType}}">
|
||||||
|
{{if mode === "char"}}
|
||||||
|
<div class="title">角色持有率统计</div>
|
||||||
|
<div class="label">全角色综合持有率统计</div>
|
||||||
|
{{else}}
|
||||||
|
<div class="title">角色{{conNum == -1 ? "命座" : "零一二三四五满"[conNum]+"命"}}分布统计</div>
|
||||||
|
<div class="label">统计所有角色命座,无论角色是否出场</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<img class="genshin_logo" src="{{_sys_res_path}}/genshin/roleAll/原神.png"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="data-box">
|
||||||
|
<div class="char-list">
|
||||||
|
<div class="avatar th">
|
||||||
|
<div class="index">#</div>
|
||||||
|
<div class="name">
|
||||||
|
角色
|
||||||
</div>
|
</div>
|
||||||
|
<div class="lvl">持有率</div>
|
||||||
|
<div class="char-cons">
|
||||||
|
<div class="cons-pct">
|
||||||
|
<div class="cons-n0">0命</div>
|
||||||
|
<div class="cons-1">1命</div>
|
||||||
|
<div class="cons-2">2命</div>
|
||||||
|
<div class="cons-3">3命</div>
|
||||||
|
<div class="cons-4">4命</div>
|
||||||
|
<div class="cons-5">5命</div>
|
||||||
|
<div class="cons-6">6命</div>
|
||||||
|
{{if mode === "char"}}
|
||||||
|
<div class="life_bg">无</div>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="data-box">
|
</div>
|
||||||
<div class="char-list">
|
</div>
|
||||||
<div class="avatar th">
|
{{each chars char idx}}
|
||||||
<div class="index">#</div>
|
<div class="avatar">
|
||||||
<div class="name">
|
<div class="index star{{char.star}}">{{idx+1}}</div>
|
||||||
角色
|
<div class="name_cont star{{char.star}}">
|
||||||
</div>
|
<div class="name">
|
||||||
<div class="lvl">持有率</div>
|
<div class="avatar_img">
|
||||||
<div class="char-cons">
|
<img src="{{_sys_res_path}}genshin/logo/side/{{char.name}}.png" onerror="whenError(this)"/>
|
||||||
<div class="cons-pct">
|
|
||||||
<div class="cons-n0">0命</div>
|
|
||||||
<div class="cons-1">1命</div>
|
|
||||||
<div class="cons-2">2命</div>
|
|
||||||
<div class="cons-3">3命</div>
|
|
||||||
<div class="cons-4">4命</div>
|
|
||||||
<div class="cons-5">5命</div>
|
|
||||||
<div class="cons-6">6命</div>
|
|
||||||
{{if mode === "char"}}
|
|
||||||
<div class="life_bg">无</div>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{{each chars char idx}}
|
<div class="avatar_name">
|
||||||
<div class="avatar">
|
{{abbr[char.name] || char.name}}
|
||||||
<div class="index star{{char.star}}">{{idx+1}}</div>
|
|
||||||
<div class="name_cont star{{char.star}}">
|
|
||||||
<div class="name">
|
|
||||||
<div class="avatar_img">
|
|
||||||
<img src="{{_sys_res_path}}genshin/logo/side/{{char.name}}.png" onerror="whenError(this)"/>
|
|
||||||
</div>
|
|
||||||
<div class="avatar_name">
|
|
||||||
{{abbr[char.name] || char.name}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="pct">{{pct(char.hold)}}</div>
|
|
||||||
<div class="char-cons">
|
|
||||||
<div class="cons-pct">
|
|
||||||
{{each char.cons con idx}}
|
|
||||||
<div>{{pct(con.value)}}</div>
|
|
||||||
{{/each}}
|
|
||||||
{{if mode ==="char"}}
|
|
||||||
<div>{{pct(1-char.hold)}}</div>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
<div class="cons-bg">
|
|
||||||
{{each char.cons con idx}}
|
|
||||||
<div class="cons-{{con.id ===0?'n0':con.id}}" style='{{"width:"+pct(con.value)+"%"}}'></div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="pct">{{pct(char.hold)}}</div>
|
||||||
|
<div class="char-cons">
|
||||||
|
<div class="cons-pct">
|
||||||
|
{{each char.cons con idx}}
|
||||||
|
<div>{{pct(con.value)}}</div>
|
||||||
|
{{/each}}
|
||||||
|
{{if mode ==="char"}}
|
||||||
|
<div>{{pct(1-char.hold)}}</div>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
<div class="cons-bg">
|
||||||
|
{{each char.cons con idx}}
|
||||||
|
<div class="cons-{{con.id ===0?'n0':con.id}}" style='{{"width:"+pct(con.value)+"%"}}'></div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
<p class="notice"> 数据来源:DGP-Studio-胡桃API . 最后更新时间:{{lastUpdate}} </p>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="copyright"> Created By Yunzai-Bot & Miao-Plugin</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
|
<p class="notice"> 数据来源:DGP-Studio-胡桃API . 最后更新时间:{{lastUpdate}} </p>
|
||||||
</body>
|
</div>
|
||||||
</html>
|
</div>
|
||||||
|
{{/block}}
|
@ -9,7 +9,7 @@ body {
|
|||||||
color: #1e1f20;
|
color: #1e1f20;
|
||||||
transform: scale(1.4);
|
transform: scale(1.4);
|
||||||
transform-origin: 0 0;
|
transform-origin: 0 0;
|
||||||
background: url("./bg1.png") top left no-repeat #2a3860;
|
background: url("./imgs/bg1.png") top left no-repeat #2a3860;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
width: 600px;
|
width: 600px;
|
||||||
font-family: Number, YS2;
|
font-family: Number, YS2;
|
||||||
@ -17,7 +17,7 @@ body {
|
|||||||
.container {
|
.container {
|
||||||
width: 600px;
|
width: 600px;
|
||||||
padding: 20px 15px 10px 15px;
|
padding: 20px 15px 10px 15px;
|
||||||
background: url("./footer.png") left bottom no-repeat;
|
background: url("./imgs/footer.png") left bottom no-repeat;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
}
|
}
|
||||||
.head-box {
|
.head-box {
|
||||||
|
@ -10,7 +10,7 @@ body {
|
|||||||
color: #1e1f20;
|
color: #1e1f20;
|
||||||
transform: scale(1.4);
|
transform: scale(1.4);
|
||||||
transform-origin: 0 0;
|
transform-origin: 0 0;
|
||||||
background: url("./bg1.png") top left no-repeat #2a3860;
|
background: url("./imgs/bg1.png") top left no-repeat #2a3860;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
width: 600px;
|
width: 600px;
|
||||||
font-family: Number, YS2;
|
font-family: Number, YS2;
|
||||||
@ -19,7 +19,7 @@ body {
|
|||||||
.container {
|
.container {
|
||||||
width: 600px;
|
width: 600px;
|
||||||
padding: 20px 15px 10px 15px;
|
padding: 20px 15px 10px 15px;
|
||||||
background: url("./footer.png") left bottom no-repeat;
|
background: url("./imgs/footer.png") left bottom no-repeat;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 354 KiB After Width: | Height: | Size: 354 KiB |
Before Width: | Height: | Size: 333 KiB After Width: | Height: | Size: 333 KiB |
@ -4,12 +4,6 @@
|
|||||||
.font-number {
|
.font-number {
|
||||||
font-family: Number, YS;
|
font-family: Number, YS;
|
||||||
}
|
}
|
||||||
@font-face {
|
|
||||||
font-family: "tttgbnumber";
|
|
||||||
src: url("../common/font/tttgbnumber.ttf");
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
* {
|
* {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@ -217,7 +211,7 @@ body {
|
|||||||
border-right: 10px solid transparent;
|
border-right: 10px solid transparent;
|
||||||
border-bottom: 20px solid #fff;
|
border-bottom: 20px solid #fff;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: -8px;
|
||||||
left: -9px;
|
left: -9px;
|
||||||
transform: scaleY(0.7);
|
transform: scaleY(0.7);
|
||||||
transform-origin: bottom center;
|
transform-origin: bottom center;
|
||||||
@ -232,6 +226,7 @@ body {
|
|||||||
.now-time {
|
.now-time {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding-top: 5px;
|
padding-top: 5px;
|
||||||
|
margin-bottom: 5px;
|
||||||
}
|
}
|
||||||
.now-time span {
|
.now-time span {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@ -240,6 +235,7 @@ body {
|
|||||||
border-radius: 30px;
|
border-radius: 30px;
|
||||||
padding: 10px 15px;
|
padding: 10px 15px;
|
||||||
border: 1px solid #fff;
|
border: 1px solid #fff;
|
||||||
|
display: inline-block;
|
||||||
}
|
}
|
||||||
.cal-abyss-cont {
|
.cal-abyss-cont {
|
||||||
padding-top: 15px;
|
padding-top: 15px;
|
||||||
|
@ -1,85 +1,79 @@
|
|||||||
<!DOCTYPE html>
|
{{extend elemLayout}}
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
|
|
||||||
<link rel="shortcut icon" href="#"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/common/common.css"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/wiki/calendar.css"/>
|
|
||||||
</head>
|
|
||||||
<body class="elem-hydro {{displayMode}}-mode">
|
|
||||||
<div class="container elem-bg" id="container">
|
|
||||||
<div class="calendar">
|
|
||||||
<div class="cal-bg for-calendar-mode">
|
|
||||||
<table class="cont-table" border-collapse="collapse">
|
|
||||||
<tr class="tr thead">
|
|
||||||
{{each dateList d}}
|
|
||||||
<td colspan="{{d.date.length}}" class="td month">{{d.month}}月</td>
|
|
||||||
{{/each}}
|
|
||||||
</tr>
|
|
||||||
<tr class="tr thead">
|
|
||||||
{{each dateList d}}{{each d.date dn}}
|
|
||||||
<td class="td date {{dn === nowDate ? 'current-date':''}}">{{dn}}日</td>
|
|
||||||
{{/each}} {{/each}}
|
|
||||||
</tr>
|
|
||||||
<tr class="tr">
|
|
||||||
{{each dateList d}}{{each d.date dn}}
|
|
||||||
<td class="line {{dn === nowDate ? 'current-date':''}}"></td>
|
|
||||||
{{/each}} {{/each}}
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="cal-bg for-list-mode">
|
|
||||||
<table class="cont-table" border-collapse="collapse">
|
|
||||||
<tr class="tr thead">
|
|
||||||
<td class="td month">活动列表</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="tr">
|
|
||||||
<td class="line"></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="cal-list">
|
|
||||||
<div class="cal-abyss-cont">
|
|
||||||
{{each abyss li}}
|
|
||||||
<div class="cal-item type-abyss" style="{{`left:${li.left}%;width:${li.width}%`}}">
|
|
||||||
<div class="info">
|
|
||||||
<img src="{{_res_path}}/wiki/imgs/abyss-icon.png" class="cal-icon"/>
|
|
||||||
<strong>{{li.title}}</strong>
|
|
||||||
<span>{{li.label}}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
{{each list li}}
|
|
||||||
<div class="cal-item type-{{li.type}} {{li.elem?'elem-'+li.elem:''}} {{li.width<20 ? 'small-mode':''}}"
|
|
||||||
style="{{`margin-left:${li.left}%;width:${li.width}%`}}"
|
|
||||||
data-id="{{li.id}}"
|
|
||||||
data-type="{{li.type}}">
|
|
||||||
{{if li.banner2}}
|
|
||||||
<div class="banner" style="background-image:url('{{_res_path}}{{li.banner2}}')"></div>
|
|
||||||
{{else if li.banner}}
|
|
||||||
<div class="banner" style="background-image:url('{{li.banner}}')"></div>
|
|
||||||
{{/if}}
|
|
||||||
<div class="info">
|
|
||||||
{{if li.type === "character"}}
|
|
||||||
<img src="{{_res_path}}meta/character/{{li.character}}/face.png" class="character-img"/>
|
|
||||||
{{else}}
|
|
||||||
<img src="{{li.icon}}" class="cal-icon"/>
|
|
||||||
{{/if}}
|
|
||||||
<strong>{{li.title}}</strong>
|
|
||||||
<span>{{li.label}}</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
{{block 'css'}}
|
||||||
{{/each}}
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/wiki/calendar.css"/>
|
||||||
|
{{/block}}
|
||||||
|
|
||||||
|
{{block 'main'}}
|
||||||
|
<div class="calendar">
|
||||||
|
<div class="cal-bg for-calendar-mode">
|
||||||
|
<table class="cont-table" border-collapse="collapse">
|
||||||
|
<tr class="tr thead">
|
||||||
|
{{each dateList d}}
|
||||||
|
<td colspan="{{d.date.length}}" class="td month">{{d.month}}月</td>
|
||||||
|
{{/each}}
|
||||||
|
</tr>
|
||||||
|
<tr class="tr thead">
|
||||||
|
{{each dateList d}}{{each d.date dn}}
|
||||||
|
<td class="td date {{dn === nowDate ? 'current-date':''}}">{{dn}}日</td>
|
||||||
|
{{/each}} {{/each}}
|
||||||
|
</tr>
|
||||||
|
<tr class="tr">
|
||||||
|
{{each dateList d}}{{each d.date dn}}
|
||||||
|
<td class="line {{dn === nowDate ? 'current-date':''}}"></td>
|
||||||
|
{{/each}} {{/each}}
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="cal-bg for-list-mode">
|
||||||
|
<table class="cont-table" border-collapse="collapse">
|
||||||
|
<tr class="tr thead">
|
||||||
|
<td class="td month">活动列表</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="tr">
|
||||||
|
<td class="line"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="cal-list">
|
||||||
|
<div class="cal-abyss-cont">
|
||||||
|
{{each abyss li}}
|
||||||
|
<div class="cal-item type-abyss" style="{{`left:${li.left}%;width:${li.width}%`}}">
|
||||||
|
<div class="info">
|
||||||
|
<img src="{{_res_path}}/wiki/imgs/abyss-icon.png" class="cal-icon"/>
|
||||||
|
<strong>{{li.title}}</strong>
|
||||||
|
<span>{{li.label}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="now-line" style="left:{{nowLeft}}%"></div>
|
|
||||||
<div class="now-line line2" style="left:{{nowLeft}}%"></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="now-time">
|
{{/each}}
|
||||||
<span>当前时间:{{nowTime}}</span>
|
|
||||||
</div>
|
|
||||||
<div class="logo">Created By Yunzai-Bot & Miao-Plugin</div>
|
|
||||||
</div>
|
</div>
|
||||||
</body>
|
{{each list li}}
|
||||||
</html>
|
<div class="cal-item type-{{li.type}} {{li.elem?'elem-'+li.elem:''}} {{li.width<20 ? 'small-mode':''}}"
|
||||||
|
style="{{`margin-left:${li.left}%;width:${li.width}%`}}"
|
||||||
|
data-id="{{li.id}}"
|
||||||
|
data-type="{{li.type}}">
|
||||||
|
{{if li.banner2}}
|
||||||
|
<div class="banner" style="background-image:url('{{_res_path}}{{li.banner2}}')"></div>
|
||||||
|
{{else if li.banner}}
|
||||||
|
<div class="banner" style="background-image:url('{{li.banner}}')"></div>
|
||||||
|
{{/if}}
|
||||||
|
<div class="info">
|
||||||
|
{{if li.type === "character"}}
|
||||||
|
<img src="{{_res_path}}meta/character/{{li.character}}/face.png" class="character-img"/>
|
||||||
|
{{else}}
|
||||||
|
<img src="{{li.icon}}" class="cal-icon"/>
|
||||||
|
{{/if}}
|
||||||
|
<strong>{{li.title}}</strong>
|
||||||
|
<span>{{li.label}}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
<div class="now-line" style="left:{{nowLeft}}%"></div>
|
||||||
|
<div class="now-line line2" style="left:{{nowLeft}}%"></div>
|
||||||
|
</div>
|
||||||
|
<div class="now-time">
|
||||||
|
<span>当前时间:{{nowTime}}</span>
|
||||||
|
</div>
|
||||||
|
{{/block}}
|
@ -12,13 +12,6 @@
|
|||||||
font-family: Number, YS;
|
font-family: Number, YS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: "tttgbnumber";
|
|
||||||
src: url("../common/font/tttgbnumber.ttf");
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
* {
|
* {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@ -273,7 +266,7 @@ body {
|
|||||||
border-right: 10px solid transparent;
|
border-right: 10px solid transparent;
|
||||||
border-bottom: 20px solid #fff;
|
border-bottom: 20px solid #fff;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: -8px;
|
||||||
left: -9px;
|
left: -9px;
|
||||||
transform: scaleY(.7);
|
transform: scaleY(.7);
|
||||||
transform-origin: bottom center;
|
transform-origin: bottom center;
|
||||||
@ -294,6 +287,7 @@ body {
|
|||||||
.now-time {
|
.now-time {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding-top: 5px;
|
padding-top: 5px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@ -302,6 +296,7 @@ body {
|
|||||||
border-radius: 30px;
|
border-radius: 30px;
|
||||||
padding: 10px 15px;
|
padding: 10px 15px;
|
||||||
border: 1px solid #fff;
|
border: 1px solid #fff;
|
||||||
|
display: inline-block;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,7 +206,7 @@ body {
|
|||||||
}
|
}
|
||||||
.talent-detail {
|
.talent-detail {
|
||||||
padding: 30px 15px 5px 15px;
|
padding: 30px 15px 5px 15px;
|
||||||
background: url(card-bg.png) left top repeat-x;
|
background: url(./imgs/card-bg.png) left top repeat-x;
|
||||||
background-size: auto 100%;
|
background-size: auto 100%;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
@ -262,7 +262,6 @@ body {
|
|||||||
margin-top: 15px;
|
margin-top: 15px;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
display: block;
|
display: block;
|
||||||
font-family: Number, YS;
|
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
color: #d3bc8e;
|
color: #d3bc8e;
|
||||||
}
|
}
|
||||||
@ -309,50 +308,6 @@ body {
|
|||||||
.talent-table .tr > div:last-child {
|
.talent-table .tr > div:last-child {
|
||||||
padding-right: 5px;
|
padding-right: 5px;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
|
|
||||||
.talent-table .td,
|
|
||||||
.talent-table .th {
|
|
||||||
font-size: 14px;
|
|
||||||
display: table-cell;
|
|
||||||
box-shadow: 0 0 1px 0 #888 inset;
|
|
||||||
padding: 7px 0;
|
|
||||||
line-height: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.talent-table .tr:nth-child(odd) {
|
|
||||||
background: rgba(34, 41, 51, .6)
|
|
||||||
}
|
|
||||||
|
|
||||||
.talent-table .tr:nth-child(even) {
|
|
||||||
background: rgba(34, 41, 51, .3)
|
|
||||||
}
|
|
||||||
|
|
||||||
.talent-table .th {
|
|
||||||
background: rgba(34, 41, 51, .5);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.talent-table .lv {
|
|
||||||
font-family: tttgbnumber;
|
|
||||||
font-size: 18px;
|
|
||||||
line-height: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.talent-table .th {
|
|
||||||
font-weight: bold;
|
|
||||||
padding: 5px 3px;
|
|
||||||
color: #d3bc8e;
|
|
||||||
}
|
|
||||||
|
|
||||||
.talent-table .talent_name {
|
|
||||||
min-width: 120px;
|
|
||||||
padding: 10px 3px;
|
|
||||||
font-size: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
|
||||||
.passive-talent .talent-table {
|
.passive-talent .talent-table {
|
||||||
display: none;
|
display: none;
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
|
@ -1,157 +1,147 @@
|
|||||||
<!DOCTYPE html>
|
{{extend elemLayout}}
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
|
|
||||||
<link rel="shortcut icon" href="#"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/common/common.css"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{_res_path}}/wiki/character.css"/>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<style>
|
|
||||||
|
|
||||||
</style>
|
{{block 'css'}}
|
||||||
<div class="container elem-{{elem}}" id="container">
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/wiki/character.css"/>
|
||||||
<div class="head-box" style="background-image:url('{{_res_path}}/{{_char}}/party.png')">
|
{{/block}}
|
||||||
<div class="head">
|
|
||||||
<img src="{{_res_path}}{{_char}}/face.png"/>
|
{{block 'main'}}
|
||||||
</div>
|
<div class="head-box" style="background-image:url('{{_res_path}}/{{_char}}/party.png')">
|
||||||
<!-- <div class="head-astro">{{astro}}</div>
|
<div class="head">
|
||||||
<div class="head-icon">
|
<img src="{{_res_path}}{{_char}}/face.png"/>
|
||||||
<img src="{{City}}" />
|
</div>
|
||||||
<img src="{{Weapon}}" />
|
<!-- <div class="head-astro">{{astro}}</div>
|
||||||
<img src="{{Element}}" />
|
<div class="head-icon">
|
||||||
|
<img src="{{City}}" />
|
||||||
|
<img src="{{Weapon}}" />
|
||||||
|
<img src="{{Element}}" />
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<div class="head-detail">
|
||||||
|
<div class="name">{{title}} · {{name}}</div>
|
||||||
|
<div class="desc">{{desc}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="data-box">
|
||||||
|
<div class="tab-label">90级基础数据</div>
|
||||||
|
<div class="data-line">
|
||||||
|
{{each line item}}
|
||||||
|
<div class="data_line_item">
|
||||||
|
<div class="num">{{item.num}}</div>
|
||||||
|
<div class="label">{{item.label}}</div>
|
||||||
</div>
|
</div>
|
||||||
-->
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="head-detail">
|
{{if mode == "talent"}}
|
||||||
<div class="name">{{title}} · {{name}}</div>
|
|
||||||
<div class="desc">{{desc}}</div>
|
{{each talent skill type}}
|
||||||
|
<div class="talent-box elem-bg">
|
||||||
|
<div class="talent-detail cont">
|
||||||
|
<div class="talent-line">
|
||||||
|
<div class="talent-icon">
|
||||||
|
<img src="{{_res_path}}{{_char}}/talent_{{type}}.png"/>
|
||||||
|
</div>
|
||||||
|
<div class="talent-info">
|
||||||
|
<div class="talent-name">{{skill.name}}</div>
|
||||||
|
<div class="talent-desc">
|
||||||
|
{{each skill.desc d}}
|
||||||
|
{{ if d[0] === "<" }}
|
||||||
|
{{@d}}
|
||||||
|
{{else if d!=""}}
|
||||||
|
{{d}}</br>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
<div class="data-box">
|
</div>
|
||||||
<div class="tab-label">90级基础数据</div>
|
{{if skill.tables && skill.tables.length > 0}}
|
||||||
<div class="data-line">
|
<table class="talent-table cont-table">
|
||||||
{{each line item}}
|
<tr class="tr">
|
||||||
<div class="data_line_item">
|
<td class="th"></td>
|
||||||
<div class="num">{{item.num}}</div>
|
{{each skill.lvs lv idx}}
|
||||||
<div class="label">{{item.label}}</div>
|
{{if (type=="a" && idx>4 && idx<11) || (type!="a" && idx>4 && idx < 13)}}
|
||||||
|
<td class="th lv">{{lv}}</td>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</tr>
|
||||||
|
{{each skill.tables tr}}
|
||||||
|
<tr class="tr">
|
||||||
|
<td class="th talent-name">
|
||||||
|
{{tr.name}}
|
||||||
|
</td>
|
||||||
|
{{if tr.isSame}}
|
||||||
|
<td class="td colspan" colspan="{{type == a ? 6 : 8}}" class="td">{{tr.values[0]}}</td>
|
||||||
|
{{else}}
|
||||||
|
{{each tr.values v idx}}
|
||||||
|
{{if (type=="a" && idx>4 && idx<11) || (type!="a" && idx>4 && idx < 13)}}
|
||||||
|
<td class="td">{{v}}</td>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
{{/if}}
|
||||||
|
</tr>
|
||||||
|
{{/each}}
|
||||||
|
</table>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
<div class="talent-box elem-bg">
|
||||||
|
<div class="talent-detail passive-talent">
|
||||||
|
{{each passive pass idx}}
|
||||||
|
<div class="talent-line">
|
||||||
|
<div class="talent-icon">
|
||||||
|
<img src="{{_res_path}}{{_char}}/passive_{{idx}}.png"/>
|
||||||
|
</div>
|
||||||
|
<div class="talent-info">
|
||||||
|
<strong class="talent-name">{{pass.name}}</strong>
|
||||||
|
<div class="talent-desc">
|
||||||
|
{{if pass.tables}}
|
||||||
|
{{each pass.desc d}}
|
||||||
|
{{ if d[0] === "<" }}
|
||||||
|
{{@d}}
|
||||||
|
{{else if d!=""}}
|
||||||
|
{{d}}</br>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
<div class="talent-table">
|
||||||
|
{{each pass.tables tr}}
|
||||||
|
<div class="tr">
|
||||||
|
<div class="th">{{tr.name}}</div>
|
||||||
|
<div class="td">{{tr.values[0]}}</div>
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
|
{{else}}
|
||||||
|
{{@pass.desc}}
|
||||||
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{if mode == "talent"}}
|
|
||||||
|
|
||||||
{{each talent skill type}}
|
|
||||||
<div class="talent-box elem-bg">
|
|
||||||
<div class="talent-detail cont">
|
|
||||||
<div class="talent-line">
|
|
||||||
<div class="talent-icon">
|
|
||||||
<img src="{{_res_path}}{{_char}}/talent_{{type}}.png"/>
|
|
||||||
</div>
|
|
||||||
<div class="talent-info">
|
|
||||||
<div class="talent-name">{{skill.name}}</div>
|
|
||||||
<div class="talent-desc">
|
|
||||||
{{each skill.desc d}}
|
|
||||||
{{ if d[0] === "<" }}
|
|
||||||
{{@d}}
|
|
||||||
{{else if d!=""}}
|
|
||||||
{{d}}</br>
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{if skill.tables && skill.tables.length > 0}}
|
|
||||||
<table class="talent-table cont-table">
|
|
||||||
<tr class="tr">
|
|
||||||
<td class="th"></td>
|
|
||||||
{{each skill.lvs lv idx}}
|
|
||||||
{{if (type=="a" && idx>4 && idx<11) || (type!="a" && idx>4 && idx < 13)}}
|
|
||||||
<td class="th lv">{{lv}}</td>
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
</tr>
|
|
||||||
{{each skill.tables tr}}
|
|
||||||
<tr class="tr">
|
|
||||||
<td class="th talent-name">
|
|
||||||
{{tr.name}}
|
|
||||||
</td>
|
|
||||||
{{if tr.isSame}}
|
|
||||||
<td class="td colspan" colspan="{{type == a ? 6 : 8}}" class="td">{{tr.values[0]}}</td>
|
|
||||||
{{else}}
|
|
||||||
{{each tr.values v idx}}
|
|
||||||
{{if (type=="a" && idx>4 && idx<11) || (type!="a" && idx>4 && idx < 13)}}
|
|
||||||
<td class="td">{{v}}</td>
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
{{/if}}
|
|
||||||
</tr>
|
|
||||||
{{/each}}
|
|
||||||
</table>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
|
|
||||||
<div class="talent-box elem-bg">
|
|
||||||
<div class="talent-detail passive-talent">
|
|
||||||
{{each passive pass idx}}
|
|
||||||
<div class="talent-line">
|
|
||||||
<div class="talent-icon">
|
|
||||||
<img src="{{_res_path}}{{_char}}/passive_{{idx}}.png"/>
|
|
||||||
</div>
|
|
||||||
<div class="talent-info">
|
|
||||||
<strong class="talent-name">{{pass.name}}</strong>
|
|
||||||
<div class="talent-desc">
|
|
||||||
{{if pass.tables}}
|
|
||||||
{{each pass.desc d}}
|
|
||||||
{{ if d[0] === "<" }}
|
|
||||||
{{@d}}
|
|
||||||
{{else if d!=""}}
|
|
||||||
{{d}}</br>
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
<div class="talent-table">
|
|
||||||
{{each pass.tables tr}}
|
|
||||||
<div class="tr">
|
|
||||||
<div class="th">{{tr.name}}</div>
|
|
||||||
<div class="td">{{tr.values[0]}}</div>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
{{else}}
|
|
||||||
{{@pass.desc}}
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{if mode == "cons"}}
|
|
||||||
<div class="talent-box elem-bg">
|
|
||||||
<div class="talent-detail">
|
|
||||||
{{each cons con idx}}
|
|
||||||
<div class="talent-line">
|
|
||||||
<div class="talent-icon">
|
|
||||||
<img src="{{_res_path}}{{_char}}/cons_{{idx}}.png"/>
|
|
||||||
</div>
|
|
||||||
<div class="talent-info">
|
|
||||||
<strong class="talent-name">{{con.name}}</strong>
|
|
||||||
<div class="talent-desc">
|
|
||||||
{{@con.desc}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div class="logo">Created By Yunzai-Bot & Miao-Plugin</div>
|
|
||||||
</div>
|
</div>
|
||||||
</body>
|
{{/each}}
|
||||||
</html>
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{if mode == "cons"}}
|
||||||
|
<div class="talent-box elem-bg">
|
||||||
|
<div class="talent-detail">
|
||||||
|
{{each cons con idx}}
|
||||||
|
<div class="talent-line">
|
||||||
|
<div class="talent-icon">
|
||||||
|
<img src="{{_res_path}}{{_char}}/cons_{{idx}}.png"/>
|
||||||
|
</div>
|
||||||
|
<div class="talent-info">
|
||||||
|
<strong class="talent-name">{{con.name}}</strong>
|
||||||
|
<div class="talent-desc">
|
||||||
|
{{@con.desc}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/block}}
|
@ -239,7 +239,7 @@ body {
|
|||||||
|
|
||||||
.talent-detail {
|
.talent-detail {
|
||||||
padding: 30px 15px 5px 15px;
|
padding: 30px 15px 5px 15px;
|
||||||
background: url(card-bg.png) left top repeat-x;
|
background: url(./imgs/card-bg.png) left top repeat-x;
|
||||||
background-size: auto 100%;
|
background-size: auto 100%;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
@ -302,7 +302,6 @@ body {
|
|||||||
margin-top: 15px;
|
margin-top: 15px;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
display: block;
|
display: block;
|
||||||
font-family: Number, YS;
|
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
color: #d3bc8e;
|
color: #d3bc8e;
|
||||||
}
|
}
|
||||||
@ -361,51 +360,6 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
.talent-table .td,
|
|
||||||
.talent-table .th {
|
|
||||||
font-size: 14px;
|
|
||||||
display: table-cell;
|
|
||||||
box-shadow: 0 0 1px 0 #888 inset;
|
|
||||||
padding: 7px 0;
|
|
||||||
line-height: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.talent-table .tr:nth-child(odd) {
|
|
||||||
background: rgba(34, 41, 51, .6)
|
|
||||||
}
|
|
||||||
|
|
||||||
.talent-table .tr:nth-child(even) {
|
|
||||||
background: rgba(34, 41, 51, .3)
|
|
||||||
}
|
|
||||||
|
|
||||||
.talent-table .th {
|
|
||||||
background: rgba(34, 41, 51, .5);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.talent-table .lv {
|
|
||||||
font-family: tttgbnumber;
|
|
||||||
font-size: 18px;
|
|
||||||
line-height: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.talent-table .th {
|
|
||||||
font-weight: bold;
|
|
||||||
padding: 5px 3px;
|
|
||||||
color: #d3bc8e;
|
|
||||||
}
|
|
||||||
|
|
||||||
.talent-table .talent_name {
|
|
||||||
min-width: 120px;
|
|
||||||
padding: 10px 3px;
|
|
||||||
font-size: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
.passive-talent .talent-table {
|
.passive-talent .talent-table {
|
||||||
display: none;
|
display: none;
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |