1、修订封条的技能解析

2、加入76版面主动技的搜索
This commit is contained in:
枫谷剑仙 2022-10-20 21:13:35 +08:00
parent 51d809b385
commit 1ccab7bfec
7 changed files with 43 additions and 23 deletions

View File

@ -93,7 +93,7 @@
使用顶部的开关可以切换到复制模式<br> 使用顶部的开关可以切换到复制模式<br>
Use the switch at the top can switch to copy mode. Use the switch at the top can switch to copy mode.
</li> </li>
<li>如果你希望使用技能切换队长使用切换按钮。这样可以保留原始队长强调边框和76面图标。<br> <li>如果你希望使用技能切换队长使用切换按钮。这样可以保留原始队长强调边框和76面图标。<br>
If you want switch leader by skill, use the switch button. This preserves the original leader accent border, If you want switch leader by skill, use the switch button. This preserves the original leader accent border,
and the 76 board icon.<br> and the 76 board icon.<br>
<img src="images/tips-switch-leader.png" alt="切换位置"> <img src="images/tips-switch-leader.png" alt="切换位置">

View File

@ -445,7 +445,7 @@ function parseSkillDescription(skill) {
dataArray.push(valueArray.splice(Math.randomInteger(valueArray.length - 1),1)); dataArray.push(valueArray.splice(Math.randomInteger(valueArray.length - 1),1));
} }
//创建面数据,依次填入 //创建面数据,依次填入
var data = new Array(5).fill(null).map(()=>new Array(6).fill(null)); var data = new Array(5).fill(null).map(()=>new Array(6).fill(null));
let da = dataArray.entries(); let da = dataArray.entries();
@ -914,7 +914,7 @@ function parseSkillDescription(skill) {
str = `造成敌人 HP 上限${sk[0]}%的伤害`; str = `造成敌人 HP 上限${sk[0]}%的伤害`;
break; break;
case 162: case 162:
str = '<span class="spColor">【7×6面】</span>'; str = '<span class="spColor">【7×6面】</span>';
break; break;
case 163: case 163:
str = '<span class="spColor">【没有天降消除】</span>'; str = '<span class="spColor">【没有天降消除】</span>';
@ -1245,7 +1245,7 @@ function parseSkillDescription(skill) {
if (sk[0]) str += `,操作时间${sk[0]>0?`延长`:`减少`}${Math.abs(sk[0]/100)}`; if (sk[0]) str += `,操作时间${sk[0]>0?`延长`:`减少`}${Math.abs(sk[0]/100)}`;
break; break;
case 186: case 186:
str = '<span class="spColor">【7×6面】</span>'; str = '<span class="spColor">【7×6面】</span>';
if (sk[0] || sk[1]) str += getAttrTypeString(flags(sk[0]),flags(sk[1])) + "宠物的" + getFixedHpAtkRcvString({hp:sk[2],atk:sk[3],rcv:sk[4]}); if (sk[0] || sk[1]) str += getAttrTypeString(flags(sk[0]),flags(sk[1])) + "宠物的" + getFixedHpAtkRcvString({hp:sk[2],atk:sk[3],rcv:sk[4]});
break; break;
case 188: //多次单体固伤 case 188: //多次单体固伤

View File

@ -99,7 +99,7 @@
obstruct_opponent_designated_position: tp`${'positions'}排位的對手`, obstruct_opponent_designated_position: tp`${'positions'}排位的對手`,
increase_damage_cap: tp`${'targets'}${'icon'}傷害上限提升到${'cap'}`, increase_damage_cap: tp`${'targets'}${'icon'}傷害上限提升到${'cap'}`,
board_jamming_state: tp`${'position'}生成${'icon'}${'state'}${'size'}${'count'}${'time'}`, board_jamming_state: tp`${'position'}生成${'icon'}${'state'}${'size'}${'count'}${'time'}`,
board_size_change: tp`面大小改變為${'icon'}${'size'}`, board_size_change: tp`面大小改變為${'icon'}${'size'}`,
}, },
power: { power: {
unknown: tp`[ 未知能力提升: ${'type'} ]`, unknown: tp`[ 未知能力提升: ${'type'} ]`,

View File

@ -99,7 +99,7 @@
obstruct_opponent_designated_position: tp`${'positions'}排位的对手`, obstruct_opponent_designated_position: tp`${'positions'}排位的对手`,
increase_damage_cap: tp`${'targets'}${'icon'}伤害上限提升到${'cap'}`, increase_damage_cap: tp`${'targets'}${'icon'}伤害上限提升到${'cap'}`,
board_jamming_state: tp`${'position'}生成${'icon'}${'state'}${'size'}${'count'}${'time'}`, board_jamming_state: tp`${'position'}生成${'icon'}${'state'}${'size'}${'count'}${'time'}`,
board_size_change: tp`面大小改变为${'icon'}${'size'}`, board_size_change: tp`面大小改变为${'icon'}${'size'}`,
}, },
power: { power: {
unknown: tp`[ 未知能力提升: ${'type'} ]`, unknown: tp`[ 未知能力提升: ${'type'} ]`,

View File

@ -2442,6 +2442,26 @@ const specialSearchFunctions = (function() {
return fragment; return fragment;
} }
}, },
{name:"Change Board Size",otLangName:{chs:"改变板面大小",cht:"改變板面大小"},
function:cards=>{
const searchTypeArray = [244];
return cards.filter(card=>{
const skill = getCardActiveSkill(card, searchTypeArray);
return skill;
}).sort((a,b)=>sortByParams(a,b,searchTypeArray));
},
addition:card=>{
const searchTypeArray = [244];
const skill = getCardActiveSkill(card, searchTypeArray);
if (!skill) return;
const sk = skill.params;
if (sk[1])
return `[7×6]×${sk[0]}T`;
else
return `[6×5]×${sk[0]}T`;
}
},
]}, ]},
{group:true,name:"-----Orbs States Change-----",otLangName:{chs:"-----改变宝珠状态类-----",cht:"-----改變寶珠狀態類-----"}, functions: [ {group:true,name:"-----Orbs States Change-----",otLangName:{chs:"-----改变宝珠状态类-----",cht:"-----改變寶珠狀態類-----"}, functions: [
{name:"Unlock",otLangName:{chs:"解锁",cht:"解鎖"}, {name:"Unlock",otLangName:{chs:"解锁",cht:"解鎖"},
@ -3089,14 +3109,14 @@ const specialSearchFunctions = (function() {
{name:"Type Enchantment",otLangName:{chs:"类型增强",cht:"類型增强"}, {name:"Type Enchantment",otLangName:{chs:"类型增强",cht:"類型增强"},
function:cards=>cards.filter(card=>card.leaderSkillTypes.restriction.typeEnhance) function:cards=>cards.filter(card=>card.leaderSkillTypes.restriction.typeEnhance)
}, },
{name:"[7×6 board]",otLangName:{chs:"【7×6 版面】",cht:"【7×6 版面】"}, {name:"[7×6 board]",otLangName:{chs:"【7×6 板面】",cht:"【7×6 板面】"},
function:cards=>cards.filter(card=>{ function:cards=>cards.filter(card=>{
const searchTypeArray = [162,186]; const searchTypeArray = [162,186];
const skill = getCardLeaderSkill(card, searchTypeArray); const skill = getCardLeaderSkill(card, searchTypeArray);
return skill; return skill;
}) })
}, },
{name:"[No skyfall]",otLangName:{chs:"【无天降版面】",cht:"【無天降版面】"}, {name:"[No skyfall]",otLangName:{chs:"【无天降板面】",cht:"【無天降板面】"},
function:cards=>cards.filter(card=>{ function:cards=>cards.filter(card=>{
const searchTypeArray = [163,177]; const searchTypeArray = [163,177];
const skill = getCardLeaderSkill(card, searchTypeArray); const skill = getCardLeaderSkill(card, searchTypeArray);

View File

@ -326,7 +326,7 @@ class Board
this.setOrbAndBlock(flatOrbsData[i], null, attrArray[i]); this.setOrbAndBlock(flatOrbsData[i], null, attrArray[i]);
} }
} else { } else {
//在面上查询符合的颜色 //在面上查询符合的颜色
flatOrbsData = flatOrbsData.filter(orb=>attrs.includes(orb.attr)); flatOrbsData = flatOrbsData.filter(orb=>attrs.includes(orb.attr));
const maxLength = Math.min(count, flatOrbsData.length); const maxLength = Math.min(count, flatOrbsData.length);
for (let i=0; i<maxLength; i++) { for (let i=0; i<maxLength; i++) {
@ -334,7 +334,7 @@ class Board
} }
} }
} }
//生成面状态 //生成面状态
generateBlockStates(blockState, count = 1, size = [1,1], position = [0, 0]) generateBlockStates(blockState, count = 1, size = [1,1], position = [0, 0])
{ {
for (let i=0; i<count; i++) { for (let i=0; i<count; i++) {
@ -1554,20 +1554,20 @@ const parsers = {
boardJammingStates('clouds', (pos1 && pos2) ? 'fixed' : 'random', { size: [width, height], positions: [pos1, pos2] }) boardJammingStates('clouds', (pos1 && pos2) ? 'fixed' : 'random', { size: [width, height], positions: [pos1, pos2] })
); );
}, },
[239](turns, colum, row) { //产封条 [239](colum, turns, row) { //产封条
//const colums = flags(colum), rows = flags(row); //const colums = flags(colum), rows = flags(row);
return activeTurns(turns, return activeTurns(turns,
boardJammingStates('immobility', 'fixed', { positions: {colums: flags(colum), rows: flags(row)} }) boardJammingStates('immobility', 'fixed', { positions: {colums: flags(colum), rows: flags(row)} })
); );
}, },
[241](turns, cap, target = 1) { //改变伤害上限 [241](turns, cap, target = 1) { //改变伤害上限主动技
const targetTypes = ["self","leader-self","leader-helper","sub-members"]; const targetTypes = ["self","leader-self","leader-helper","sub-members"];
const typeArr = flags(target).map(n => targetTypes[n]); const typeArr = flags(target).map(n => targetTypes[n]);
return activeTurns(turns, return activeTurns(turns,
increaseDamageCap(cap * 1e8, typeArr) increaseDamageCap(cap * 1e8, typeArr)
); );
}, },
[244](turns, type) { //改变版面大小 [244](turns, type) { //改变板面大小主动技
let width, height; let width, height;
switch (type) { switch (type) {
case 1: { case 1: {
@ -1712,7 +1712,7 @@ function renderSkillEntry(skills)
} }
break; break;
} }
case SkillKinds.BoardJammingStates: { //产生面干扰 case SkillKinds.BoardJammingStates: { //产生面干扰
const { state, posType, size, positions, count, time } = skill; const { state, posType, size, positions, count, time } = skill;
if (state == 'roulette') { //轮盘位 if (state == 'roulette') { //轮盘位
boardsBar.boards.forEach(board=>{ boardsBar.boards.forEach(board=>{
@ -2499,7 +2499,7 @@ function renderSkill(skill, option = {})
frg.ap(tsp.skill.increase_damage_cap(dict)); frg.ap(tsp.skill.increase_damage_cap(dict));
break; break;
} }
case SkillKinds.BoardJammingStates: { //面产生干扰状态 case SkillKinds.BoardJammingStates: { //面产生干扰状态
const { state, posType, positions, count, time } = skill; const { state, posType, positions, count, time } = skill;
const boardsBar = merge_skill ? null : new BoardSet(new Board(), new Board(null,7,6), new Board(null,5,4)); const boardsBar = merge_skill ? null : new BoardSet(new Board(), new Board(null,7,6), new Board(null,5,4));
const slight_pause = tsp.word.slight_pause().textContent; const slight_pause = tsp.word.slight_pause().textContent;
@ -2553,7 +2553,7 @@ function renderSkill(skill, option = {})
} }
break; break;
} }
case SkillKinds.BoardSizeChange: { //改变面大小 case SkillKinds.BoardSizeChange: { //改变面大小
const { width, height } = skill; const { width, height } = skill;
let dict = { let dict = {

View File

@ -6547,11 +6547,11 @@ const cachesMap = new Map([
], ],
[ [
"script-json_data.js", "script-json_data.js",
"83cbe83aac41ec85c5030f1944ab0857" "af483027642411e92e9eee8c4cb6e186"
], ],
[ [
"script-skill-parser.js", "script-skill-parser.js",
"b7d2f728613342d120c90da80289be15" "18a86045d9c68864a1fad02966260cd7"
], ],
[ [
"script-universal_function.js", "script-universal_function.js",
@ -6559,7 +6559,7 @@ const cachesMap = new Map([
], ],
[ [
"script.js", "script.js",
"7a7e9925d89b7a95e7c0cf7f0643c271" "5a52248d0177195aa35728b50553d67d"
], ],
[ [
"solo.html", "solo.html",
@ -6623,7 +6623,7 @@ const cachesMap = new Map([
], ],
[ [
"languages/zh-CN.js", "languages/zh-CN.js",
"a5f13891d01a97bc21897121565a25ee" "3b922083456dace77fe587140a9e73b7"
], ],
[ [
"languages/zh-TW.css", "languages/zh-TW.css",
@ -6631,7 +6631,7 @@ const cachesMap = new Map([
], ],
[ [
"languages/zh-TW.js", "languages/zh-TW.js",
"44dd3143a97b18de2d6ab61ce00497fc" "ee6bbc6be0d4c3c8dde708d199a23b5b"
], ],
[ [
"languages/zh.css", "languages/zh.css",
@ -6639,7 +6639,7 @@ const cachesMap = new Map([
], ],
[ [
"languages/zh.js", "languages/zh.js",
"1504d9cff230fa280adaef668754bdc3" "c76b19382d75a83f5d14254c0105ac85"
], ],
[ [
"images/attrs.png", "images/attrs.png",
@ -6843,7 +6843,7 @@ const cachesMap = new Map([
], ],
[ [
"doc/index.html", "doc/index.html",
"59ef0b56f90307a2c6820a08ea26640e" "31e760f0569061597832fc91187f2d9f"
], ],
[ [
"doc/images/player-bind-box.webp", "doc/images/player-bind-box.webp",