加几个新技能

This commit is contained in:
枫谷剑仙 2024-11-04 20:08:19 +08:00
parent 9fb94b2784
commit beefcfe1f7
9 changed files with 112 additions and 25 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 202 KiB

View File

@ -115,6 +115,8 @@ const _localTranslating = {
set_orb_state_locked: tp`${'orbs'}${'icon'}锁定${'value'}`,
set_orb_state_unlocked: tp`${'icon'}解除${'orbs'}的锁定状态`,
set_orb_state_bound: tp`无法消除${'orbs'}`,
set_orb_state_combo_drop: tp`${'orbs'}增加${'value'}${'icon'}豆荚状态`,
set_orb_state_nail: tp`${'orbs'}增加${'value'}${'icon'}钉子状态`,
rate_multiply: tp`作为队长进入地下城时,${'rate'}变为${'value'}`,
rate_multiply_drop: tp`${'icon'}怪物蛋掉落率`,
rate_multiply_coin: tp`${'icon'}金币掉落率`,

View File

@ -115,6 +115,8 @@ const _localTranslating = {
set_orb_state_locked: tp`${'orbs'}${'icon'}鎖定${'value'}`,
set_orb_state_unlocked: tp`${'icon'}解除${'orbs'}的鎖定狀態`,
set_orb_state_bound: tp`無法消除${'orbs'}`,
set_orb_state_combo_drop: tp`${'orbs'}增加${'value'}${'icon'}豆莢狀態`,
set_orb_state_nail: tp`${'orbs'}增加${'value'}${'icon'}釘子狀態`,
rate_multiply: tp`作為隊長進入地下城時,${'rate'}變為${'value'}`,
rate_multiply_drop: tp`${'icon'}怪物蛋掉落率`,
rate_multiply_coin: tp`${'icon'}金幣掉落率`,

View File

@ -130,6 +130,8 @@ let localTranslating = {
set_orb_state_locked: tp`${'icon'}Locks ${'value'}${'orbs'}`,
set_orb_state_unlocked: tp`${'icon'}Unlocks ${'orbs'}`,
set_orb_state_bound: tp`${'orbs'} are unmatchable`,
set_orb_state_combo_drop: tp`Add ${'value'} ${'icon'}combo drop on ${'orbs'}`,
set_orb_state_nail: tp`Add ${'value'} ${'icon'}nail on ${'orbs'}`,
rate_multiply: tp`${'rate'} ${'value'} when entering as leader`,
rate_multiply_drop: tp`${'icon'}Drop rate`,
rate_multiply_coin: tp`${'icon'}Coins`,
@ -1071,14 +1073,46 @@ const specialSearchFunctions = (function() {
}
function lock_Addition(card)
{
const searchTypeArray = [152];
const skill = getCardActiveSkill(card, searchTypeArray);
if (!skill) return;
const sk = skill.params;
const fragment = document.createDocumentFragment();
fragment.appendChild(createSkillIcon('orb-locked'));
fragment.appendChild(createOrbsList(Bin.unflags(sk[0] || 1)));
return fragment;
const searchTypeArray = [152, 190, 262];
const skills = getCardActiveSkills(card, searchTypeArray, true);
if (!skills.length) return;
return skills.map(skill=>{
const sk = skill.params;
const fragment = document.createDocumentFragment();
switch (skill.type) {
case 152:{
fragment.append(
createSkillIcon('orb-locked')
);
if (sk[1] < 42) fragment.append(`×${sk[1]}`);
fragment.append(
createOrbsList(Bin.unflags(sk[0] || 1))
);
break;
}
case 190:{
fragment.append(
createSkillIcon('orb-combo-drop')
);
if (sk[1] < 42) fragment.append(`×${sk[1]}`);
fragment.append(
createOrbsList(Bin.unflags(sk[0] || 1))
);
break;
}
case 262:{
fragment.append(
createSkillIcon('orb-nail')
);
if (sk[0] < 42) fragment.append(`×${sk[0]}`);
fragment.append(
createOrbsList(Attributes.orbs())
);
break;
}
}
return fragment;
}).nodeJoin('');
}
function dropLock_Addition(card)
{
@ -2454,11 +2488,27 @@ const specialSearchFunctions = (function() {
}
}
const fragment = document.createDocumentFragment();
fragment.appendChild(document.createTextNode(`强化`));
fragment.appendChild(createSkillIcon('orb-enhanced'));
fragment.appendChild(createOrbsList(attrs));
return fragment;
}
},
{name:"Add Combo Drop",otLangName:{chs:"加豆荚",cht:"加豆莢"},
function:cards=>cards.filter(card=>{
const searchTypeArray = [190];
const skill = getCardActiveSkill(card, searchTypeArray);
return skill;
}),
addition:lock_Addition
},
{name:"Add Nail",otLangName:{chs:"加钉子",cht:"加釘子"},
function:cards=>cards.filter(card=>{
const searchTypeArray = [262];
const skill = getCardActiveSkill(card, searchTypeArray);
return skill;
}),
addition:lock_Addition
},
{name:"Bind self matchable",otLangName:{chs:"自封消珠 debuff",cht:"自封消珠 debuff"},
function:cards=>cards.filter(card=>{
const searchTypeArray = [215];

View File

@ -992,7 +992,7 @@ function counterAttack(attr, prob, value) {
return { kind: SkillKinds.CounterAttack, attr: attr, prob: prob, value: value };
}
function setOrbState(orbs, state, arg) {
return { kind: SkillKinds.SetOrbState, orbs: orbs, state: state, arg: arg};
return { kind: SkillKinds.SetOrbState, orbs, state, arg};
}
function rateMultiply(value, rate) {
return { kind: SkillKinds.RateMultiply, value: value, rate: rate };
@ -1464,6 +1464,7 @@ const skillObjectParsers = {
autoPath(3),
];
},
[190](attrs, count) { return setOrbState(Bin.unflags(attrs), 'combo-drop', {count: v.constant(count)}); },
[191](turns) {
return activeTurns(turns, voidEnemyBuff(['damage-void']));
@ -1729,6 +1730,7 @@ const skillObjectParsers = {
[259](percent) { return breakingShield(v.xShield(percent)); },
[260](skillStage, voiceId) { return skillPlayVoice(skillStage, voiceId); },
[261](percent) { return gravity(v.xCHP(percent), 'single'); },
[262](count) { return setOrbState(Attributes.orbs(), 'nail', {count: v.constant(count)}); },
[263](turns, cap, attr, type) { //按属性改变伤害上限主动技
return activeTurns(turns,
increaseDamageCapacity(cap * 1e8, void 0, Bin.unflags(attr), Bin.unflags(type))
@ -1801,7 +1803,7 @@ function renderSkillEntry(skills)
break;
}
case SkillKinds.GenerateOrbs: { //产生珠子
let orbs = skill.orbs, exclude = skill.exclude, count = skill.count;
const { orbs, exclude, count } = skill;
boardsBar.boards.forEach(board=>board.generateOrbs(orbs, count, exclude));
break;
}
@ -2462,9 +2464,13 @@ function renderSkill(skill, option = {})
break;
}
case SkillKinds.SetOrbState: {
let orbs = skill.orbs, state = skill.state, arg = skill.arg;
const {orbs, state, arg} = skill;
let dict = {
orbs: renderOrbs(orbs, {className: state, affix: true}),
orbs: renderOrbs(orbs, {
//有的时候附加效果限制个数,这个附加图标加到文字里面的图标上面的去不好看也不准确,应该只加到面板里。
//className: state,
affix: true
}),
icon: createIcon('orb-' + state),
};
switch (state)
@ -2488,6 +2494,18 @@ function renderSkill(skill, option = {})
frg.ap(tsp.skill.set_orb_state_bound(dict));
break;
}
case "combo-drop":{
if (arg.count.value < 42)
dict.value = renderValue(arg.count, {unit: tsp.unit.orbs});
frg.ap(tsp.skill.set_orb_state_combo_drop(dict));
break;
}
case "nail":{
if (arg.count.value < 42)
dict.value = renderValue(arg.count, {unit: tsp.unit.orbs});
frg.ap(tsp.skill.set_orb_state_nail(dict));
break;
}
}
break;
}
@ -2911,6 +2929,8 @@ function renderAttrs(attrs, option = {}) {
function renderOrbs(attrs, option = {}) {
if (!Array.isArray(attrs))
attrs = [attrs ?? 0];
else
attrs = [...attrs];
const frg = document.createDocumentFragment();
if (typeof localTranslating == "undefined") return frg;
@ -2922,7 +2942,7 @@ function renderOrbs(attrs, option = {}) {
let attrBin = new Bin(attrs);
if ((attrBin.int & 0b1111111111) == 0b1111111111) { //十种珠子
frg.ap(tsp.orbs.all());
attrs.length = 0;
attrs.length = 0; //之前是引用,这里会导致数组被清空的错误
} else if ((attrBin.int & 0b11111) == 0b11111) { //基础5色
frg.ap(renderOrbs('_5color'));
attrBin = new Bin(attrBin.int & 0b1111100000);

View File

@ -37339,11 +37339,11 @@ const cachesMap = new Map([
],
[
"script-json_data.js",
"542e14ea40fb4e78f90b9042c9cab73e"
"dfaedd802c88abd2dc04807133cd292c"
],
[
"script-skill-parser.js",
"611d6dbe1cb34e394b466d5548413bb5"
"1747fe828fc25e0394f82245eccca5c7"
],
[
"script-universal_function.js",
@ -37363,11 +37363,11 @@ const cachesMap = new Map([
],
[
"style-monsterimages.css",
"27fbe6036d87bcbcba695b3855d6d175"
"825aea31ea61e82142a634ccc7230d9f"
],
[
"style.css",
"bf69ae63b86117783d918534b14b3a54"
"0548eea7ac972f4bac0ffebf384a51e5"
],
[
"temp.js",
@ -37411,7 +37411,7 @@ const cachesMap = new Map([
],
[
"languages/zh-hans.js",
"71138b459d0d9851f2554e6336f32a98"
"8552840a3934a8eee0d0e001419036d9"
],
[
"languages/zh-hant.css",
@ -37419,7 +37419,7 @@ const cachesMap = new Map([
],
[
"languages/zh-hant.js",
"677bd55683bbe9f7055523ed462db5b9"
"3f4938a03f1d14544bd9da895126ed6c"
],
[
"images/attrs.png",
@ -37571,7 +37571,7 @@ const cachesMap = new Map([
],
[
"images/icon-skills.png",
"fae3e58d36a30373bf184d1c4b9e78d5"
"9b5c57a64636cbfddffbb4549f5e6035"
],
[
"images/icon-switch-leader.png",

View File

@ -2075,7 +2075,7 @@
--icon-y-index: 1;
}
.orb.drop::before
{
{ /* 珠子加掉率 */
content: "";
--icon-y-index: 2;
}
@ -2083,11 +2083,20 @@
{
filter:brightness(0.8);
}
.orb.bound::before
.orb.enhanced::after
{
content: "";
--icon-y-index: 3;
animation: hidden-visible-animate 0.8s infinite ease-out alternate;
--icon-y-index: 0;
}
.orb.combo-drop::before
{ /* 有豆荚的珠子 */
content: "";
--icon-y-index: 5;
}
.orb.nail::before
{ /* 有豆荚的珠子 */
content: "";
--icon-y-index: 6;
}
.orb[data-orb-icon='_5color']

View File

@ -5037,6 +5037,10 @@ body.external-link-support #external-support{
width: 72px;
background-position-y:calc(-36px * 43);
}
.icon-skill[data-icon-type="orb-combo-drop"]
{
background-position-y:calc(-36px * 44);
}
.card-skill-list .play-voice [data-awoken-icon="63"] {
cursor: pointer;