";
if (node.forbiddenSkills[skills[i]].length) {
- forbidstr +=
- "(与" + get.translation(node.forbiddenSkills[skills[i]]) + "冲突)
";
+ forbidstr += "(与" + get.translation(node.forbiddenSkills[skills[i]]) + "冲突)
";
} else {
forbidstr += "(双将禁用)
";
}
@@ -3181,40 +3035,17 @@ export class Get {
uiintro.add(forbidstr);
} else if (!skills2.includes(skills[i])) {
if (lib.skill[skills[i]].preHidden && get.mode() == "guozhan") {
- uiintro.add(
- '
' +
- translation +
- '
' +
- get.skillInfoTranslation(skills[i], node) +
- '预亮技能
'
- );
+ uiintro.add('
' + translation + '
' + get.skillInfoTranslation(skills[i], node) + '预亮技能
');
var underlinenode = uiintro.content.lastChild.querySelector(".underlinenode");
if (_status.prehidden_skills.includes(skills[i])) {
underlinenode.classList.remove("on");
}
underlinenode.link = skills[i];
underlinenode.listen(ui.click.hiddenskill);
- } else
- uiintro.add(
- '
' +
- translation +
- "
" +
- get.skillInfoTranslation(skills[i], node) +
- "
"
- );
- } else if (
- lib.skill[skills[i]].temp ||
- !node.skills.includes(skills[i]) ||
- lib.skill[skills[i]].thundertext
- ) {
+ } else uiintro.add('
' + translation + "
" + get.skillInfoTranslation(skills[i], node) + "
");
+ } else if (lib.skill[skills[i]].temp || !node.skills.includes(skills[i]) || lib.skill[skills[i]].thundertext) {
if (lib.skill[skills[i]].frequent || lib.skill[skills[i]].subfrequent) {
- uiintro.add(
- '
' +
- translation +
- '
' +
- get.skillInfoTranslation(skills[i], node) +
- '
自动发动
'
- );
+ uiintro.add('
' + translation + '
' + get.skillInfoTranslation(skills[i], node) + '
自动发动
');
var underlinenode = uiintro.content.lastChild.querySelector(".underlinenode");
if (lib.skill[skills[i]].frequent) {
if (lib.config.autoskilllist.includes(skills[i])) {
@@ -3223,11 +3054,7 @@ export class Get {
}
if (lib.skill[skills[i]].subfrequent) {
for (var j = 0; j < lib.skill[skills[i]].subfrequent.length; j++) {
- if (
- lib.config.autoskilllist.includes(
- skills[i] + "_" + lib.skill[skills[i]].subfrequent[j]
- )
- ) {
+ if (lib.config.autoskilllist.includes(skills[i] + "_" + lib.skill[skills[i]].subfrequent[j])) {
underlinenode.classList.remove("on");
}
}
@@ -3238,22 +3065,10 @@ export class Get {
underlinenode.link = skills[i];
underlinenode.listen(ui.click.autoskill2);
} else {
- uiintro.add(
- '
' +
- translation +
- '
' +
- get.skillInfoTranslation(skills[i], node) +
- "
"
- );
+ uiintro.add('
' + translation + '
' + get.skillInfoTranslation(skills[i], node) + "
");
}
} else if (lib.skill[skills[i]].frequent || lib.skill[skills[i]].subfrequent) {
- uiintro.add(
- '
' +
- translation +
- "
" +
- get.skillInfoTranslation(skills[i], node) +
- '
自动发动
'
- );
+ uiintro.add('
' + translation + "
" + get.skillInfoTranslation(skills[i], node) + '
自动发动
');
var underlinenode = uiintro.content.lastChild.querySelector(".underlinenode");
if (lib.skill[skills[i]].frequent) {
if (lib.config.autoskilllist.includes(skills[i])) {
@@ -3262,11 +3077,7 @@ export class Get {
}
if (lib.skill[skills[i]].subfrequent) {
for (var j = 0; j < lib.skill[skills[i]].subfrequent.length; j++) {
- if (
- lib.config.autoskilllist.includes(
- skills[i] + "_" + lib.skill[skills[i]].subfrequent[j]
- )
- ) {
+ if (lib.config.autoskilllist.includes(skills[i] + "_" + lib.skill[skills[i]].subfrequent[j])) {
underlinenode.classList.remove("on");
}
}
@@ -3277,20 +3088,8 @@ export class Get {
underlinenode.link = skills[i];
underlinenode.listen(ui.click.autoskill2);
} else if (lib.skill[skills[i]].clickable && node.isIn() && node.isUnderControl(true)) {
- var intronode = uiintro
- .add(
- '
' +
- translation +
- "
" +
- get.skillInfoTranslation(skills[i], node) +
- '
'
- )
- .querySelector(".skillbutton");
- if (
- !_status.gameStarted ||
- (lib.skill[skills[i]].clickableFilter &&
- !lib.skill[skills[i]].clickableFilter(node))
- ) {
+ var intronode = uiintro.add('
' + translation + "
" + get.skillInfoTranslation(skills[i], node) + '
').querySelector(".skillbutton");
+ if (!_status.gameStarted || (lib.skill[skills[i]].clickableFilter && !lib.skill[skills[i]].clickableFilter(node))) {
intronode.classList.add("disabled");
intronode.style.opacity = 0.5;
} else {
@@ -3300,18 +3099,10 @@ export class Get {
intronode.listen(ui.click.skillbutton);
}
} else {
- uiintro.add(
- '
' +
- translation +
- "
" +
- get.skillInfoTranslation(skills[i], node) +
- "
"
- );
+ uiintro.add('
' + translation + "
" + get.skillInfoTranslation(skills[i], node) + "
");
}
if (lib.translate[skills[i] + "_append"]) {
- uiintro._place_text = uiintro.add(
- '
' + lib.translate[skills[i] + "_append"] + "
"
- );
+ uiintro._place_text = uiintro.add('
' + lib.translate[skills[i] + "_append"] + "
");
}
}
}
@@ -3398,22 +3189,8 @@ export class Get {
var es = node.getCards("e");
for (var i = 0; i < es.length; i++) {
var cardinfo = lib.card[es[i].name];
- if (cardinfo && cardinfo.cardPrompt)
- uiintro.add(
- '
' +
- es[i].outerHTML +
- "
" +
- cardinfo.cardPrompt(es[i]) +
- "
"
- );
- else
- uiintro.add(
- '
' +
- es[i].outerHTML +
- "
" +
- lib.translate[es[i].name + "_info"] +
- "
"
- );
+ if (cardinfo && cardinfo.cardPrompt) uiintro.add('
' + es[i].outerHTML + "
" + cardinfo.cardPrompt(es[i]) + "
");
+ else uiintro.add('
' + es[i].outerHTML + "
" + lib.translate[es[i].name + "_info"] + "
");
uiintro.content.lastChild.querySelector(".skill>.card").style.transform = "";
if (lib.translate[es[i].name + "_append"]) {
@@ -3433,23 +3210,9 @@ export class Get {
if (!showCardIntro) {
html = ui.create.button(js[i], "blank").outerHTML;
}
- uiintro.add(
- '
' +
- html +
- "
" +
- lib.translate[js[i].viewAs] +
- ":" +
- lib.translate[js[i].viewAs + "_info"] +
- "
"
- );
+ uiintro.add('
' + html + "
" + lib.translate[js[i].viewAs] + ":" + lib.translate[js[i].viewAs + "_info"] + "
");
} else {
- uiintro.add(
- '
' +
- js[i].outerHTML +
- "
" +
- lib.translate[js[i].name + "_info"] +
- "
"
- );
+ uiintro.add('
' + js[i].outerHTML + "
" + lib.translate[js[i].name + "_info"] + "
");
}
uiintro.content.lastChild.querySelector(".skill>.card").style.transform = "";
}
@@ -3538,13 +3301,7 @@ export class Get {
uiintro.content.appendChild(table);
}
var modepack = lib.characterPack["mode_" + get.mode()];
- if (
- lib.config.show_favourite &&
- lib.character[node.name] &&
- game.players.includes(node) &&
- (!modepack || !modepack[node.name]) &&
- (!simple || get.is.phoneLayout())
- ) {
+ if (lib.config.show_favourite && lib.character[node.name] && game.players.includes(node) && (!modepack || !modepack[node.name]) && (!simple || get.is.phoneLayout())) {
var addFavourite = ui.create.div(".text.center.pointerdiv");
addFavourite.link = node.name;
if (lib.config.favouriteCharacter.includes(node.name)) {
@@ -3588,20 +3345,10 @@ export class Get {
} else {
delete lib.config.skin[nameskin];
if (avatar2) {
- if (
- gzbool &&
- lib.character[nameskin2].hasSkinInGuozhan &&
- lib.config.mode_config.guozhan.guozhanSkin
- )
- node.node.avatar2.setBackground(nameskin2, "character");
+ if (gzbool && lib.character[nameskin2].hasSkinInGuozhan && lib.config.mode_config.guozhan.guozhanSkin) node.node.avatar2.setBackground(nameskin2, "character");
else node.node.avatar2.setBackground(nameskin, "character");
} else {
- if (
- gzbool &&
- lib.character[nameskin2].hasSkinInGuozhan &&
- lib.config.mode_config.guozhan.guozhanSkin
- )
- node.node.avatar.setBackground(nameskin2, "character");
+ if (gzbool && lib.character[nameskin2].hasSkinInGuozhan && lib.config.mode_config.guozhan.guozhanSkin) node.node.avatar.setBackground(nameskin2, "character");
else node.node.avatar.setBackground(nameskin, "character");
}
}
@@ -3611,12 +3358,7 @@ export class Get {
if (i) {
button.setBackgroundImage("image/skin/" + nameskin + "/" + i + ".jpg");
} else {
- if (
- gzbool &&
- lib.character[nameskin2].hasSkinInGuozhan &&
- lib.config.mode_config.guozhan.guozhanSkin
- )
- button.setBackground(nameskin2, "character", "noskin");
+ if (gzbool && lib.character[nameskin2].hasSkinInGuozhan && lib.config.mode_config.guozhan.guozhanSkin) button.setBackground(nameskin2, "character", "noskin");
else button.setBackground(nameskin, "character", "noskin");
}
}
@@ -3679,13 +3421,7 @@ export class Get {
}
uiintro.add(ui.create.div(".placeholder.slim"));
- } else if (
- node.classList.contains("mark") &&
- node.info &&
- node.parentNode &&
- node.parentNode.parentNode &&
- node.parentNode.parentNode.classList.contains("player")
- ) {
+ } else if (node.classList.contains("mark") && node.info && node.parentNode && node.parentNode.parentNode && node.parentNode.parentNode.classList.contains("player")) {
var info = node.info;
var player = node.parentNode.parentNode;
if (info.name) {
@@ -3700,13 +3436,7 @@ export class Get {
} else if (info.name !== false) {
uiintro.add(get.translation(node.skill));
}
- if (
- typeof info.id == "string" &&
- info.id.startsWith("subplayer") &&
- player.isUnderControl(true) &&
- player.storage[info.id] &&
- !_status.video
- ) {
+ if (typeof info.id == "string" && info.id.startsWith("subplayer") && player.isUnderControl(true) && player.storage[info.id] && !_status.video) {
var storage = player.storage[info.id];
uiintro.addText("当前体力:" + storage.hp + "/" + storage.maxHp);
if (storage.hs.length) {
@@ -3721,9 +3451,7 @@ export class Get {
if (typeof info.mark == "function") {
var stint = info.mark(uiintro, player.storage[node.skill], player);
if (stint) {
- var placetext = uiintro.add(
- '
' + stint + "
"
- );
+ var placetext = uiintro.add('
' + stint + "
");
if (!stint.startsWith('
' + stint.slice(1) + "
");
} else {
- var placetext = uiintro.add(
- '
' + stint + "
"
- );
+ var placetext = uiintro.add('
' + stint + "
");
if (!stint.startsWith('
' + item[1] + "
"
- );
+ uiintro._place_text = uiintro.add('
' + item[1] + "
");
}
}
if (moded) return uiintro;
@@ -3793,10 +3511,7 @@ export class Get {
var cardOwner = get.owner(node);
if (cardOwner && !cardOwner.isUnderControl(true)) showCardIntro = false;
}
- if (showCardIntro)
- uiintro.add(
- '
(' + get.translation(get.translation(node)) + ")
"
- );
+ if (showCardIntro) uiintro.add('
(' + get.translation(get.translation(node)) + ")
");
// uiintro.add(get.translation(node.viewAs)+'
('+get.translation(node)+')
');
uiintro.nosub = true;
name = node.viewAs;
@@ -3840,11 +3555,7 @@ export class Get {
var page = ui.create.div(".menu-buttons.configpopped", uiintro.content);
var banall = false;
for (var i = 0; i < list.length; i++) {
- var cfg = ui.create.div(
- ".config",
- list[i] == "zhinang_tricks" ? "设为智囊" : lib.translate[list[i]] + "模式",
- page
- );
+ var cfg = ui.create.div(".config", list[i] == "zhinang_tricks" ? "设为智囊" : lib.translate[list[i]] + "模式", page);
cfg.classList.add("toggle");
if (list[i] == "zhinang_tricks") {
cfg.bannedname = (node._banning == "offline" ? "" : "connect_") + "zhinang_tricks";
@@ -3861,63 +3572,38 @@ export class Get {
banall = true;
}
}
- ui.create.div(
- ".menubutton.pointerdiv",
- banall ? "全部禁用" : "全部启用",
- uiintro.content,
- function () {
- if (this.innerHTML == "全部禁用") {
- for (var i = 0; i < page.childElementCount; i++) {
- if (
- page.childNodes[i].bannedname.indexOf("zhinang_tricks") == -1 &&
- page.childNodes[i].bannedname &&
- page.childNodes[i].classList.contains("on")
- ) {
- clickBanned.call(page.childNodes[i]);
- }
+ ui.create.div(".menubutton.pointerdiv", banall ? "全部禁用" : "全部启用", uiintro.content, function () {
+ if (this.innerHTML == "全部禁用") {
+ for (var i = 0; i < page.childElementCount; i++) {
+ if (page.childNodes[i].bannedname.indexOf("zhinang_tricks") == -1 && page.childNodes[i].bannedname && page.childNodes[i].classList.contains("on")) {
+ clickBanned.call(page.childNodes[i]);
}
- this.innerHTML = "全部启用";
- } else {
- for (var i = 0; i < page.childElementCount; i++) {
- if (
- page.childNodes[i].bannedname.indexOf("zhinang_tricks") == -1 &&
- page.childNodes[i].bannedname &&
- !page.childNodes[i].classList.contains("on")
- ) {
- clickBanned.call(page.childNodes[i]);
- }
- }
- this.innerHTML = "全部禁用";
}
+ this.innerHTML = "全部启用";
+ } else {
+ for (var i = 0; i < page.childElementCount; i++) {
+ if (page.childNodes[i].bannedname.indexOf("zhinang_tricks") == -1 && page.childNodes[i].bannedname && !page.childNodes[i].classList.contains("on")) {
+ clickBanned.call(page.childNodes[i]);
+ }
+ }
+ this.innerHTML = "全部禁用";
}
- ).style.marginTop = "-10px";
+ }).style.marginTop = "-10px";
ui.create.div(".placeholder.slim", uiintro.content);
} else {
if (lib.translate[name + "_info"]) {
if (!uiintro.nosub) {
if (lib.card[name] && lib.card[name].derivation) {
if (typeof lib.card[name].derivation == "string") {
- uiintro.add(
- '
来源:' +
- get.translation(lib.card[name].derivation) +
- "
"
- );
+ uiintro.add('
来源:' + get.translation(lib.card[name].derivation) + "
");
} else if (lib.card[name].derivationpack) {
- uiintro.add(
- '
来源:' +
- get.translation(lib.card[name].derivationpack + "_card_config") +
- "包
"
- );
+ uiintro.add('
来源:' + get.translation(lib.card[name].derivationpack + "_card_config") + "包
");
}
}
let typeinfo = "";
if (lib.card[name] && lib.card[name].unique) {
typeinfo += "特殊" + get.translation(lib.card[name].type) + "牌";
- } else if (
- lib.card[name] &&
- lib.card[name].type &&
- lib.translate[lib.card[name].type]
- ) {
+ } else if (lib.card[name] && lib.card[name].type && lib.translate[lib.card[name].type]) {
typeinfo += get.translation(lib.card[name].type) + "牌";
}
if (get.subtype(name, false)) {
@@ -3928,11 +3614,9 @@ export class Get {
}
if (lib.card[name].unique && lib.card[name].type == "equip") {
if (lib.cardPile.guozhan && lib.cardPack.guozhan.includes(name)) {
- uiintro.add('
专属装备
').style.marginTop =
- "-5px";
+ uiintro.add('
专属装备
').style.marginTop = "-5px";
} else {
- uiintro.add('
特殊装备
').style.marginTop =
- "-5px";
+ uiintro.add('
特殊装备
').style.marginTop = "-5px";
}
}
if (lib.card[name] && lib.card[name].addinfomenu) {
@@ -3944,11 +3628,7 @@ export class Get {
var dist = lib.card[node.name].distance;
if (dist.attackFrom) {
added = true;
- uiintro.add(
- '
攻击范围:' +
- (-dist.attackFrom + 1) +
- "
"
- );
+ uiintro.add('
攻击范围:' + (-dist.attackFrom + 1) + "
");
}
}
if (!added) {
@@ -3958,18 +3638,12 @@ export class Get {
}
if (lib.card[name].cardPrompt) {
var str = lib.card[name].cardPrompt(node.link || node),
- placetext = uiintro.add(
- '
' + str + "
"
- );
+ placetext = uiintro.add('
' + str + "
");
if (!str.startsWith('
' +
- lib.translate[name + "_info"] +
- "
"
- );
+ var placetext = uiintro.add('
' + lib.translate[name + "_info"] + "
");
if (!lib.translate[name + "_info"].startsWith('
应变:${yingbianEffects
- .map((value) => lib.yingbian.prompt.get(value))
- .join(";")}
`
- );
+ if (yingbianEffects.length && showCardIntro) uiintro.add(`
应变:${yingbianEffects.map(value => lib.yingbian.prompt.get(value)).join(";")}
`);
}
if (lib.translate[name + "_append"]) {
- uiintro.add(
- '
' +
- lib.translate[name + "_append"] +
- "
"
- );
+ uiintro.add('
' + lib.translate[name + "_append"] + "
");
}
}
uiintro.add(ui.create.div(".placeholder.slim"));
@@ -4004,13 +3668,11 @@ export class Get {
let capt = get.translation(character);
if (characterInfo) {
const infoSex = characterInfo[0];
- if (infoSex && lib.config.show_sex)
- capt += ` ${infoSex == "none" ? "无" : lib.translate[infoSex]}`;
+ if (infoSex && lib.config.show_sex) capt += ` ${infoSex == "none" ? "无" : lib.translate[infoSex]}`;
const infoGroup = characterInfo[1];
if (infoGroup && lib.config.show_group) {
const group = get.is.double(character, true);
- if (group)
- capt += ` ${group.map((value) => get.translation(value)).join("/")}`;
+ if (group) capt += ` ${group.map(value => get.translation(value)).join("/")}`;
else capt += ` ${lib.translate[infoGroup]}`;
}
}
@@ -4021,14 +3683,12 @@ export class Get {
}
if (get.characterInitFilter(node.link)) {
- const initFilters = get.characterInitFilter(node.link).filter((tag) => {
+ const initFilters = get.characterInitFilter(node.link).filter(tag => {
if (!lib.characterInitFilter[node.link]) return true;
return lib.characterInitFilter[node.link](tag) !== false;
});
if (initFilters.length) {
- const str = initFilters
- .reduce((strx, stry) => strx + lib.InitFilter[stry] + "
", "")
- .slice(0, -4);
+ const str = initFilters.reduce((strx, stry) => strx + lib.InitFilter[stry] + "
", "").slice(0, -4);
uiintro.addText(str);
}
}
@@ -4104,34 +3764,23 @@ export class Get {
cfg.classList.add("on");
}
}
- ui.create.div(
- ".menubutton.pointerdiv",
- banall ? "全部禁用" : "全部启用",
- uiintro.content,
- function () {
- if (this.innerHTML == "全部禁用") {
- for (var i = 0; i < page.childElementCount; i++) {
- if (
- page.childNodes[i].bannedname &&
- page.childNodes[i].classList.contains("on")
- ) {
- clickBanned.call(page.childNodes[i]);
- }
+ ui.create.div(".menubutton.pointerdiv", banall ? "全部禁用" : "全部启用", uiintro.content, function () {
+ if (this.innerHTML == "全部禁用") {
+ for (var i = 0; i < page.childElementCount; i++) {
+ if (page.childNodes[i].bannedname && page.childNodes[i].classList.contains("on")) {
+ clickBanned.call(page.childNodes[i]);
}
- this.innerHTML = "全部启用";
- } else {
- for (var i = 0; i < page.childElementCount; i++) {
- if (
- page.childNodes[i].bannedname &&
- !page.childNodes[i].classList.contains("on")
- ) {
- clickBanned.call(page.childNodes[i]);
- }
- }
- this.innerHTML = "全部禁用";
}
+ this.innerHTML = "全部启用";
+ } else {
+ for (var i = 0; i < page.childElementCount; i++) {
+ if (page.childNodes[i].bannedname && !page.childNodes[i].classList.contains("on")) {
+ clickBanned.call(page.childNodes[i]);
+ }
+ }
+ this.innerHTML = "全部禁用";
}
- ).style.marginTop = "-10px";
+ }).style.marginTop = "-10px";
ui.create.div(".placeholder.slim", uiintro.content);
} else {
var skills = get.character(character, 3);
@@ -4140,32 +3789,18 @@ export class Get {
if (lib.translate[skills[i] + "_ab"]) translation = lib.translate[skills[i] + "_ab"];
else {
translation = get.translation(skills[i]);
- if (!lib.skill[skills[i]].nobracket)
- translation = `【${translation.slice(0, 2)}】`;
+ if (!lib.skill[skills[i]].nobracket) translation = `【${translation.slice(0, 2)}】`;
}
- uiintro.add(
- '
' +
- translation +
- "
" +
- get.skillInfoTranslation(skills[i]) +
- "
"
- );
+ uiintro.add('
' + translation + "
" + get.skillInfoTranslation(skills[i]) + "
");
if (lib.translate[skills[i] + "_append"]) {
- uiintro._place_text = uiintro.add(
- '
' + lib.translate[skills[i] + "_append"] + "
"
- );
+ uiintro._place_text = uiintro.add('
' + lib.translate[skills[i] + "_append"] + "
");
}
}
}
var modepack = lib.characterPack["mode_" + get.mode()];
- if (
- lib.config.show_favourite &&
- lib.character[node.link] &&
- (!modepack || !modepack[node.link]) &&
- (!simple || get.is.phoneLayout())
- ) {
+ if (lib.config.show_favourite && lib.character[node.link] && (!modepack || !modepack[node.link]) && (!simple || get.is.phoneLayout())) {
var addFavourite = ui.create.div(".text.center.pointerdiv");
addFavourite.link = node.link;
addFavourite.style.marginBottom = "15px";
@@ -4213,12 +3848,7 @@ export class Get {
game.saveConfig("skin", lib.config.skin);
} else {
delete lib.config.skin[nameskin];
- if (
- gzbool &&
- lib.character[nameskin2].hasSkinInGuozhan &&
- lib.config.mode_config.guozhan.guozhanSkin
- )
- node.setBackground(nameskin2, "character");
+ if (gzbool && lib.character[nameskin2].hasSkinInGuozhan && lib.config.mode_config.guozhan.guozhanSkin) node.setBackground(nameskin2, "character");
else node.setBackground(nameskin, "character");
game.saveConfig("skin", lib.config.skin);
}
@@ -4227,12 +3857,7 @@ export class Get {
if (i) {
button.setBackgroundImage("image/skin/" + nameskin + "/" + i + ".jpg");
} else {
- if (
- gzbool &&
- lib.character[nameskin2].hasSkinInGuozhan &&
- lib.config.mode_config.guozhan.guozhanSkin
- )
- button.setBackground(nameskin2, "character", "noskin");
+ if (gzbool && lib.character[nameskin2].hasSkinInGuozhan && lib.config.mode_config.guozhan.guozhanSkin) button.setBackground(nameskin2, "character", "noskin");
else button.setBackground(nameskin, "character", "noskin");
}
}
@@ -4263,9 +3888,7 @@ export class Get {
(function () {
uiintro.add("选择装备");
uiintro.addSmall(
- Array.from(node.childNodes).filter(
- (node) => !node.classList.contains("emptyequip") && !node.classList.contains("feichu")
- ),
+ Array.from(node.childNodes).filter(node => !node.classList.contains("emptyequip") && !node.classList.contains("feichu")),
true
);
uiintro.clickintro = true;
@@ -4320,22 +3943,14 @@ export class Get {
} else if (node.classList.contains("identity") && node.dataset.career) {
var career = node.dataset.career;
uiintro.add(get.translation(career));
- uiintro.add(
- '
' +
- lib.translate["_" + career + "_skill_info"] +
- "
"
- );
+ uiintro.add('
' + lib.translate["_" + career + "_skill_info"] + "
");
} else if (node.classList.contains("skillbar")) {
if (node == ui.friendBar) {
uiintro.add("友方怒气值");
- uiintro.add(
- '
' + _status.friendRage + "/100
"
- );
+ uiintro.add('
' + _status.friendRage + "/100
");
} else if (node == ui.enemyBar) {
uiintro.add("敌方怒气值");
- uiintro.add(
- '
' + _status.enemyRage + "/100
"
- );
+ uiintro.add('
' + _status.enemyRage + "/100
");
}
} else if (node.parentNode == ui.historybar) {
if (node.dead) {
@@ -4343,23 +3958,13 @@ export class Get {
uiintro.add('
' + get.translation(node.player) + "阵亡
");
uiintro.addSmall([node.player]);
} else {
- uiintro.add(
- '
' +
- get.translation(node.player) +
- "被" +
- get.translation(node.source) +
- "杀害
"
- );
+ uiintro.add('
' + get.translation(node.player) + "被" + get.translation(node.source) + "杀害
");
uiintro.addSmall([node.source]);
}
}
if (node.skill) {
uiintro.add('
' + get.translation(node.skill, "skill") + "
");
- uiintro._place_text = uiintro.add(
- '
' +
- get.translation(node.skill, "info") +
- "
"
- );
+ uiintro._place_text = uiintro.add('
' + get.translation(node.skill, "info") + "
");
}
if (node.targets && get.itemtype(node.targets) == "players") {
uiintro.add('
目标
');
@@ -4393,11 +3998,7 @@ export class Get {
dialog.add('
已横置
');
var list = [];
for (var i = 0; i < game.players.length; i++) {
- if (
- game.players[i].isLinked() &&
- game.players[i].name &&
- !game.players[i].name.startsWith("unknown")
- ) {
+ if (game.players[i].isLinked() && game.players[i].name && !game.players[i].name.startsWith("unknown")) {
list.push(game.players[i]);
}
}
@@ -4801,11 +4402,7 @@ export class Get {
)
temp2 = cache.delegate(temp2).effect(card, player, target, result2, isLink);
else temp2 = undefined;
- } else if (
- temp2 &&
- typeof temp2.effect == "object" &&
- typeof temp2.effect.target_use == "function"
- ) {
+ } else if (temp2 && typeof temp2.effect == "object" && typeof temp2.effect.target_use == "function") {
if (
!player.hasSkillTag("ignoreSkill", true, {
card: card,
@@ -4814,15 +4411,9 @@ export class Get {
isLink: isLink,
})
)
- temp2 = cache
- .delegate(temp2.effect)
- .target_use(card, player, target, result2, isLink);
+ temp2 = cache.delegate(temp2.effect).target_use(card, player, target, result2, isLink);
else temp2 = undefined;
- } else if (
- temp2 &&
- typeof temp2.effect == "object" &&
- typeof temp2.effect.target == "function"
- ) {
+ } else if (temp2 && typeof temp2.effect == "object" && typeof temp2.effect.target == "function") {
if (
!player.hasSkillTag("ignoreSkill", true, {
card: card,
@@ -4896,25 +4487,18 @@ export class Get {
if (zerotarget) result2 = 0;
var final = 0;
if (player2) {
- final =
- result1 * cache.get.attitude(player2, player) +
- (target ? result2 * cache.get.attitude(player2, target) : 0);
- } else
- final =
- result1 * cache.get.attitude(player, player) +
- (target ? result2 * cache.get.attitude(player, target) : 0);
+ final = result1 * cache.get.attitude(player2, player) + (target ? result2 * cache.get.attitude(player2, target) : 0);
+ } else final = result1 * cache.get.attitude(player, player) + (target ? result2 * cache.get.attitude(player, target) : 0);
if (!isLink && get.tag(card, "natureDamage") && !zerotarget) {
var info = get.info(card);
if (!info || !info.ai || !info.ai.canLink) {
if (target.isLinked())
game.players.forEach(function (current) {
- if (current != target && current.isLinked())
- final += cache.get.effect(current, card, player, player2, true);
+ if (current != target && current.isLinked()) final += cache.get.effect(current, card, player, player2, true);
});
} else if (info.ai.canLink(player, target, card)) {
game.players.forEach(function (current) {
- if (current != target && current.isLinked())
- final += cache.get.effect(current, card, player, player2, true);
+ if (current != target && current.isLinked()) final += cache.get.effect(current, card, player, player2, true);
});
}
}
@@ -5001,11 +4585,7 @@ export class Get {
)
temp2 = cache.delegate(temp2).effect(card, player, target, result2, isLink);
else temp2 = undefined;
- } else if (
- temp2 &&
- typeof temp2.effect == "object" &&
- typeof temp2.effect.target == "function"
- ) {
+ } else if (temp2 && typeof temp2.effect == "object" && typeof temp2.effect.target == "function") {
if (
!player.hasSkillTag("ignoreSkill", true, {
card: card,
@@ -5082,25 +4662,18 @@ export class Get {
if (zerotarget) result2 = 0;
var final = 0;
if (player2) {
- final =
- result1 * cache.get.attitude(player2, player) +
- (target ? result2 * cache.get.attitude(player2, target) : 0);
- } else
- final =
- result1 * cache.get.attitude(player, player) +
- (target ? result2 * cache.get.attitude(player, target) : 0);
+ final = result1 * cache.get.attitude(player2, player) + (target ? result2 * cache.get.attitude(player2, target) : 0);
+ } else final = result1 * cache.get.attitude(player, player) + (target ? result2 * cache.get.attitude(player, target) : 0);
if (!isLink && get.tag(card, "natureDamage") && !zerotarget) {
var info = get.info(card);
if (!info || !info.ai || !info.ai.canLink) {
if (target.isLinked())
game.players.forEach(function (current) {
- if (current != target && current.isLinked())
- final += cache.get.effect(current, card, player, player2, true);
+ if (current != target && current.isLinked()) final += cache.get.effect(current, card, player, player2, true);
});
} else if (info.ai.canLink(player, target, card)) {
game.players.forEach(function (current) {
- if (current != target && current.isLinked())
- final += cache.get.effect(current, card, player, player2, true);
+ if (current != target && current.isLinked()) final += cache.get.effect(current, card, player, player2, true);
});
}
}
@@ -5109,10 +4682,7 @@ export class Get {
damageEffect(target, player, viewer, nature) {
if (get.itemtype(nature) == "natures") {
var natures = get.natureList(nature);
- return (
- natures.map((n) => get.damageEffect(target, player, viewer, n)).reduce((p, c) => p + c, 0) /
- (natures.length || 1)
- );
+ return natures.map(n => get.damageEffect(target, player, viewer, n)).reduce((p, c) => p + c, 0) / (natures.length || 1);
}
if (!player) {
player = target;
@@ -5201,6 +4771,44 @@ export class Get {
attitude2(to) {
return get.attitude(_status.event.player, to);
}
+
+ /**
+ * 将URL转换成相对于无名杀根目录的路径
+ *
+ * ---
+ *
+ * 在无名杀正式过渡到http协议前,无名杀的路径在不同端拥有不同的情况:
+ * - 网页端: 除了`db`外,没任何可能
+ * - 电脑端(electron): 和`node.js`保持一致
+ * - 手机端(cordova): 需要使用`cordova`的`cordova-plugin-file`插件实现,有较为严格的限制
+ *
+ * 故之前的路径API基本如下:
+ * - 网页端完全不考虑
+ * - 使用`lib.assetURL +
`的形式,其中`lib.assetURL`的值为:
+ * - 在网页端和电脑端为空字符串
+ * - 在手机端为无名杀包的`externalApplicationStorageDirectory`里(也就是`Android/data//`)
+ *
+ * 现在无名杀即将踏入http协议,也早已用上了ES Module,故活用`import.meta.url`来提供路径理应被重视,`URL`也理应成为路径的主要构成
+ *
+ * 然而由于之前的API混乱且针对多端有不同的情况,故需要提供函数,来方便提供调用旧API的情况
+ *
+ * @param {URL} url - 需要转换的URL对象
+ * @param {boolean} [addAssetURL=false] - 是否需要在函数内加上`lib.assetURL`,
+ * 默认为`false`,当为`true`时会在协议为`file`时增加`lib.assetURL`
+ * @returns {string}
+ *
+ * @example
+ * // 当前文件以"noname/get/index.js"举例
+ * let parsedPath = get.relativePath(import.meta.url, true);
+ * console.log(parsedPath == `${lib.assetURL}noname/get/index.js`) //=> true
+ */
+ relativePath(url, addAssetURL = false) {
+ let base = lib.path.relative(decodeURI(rootURL.pathname), decodeURI(url.pathname));
+ if (addAssetURL && rootURL.protocol == "file:") {
+ base = `${lib.assetURL}${base}`;
+ }
+ return base;
+ }
}
export let get = new Get();
diff --git a/noname/init/polyfill.js b/noname/init/polyfill.js
index 1c685b50b..51fc9a8ce 100644
--- a/noname/init/polyfill.js
+++ b/noname/init/polyfill.js
@@ -142,17 +142,14 @@ Reflect.defineProperty(HTMLDivElement.prototype, "setBackground", {
gzbool = false;
const mode = get.mode();
if (type == "character") {
+ nameinfo = get.character(name);
if (lib.characterPack[`mode_${mode}`] && lib.characterPack[`mode_${mode}`][name]) {
if (mode == "guozhan") {
- nameinfo = lib.character[name];
if (name.startsWith("gz_shibing")) name = name.slice(3, 11);
else {
- if (
- lib.config.mode_config.guozhan.guozhanSkin &&
- lib.character[name] &&
- lib.character[name].hasSkinInGuozhan
- )
+ if (lib.config.mode_config.guozhan.guozhanSkin && nameinfo && nameinfo.hasSkinInGuozhan){
gzbool = true;
+ }
name = name.slice(3);
}
} else modeimage = mode;
@@ -161,8 +158,6 @@ Reflect.defineProperty(HTMLDivElement.prototype, "setBackground", {
name = name.split("::");
modeimage = name[0];
name = name[1];
- } else {
- nameinfo = get.character(name);
}
}
let imgPrefixUrl;
diff --git a/noname/library/element/player.js b/noname/library/element/player.js
index 6869e2278..27f4d5ba7 100644
--- a/noname/library/element/player.js
+++ b/noname/library/element/player.js
@@ -5848,6 +5848,7 @@ export class Player extends HTMLDivElement {
return get.is.sameNature(natures, naturesx);
};
if (next.hasNature("poison")) delete next._triggered;
+ else if(next.unreal) next._triggered = 2;
next.setContent("damage");
next.filterStop = function () {
if (this.source && this.source.isDead()) delete this.source;
diff --git a/noname/ui/create/index.js b/noname/ui/create/index.js
index b481146ff..7e32bc08e 100644
--- a/noname/ui/create/index.js
+++ b/noname/ui/create/index.js
@@ -1042,7 +1042,7 @@ export class Create {
.setContent(function () {
game.log(player, "投降");
player.popup("投降");
- player.die("nosource").includeOut = true;
+ player.die("nosource").set("_triggered", null).includeOut = true;
}).player = player;
}
if (_status.paused && _status.imchoosing && !_status.auto) {