补充新的技能解析

This commit is contained in:
枫谷剑仙 2025-06-20 03:37:32 +08:00
parent ad2e87e865
commit 3bdf339e42
6 changed files with 64 additions and 35 deletions

View File

@ -1449,9 +1449,9 @@ const teamsCount = 2;
<!--怪物加值-->
<div class="plus-box">
<ul>
<li class="m-hp-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" /></span></li>
<li class="m-atk-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" /></span></li>
<li class="m-rcv-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" /></span></li>
<li class="m-hp-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" value="99" /></span></li>
<li class="m-atk-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" value="99" /></span></li>
<li class="m-rcv-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" value="99" /></span></li>
</ul>
</div>
<button class="m-plus-fast-setting" value="0"></button>

View File

@ -2091,7 +2091,14 @@ const specialSearchFunctions = (function() {
const searchTypeArray = [250];
const skill = getCardActiveSkill(card, searchTypeArray);
return skill;
})
}),
addition:card=>{
const searchTypeArray = [250];
const skill = getCardActiveSkill(card, searchTypeArray);
if (!skill) return;
const sk = skill.params;
return renderAwakenings(sk);
}
},
]},
{group:true,name:"Player's HP change",otLangName:{chs:"玩家HP操纵类",cht:"玩家HP操縱類"}, functions: [

View File

@ -1071,8 +1071,8 @@ function skillPlayVoice(skillStage, VoiceId) {
}
function voidPoison() { return { kind: SkillKinds.VoidPoison }; }
function skillProviso(cond) { return { kind: SkillKinds.SkillProviso, cond: cond }; }
function impartAwakenings(attrs, types, awakenings) {
return { kind: SkillKinds.ImpartAwakenings, attrs: attrs, types: types, awakenings: awakenings };
function impartAwakenings(attrs, types, target, awakenings) {
return { kind: SkillKinds.ImpartAwakenings, attrs, types, target, awakenings };
}
function obstructOpponent(typeName, pos, ids) {
return { kind: SkillKinds.ObstructOpponent, typeName: typeName, pos: pos, enemy_skills: ids };
@ -1577,7 +1577,7 @@ const skillObjectParsers = {
return powerUp(null, null, p.scaleCross([{ single: false, attr: Bin.unflags(attrs), atk: 100, rcv: 100}]), null, v.percent(reduce), combo ? [addCombo(combo)] : null);
},
[213](attrs, types, ...awakenings) { //赋予觉醒的队长技
return impartAwakenings(Bin.unflags(attrs), Bin.unflags(types), awakenings);
return impartAwakenings(Bin.unflags(attrs), Bin.unflags(types), null, awakenings);
},
[214](turns) { return activeTurns(turns, bindSkill()); },
[215](turns, attrs) { return activeTurns(turns, setOrbState(Bin.unflags(attrs), 'bound')); },
@ -1725,8 +1725,12 @@ const skillObjectParsers = {
boardJammingStates('roulette', count ? 'random' : 'shape', options)
);
},
[250]() { //去除自身辅助
return removeAssist();
[250](...awakenings) { //去除自身辅助,如果有参数则是赋予觉醒
const skillEffects = [removeAssist()];
if (awakenings.length) {
skillEffects.unshift(impartAwakenings(null, null, SkillTarget.type1[0], awakenings));
}
return skillEffects;
},
[251](turns, min, max) { //产超暗暗珠
return activeTurns(turns,
@ -1791,26 +1795,39 @@ const skillObjectParsers = {
//一回合内使用几次技能才有倍率的队长技。
[270](times, atk, rcv) { { return powerUp(Bin.unflags(31), null, p.mul({ atk: atk || 100, rcv: rcv || 100 }), c.useSkill(times)); } },
//同时发动觉醒时强化
[271](awakenings, atk, reducePercent, combo, damage, rcv) {
[271](awakeningsFlag, atk, reducePercent, combo, damage, rcv) {
const awakeningsType = [
27, //U-猜的
48, //九宫-猜的
27, //U
48, //九宫
60, //L字
78, //十字-猜的
126, //T字
22, //横排-猜的
23,
24,
25,
26,
78, //十字
126,//T字
22, //横排-火
23, //横排-水
24, //横排-木
25, //横排-光
26, //横排-暗
79, //三色
80, //四色
81, //五色-猜的
82, //饼干-猜的
81, //五色
0,
0,
73, //串串-火
74, //串串-水
75, //串串-木
76, //串串-光
77, //串串-暗
0,
82, //饼干
];
const awakeningsArr = Bin.unflags(awakenings).map(n => awakeningsType[n]);
const awakeningsArr = Bin.unflags(awakeningsFlag).map(n => awakeningsType[n] || 0);
let additional = [combo ? addCombo(combo) : null, damage ? followAttackFixed(damage) : null].filter(Boolean);
return powerUp(null, null, p.mul({ atk: atk, rcv: rcv}), c.awakeningActivated(awakeningsArr), v.percent(reducePercent), additional);
return powerUp(null, null, p.mul({ atk: atk || 100, rcv: rcv || 100}), c.awakeningActivated(awakeningsArr), v.percent(reducePercent), additional);
},
//固定起手位置
[273](turns) {return activeTurns(turns, fixedStartingPosition()); },
@ -2739,7 +2756,7 @@ function renderSkill(skill, option = {})
break;
}
case SkillKinds.ImpartAwakenings: { //赋予队员觉醒
let attrs = skill.attrs, types = skill.types, awakenings = skill.awakenings;
let {attrs, types, target, awakenings} = skill;
let dict = {
awakenings: renderAwakenings(awakenings, {affix: true}),
}
@ -2755,6 +2772,11 @@ function renderSkill(skill, option = {})
dict.types = renderTypes(types || [], {affix: true});
attrs_types.push(dict.types);
}
if (target)
{
dict.target = tsp?.target[target.replaceAll("-","_")]?.();
attrs_types.push(dict.target);
}
if (attrs_types.length)
{
dict.attrs_types = attrs_types.nodeJoin(tsp.word.slight_pause());

View File

@ -53731,7 +53731,7 @@ const cachesMap = new Map([
],
[
"multi.html",
"062119ddc281e257625d159fb32893f2"
"e9940fa95b9d22fbf8b67ab273cd0057"
],
[
"script-custom_elements.js",
@ -53739,11 +53739,11 @@ const cachesMap = new Map([
],
[
"script-json_data.js",
"c80db1fbd18e33348acaf4eebfddbe14"
"8c718524fc9bedeaef8c609711a3bd7b"
],
[
"script-skill-parser.js",
"8f36a12a93a4cfedaa39476ce1bb4c96"
"f48d3aa81b98d0ec8d5f6441581c5c68"
],
[
"script-universal_function.js",
@ -53755,7 +53755,7 @@ const cachesMap = new Map([
],
[
"solo.html",
"3c6485bb97f91e1c0ed450d9e9403170"
"08d3741e2088be4776f88348d14ddf67"
],
[
"style-fix-html2canvas.css",
@ -53775,7 +53775,7 @@ const cachesMap = new Map([
],
[
"triple.html",
"7296361dc5e40223689ba3414bf410b0"
"bce203a02364a6bfa8b877eefd33ef4b"
],
[
"languages/en.css",

View File

@ -1139,9 +1139,9 @@ const teamsCount = 1;
<!--怪物加值-->
<div class="plus-box">
<ul>
<li class="m-hp-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" /></span></li>
<li class="m-atk-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" /></span></li>
<li class="m-rcv-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" /></span></li>
<li class="m-hp-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" value="99" /></span></li>
<li class="m-atk-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" value="99" /></span></li>
<li class="m-rcv-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" value="99" /></span></li>
</ul>
</div>
<button class="m-plus-fast-setting" value="0"></button>

View File

@ -1984,9 +1984,9 @@ const teamsCount = 3;
<!--怪物加值-->
<div class="plus-box">
<ul>
<li class="m-hp-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" /></span></li>
<li class="m-atk-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" /></span></li>
<li class="m-rcv-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" /></span></li>
<li class="m-hp-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" value="99" /></span></li>
<li class="m-atk-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" value="99" /></span></li>
<li class="m-rcv-li"><span class="plus-value"><input type="number" class="m-plus" min="0" max="297" value="99" /></span></li>
</ul>
</div>
<button class="m-plus-fast-setting" value="0"></button>