增加了限时伤害上限技能

This commit is contained in:
枫谷剑仙 2022-12-23 21:11:29 +08:00
parent 4c7308fe8b
commit 70dfd133e8
5 changed files with 98 additions and 30 deletions

View File

@ -54,7 +54,8 @@
follow_attack_fixed: tp`追加${'damage'}${'attr'}伤害`,
auto_heal_buff: tp`行动结束后${'icon'}回复${'value'}${'stats'}`,
auto_heal: tp`${'icon'}消除宝珠的回合,回复${'belong_to'}${'value'}${'stats'}`,
ctw: tp`${'icon'}${'value'}内时间停止,可以任意移动宝珠`,
ctw: tp`${'icon'}${'time'}内时间停止,可以任意移动宝珠${'addition'}`,
ctw_addition: tp`,达成${'cond'}时,${'skill'}`,
gravity: tp`${'icon'}造成${'target'}${'value'}的伤害`,
resolve: tp`${'icon'}${'stats'}${'min'}受到单一次致命攻击时将会以1点 HP 生还`,
board_change: tp`全画面的宝珠变为${'orbs'}`,

View File

@ -69,7 +69,8 @@ let localTranslating = {
follow_attack_fixed: tp`inflicts ${'damage'} ${'attr'} damage`,
auto_heal_buff: tp`${'icon'}Heal ${'value'} ${'stats'} every turn`,
auto_heal: tp`${'icon'}Heal ${'stats'} by ${'belong_to'} ${'value'} after matching orbs`,
ctw: tp`${'icon'}Move orbs freely for ${'value'}`,
ctw: tp`${'icon'}Move orbs freely for ${'time'}${'addition'}`,
ctw_addition: tp`, ${'cond'} is achieved, ${'skill'}`,
gravity: tp`${'icon'}Reduce ${'target'} ${'value'}`,
resolve: tp`${'icon'}Survive a single hit when ${'stats'}${'min'}`,
board_change: tp`Change all orbs to ${'orbs'}`,
@ -2051,18 +2052,54 @@ const specialSearchFunctions = (function() {
},
{name:"Increase Damage Cap",otLangName:{chs:"增加伤害上限 buff",cht:"增加傷害上限 buff"},
function:cards=>{
const searchTypeArray = [241];
function getIncreaseDamageCap(skill)
{
let cap = 0;
switch (skill.type) {
case 241:
cap = skill.params[1];
break;
case 246:
cap = skill.params[2];
break;
case 247:
cap = skill.params[3];
break;
}
return cap;
}
const searchTypeArray = [241, 246, 247];
return cards.filter(card=>{
const skill = getCardActiveSkill(card, searchTypeArray);
return skill;
}).sort((a,b)=>sortByParams(a, b, searchTypeArray, 1));
}).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:card=>{
const searchTypeArray = [241];
const searchTypeArray = [241, 246, 247];
const skill = getCardActiveSkill(card, searchTypeArray);
if (!skill) return;
const sk = skill.params;
return `${(sk[1]*1e8).bigNumberToString()}×${sk[0]}T`;
let cap;
switch (skill.type) {
case 241:
cap = sk[1];
break;
case 246:
cap = sk[2];
break;
case 247:
cap = sk[3];
break;
}
if (skill.type == 241) {
return `${(cap*1e8).bigNumberToString()}×${sk[0]}T`;
} else {
return `${(cap*1e8).bigNumberToString()} in ${sk[0]}S`;
}
}
},
{name:"Member ATK rate change",otLangName:{chs:"队员攻击力 buff",cht:"隊員攻擊力 buff"},
@ -3054,14 +3091,14 @@ const specialSearchFunctions = (function() {
},
{name:"Time pause(sort by time)",otLangName:{chs:"时间暂停(按停止时间排序)",cht:"時間暫停(按停止時間排序)"},
function:cards=>{
const searchTypeArray = [5];
const searchTypeArray = [5, 246, 247];
return cards.filter(card=>{
const skill = getCardActiveSkill(card, searchTypeArray);
return skill;
}).sort((a,b)=>sortByParams(a,b,searchTypeArray));
},
addition:card=>{
const searchTypeArray = [5];
const searchTypeArray = [5, 246, 247];
const skill = getCardActiveSkill(card, searchTypeArray);
const value = skill.params[0];
return `时停${value}s`;

View File

@ -862,6 +862,12 @@ const c = {
if (attrs === void 0) { attrs = Attributes.all(); }
return { exact: { type: type, value: value, attrs: attrs, multiple: multiple} };
},
combos: function (min) {
return { combos: { min } };
},
attrs: function (attrs, min) {
return { attrs: { attrs, min} };
},
compo: function (type, ids) {
return { compo: { type: type, ids: ids } };
},
@ -1029,7 +1035,9 @@ function fixedTime(value) { return { kind: SkillKinds.FixedTime, value: v.consta
function addCombo(value) { return { kind: SkillKinds.AddCombo, value: value }; }
function defBreak(value) { return { kind: SkillKinds.DefenseBreak, value: value }; }
function poison(value) { return { kind: SkillKinds.Poison, value: value }; }
function CTW(value) { return { kind: SkillKinds.CTW, value: value }; }
function CTW(time, cond, skill) {
return { kind: SkillKinds.CTW, time, cond, skill };
}
function followAttack(value) { return { kind: SkillKinds.FollowAttack, value: value }; }
function followAttackFixed(value) { return { kind: SkillKinds.FollowAttackFixed, value: v.constant(value) }; }
function autoHeal(value) { return { kind: SkillKinds.AutoHeal, value: value }; }
@ -1601,11 +1609,11 @@ const skillObjectParsers = {
boardJammingStates('immobility', 'fixed', { positions: {colums: flags(colum), rows: flags(row)} })
);
},
[241](turns, cap, target = 1) { //改变伤害上限主动技
const targetTypes = ["self","leader-self","leader-helper","sub-members"];
const typeArr = flags(target).map(n => targetTypes[n]);
[241](turns, cap) { //改变伤害上限主动技
// const targetTypes = ["self","leader-self","leader-helper","sub-members"];
// const typeArr = flags(target).map(n => targetTypes[n]);
return activeTurns(turns,
increaseDamageCap(cap * 1e8, typeArr)
increaseDamageCap(cap * 1e8, ["self"])
);
},
[244](turns, type) { //改变板面大小主动技
@ -1636,6 +1644,12 @@ const skillObjectParsers = {
[245](rarity, _2, _3, hp, atk, rcv) { //全员满足某种情况,现在是全部星级不一样
return powerUp(flags(_2), flags(_3), p.mul({ hp: hp || 100, atk: atk || 100, rcv: rcv || 100 }), c.compo('team-same-rarity', rarity));
},
[246](time, combo, cap) { //限定时间内转出多少C提高伤害上限
return CTW(v.constant(time), c.combos(combo) , increaseDamageCap(cap * 1e8, ["self"]));
},
[247](time, attr, min, cap) { //限定时间内转出多少色提高伤害上限
return CTW(v.constant(time), c.attrs(flags(attr), min) , increaseDamageCap(cap * 1e8, ["self"]));
},
[1000](type, pos, ...ids) {
const posType = (type=>{
switch (type) {
@ -1994,10 +2008,18 @@ function renderSkill(skill, option = {})
break;
}
case SkillKinds.CTW: { //时间暂停
let {time, cond, skill: subSkill} = skill;
let dict = {
icon: createIcon(skill.kind),
value: renderValue(skill.value, { unit: tsp.unit.seconds }),
time: renderValue(time, { unit: tsp.unit.seconds }),
};
if (cond) {
let dict2 = {
cond: renderCondition(cond),
skill: renderSkill(subSkill)
}
dict.addition = tsp.skill.ctw_addition(dict2);
}
frg.ap(tsp.skill.ctw(dict));
break;
}
@ -2761,6 +2783,17 @@ function renderCondition(cond) {
value: renderValue(v.constant(cond.remainOrbs.count), {unit: tsp.unit.orbs}),
};
frg.ap(tsp.cond.remain_orbs(dict));
} else if (cond.combos) {
const { min } = cond.combos;
let dict = { min };
frg.ap(tsp.power.scale_combos(dict));
} else if (cond.attrs) {
const { attrs, min} = cond.attrs;
let dict = {
min,
orbs: renderOrbs(attrs, {affix: true})
};
frg.ap(tsp.power.scale_attributes(dict));
} else if (cond.exact) {
const { type, attrs , value, multiple } = cond.exact;
if (type === 'combo') {

View File

@ -8051,7 +8051,7 @@ const cachesMap = new Map([
],
[
"multi.html",
"1ef781f0286837ddf18d06784992af68"
"7a8c2f2cdd08036c0b18d0fd82ca5213"
],
[
"script-custom_elements.js",
@ -8063,7 +8063,7 @@ const cachesMap = new Map([
],
[
"script-skill-parser.js",
"3c6789e94ed2b39052d209c363eabc3a"
"640054aa1e74d653993af4c9a4de5b00"
],
[
"script-universal_function.js",
@ -8071,11 +8071,11 @@ const cachesMap = new Map([
],
[
"script.js",
"29b443c6701b1f475c0e37141cc40725"
"e7baa9224af3134c62a8b62e19d12197"
],
[
"solo.html",
"e8feb027ec5ac6d7e627e5ad10281030"
"9a82c31d52533ebc37f1a04e5753fb63"
],
[
"style-monsterimages.css",
@ -8083,7 +8083,7 @@ const cachesMap = new Map([
],
[
"style.css",
"8c8575c31b4b6282037986a3b6935b89"
"ea0c9d5bb0aefd3032eb7de8500d4f14"
],
[
"temp.js",
@ -8091,7 +8091,7 @@ const cachesMap = new Map([
],
[
"triple.html",
"1e5b3a2ff515fb7043537ac417390afb"
"a7858b668418ca1c2f37f75c85fd0dac"
],
[
"languages/en.css",

View File

@ -2064,15 +2064,18 @@ icon.inflicts::after
{
content: attr(data-search-result-count);
}
.guide-mod .search-mon-list{
max-height: 30vh;
overflow: auto;
}
/*图鉴模式使用粘性定位*/
.guide-mod .sticky-box {
position: sticky;
top: 0;
z-index: 1;
}
/*图鉴模式默认高度为30%设备高度,可修改大小*/
.guide-mod .search-mon-list{
overflow: auto;
height: 30vh;
resize: vertical;
}
.setting-box .row-mon-id .real-time-change-card-label
{
@ -3826,12 +3829,6 @@ table .orb-icon
{
margin-right: 5px;
}
.dialog-dungeon-enchance .collab-list::after {
content: "(Will be deprecated)"
}
:lang(zh) .dialog-dungeon-enchance .collab-list::after {
content: "(即将弃用)"
}
.icon-skill,
.icon-skill::after,