2024年8月30日 v21.7
BIN
images/badge.png
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 901 KiB After Width: | Height: | Size: 901 KiB |
Before Width: | Height: | Size: 529 KiB After Width: | Height: | Size: 905 KiB |
Before Width: | Height: | Size: 252 KiB After Width: | Height: | Size: 336 KiB |
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 268 KiB After Width: | Height: | Size: 273 KiB |
Before Width: | Height: | Size: 327 KiB After Width: | Height: | Size: 328 KiB |
Before Width: | Height: | Size: 194 KiB After Width: | Height: | Size: 196 KiB |
|
@ -137,6 +137,7 @@ const _localTranslating = {
|
||||||
board_size_change: tp`板面大小改变为${'icon'}${'size'}`,
|
board_size_change: tp`板面大小改变为${'icon'}${'size'}`,
|
||||||
remove_assist: tp`${'icon'}移除自身的辅助宠物(直到地下城结束)`,
|
remove_assist: tp`${'icon'}移除自身的辅助宠物(直到地下城结束)`,
|
||||||
prediction_falling: tp`盘面上可以${'icon'}预知宝珠掉落`,
|
prediction_falling: tp`盘面上可以${'icon'}预知宝珠掉落`,
|
||||||
|
play_voice: tp`使用技能时播放另一段语音 ${'icon'}`,
|
||||||
},
|
},
|
||||||
power: {
|
power: {
|
||||||
unknown: tp`[ 未知能力提升: ${'type'} ]`,
|
unknown: tp`[ 未知能力提升: ${'type'} ]`,
|
||||||
|
|
|
@ -137,6 +137,7 @@ const _localTranslating = {
|
||||||
board_size_change: tp`板面大小改變為${'icon'}${'size'}`,
|
board_size_change: tp`板面大小改變為${'icon'}${'size'}`,
|
||||||
remove_assist: tp`${'icon'}移除自身的輔助寵物(直到地下城結束)`,
|
remove_assist: tp`${'icon'}移除自身的輔助寵物(直到地下城結束)`,
|
||||||
prediction_falling: tp`盤面上可以${'icon'}預知寶珠掉落`,
|
prediction_falling: tp`盤面上可以${'icon'}預知寶珠掉落`,
|
||||||
|
play_voice: tp`使用技能時播放另一段語音 ${'icon'}`,
|
||||||
},
|
},
|
||||||
power: {
|
power: {
|
||||||
unknown: tp`[ 未知能力提升: ${'type'} ]`,
|
unknown: tp`[ 未知能力提升: ${'type'} ]`,
|
||||||
|
|
|
@ -2,25 +2,25 @@
|
||||||
{
|
{
|
||||||
"code": "ja",
|
"code": "ja",
|
||||||
"ckey": {
|
"ckey": {
|
||||||
"card": "727e5409cc1c07700ab6dd2ae17431f6",
|
"card": "d79277370c92b64a967fb22fc2869d18",
|
||||||
"skill": "fe311ecfa21bc04cf655b812b21573bb"
|
"skill": "b80f35449f8944bce5aa4da63f507cc8"
|
||||||
},
|
},
|
||||||
"updateTime": 1724927572917
|
"updateTime": 1725010459970
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"code": "en",
|
"code": "en",
|
||||||
"ckey": {
|
"ckey": {
|
||||||
"card": "36de0374240c36ac9a51cebc6a9f9e87",
|
"card": "21eae8050736ee60cb1f0d853d934324",
|
||||||
"skill": "06e1307ec1c9fc8962bcc64811cd3b81"
|
"skill": "06e1307ec1c9fc8962bcc64811cd3b81"
|
||||||
},
|
},
|
||||||
"updateTime": 1724927572917
|
"updateTime": 1725010459970
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"code": "ko",
|
"code": "ko",
|
||||||
"ckey": {
|
"ckey": {
|
||||||
"card": "c4ef12b5b7435ee81bd03a465c6b04ca",
|
"card": "7daa616ab7362fbbd3fae976ca0a0778",
|
||||||
"skill": "7a874a037b896eea33984d2dfb43a2ae"
|
"skill": "7a874a037b896eea33984d2dfb43a2ae"
|
||||||
},
|
},
|
||||||
"updateTime": 1724927572917
|
"updateTime": 1725010459970
|
||||||
}
|
}
|
||||||
]
|
]
|
|
@ -152,6 +152,7 @@ let localTranslating = {
|
||||||
board_size_change: tp`Board size changed to ${'icon'}${'size'}`,
|
board_size_change: tp`Board size changed to ${'icon'}${'size'}`,
|
||||||
remove_assist: tp`${'icon'}Remove this assist card (until end of dungeon)`,
|
remove_assist: tp`${'icon'}Remove this assist card (until end of dungeon)`,
|
||||||
prediction_falling: tp`${'icon'}Prediction of falling on board`,
|
prediction_falling: tp`${'icon'}Prediction of falling on board`,
|
||||||
|
play_voice: tp`Play another voice while using the skill ${'icon'}`,
|
||||||
},
|
},
|
||||||
power: {
|
power: {
|
||||||
unknown: tp`[ Unkonwn power up: ${'type'} ]`,
|
unknown: tp`[ Unkonwn power up: ${'type'} ]`,
|
||||||
|
@ -553,7 +554,7 @@ const official_badge_sorting = [
|
||||||
1, 22, 23, 2, 3, 4, 5, 6,
|
1, 22, 23, 2, 3, 4, 5, 6,
|
||||||
7, 8, 9, 11, 17, 18, 19, 20,
|
7, 8, 9, 11, 17, 18, 19, 20,
|
||||||
21, 10, 12, 13, 14, 24, 25, 26,
|
21, 10, 12, 13, 14, 24, 25, 26,
|
||||||
27, 28, 29, 30, 31, 15, 16,
|
27, 28, 29, 30, 31, 15, 16, 32,
|
||||||
PAD_PASS_BADGE,
|
PAD_PASS_BADGE,
|
||||||
]
|
]
|
||||||
//官方的觉醒排列顺序
|
//官方的觉醒排列顺序
|
||||||
|
@ -1254,11 +1255,22 @@ const specialSearchFunctions = (function() {
|
||||||
}
|
}
|
||||||
function gravity_Addition(card)
|
function gravity_Addition(card)
|
||||||
{
|
{
|
||||||
const searchTypeArray = [6, 161];
|
const searchTypeArray = [6, 161, 261];
|
||||||
const skill = getCardActiveSkill(card, searchTypeArray);
|
const skill = getCardActiveSkill(card, searchTypeArray);
|
||||||
if (!skill) return;
|
if (!skill) return;
|
||||||
const sk = skill.params;
|
const sk = skill.params;
|
||||||
return `${skill.type==6?"当前":"最大"}${sk[0]}%`;
|
|
||||||
|
const denominator = skill.type === 161 ?
|
||||||
|
localTranslating.skill_parse.stats.maxhp() :
|
||||||
|
localTranslating.skill_parse.stats.chp();
|
||||||
|
const percent = `${sk[0]}%`;
|
||||||
|
const target = skill.type === 261 ?
|
||||||
|
localTranslating.skill_parse.target.enemy_one() :
|
||||||
|
localTranslating.skill_parse.target.enemy_all();
|
||||||
|
|
||||||
|
const fragment = document.createDocumentFragment();
|
||||||
|
//fragment.append(target, denominator, percent);
|
||||||
|
return [target, denominator, percent].nodeJoin(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
function healImmediately_Rate(card)
|
function healImmediately_Rate(card)
|
||||||
|
@ -3314,7 +3326,7 @@ const specialSearchFunctions = (function() {
|
||||||
{group:true,name:"Damage Enemy - Gravity",otLangName:{chs:"对敌直接伤害类-重力",cht:"對敵直接傷害類-重力"}, functions: [
|
{group:true,name:"Damage Enemy - Gravity",otLangName:{chs:"对敌直接伤害类-重力",cht:"對敵直接傷害類-重力"}, functions: [
|
||||||
{name:"Any",otLangName:{chs:"任意",cht:"任意"},
|
{name:"Any",otLangName:{chs:"任意",cht:"任意"},
|
||||||
function:cards=>{
|
function:cards=>{
|
||||||
const searchTypeArray = [6, 161];
|
const searchTypeArray = [6, 161, 261];
|
||||||
return cards.filter(card=>{
|
return cards.filter(card=>{
|
||||||
const skill = getCardActiveSkill(card, searchTypeArray);
|
const skill = getCardActiveSkill(card, searchTypeArray);
|
||||||
return skill;
|
return skill;
|
||||||
|
@ -3324,7 +3336,7 @@ const specialSearchFunctions = (function() {
|
||||||
},
|
},
|
||||||
{name:"Current HP",otLangName:{chs:"敌人当前血量",cht:"敵人當前血量"},
|
{name:"Current HP",otLangName:{chs:"敌人当前血量",cht:"敵人當前血量"},
|
||||||
function:cards=>{
|
function:cards=>{
|
||||||
const searchTypeArray = [6];
|
const searchTypeArray = [6, 261];
|
||||||
return cards.filter(card=>{
|
return cards.filter(card=>{
|
||||||
const skill = getCardActiveSkill(card, searchTypeArray);
|
const skill = getCardActiveSkill(card, searchTypeArray);
|
||||||
return skill;
|
return skill;
|
||||||
|
|
|
@ -476,11 +476,12 @@ const SkillKinds = {
|
||||||
SkillProviso: "skill-proviso",
|
SkillProviso: "skill-proviso",
|
||||||
ImpartAwakenings: "impart-awakenings",
|
ImpartAwakenings: "impart-awakenings",
|
||||||
ObstructOpponent: "obstruct-opponent",
|
ObstructOpponent: "obstruct-opponent",
|
||||||
IncreaseDamageCap: "increase-damage-cap",
|
IncreaseDamageCapacity: "increase-damage-cap",
|
||||||
BoardJammingStates: "board-jamming-states",
|
BoardJammingStates: "board-jamming-states",
|
||||||
RemoveAssist: "remove-assist",
|
RemoveAssist: "remove-assist",
|
||||||
PredictionFalling: "prediction-falling",
|
PredictionFalling: "prediction-falling",
|
||||||
BreakingShield: "breaking-shield",
|
BreakingShield: "breaking-shield",
|
||||||
|
PlayVoice: "play-voice",
|
||||||
}
|
}
|
||||||
|
|
||||||
function skillParser(skillId)
|
function skillParser(skillId)
|
||||||
|
@ -950,7 +951,7 @@ function delayActiveTurns(turns, ...skills) {
|
||||||
return skills.length ? { kind: SkillKinds.DelayActiveTurns, turns, skills } : null;
|
return skills.length ? { kind: SkillKinds.DelayActiveTurns, turns, skills } : null;
|
||||||
}
|
}
|
||||||
function damageEnemy(target, attr, damage) {
|
function damageEnemy(target, attr, damage) {
|
||||||
return { kind: SkillKinds.DamageEnemy, target: target, attr: attr, damage: damage };
|
return { kind: SkillKinds.DamageEnemy, target, attr, damage };
|
||||||
}
|
}
|
||||||
function vampire(attr, damageValue, healValue) {
|
function vampire(attr, damageValue, healValue) {
|
||||||
return { kind: SkillKinds.Vampire, attr: attr, damage: damageValue, heal: healValue };
|
return { kind: SkillKinds.Vampire, attr: attr, damage: damageValue, heal: healValue };
|
||||||
|
@ -1018,8 +1019,8 @@ function evolvedSkills(loop, skills) {
|
||||||
function changeAttr(target, attr) {
|
function changeAttr(target, attr) {
|
||||||
return { kind: SkillKinds.ChangeAttribute, target: target, attr: attr ?? 0 };
|
return { kind: SkillKinds.ChangeAttribute, target: target, attr: attr ?? 0 };
|
||||||
}
|
}
|
||||||
function gravity(value) {
|
function gravity(value, target = "all") {
|
||||||
return { kind: SkillKinds.Gravity, value: value };
|
return { kind: SkillKinds.Gravity, value, target };
|
||||||
}
|
}
|
||||||
function voidEnemyBuff(buffs) {
|
function voidEnemyBuff(buffs) {
|
||||||
return { kind: SkillKinds.VoidEnemyBuff, buffs: buffs };
|
return { kind: SkillKinds.VoidEnemyBuff, buffs: buffs };
|
||||||
|
@ -1052,6 +1053,9 @@ function henshin(id, random = false) {
|
||||||
random: random
|
random: random
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
function skillPlayVoice(id) {
|
||||||
|
return { kind: SkillKinds.PlayVoice, id };
|
||||||
|
}
|
||||||
function voidPoison() { return { kind: SkillKinds.VoidPoison }; }
|
function voidPoison() { return { kind: SkillKinds.VoidPoison }; }
|
||||||
function skillProviso(cond) { return { kind: SkillKinds.SkillProviso, cond: cond }; }
|
function skillProviso(cond) { return { kind: SkillKinds.SkillProviso, cond: cond }; }
|
||||||
function impartAwakenings(attrs, types, awakenings) {
|
function impartAwakenings(attrs, types, awakenings) {
|
||||||
|
@ -1060,8 +1064,8 @@ function impartAwakenings(attrs, types, awakenings) {
|
||||||
function obstructOpponent(typeName, pos, ids) {
|
function obstructOpponent(typeName, pos, ids) {
|
||||||
return { kind: SkillKinds.ObstructOpponent, typeName: typeName, pos: pos, enemy_skills: ids };
|
return { kind: SkillKinds.ObstructOpponent, typeName: typeName, pos: pos, enemy_skills: ids };
|
||||||
}
|
}
|
||||||
function increaseDamageCap(cap, targets) {
|
function increaseDamageCapacity(cap, targets) {
|
||||||
return { kind: SkillKinds.IncreaseDamageCap, cap: cap, targets: targets};
|
return { kind: SkillKinds.IncreaseDamageCapacity, cap: cap, targets: targets};
|
||||||
}
|
}
|
||||||
function boardJammingStates(state, posType, options) {
|
function boardJammingStates(state, posType, options) {
|
||||||
return { kind: SkillKinds.BoardJammingStates, state: state, posType: posType, ...options};
|
return { kind: SkillKinds.BoardJammingStates, state: state, posType: posType, ...options};
|
||||||
|
@ -1632,7 +1636,7 @@ const skillObjectParsers = {
|
||||||
// const targetTypes = ["self","leader-self","leader-helper","sub-members"];
|
// const targetTypes = ["self","leader-self","leader-helper","sub-members"];
|
||||||
// const typeArr = Bin.unflags(target).map(n => targetTypes[n]);
|
// const typeArr = Bin.unflags(target).map(n => targetTypes[n]);
|
||||||
return activeTurns(turns,
|
return activeTurns(turns,
|
||||||
increaseDamageCap(cap * 1e8, ["self"])
|
increaseDamageCapacity(cap * 1e8, ["self"])
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
[243](turns, attrs, hpPercent, probPercent) { //掉落荆棘珠
|
[243](turns, attrs, hpPercent, probPercent) { //掉落荆棘珠
|
||||||
|
@ -1667,10 +1671,10 @@ const skillObjectParsers = {
|
||||||
return powerUp(Bin.unflags(_2), Bin.unflags(_3), p.mul({ hp: hp || 100, atk: atk || 100, rcv: rcv || 100 }), c.compo('team-same-rarity', rarity));
|
return powerUp(Bin.unflags(_2), Bin.unflags(_3), p.mul({ hp: hp || 100, atk: atk || 100, rcv: rcv || 100 }), c.compo('team-same-rarity', rarity));
|
||||||
},
|
},
|
||||||
[246](time, combo, cap) { //限定时间内转出多少C提高伤害上限
|
[246](time, combo, cap) { //限定时间内转出多少C提高伤害上限
|
||||||
return CTW(v.constant(time), c.combos(combo) , increaseDamageCap(cap * 1e8, ["self"]));
|
return CTW(v.constant(time), c.combos(combo) , increaseDamageCapacity(cap * 1e8, ["self"]));
|
||||||
},
|
},
|
||||||
[247](time, attr, min, cap) { //限定时间内转出多少色提高伤害上限
|
[247](time, attr, min, cap) { //限定时间内转出多少色提高伤害上限
|
||||||
return CTW(v.constant(time), c.attrs(Bin.unflags(attr), min) , increaseDamageCap(cap * 1e8, ["self"]));
|
return CTW(v.constant(time), c.attrs(Bin.unflags(attr), min) , increaseDamageCapacity(cap * 1e8, ["self"]));
|
||||||
},
|
},
|
||||||
[248](turns, ...ids) { //几回合后才生效的技能
|
[248](turns, ...ids) { //几回合后才生效的技能
|
||||||
return delayActiveTurns(turns,
|
return delayActiveTurns(turns,
|
||||||
|
@ -1719,10 +1723,12 @@ const skillObjectParsers = {
|
||||||
const targetTypes = ["self","leader-self","leader-helper","sub-members"];
|
const targetTypes = ["self","leader-self","leader-helper","sub-members"];
|
||||||
const typeArr = Bin.unflags(target).map(n => targetTypes[n]);
|
const typeArr = Bin.unflags(target).map(n => targetTypes[n]);
|
||||||
return activeTurns(turns,
|
return activeTurns(turns,
|
||||||
increaseDamageCap(cap * 1e8, typeArr)
|
increaseDamageCapacity(cap * 1e8, typeArr)
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
[259](percent) { return breakingShield(v.xShield(percent)); },
|
[259](percent) { return breakingShield(v.xShield(percent)); },
|
||||||
|
[260](_, voiceId) { return skillPlayVoice(voiceId); },
|
||||||
|
[261](percent) { return gravity(v.xCHP(percent), 'single'); },
|
||||||
[1000](type, pos, ...ids) {
|
[1000](type, pos, ...ids) {
|
||||||
const posType = (type=>{
|
const posType = (type=>{
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
@ -2125,10 +2131,11 @@ function renderSkill(skill, option = {})
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SkillKinds.Gravity: { //重力
|
case SkillKinds.Gravity: { //重力
|
||||||
|
let {value, target} = skill;
|
||||||
let dict = {
|
let dict = {
|
||||||
icon: createIcon(skill.kind),
|
icon: createIcon(skill.kind),
|
||||||
target: tsp.target.enemy(),
|
target: target === 'all' ? tsp.target.enemy_all() : tsp.target.enemy_one(),
|
||||||
value: renderValue(skill.value, { percent:true }),
|
value: renderValue(value, { percent:true }),
|
||||||
};
|
};
|
||||||
frg.ap(tsp.skill.gravity(dict));
|
frg.ap(tsp.skill.gravity(dict));
|
||||||
break;
|
break;
|
||||||
|
@ -2677,10 +2684,10 @@ function renderSkill(skill, option = {})
|
||||||
frg.ap(tsp.skill.obstruct_opponent(dict));
|
frg.ap(tsp.skill.obstruct_opponent(dict));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SkillKinds.IncreaseDamageCap: { //增加伤害上限
|
case SkillKinds.IncreaseDamageCapacity: { //增加伤害上限
|
||||||
const {cap, targets} = skill;
|
const {cap, targets} = skill;
|
||||||
let dict = {
|
let dict = {
|
||||||
icon: createIcon(skill.kind),
|
icon: createIcon(skill.kind, cap > 0x7FFFFFFF ? "cap-incr" : "cap-decr"),
|
||||||
targets: document.createDocumentFragment(),
|
targets: document.createDocumentFragment(),
|
||||||
cap: cap.bigNumberToString(),
|
cap: cap.bigNumberToString(),
|
||||||
};
|
};
|
||||||
|
@ -2799,6 +2806,19 @@ function renderSkill(skill, option = {})
|
||||||
frg.ap(tsp.skill.gravity(dict));
|
frg.ap(tsp.skill.gravity(dict));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case SkillKinds.PlayVoice: { //播放技能语音
|
||||||
|
const { id } = skill;
|
||||||
|
const icon = document.createElement("icon");
|
||||||
|
icon.className = "awoken-icon";
|
||||||
|
icon.setAttribute("data-awoken-icon", 63);
|
||||||
|
icon.onclick = ()=>playVoiceById(id);
|
||||||
|
|
||||||
|
let dict = {
|
||||||
|
icon,
|
||||||
|
};
|
||||||
|
frg.ap(tsp.skill.play_voice(dict));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default: {
|
default: {
|
||||||
console.log("未处理的技能类型",skill.kind, skill);
|
console.log("未处理的技能类型",skill.kind, skill);
|
||||||
|
|
|
@ -513,6 +513,16 @@ fetch("library/jy4340132-aaa/adpcm.wasm").then((response) => response.arrayBuffe
|
||||||
decodeAudio("demo.adpcm", decoder.decode.bind(decoder));
|
decodeAudio("demo.adpcm", decoder.decode.bind(decoder));
|
||||||
}*/
|
}*/
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function playVoiceById(id) { //点击label才播放语音
|
||||||
|
if (!Number.isInteger(id)) {
|
||||||
|
throw new TypeError("传入的音频 ID 不是整数");
|
||||||
|
}
|
||||||
|
const sndURL = `sound/voice/${currentDataSource.code}/padv${id.toString().padStart(3,'0')}.wav`;
|
||||||
|
const decoder = new Adpcm(adpcm_wasm, pcmImportObj);
|
||||||
|
decoder.resetDecodeState(new Adpcm.State(0, 0));
|
||||||
|
decodeAudio(sndURL, decoder.decode.bind(decoder));
|
||||||
|
}
|
||||||
//▲ADPCM播放相关
|
//▲ADPCM播放相关
|
||||||
|
|
||||||
// 加载 image
|
// 加载 image
|
||||||
|
|
|
@ -1085,6 +1085,7 @@ Formation.pdcBadgeMap = [
|
||||||
{pdf:31,pdc:29}, //叛逆的鲁鲁修
|
{pdf:31,pdc:29}, //叛逆的鲁鲁修
|
||||||
{pdf:15,pdc:30}, //漫威
|
{pdf:15,pdc:30}, //漫威
|
||||||
{pdf:16,pdc:31}, //泳装
|
{pdf:16,pdc:31}, //泳装
|
||||||
|
{pdf:32,pdc:32}, //怪物猎人
|
||||||
];
|
];
|
||||||
//pdc的潜觉对应数字
|
//pdc的潜觉对应数字
|
||||||
Formation.pdcLatentMap = [
|
Formation.pdcLatentMap = [
|
||||||
|
@ -5292,10 +5293,7 @@ function initialize() {
|
||||||
function playVoiceAwoken() { //点击label才播放语音
|
function playVoiceAwoken() { //点击label才播放语音
|
||||||
if (parseInt(this.getAttribute("data-awoken-icon"), 10) === 63) {
|
if (parseInt(this.getAttribute("data-awoken-icon"), 10) === 63) {
|
||||||
const card = Cards[editBox.mid];
|
const card = Cards[editBox.mid];
|
||||||
const sndURL = `sound/voice/${currentDataSource.code}/padv${card.voiceId.toString().padStart(3,'0')}.wav`;
|
playVoiceById(card.voiceId);
|
||||||
const decoder = new Adpcm(adpcm_wasm, pcmImportObj);
|
|
||||||
decoder.resetDecodeState(new Adpcm.State(0, 0));
|
|
||||||
decodeAudio(sndURL, decoder.decode.bind(decoder));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
monEditAwokensLabel.forEach(akDom => akDom.onclick = playVoiceAwoken);
|
monEditAwokensLabel.forEach(akDom => akDom.onclick = playVoiceAwoken);
|
||||||
|
@ -7462,6 +7460,7 @@ function refreshTeamTotalHP(totalDom, team, teamIdx) {
|
||||||
case 31: return member.card.collabId === 113 ? 1.15 : 1; //叛逆的鲁鲁修
|
case 31: return member.card.collabId === 113 ? 1.15 : 1; //叛逆的鲁鲁修
|
||||||
case 15: return member.card.collabId === 96 ? 1.15 : 1; //漫威
|
case 15: return member.card.collabId === 96 ? 1.15 : 1; //漫威
|
||||||
case 16: return member.card.gachaIds.includes(9) ? 1.15 : 1; //泳装
|
case 16: return member.card.gachaIds.includes(9) ? 1.15 : 1; //泳装
|
||||||
|
case 32: return [21, 61].includes(member.card.collabId) ? 1.15 : 1; //怪物猎人
|
||||||
default: return 1;
|
default: return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -383,7 +383,7 @@ const cachesMap = new Map([
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"images/cards_ja/CARDS_096.PNG",
|
"images/cards_ja/CARDS_096.PNG",
|
||||||
"d425f977c2b6dfff0f043fbb39ff6212"
|
"1657e9661abb29030e1fc10d68fe553e"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"images/cards_ja/CARDS_097.PNG",
|
"images/cards_ja/CARDS_097.PNG",
|
||||||
|
@ -459,11 +459,11 @@ const cachesMap = new Map([
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"images/cards_ja/CARDS_115.PNG",
|
"images/cards_ja/CARDS_115.PNG",
|
||||||
"9acf4cda3de50366a22ed18759aa25ea"
|
"d3ad4455ab19e162e7d7a14e4626b197"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"images/cards_ja/CARDS_116.PNG",
|
"images/cards_ja/CARDS_116.PNG",
|
||||||
"350e2a8953aa750096d18786f9aa56ce"
|
"6dca25988e27f6d357d69c4fdc21c857"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"sound/voice/ja/padv001.wav",
|
"sound/voice/ja/padv001.wav",
|
||||||
|
@ -9797,14 +9797,90 @@ const cachesMap = new Map([
|
||||||
"sound/voice/ja/padv3040.wav",
|
"sound/voice/ja/padv3040.wav",
|
||||||
"2bbed674b6abb334ed282cb7e4a0fda3"
|
"2bbed674b6abb334ed282cb7e4a0fda3"
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3047.wav",
|
||||||
|
"69ccd09336a1c2d842346257a8c6c399"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3048.wav",
|
||||||
|
"3aa8cae8bd14371ef6b34fa76b8db66f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3049.wav",
|
||||||
|
"b94152a3a6300dcee2d32b47b33ddac7"
|
||||||
|
],
|
||||||
[
|
[
|
||||||
"sound/voice/ja/padv305.wav",
|
"sound/voice/ja/padv305.wav",
|
||||||
"4b055905368445f71648ad1ae73e482d"
|
"4b055905368445f71648ad1ae73e482d"
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3050.wav",
|
||||||
|
"b4fc8dfccb450f88716adb42d51efd0a"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3051.wav",
|
||||||
|
"af8ed49fa68eef5941f2aa0972625570"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3052.wav",
|
||||||
|
"d22ac40ce882d1c1f41fa50ac7560fc1"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3053.wav",
|
||||||
|
"1bcdec170a343010da6523a1a80e8832"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3054.wav",
|
||||||
|
"4171dd852d7b5399ff404f68286ee13e"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3055.wav",
|
||||||
|
"5e6a7df65ed4ce0ef8c3c8e367e4af08"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3056.wav",
|
||||||
|
"b52d2d3ce939afdc74ca70a468fe0d27"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3057.wav",
|
||||||
|
"47fea6517922ec0b98e8b63c4f1ff106"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3058.wav",
|
||||||
|
"8602c356ae9d2fa486b97f6a8d4f7c6b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3059.wav",
|
||||||
|
"3fcc9235a947dcc37b9738b79b50c740"
|
||||||
|
],
|
||||||
[
|
[
|
||||||
"sound/voice/ja/padv306.wav",
|
"sound/voice/ja/padv306.wav",
|
||||||
"b9be2b0b26ace6b7cf3b7d923dcb2a84"
|
"b9be2b0b26ace6b7cf3b7d923dcb2a84"
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3060.wav",
|
||||||
|
"f62b86279ad9860e733a0c83f100f0fd"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3061.wav",
|
||||||
|
"e7d188b1c2678a831000b48bcc6cc64b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3062.wav",
|
||||||
|
"fd3f7ead41287cf079d5de18d0efa5ae"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3063.wav",
|
||||||
|
"00d6113b762d9fd6658d56175a825bae"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3064.wav",
|
||||||
|
"c779c6aa1bf2ed58bb4b5645cb4d2305"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"sound/voice/ja/padv3065.wav",
|
||||||
|
"7e10e85221193026472eb206920ee85c"
|
||||||
|
],
|
||||||
[
|
[
|
||||||
"sound/voice/ja/padv307.wav",
|
"sound/voice/ja/padv307.wav",
|
||||||
"5ec44da179f28b3d1235ea19a22aeeae"
|
"5ec44da179f28b3d1235ea19a22aeeae"
|
||||||
|
@ -33515,19 +33591,19 @@ const cachesMap = new Map([
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"script-json_data.js",
|
"script-json_data.js",
|
||||||
"83cf35668e6e90e02785ea5ee60a19dc"
|
"7073b6d1696260d3841dee8aa09ddc2b"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"script-skill-parser.js",
|
"script-skill-parser.js",
|
||||||
"5b5ccf1faedeca0c508b72af22bbf2f4"
|
"af39cebd44f8fe27209466487dfbb8d5"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"script-universal_function.js",
|
"script-universal_function.js",
|
||||||
"c83d738d57f3bdccde0a7c00b98875a8"
|
"0ae4adef70dab8dd183d393f431a528e"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"script.js",
|
"script.js",
|
||||||
"6dc8cc2b928c021a1f132ef59c65b009"
|
"480d5520a7c21c03f10732b32287864e"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"solo.html",
|
"solo.html",
|
||||||
|
@ -33543,7 +33619,7 @@ const cachesMap = new Map([
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"style.css",
|
"style.css",
|
||||||
"3ede134e5181a445ec308f446dd46d3a"
|
"adb8947011329a7bb8b44d26cd578b71"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"temp.js",
|
"temp.js",
|
||||||
|
@ -33587,7 +33663,7 @@ const cachesMap = new Map([
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"languages/zh-hans.js",
|
"languages/zh-hans.js",
|
||||||
"01d21cbc97e43c62b72e45aaf3da33f4"
|
"e17c9e42e1def0ea098b2726dde7809a"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"languages/zh-hant.css",
|
"languages/zh-hant.css",
|
||||||
|
@ -33595,7 +33671,7 @@ const cachesMap = new Map([
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"languages/zh-hant.js",
|
"languages/zh-hant.js",
|
||||||
"b155fe6ad390f1ee581f487c6ee0dd5a"
|
"78f6a3649d0be85e6936b30e7f2dac96"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"images/attrs.png",
|
"images/attrs.png",
|
||||||
|
@ -33619,7 +33695,7 @@ const cachesMap = new Map([
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"images/badge.png",
|
"images/badge.png",
|
||||||
"ddff292e6d77e8a7a1e763a9119e0824"
|
"e595fa16fb6b2e78d07393f220aef29c"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"images/brown-button.svg",
|
"images/brown-button.svg",
|
||||||
|
@ -33715,7 +33791,7 @@ const cachesMap = new Map([
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"images/icon-latent.png",
|
"images/icon-latent.png",
|
||||||
"e04bc59355d699bea78c729a15c4d0ae"
|
"ba0243746d1f4cbcc54e201a647f657b"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"images/icon-MP.png",
|
"images/icon-MP.png",
|
||||||
|
@ -33747,7 +33823,7 @@ const cachesMap = new Map([
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"images/icon-skills.png",
|
"images/icon-skills.png",
|
||||||
"d9244ad4fa64ac7ad55481b278e0ef9a"
|
"fae3e58d36a30373bf184d1c4b9e78d5"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"images/icon-switch-leader.png",
|
"images/icon-switch-leader.png",
|
||||||
|
|
17
style.css
|
@ -1432,12 +1432,13 @@ body:not(.solo) .awoken-icon[data-awoken-icon="64"]::after
|
||||||
box-shadow:inset 1px 2px 1px -1px rgba(0,0,0,0.5);
|
box-shadow:inset 1px 2px 1px -1px rgba(0,0,0,0.5);
|
||||||
}
|
}
|
||||||
.latent-icon[data-latent-icon]{
|
.latent-icon[data-latent-icon]{
|
||||||
/*background-image: linear-gradient(#4499EE 33%, #2277EE 80%);
|
background-image: linear-gradient(#4499EE 33%, #2277EE 80%);
|
||||||
border-color: #CCEEFF;
|
border-color: #CCEEFF;
|
||||||
box-shadow: 1px 1px 1px 0 black, inset 2px 2px 1px -1px black ;*/
|
box-shadow: 1px 1px 1px 0 black, inset 2px 2px 1px -1px black ;
|
||||||
border-image-source: url(images/icon-latent-bg.png);
|
/*html2canvas 不支持*/
|
||||||
|
/*border-image-source: url(images/icon-latent-bg.png);
|
||||||
border-image-slice: 5 5 6 5 fill;
|
border-image-slice: 5 5 6 5 fill;
|
||||||
border-image-width: 5px 5px 6px 5px;
|
border-image-width: 5px 5px 6px 5px;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/*队伍的潜觉*/
|
/*队伍的潜觉*/
|
||||||
|
@ -4975,6 +4976,10 @@ body.external-link-support #external-support{
|
||||||
transform: scale(0.75);
|
transform: scale(0.75);
|
||||||
background-position-y: calc(-36px * 36);
|
background-position-y: calc(-36px * 36);
|
||||||
}
|
}
|
||||||
|
.icon-skill[data-icon-type="increase-damage-cap"].cap-decr::after
|
||||||
|
{
|
||||||
|
background-position-x: -36px;
|
||||||
|
}
|
||||||
.icon-skill[data-icon-type="orb-thorn"]
|
.icon-skill[data-icon-type="orb-thorn"]
|
||||||
{
|
{
|
||||||
background-position-y:calc(-36px * 37);
|
background-position-y:calc(-36px * 37);
|
||||||
|
@ -5019,6 +5024,10 @@ body.external-link-support #external-support{
|
||||||
background-position-y:calc(-36px * 43);
|
background-position-y:calc(-36px * 43);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.card-skill-list .play-voice [data-awoken-icon="63"] {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
:where(:lang(en), :lang(ko)) .icon-skill:where(
|
:where(:lang(en), :lang(ko)) .icon-skill:where(
|
||||||
[data-icon-type="mass-attack"],
|
[data-icon-type="mass-attack"],
|
||||||
[data-icon-type="unbind-awakenings"],
|
[data-icon-type="unbind-awakenings"],
|
||||||
|
|