增加新技能解析

This commit is contained in:
枫谷剑仙 2025-01-11 06:08:55 +08:00
parent 0e0d163505
commit be4895b082
8 changed files with 151 additions and 65 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 KiB

After

Width:  |  Height:  |  Size: 206 KiB

View File

@ -119,8 +119,10 @@ const _localTranslating = {
set_orb_state_nail: tp`${'orbs'}增加${'value'}${'icon'}钉子状态`,
rate_multiply: tp`作为队长进入地下城时,${'rate'}变为${'value'}`,
rate_multiply_drop: tp`${'icon'}怪物蛋掉落率`,
rate_multiply_coin: tp`${'icon'}金币掉落`,
rate_multiply_coin: tp`${'icon'}金币`,
rate_multiply_exp: tp`${'icon'}等级经验倍率`,
rate_multiply_plus_point: tp`${'icon'}加蛋值倍率`,
rate_multiply_part_break: tp`${'icon'}部位破坏素材掉率`,
reduce_damage: tp`${'condition'}受到的${'attrs'}伤害${'chance'}${'icon'}减少${'value'}`,
power_up: tp`${'condition'}${'targets'}${'target'}${'each_time'}${'value'}${'reduceDamage'}${'additional'}`,
power_up_targets: tp`${'attrs_types'}`,

View File

@ -119,8 +119,10 @@ const _localTranslating = {
set_orb_state_nail: tp`${'orbs'}增加${'value'}${'icon'}釘子狀態`,
rate_multiply: tp`作為隊長進入地下城時,${'rate'}變為${'value'}`,
rate_multiply_drop: tp`${'icon'}怪物蛋掉落率`,
rate_multiply_coin: tp`${'icon'}金幣掉落`,
rate_multiply_coin: tp`${'icon'}金幣`,
rate_multiply_exp: tp`${'icon'}等級經驗倍率`,
rate_multiply_plus_point: tp`${'icon'}加蛋值倍率`,
rate_multiply_part_break: tp`${'icon'}部位破壞素材掉率`,
reduce_damage: tp`${'condition'}受到的${'attrs'}傷害${'chance'}${'icon'}減少${'value'}`,
power_up: tp`${'condition'}${'targets'}${'target'}${'each_time'}${'value'}${'reduceDamage'}${'additional'}`,
power_up_targets: tp`${'attrs_types'}`,

View File

@ -136,6 +136,8 @@ let localTranslating = {
rate_multiply_drop: tp`${'icon'}Drop rate`,
rate_multiply_coin: tp`${'icon'}Coins`,
rate_multiply_exp: tp`${'icon'}Rank EXP`,
rate_multiply_plus_point: tp`${'icon'}Plus Point`,
rate_multiply_part_break: tp`${'icon'}Part Break Drop rate`,
reduce_damage: tp`${'condition'}${'chance'}${'icon'}Reduces ${'attrs'} damage taken by ${'value'}`,
power_up: tp`${'condition'}${'targets'}${'each_time'}${'value'}${'reduceDamage'}${'additional'}`,
power_up_targets: tp`[${'attrs_types'}]'s `, //attrs, types, attrs_types
@ -3990,14 +3992,20 @@ const specialSearchFunctions = (function() {
addition:card=>{
const value = getSkillFixedDamage(card);
if (value <= 0 ) return;
let nodeArr = [`${value.bigNumberToString()}固伤`];
let skill;
if (skill = getCardLeaderSkill(card, [235])) {
nodeArr.push("/");
nodeArr.push(createOrbsList(Bin.unflags(skill.params[0])));
nodeArr.push(`×${skill.params[2]}`);
const fragment = document.createDocumentFragment();
const icon = document.createElement("icon");
icon.className = "attr";
icon.setAttribute("data-attr-icon", "fixed");
fragment.append(icon, value.bigNumberToString());
let skill = getCardLeaderSkill(card, [235]);
if (skill) {
fragment.append("/",
createOrbsList(Bin.unflags(skill.params[0])),
`×${skill.params[2]}`);
}
return nodeArr.nodeJoin();
return fragment;
}
},
{name:"Adds combo",otLangName:{chs:"队长技+C",cht:"隊長技+C"},
@ -4012,16 +4020,19 @@ const specialSearchFunctions = (function() {
addition:card=>{
const value = getSkillAddCombo(card);
if (value <= 0 ) return;
let nodeArr = [`+${value.bigNumberToString()}C`];
const fragment = document.createDocumentFragment();
fragment.append(createSkillIcon('add-combo'), value.bigNumberToString());
let skill;
if (skill = getCardLeaderSkill(card, [210])) {
nodeArr.push("/十字");
fragment.append("/十字");
} else if (skill = getCardLeaderSkill(card, [235])) {
nodeArr.push("/");
nodeArr.push(createOrbsList(Bin.unflags(skill.params[0])));
nodeArr.push(`×${skill.params[2]}`);
if (skill?.params?.[5]) {
fragment.append("/",
createOrbsList(Bin.unflags(skill.params[0])),
`×${skill.params[2]}`);
}
}
return nodeArr.nodeJoin();
return fragment;
}
},
{name:"Move time changes",otLangName:{chs:"队长技加/减秒",cht:"隊長技加/減秒"},
@ -4037,7 +4048,12 @@ const specialSearchFunctions = (function() {
const skill = getCardLeaderSkill(card, searchTypeArray);
if (!skill) return;
const value = skill.params[0];
return `${value > 0 ? "+" : ""}${value/100}s`;
const fragment = document.createDocumentFragment();
fragment.append(createSkillIcon("status-time", value < 0 ? "time-decr" : "time-incr"),
value > 0 ? "+" : "-",
Math.abs(value/100),
"s");
return fragment;
}
},
{name:"Fixed move time",otLangName:{chs:"固定操作时间",cht:"固定操作時間"},
@ -4053,7 +4069,11 @@ const specialSearchFunctions = (function() {
const skill = getCardLeaderSkill(card, searchTypeArray);
if (!skill) return;
const value = skill.params[0];
return `固定${value}s`;
const fragment = document.createDocumentFragment();
fragment.append(createSkillIcon("fixed-time"),
Math.abs(value),
"s");
return fragment;
}
},
{name:"Impart Awakenings",otLangName:{chs:"赋予觉醒",cht:"賦予覺醒"},
@ -4195,54 +4215,103 @@ const specialSearchFunctions = (function() {
}).sort((a,b)=>sortByParams(a,b,searchTypeArray));
}
},
{name:"Increase item drop rate",otLangName:{chs:"增加道具掉落率",cht:"增加道具掉落率"},
function:cards=>{
const searchTypeArray = [53];
return cards.filter(card=>{
{group:true,name:"Increased drop rewards",otLangName:{chs:"增加掉落奖励",cht:"增加掉落獎勵"}, functions: [
{name:"Increase Item Drop rate",otLangName:{chs:"增加道具掉落率",cht:"增加道具掉落率"},
function:cards=>{
const searchTypeArray = [53];
return cards.filter(card=>{
const skill = getCardLeaderSkill(card, searchTypeArray);
return skill;
}).sort((a,b)=>sortByParams(a,b,searchTypeArray));
},
addition:card=>{
const searchTypeArray = [53];
const skill = getCardLeaderSkill(card, searchTypeArray);
return skill;
}).sort((a,b)=>sortByParams(a,b,searchTypeArray));
if (!skill) return;
const sk = skill.params;
const fragment = document.createDocumentFragment();
fragment.appendChild(createSkillIcon('rate-mul-drop'));
fragment.append(`x${sk[0]/100}`);
return fragment;
}
},
addition:card=>{
const searchTypeArray = [53];
const skill = getCardLeaderSkill(card, searchTypeArray);
if (!skill) return;
const sk = skill.params;
return `掉率x${sk[0]/100}`;
}
},
{name:"Increase coin rate",otLangName:{chs:"增加金币掉落倍数",cht:"增加金幣掉落倍數"},
function:cards=>{
const searchTypeArray = [54];
return cards.filter(card=>{
const skill = getCardLeaderSkill(card, searchTypeArray);
return skill;
}).sort((a,b)=>sortByParams(a,b,searchTypeArray));
},
addition:card=>{
{name:"Increase Coin rate",otLangName:{chs:"增加金币掉落倍数",cht:"增加金幣掉落倍數"},
function:cards=>{
const searchTypeArray = [54];
const skill = getCardLeaderSkill(card, searchTypeArray);
if (!skill) return;
const sk = skill.params;
return `金币x${sk[0]/100}`;
}
},
{name:"Increase Exp rate",otLangName:{chs:"增加经验获取倍数",cht:"增加經驗獲取倍數"},
function:cards=>{
const searchTypeArray = [148];
return cards.filter(card=>{
const skill = getCardLeaderSkill(card, searchTypeArray);
return skill;
}).sort((a,b)=>sortByParams(a,b,searchTypeArray));
},
addition:card=>{
const searchTypeArray = [54];
const skill = getCardLeaderSkill(card, searchTypeArray);
if (!skill) return;
const sk = skill.params;
const fragment = document.createDocumentFragment();
fragment.appendChild(createSkillIcon('rate-mul-coin'));
fragment.append(`x${sk[0]/100}`);
return fragment;
}
},
addition:card=>{
const searchTypeArray = [148];
const skill = getCardLeaderSkill(card, searchTypeArray);
if (!skill) return;
const sk = skill.params;
return `经验x${sk[0]/100}`;
}
},
{name:"Increase Exp rate",otLangName:{chs:"增加经验获取倍数",cht:"增加經驗獲取倍數"},
function:cards=>{
const searchTypeArray = [148];
return cards.filter(card=>{
const skill = getCardLeaderSkill(card, searchTypeArray);
return skill;
}).sort((a,b)=>sortByParams(a,b,searchTypeArray));
},
addition:card=>{
const searchTypeArray = [148];
const skill = getCardLeaderSkill(card, searchTypeArray);
if (!skill) return;
const sk = skill.params;
const fragment = document.createDocumentFragment();
fragment.appendChild(createSkillIcon('rate-mul-exp'));
fragment.append(`x${sk[0]/100}`);
return fragment;
}
},
{name:"Increase Plus Point rate",otLangName:{chs:"增加加蛋值掉落倍数",cht:"增加加蛋值掉落倍數"},
function:cards=>{
const searchTypeArray = [264];
return cards.filter(card=>{
const skill = getCardLeaderSkill(card, searchTypeArray);
return skill;
}).sort((a,b)=>sortByParams(a,b,searchTypeArray));
},
addition:card=>{
const searchTypeArray = [264];
const skill = getCardLeaderSkill(card, searchTypeArray);
if (!skill) return;
const sk = skill.params;
const fragment = document.createDocumentFragment();
fragment.appendChild(createSkillIcon('rate-mul-plus_point'));
fragment.append(`x${sk[0]/100}`);
return fragment;
}
},
{name:"Increase Part Break drop rate",otLangName:{chs:"增加部位破坏素材掉率",cht:"增加部位破壞素材掉率"},
function:cards=>{
const searchTypeArray = [265];
return cards.filter(card=>{
const skill = getCardLeaderSkill(card, searchTypeArray);
return skill;
}).sort((a,b)=>sortByParams(a,b,searchTypeArray));
},
addition:card=>{
const searchTypeArray = [265];
const skill = getCardLeaderSkill(card, searchTypeArray);
if (!skill) return;
const sk = skill.params;
const fragment = document.createDocumentFragment();
fragment.appendChild(createSkillIcon('rate-mul-part_break'));
fragment.append(`x${sk[0]/100}`);
return fragment;
}
},
]},
]},
{group:true,name:"HP Scale",otLangName:{chs:"血倍率",cht:"血倍率"}, functions: [
{name:"HP Scale [3, ∞)",otLangName:{chs:"队长血倍率[2, ∞)",cht:"隊長血倍率[2, ∞)"},

View File

@ -1736,6 +1736,8 @@ const skillObjectParsers = {
increaseDamageCapacity(cap * 1e8, void 0, Bin.unflags(attr), Bin.unflags(type))
);
},
[264](mul) { return rateMultiply(v.percent(mul), 'plus_point'); },
[265](mul) { return rateMultiply(v.percent(mul), 'part_break'); },
[1000](type, pos, ...ids) {
const posType = (type=>{
switch (type) {

View File

@ -41355,11 +41355,11 @@ const cachesMap = new Map([
],
[
"script-json_data.js",
"d9d76afeaa0a4ba4ac94e106cf2117e2"
"93003bbb7ee2d688ed4e68b21d39a53f"
],
[
"script-skill-parser.js",
"1747fe828fc25e0394f82245eccca5c7"
"7b4700be7e38bbfdddfe90e251103675"
],
[
"script-universal_function.js",
@ -41383,7 +41383,7 @@ const cachesMap = new Map([
],
[
"style.css",
"0548eea7ac972f4bac0ffebf384a51e5"
"16b834eb40e460324cdf9c3f2fcfe0b8"
],
[
"temp.js",
@ -41427,7 +41427,7 @@ const cachesMap = new Map([
],
[
"languages/zh-hans.js",
"8552840a3934a8eee0d0e001419036d9"
"68e8eca512a164fab743ed6b455d8ab6"
],
[
"languages/zh-hant.css",
@ -41435,7 +41435,7 @@ const cachesMap = new Map([
],
[
"languages/zh-hant.js",
"3f4938a03f1d14544bd9da895126ed6c"
"b046584b6338fd1e0f7f93108e0dd16f"
],
[
"images/attrs.png",
@ -41587,7 +41587,7 @@ const cachesMap = new Map([
],
[
"images/icon-skills.png",
"9b5c57a64636cbfddffbb4549f5e6035"
"66cc711b4a07f80bb869650ccdb23eec"
],
[
"images/icon-switch-leader.png",

View File

@ -1889,13 +1889,15 @@ label[for="search-string"] {
}
.awoken-preview .awoken-icon,
.custom-addition .awoken-icon,
.custom-addition .type-icon
.custom-addition .type-icon,
.custom-addition .attr
{
filter: unset;
transform: scale(0.75);
margin: calc(-32px * (1 - 0.75) / 2);
}
.custom-addition .board .orb {
.custom-addition .board .orb
{
filter: unset;
transform: scale(0.5);
margin: calc(-36px * (1 - 0.5) / 2);
@ -5061,3 +5063,12 @@ body.external-link-support #external-support{
:lang(ko) .icon-skill[data-icon-type="resolve"] {
background-position-x: calc(-36px * 2);
}
.icon-skill[data-icon-type="rate-mul-plus_point"]
{
background-position-y:calc(-36px * 45);
}
.icon-skill[data-icon-type="rate-mul-part_break"]
{
background-position-y:calc(-36px * 46);
}