搜索功能增加破连击搜索,去掉双破搜索。自身提高伤害上限也增加位置显示。

This commit is contained in:
枫谷剑仙 2024-04-17 23:19:16 +08:00
parent f3e81ccfef
commit a9819068bd
10 changed files with 74 additions and 41 deletions

View File

@ -2,25 +2,25 @@
{
"code": "ja",
"ckey": {
"card": "2e41b9a77d66f3f966fd99fd7c00f596",
"card": "7f16bab99b5eccc90fcc8a8a98737e73",
"skill": "f64c29d1d0f5a88b6b7409013abafcc5"
},
"updateTime": 1713364109629
"updateTime": 1713367120820
},
{
"code": "en",
"ckey": {
"card": "40e9369fcb6dfb9759af0767c0a2137c",
"card": "3590dd3219484ec0bcad579f134fbc4b",
"skill": "02c89be66b54327c130e6e8b02ecf09a"
},
"updateTime": 1712579771932
"updateTime": 1713367120820
},
{
"code": "ko",
"ckey": {
"card": "81b25bf1fd86e5d22c5789064e06eea2",
"card": "1c2f8aec34dd42f82bea17c84f05d3b0",
"skill": "008073b22a02579ec7712bf61aaafee1"
},
"updateTime": 1712579771932
"updateTime": 1713367120820
}
]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -76,7 +76,7 @@ class Card{
card.flags = flags;
card.canAssist = Boolean(flags & 1<<0); //是否能当二技
card.enabled = Boolean(flags & 1<<1); //是否已启用
card.stacking = !Boolean(flags & 1<<3) && //flag有1<<3时不合并占一格没有时则根据类型进行合并目前合并已经不占格子
card.stackable = !Boolean(flags & 1<<3) && //flag有1<<3时不合并占一格没有时则根据类型进行合并目前合并已经不占格子
card.types.some(t=>[0,12,14,15].includes(t)); //0進化用;12能力覺醒用;14強化合成用;15販賣用默认合并
//card.onlyAssist = Boolean(flags & 1<<4); //是否只能当二技
card.is8Latent = Boolean(flags & 1<<5); //是否支持8个潜觉

View File

@ -1173,7 +1173,17 @@ const specialSearchFunctions = (function() {
switch (skill.type) {
case 258: {
fragment.appendChild(createTeamFlags(sk[2]));
break;
}
case 241:
case 246:
case 247: {
fragment.appendChild(createTeamFlags(1));
break;
}
}
switch (skill.type) {
case 258:
case 241: {
fragment.append(`${(cap*1e8).bigNumberToString()}×${sk[0]}T`);
break;
@ -1514,14 +1524,6 @@ const specialSearchFunctions = (function() {
},
addition:voidsAbsorption_Addition
},
/*{name:"Voids combo absorption(sort by turns)",otLangName:{chs:"C buff",cht:"C buff"},
function:cards=>{
const searchTypeArray = [173];
return cards.filter(card=>{
const skill = getCardActiveSkill(card, searchTypeArray);
return skill && skill.params[2];
}).sort((a,b)=>sortByParams(a,b,searchTypeArray));
},addition:voidsAbsorption_Addition},*/
{name:"Voids damage absorption(sort by turns)",otLangName:{chs:"破伤吸 buff按破吸回合排序",cht:"破傷吸 buff按破吸回合排序"},
function:cards=>{
const searchTypeArray = [173];
@ -1532,12 +1534,12 @@ const specialSearchFunctions = (function() {
},
addition:voidsAbsorption_Addition
},
{name:"Voids both absorption(sort by turns)",otLangName:{chs:"破吸 buff按破吸回合排序",cht:"破吸 buff按破吸回合排序"},
{name:"Voids combo absorption(sort by turns)",otLangName:{chs:"C吸 buff按破吸回合排序",cht:"C吸 buff按破吸回合排序"},
function:cards=>{
const searchTypeArray = [173];
return cards.filter(card=>{
const skill = getCardActiveSkill(card, searchTypeArray);
return skill && skill.params[1] && skill.params[3];
return skill && skill.params[2];
}).sort((a,b)=>sortByParams(a,b,searchTypeArray));
},
addition:voidsAbsorption_Addition
@ -1706,12 +1708,41 @@ const specialSearchFunctions = (function() {
},
addition:memberCap_Addition
},
{name:"Increase Damage Cap (Not Self)",otLangName:{chs:"增加伤害上限 buff(非自身)",cht:"增加傷害上限 buff(非自身)"},
{name:"Increase Damage Cap - Self",otLangName:{chs:"增加伤害上限 buff - 自身",cht:"增加傷害上限 buff - 自身"},
function:cards=>{
const searchTypeArray = [241, 246, 247, 258];
return cards.filter(card=>{
const skill = getCardActiveSkill(card, searchTypeArray);
if (skill?.type === 258) return Boolean(skill.params[2] & 0b1);
else return skill;
}).sort((a,b)=>{
const a_ss = getCardActiveSkill(a, searchTypeArray), b_ss = getCardActiveSkill(b, searchTypeArray);
let a_pC = getIncreaseDamageCap(a_ss), b_pC = getIncreaseDamageCap(b_ss);
return a_pC - b_pC;
});
},
addition:memberCap_Addition
},
{name:"Increase Damage Cap - Leader",otLangName:{chs:"增加伤害上限 buff - 队长",cht:"增加傷害上限 buff - 隊長"},
function:cards=>{
const searchTypeArray = [258];
return cards.filter(card=>{
const skill = getCardActiveSkill(card, searchTypeArray);
return skill;
return skill && Boolean(skill.params[2] & (0b10 | 0b100));
}).sort((a,b)=>{
const a_ss = getCardActiveSkill(a, searchTypeArray), b_ss = getCardActiveSkill(b, searchTypeArray);
let a_pC = getIncreaseDamageCap(a_ss), b_pC = getIncreaseDamageCap(b_ss);
return a_pC - b_pC;
});
},
addition:memberCap_Addition
},
{name:"Increase Damage Cap - Sub",otLangName:{chs:"增加伤害上限 buff - 队员",cht:"增加傷害上限 buff - 隊員"},
function:cards=>{
const searchTypeArray = [258];
return cards.filter(card=>{
const skill = getCardActiveSkill(card, searchTypeArray);
return skill && Boolean(skill.params[2] & 0b1000);
}).sort((a,b)=>{
const a_ss = getCardActiveSkill(a, searchTypeArray), b_ss = getCardActiveSkill(b, searchTypeArray);
let a_pC = getIncreaseDamageCap(a_ss), b_pC = getIncreaseDamageCap(b_ss);
@ -1735,7 +1766,7 @@ const specialSearchFunctions = (function() {
const searchTypeArray = [230];
return cards.filter(card=>{
const skill = getCardActiveSkill(card, searchTypeArray);
return skill && Boolean(skill.params[1] & 1<<0);
return skill && Boolean(skill.params[1] & 0b1);
}).sort((a,b)=>sortByParams(a, b, searchTypeArray, 2));
},
addition:memberATK_Addition
@ -1745,17 +1776,17 @@ const specialSearchFunctions = (function() {
const searchTypeArray = [230];
return cards.filter(card=>{
const skill = getCardActiveSkill(card, searchTypeArray);
return skill && Boolean(skill.params[1] & (1<<1 | 1<<2));
return skill && Boolean(skill.params[1] & (0b10 | 0b100));
}).sort((a,b)=>sortByParams(a, b, searchTypeArray, 2));
},
addition:memberATK_Addition
},
{name:"Member ATK rate change - Member",otLangName:{chs:"队员攻击力 buff - 队员",cht:"隊員攻擊力 buff - 隊員"},
{name:"Member ATK rate change - Sub",otLangName:{chs:"队员攻击力 buff - 队员",cht:"隊員攻擊力 buff - 隊員"},
function:cards=>{
const searchTypeArray = [230];
return cards.filter(card=>{
const skill = getCardActiveSkill(card, searchTypeArray);
return skill && Boolean(skill.params[1] & 1<<3);
return skill && Boolean(skill.params[1] & 0b1000);
}).sort((a,b)=>sortByParams(a, b, searchTypeArray, 2));
},
addition:memberATK_Addition
@ -4231,10 +4262,10 @@ const specialSearchFunctions = (function() {
function:cards=>cards.filter(card=>card.latentAwakeningId>0).sort((a,b)=>a.latentAwakeningId-b.latentAwakeningId)
},
{name:"Stacked material",otLangName:{chs:"堆叠的素材",cht:"堆疊的素材"},
function:cards=>cards.filter(card=>card.stacking),
function:cards=>cards.filter(card=>card.stackable),
},
{name:"Not stacked material",otLangName:{chs:"不堆叠的素材",cht:"不堆疊的素材"},
function:cards=>cards.filter(card=>!card.stacking && card.types.some(t=>[0,12,14,15].includes(t))),
function:cards=>cards.filter(card=>!card.stackable && card.types.some(t=>[0,12,14,15].includes(t))),
},
{name:"Original Name",otLangName:{chs:"怪物原始名称",cht:"怪物原始名稱"},
function:cards=>cards,

View File

@ -2676,9 +2676,9 @@ function renderSkill(skill, option = {})
targets: document.createDocumentFragment(),
cap: cap.bigNumberToString(),
};
if (targets[0] !== 'self' || targets.length > 1) {
// if (targets[0] !== 'self' || targets.length > 1) {
dict.targets.append(createTeamFlags(targets));
}
// }
dict.targets.append(targets.map(target=>
tsp?.target[target.replaceAll("-","_")]?.())
.nodeJoin(tsp.word.slight_pause()));

View File

@ -849,7 +849,7 @@ function calculateAbility_max(id, solo, teamsCount, maxLevel = 110) {
const tempMon = {
id: id,
level: card.limitBreakIncr ? maxLevel : card.maxLevel,
plus: (card.stacking || card.types[0] == 15 && card.types[1] == -1) ? [0, 0, 0] : [99, 99, 99], //当可以叠加时不能打297
plus: (card.stackable || card.types[0] == 15 && card.types[1] == -1) ? [0, 0, 0] : [99, 99, 99], //当可以叠加时不能打297
awoken: card.awakenings.length,
sawoken: 0
};
@ -882,7 +882,8 @@ function searchCards(cards, {attrs: sAttrs, fixMainColor, types, typeAndOr, rare
if (canAssist) cardsRange = cardsRange.filter(card=>card.canAssist);
if (canLv110) cardsRange = cardsRange.filter(card=>card.limitBreakIncr>0);
if (is8Latent) cardsRange = cardsRange.filter(card=>card.is8Latent);
if (notWeapon) cardsRange = cardsRange.filter(card=>!card.awakenings.includes(49));
if (notWeapon) cardsRange = cardsRange.filter(card=>!card.awakenings.includes(49) && //不是武器
!card.stackable); //不可堆叠
//属性
const anyAttrsFlag = 0b1111101;
const anyAttrs = sAttrs.map(attr=>attr === 0 || (attr & anyAttrsFlag) == anyAttrsFlag);

View File

@ -489,7 +489,7 @@ class Card {
get enabled(){ //是否已启用
return Boolean(this.flags & 1<<1);
}
get stacking(){ //flag有1<<3时不合并占一格没有时则根据类型进行合并目前合并已经不占格子
get stackable(){ //flag有1<<3时不合并占一格没有时则根据类型进行合并目前合并已经不占格子
const specialType = [0,12,14,15];
return Boolean(this.flags & 1<<3) &&
this.types.some(t=>specialType.includes(t)); //0進化用;12能力覺醒用;14強化合成用;15販賣用默认合并
@ -1684,7 +1684,7 @@ class PlayerDataCard {
//叠加型用他们的经验来表示数量
const card = Cards[this.id];
this.count = 1;
if (card && card.stacking)
if (card && card.stackable)
{
this.count = this.exp;
this.exp = 0;
@ -2158,6 +2158,7 @@ function loadData(force = false)
if (card.searchFlags) card.leaderSkillTypes = new LeaderSkillType(card);
card.onlyAssist = Boolean(card.flags & 1<<4);
card.gachaIds = flags(card.gachaGroupsFlag);
card.typesFlag = reflags(card.types);
/*card.unk01p = flags(card.unk01);
card.unk02p = flags(card.unk02);
card.unk03p = flags(card.unk03);
@ -5636,7 +5637,7 @@ function initialize() {
mon.sawoken = parseInt(mSAwokenIcon.getAttribute("data-awoken-icon"), 10) || 0;
}
if (card.stacking || card.types.some(t=>[0,12,14,15].includes(t)) &&
if (card.stackable || card.types.some(t=>[0,12,14,15].includes(t)) &&
mon.level >= card.maxLevel) { //当4种特殊type的时候是无法297和打觉醒的但是不能叠加的在未满级时可以
mon.plus = [0, 0, 0];
} else {
@ -6393,7 +6394,7 @@ function editBoxChangeMonId(id) {
skillDetailOriginal.innerHTML = "";
skillDetailOriginal.appendChild(parseSkillDescription(activeskill));
const t_maxLevel = card.stacking ? 1 : activeskill?.maxLevel; //遇到不能升技的最大等级强制为1
const t_maxLevel = card.stackable ? 1 : activeskill?.maxLevel; //遇到不能升技的最大等级强制为1
skillLevel.max = t_maxLevel;
skillLevel.value = t_maxLevel;
skillLevel_Max.value = t_maxLevel;
@ -6419,7 +6420,7 @@ function editBoxChangeMonId(id) {
rowSkill.appendChild(frg1);
rowLederSkill.appendChild(frg2);
let noPowerup = card.stacking || card.types.some(t=>[0,12,14,15].includes(t)) && card.maxLevel <= 1;
let noPowerup = card.stackable || card.types.some(t=>[0,12,14,15].includes(t)) && card.maxLevel <= 1;
skillLevel.readOnly = noPowerup;
rowMonPlus.classList.toggle("disabled", noPowerup);
rowMonLatent.classList.toggle("disabled", noPowerup || card.onlyAssist); //极少数情况会出现仅允许当武器的,不能打潜觉

View File

@ -25471,19 +25471,19 @@ const cachesMap = new Map([
],
[
"script-json_data.js",
"1904d4fda5d71af7e86fed4051387f31"
"cf98970ea6cc0b9dfef050e704614dc4"
],
[
"script-skill-parser.js",
"4519231c3aa362a66e38fa583bc80c48"
"8f1d7a61871ebe366d301476d5afacb9"
],
[
"script-universal_function.js",
"ee468d666737a0415b2bde3b4088db15"
"9545d2373ad30a645163ee78561c12a9"
],
[
"script.js",
"bcc3be6fe22fc1e27c1a383e3803b080"
"84537f17f150d1a9973f19027c909b0b"
],
[
"solo.html",