diff --git a/images/icon-skills.png b/images/icon-skills.png index 7f400670..3094a4a8 100644 Binary files a/images/icon-skills.png and b/images/icon-skills.png differ diff --git a/images/project file/icon-skills.fw.png b/images/project file/icon-skills.fw.png index 6f47e4b7..2e0547c0 100644 Binary files a/images/project file/icon-skills.fw.png and b/images/project file/icon-skills.fw.png differ diff --git a/languages/zh-hans.js b/languages/zh-hans.js index 3ab7970c..6eb37f9f 100644 --- a/languages/zh-hans.js +++ b/languages/zh-hans.js @@ -144,6 +144,7 @@ const _localTranslating = { prediction_falling: tp`盘面上可以${'icon'}预知宝珠掉落`, play_voice: tp`播放第 ${'stage'} 阶段的语音 ${'icon'}`, times_limit: tp`【使用次数限制:${'turns'}】`, + fixed_starting_position: tp`${'icon'}固定起手位置`, }, power: { unknown: tp`[ 未知能力提升: ${'type'} ]`, diff --git a/languages/zh-hant.js b/languages/zh-hant.js index f6e2d7db..c7f8304d 100644 --- a/languages/zh-hant.js +++ b/languages/zh-hant.js @@ -143,6 +143,7 @@ const _localTranslating = { prediction_falling: tp`盤面上可以${'icon'}預知寶珠掉落`, play_voice: tp`播放第 ${'stage'} 階段的語音 ${'icon'}`, times_limit: tp`【使用次數限制:${'turns'}】`, + fixed_starting_position: tp`${'icon'}固定起手位置`, }, power: { unknown: tp`[ 未知能力提升: ${'type'} ]`, diff --git a/script-json_data.js b/script-json_data.js index c7171c69..303b8950 100644 --- a/script-json_data.js +++ b/script-json_data.js @@ -159,6 +159,7 @@ let localTranslating = { prediction_falling: tp`${'icon'}Prediction of falling on board`, play_voice: tp`Play voice of the phase ${'stage'} of active skill ${'icon'}`, times_limit: tp`[Number of times skill can be used: ${'turns'}]`, + fixed_starting_position: tp`${'icon'}Fixed starting position`, }, power: { unknown: tp`[ Unkonwn power up: ${'type'} ]`, @@ -2740,6 +2741,13 @@ const specialSearchFunctions = (function() { return `[${width}×${height}]×${sk[0]}T`; } }, + {name:"Fixed starting position",otLangName:{chs:"固定起手位置",cht:"固定起手位置"}, + function:cards=>cards.filter(card=>{ + const searchTypeArray = [273]; + const skill = getCardActiveSkill(card, searchTypeArray); + return skill; + }) + }, ]}, {group:true,name:"Orbs Drop",otLangName:{chs:"珠子掉落 类",cht:"珠子掉落 類"}, functions: [ {name:"Drop Enhanced Orbs",otLangName:{chs:"掉落强化宝珠 buff",cht:"掉落強化寶珠 buff"}, diff --git a/script-skill-parser.js b/script-skill-parser.js index 6fd1b3f1..7785f207 100644 --- a/script-skill-parser.js +++ b/script-skill-parser.js @@ -489,6 +489,7 @@ const SkillKinds = { BreakingShield: "breaking-shield", PlayVoice: "play-voice", TimesLimit: "times-limit", + FixedStartingPosition: "fixed-starting-position", } function skillParser(skillId) @@ -1093,8 +1094,8 @@ function breakingShield(value) { function timesLimit(turns) { return { kind: SkillKinds.TimesLimit, turns }; } -function timesLimit(turns) { - return { kind: SkillKinds.TimesLimit, turns }; +function fixedStartingPosition() { + return { kind: SkillKinds.FixedStartingPosition }; } const skillObjectParsers = { @@ -1775,6 +1776,8 @@ const skillObjectParsers = { }, //一回合内使用几次技能才有倍率的队长技。 [270](times, atk, rcv) { { return powerUp(Bin.unflags(31), null, p.mul({ atk: atk || 100, rcv: rcv || 100 }), c.useSkill(times)); } }, + //固定起手位置 + [273](turns) {return activeTurns(turns, fixedStartingPosition()); }, [1000](type, pos, ...ids) { const posType = (type=>{ @@ -2927,6 +2930,13 @@ function renderSkill(skill, option = {}) frg.ap(tsp.skill.times_limit(dict)); break; } + case SkillKinds.FixedStartingPosition: { //固定起手位置 + let dict = { + icon: createIcon(skill.kind) + }; + frg.ap(tsp.skill.fixed_starting_position(dict)); + break; + } default: { console.log("未处理的技能类型",skill.kind, skill); diff --git a/style.css b/style.css index ec5e1826..0b8d7aae 100644 --- a/style.css +++ b/style.css @@ -5123,4 +5123,25 @@ body.external-link-support #external-support{ .icon-skill[data-icon-type="rate-mul-part_break"] { background-position-y:calc(-36px * 46); -} \ No newline at end of file +} + +.icon-skill[data-icon-type="fixed-starting-position"]::before, +.icon-skill[data-icon-type="fixed-starting-position"]::after{ + content: ""; + position: absolute; + top: 0; + left: 0; + background-position-y:calc(-36px * 48); +} + +.icon-skill[data-icon-type="fixed-starting-position"]::before +{ + animation: rotate-animate 5s infinite linear; +} +.icon-skill[data-icon-type="fixed-starting-position"]::after +{ + background-position-x:calc(-36px * 1); + animation: hidden-visible-animate 0.3s infinite alternate ease-out; +} + +/*animation: rotate-animate 5s infinite linear;*/ \ No newline at end of file