mirror of
https://github.com/Shu-Ying/noname-shuying.git
synced 2026-11-02 18:50:03 +08:00
🎉 2.0.1.0版本发布
✨ 重构活动BOSS武将包并新增独立PVP武将包 ✨ 完善天书动态难度、过关奖励与羁绊系统 🎨 新增自定义技能选择、羁绊谱册及移动端适配 🔊 整理BOSS配音、图片与模块资源路径 🐛 修复天书关卡、伤害保护及武将包加载问题
This commit is contained in:
@@ -6,7 +6,7 @@ const characters = {
|
||||
skills: ["aotang_shuying", "yunju_shuying"],
|
||||
isHiddenBoss: true,
|
||||
isBossAllowed: true,
|
||||
img: "extension/术樱包/pve/images/捉鬼驱邪/mengpo_boss_shuying.png"
|
||||
img: "extension/术樱包/pve/images/驱鬼逐邪/mengpo_boss_shuying.png"
|
||||
},
|
||||
|
||||
baowei_boss_shuying:
|
||||
@@ -17,7 +17,7 @@ const characters = {
|
||||
skills: ["eli_shuying"],
|
||||
isHiddenBoss: true,
|
||||
isBossAllowed: true,
|
||||
img: "extension/术樱包/pve/images/捉鬼驱邪/baowei_boss_shuying.png"
|
||||
img: "extension/术樱包/pve/images/驱鬼逐邪/baowei_boss_shuying.png"
|
||||
},
|
||||
|
||||
niaozui_boss_shuying:
|
||||
@@ -28,7 +28,7 @@ const characters = {
|
||||
skills: ["suoxue_shuying"],
|
||||
isHiddenBoss: true,
|
||||
isBossAllowed: true,
|
||||
img: "extension/术樱包/pve/images/捉鬼驱邪/niaozui_boss_shuying.png"
|
||||
img: "extension/术樱包/pve/images/驱鬼逐邪/niaozui_boss_shuying.png"
|
||||
},
|
||||
|
||||
heibaiwuchang_boss_shuying:
|
||||
@@ -39,8 +39,8 @@ const characters = {
|
||||
skills: ["mizui_shuying", "qiangzheng_shuying"],
|
||||
isHiddenBoss: true,
|
||||
isBossAllowed: true,
|
||||
img: "extension/术樱包/pve/images/捉鬼驱邪/heibaiwuchang_boss_shuying.png",
|
||||
dieAudios: ["ext:术樱包/pve/audio/dead/捉鬼驱邪/heibaiwuchang.mp3"]
|
||||
img: "extension/术樱包/pve/images/驱鬼逐邪/heibaiwuchang_boss_shuying.png",
|
||||
dieAudios: ["ext:术樱包/pve/audio/dead/驱鬼逐邪/heibaiwuchang.mp3"]
|
||||
},
|
||||
|
||||
niutoumamian_boss_shuying: {
|
||||
@@ -50,8 +50,8 @@ const characters = {
|
||||
skills: ["manji_shuying", "shiyv_shuying"],
|
||||
isHiddenBoss: true,
|
||||
isBossAllowed: true,
|
||||
img: "extension/术樱包/pve/images/捉鬼驱邪/niutoumamian_boss_shuying.png",
|
||||
dieAudios: ["ext:术樱包/pve/audio/dead/捉鬼驱邪/niutoumamian.mp3"]
|
||||
img: "extension/术樱包/pve/images/驱鬼逐邪/niutoumamian_boss_shuying.png",
|
||||
dieAudios: ["ext:术樱包/pve/audio/dead/驱鬼逐邪/niutoumamian.mp3"]
|
||||
},
|
||||
|
||||
yvsai_boss_shuying: {
|
||||
@@ -61,7 +61,7 @@ const characters = {
|
||||
skills: ["anchao_shuying", "guixi_shuying"],
|
||||
isHiddenBoss: true,
|
||||
isBossAllowed: true,
|
||||
img: "extension/术樱包/pve/images/捉鬼驱邪/yvsai_boss_shuying.png"
|
||||
img: "extension/术樱包/pve/images/驱鬼逐邪/yvsai_boss_shuying.png"
|
||||
},
|
||||
|
||||
huangfeng_boss_shuying: {
|
||||
@@ -71,7 +71,7 @@ const characters = {
|
||||
skills: ["mingchong_shuying", "duzhen_shuying"],
|
||||
isHiddenBoss: true,
|
||||
isBossAllowed: true,
|
||||
img: "extension/术樱包/pve/images/捉鬼驱邪/huangfeng_boss_shuying.png"
|
||||
img: "extension/术樱包/pve/images/驱鬼逐邪/huangfeng_boss_shuying.png"
|
||||
},
|
||||
|
||||
riyeyoushen_boss_shuying: {
|
||||
@@ -81,8 +81,8 @@ const characters = {
|
||||
skills: ["huiyun_shuying", "yezhong_shuying", "zhoucha_shuying"],
|
||||
isHiddenBoss: true,
|
||||
isBossAllowed: true,
|
||||
img: "extension/术樱包/pve/images/捉鬼驱邪/riyeyoushen_boss_shuying.png",
|
||||
dieAudios: ["ext:术樱包/pve/audio/dead/捉鬼驱邪/riyeyoushen.mp3"]
|
||||
img: "extension/术樱包/pve/images/驱鬼逐邪/riyeyoushen_boss_shuying.png",
|
||||
dieAudios: ["ext:术樱包/pve/audio/dead/驱鬼逐邪/riyeyoushen.mp3"]
|
||||
},
|
||||
|
||||
guiwang_boss_shuying: {
|
||||
@@ -92,18 +92,18 @@ const characters = {
|
||||
skills: ["jizhou_shuying", "danshi_shuying"],
|
||||
isHiddenBoss: true,
|
||||
isBossAllowed: true,
|
||||
img: "extension/术樱包/pve/images/捉鬼驱邪/guiwang_boss_shuying.png",
|
||||
dieAudios: ["ext:术樱包/pve/audio/dead/捉鬼驱邪/guiwang.mp3"]
|
||||
img: "extension/术樱包/pve/images/驱鬼逐邪/guiwang_boss_shuying.png",
|
||||
dieAudios: ["ext:术樱包/pve/audio/dead/驱鬼逐邪/guiwang.mp3"]
|
||||
},
|
||||
|
||||
yanluowang_boss_shuying: {
|
||||
sex: "male",
|
||||
group: "qun",
|
||||
hp: 4,
|
||||
skills: ["jizhou_shuying", "danshi_shuying"],
|
||||
skills: ["dianwei_shuying", "xingpan_shuying"],
|
||||
isHiddenBoss: true,
|
||||
isBossAllowed: true,
|
||||
img: "extension/术樱包/pve/images/捉鬼驱邪/yanluowang_boss_shuying.png"
|
||||
img: "extension/术樱包/pve/images/驱鬼逐邪/yanluowang_boss_shuying.png"
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ import perfectPairs from "./perfectPairs.js";
|
||||
import voices from "./voices.js";
|
||||
import { characterSort, characterSortTranslate } from "./sort.js";
|
||||
|
||||
// 捉鬼驱邪主题数据片段,由活动 BOSS 根入口统一注册。
|
||||
// 驱鬼逐邪主题数据片段,由活动 BOSS 根入口统一注册。
|
||||
export default {
|
||||
character: characters,
|
||||
card: cards,
|
||||
|
||||
@@ -511,6 +511,7 @@ const skills = {
|
||||
return player.getEnemies(null, false).some(target => target.isIn());
|
||||
},
|
||||
async content(event, trigger, player) {
|
||||
const difficulty = getTianshuDifficulty();
|
||||
const enemies = player.getEnemies(null, false).filter(target => target.isIn());
|
||||
|
||||
if (difficulty == "nightmare") {
|
||||
@@ -667,7 +668,7 @@ const skills = {
|
||||
},
|
||||
},
|
||||
},
|
||||
shiyu_shuying: {
|
||||
shiyv_shuying: {
|
||||
mode: ["boss"],
|
||||
audio: "ext:术樱包/pve/audio/skill/驱鬼逐邪:1",
|
||||
trigger: {
|
||||
@@ -1457,22 +1458,107 @@ const skills = {
|
||||
},
|
||||
forced: true,
|
||||
locked: true,
|
||||
silent: true,
|
||||
popup: false,
|
||||
mark: true,
|
||||
filter(event, player) {
|
||||
return (
|
||||
getTianshuDifficulty() != "normal" &&
|
||||
!player.storage.zhennu_shuying_used &&
|
||||
event.changedHp < 0 &&
|
||||
player.hp <= player.maxHp / 2 &&
|
||||
player.hp - event.changedHp > player.maxHp / 2
|
||||
event.originalHp > event.originalMaxHp / 2 &&
|
||||
event.originalHp + event.changedHp <= event.originalMaxHp / 2
|
||||
);
|
||||
},
|
||||
async content(event, trigger, player) {
|
||||
player.storage.zhennu_shuying_used = true;
|
||||
player.storage.zhennu_shuying_pending = true;
|
||||
player.storage.zhennu_shuying_pending_type = trigger.getParent()?.name;
|
||||
trigger.zhennu_shuying_pending = true;
|
||||
player.markSkill("zhennu_shuying");
|
||||
},
|
||||
group: "zhennu_shuying_takeover",
|
||||
subSkill: {
|
||||
takeover: {
|
||||
charlotte: true,
|
||||
forced: true,
|
||||
silent: true,
|
||||
popup: false,
|
||||
forceDie: true,
|
||||
trigger: {
|
||||
player: [
|
||||
"changeHpAfter",
|
||||
"damageAfter",
|
||||
"loseHpAfter",
|
||||
"dyingAfter",
|
||||
],
|
||||
},
|
||||
filter(event, player, name) {
|
||||
if (
|
||||
!player.storage.zhennu_shuying_pending ||
|
||||
!player.isIn() ||
|
||||
player.hp <= 0
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
await player.draw(4);
|
||||
player.insertPhase();
|
||||
if (name == "dyingAfter") return true;
|
||||
if (name == "changeHpAfter") {
|
||||
return (
|
||||
event.zhennu_shuying_pending === true &&
|
||||
!["damage", "loseHp"].includes(
|
||||
player.storage.zhennu_shuying_pending_type
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
(name == "damageAfter" &&
|
||||
player.storage.zhennu_shuying_pending_type ==
|
||||
"damage") ||
|
||||
(name == "loseHpAfter" &&
|
||||
player.storage.zhennu_shuying_pending_type ==
|
||||
"loseHp")
|
||||
);
|
||||
},
|
||||
async content(event, trigger, player) {
|
||||
delete player.storage.zhennu_shuying_pending;
|
||||
delete player.storage.zhennu_shuying_pending_type;
|
||||
player.logSkill("zhennu_shuying");
|
||||
|
||||
const phase = event.getParent("phase");
|
||||
const phaseLoop = event.getParent("phaseLoop");
|
||||
if (phase && phaseLoop) {
|
||||
player.insertPhase("zhennu_shuying");
|
||||
phaseLoop.player = player;
|
||||
|
||||
let activeChild = event;
|
||||
let current = event.getParent();
|
||||
while (current && current != phaseLoop) {
|
||||
const pendingEvents = [
|
||||
...(current.next || []),
|
||||
...(current.after || []),
|
||||
];
|
||||
for (const pendingEvent of pendingEvents) {
|
||||
if (pendingEvent == activeChild) continue;
|
||||
pendingEvent.finish();
|
||||
pendingEvent.untrigger(true);
|
||||
}
|
||||
|
||||
current.finish();
|
||||
current.untrigger(true);
|
||||
if (current == phase) break;
|
||||
activeChild = current;
|
||||
current = current.getParent();
|
||||
}
|
||||
}
|
||||
|
||||
await player.draw(4);
|
||||
if (!phase || !phaseLoop) {
|
||||
player.insertPhase("zhennu_shuying", true);
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
intro: {
|
||||
content(storage, player) {
|
||||
|
||||
@@ -9,7 +9,7 @@ const characterSort = {
|
||||
};
|
||||
|
||||
const characterSortTranslate = {
|
||||
shuYing_pve_zhuoguiquxie: "捉鬼驱邪",
|
||||
shuYing_pve_zhuoguiquxie: "驱鬼逐邪",
|
||||
};
|
||||
|
||||
export { characterSort, characterSortTranslate };
|
||||
|
||||
@@ -1,3 +1,36 @@
|
||||
const voices = {};
|
||||
const voices = {
|
||||
"#aotang_shuying1": "品汤消愁,情怨断念。",
|
||||
"#yunju_shuying1": "云雾缭绕,飓风意动。",
|
||||
"#guimei_shuying1": "鬼魅生惑,迷乱心神。",
|
||||
"#eli_shuying1": "豹贲之象,先锋之将。",
|
||||
"#bingyi_shuying1": "疑难杂病,入天则安。",
|
||||
"#suoxue_shuying1": "鸟穴虽小,亦有探索之地。",
|
||||
"#guixi_shuying1": "吸灵唤魂,游鱼而走。",
|
||||
"#anchao_shuying1": "暗潮涌动,感水知行。",
|
||||
"#duzhen_shuying1": "毒针入骨,百药难医。",
|
||||
"#mingchong_shuying1": "虫身虽小,威力无限。",
|
||||
"#xingpan_shuying1": "你的罪过,只能用刑偿还。",
|
||||
"#dianwei_shuying1": "阎罗立矩,斧钺杀威!",
|
||||
"#xuanpan_shuying1": "阎罗殿上杀威棒,判惩凶宵降猢狲!",
|
||||
"#xuanpan_shuying2": "本王要尔三更死,安能留汝到五更!",
|
||||
"#xixing_shuying1": "勾魂夺命,震骨吸星!",
|
||||
"#taiping_shuying1": "一见发财,天下太平!",
|
||||
"#qiangzheng_shuying1": "敲骨吸髓,征财索命!",
|
||||
"#mizui_shuying1": "凡间人世百般苦,唯有西方最极乐!",
|
||||
"#heibaiwuchang_boss_shuying:die": "索命鬼,终被捉!",
|
||||
"#xiaoshou_shuying1": "冥府鬼域,岂容尔等放肆!",
|
||||
"#manji_shuying1": "阴兵蛮霸,力大欺理!",
|
||||
"#shiyu_shuying1": "生财自有道,香烛狱中取!",
|
||||
"#guizhao_shuying1": "凡夫俗子,安识诡域之计!",
|
||||
"#niutoumamian_boss_shuying:die": "当牛做马数百载,只求为人一朝夕!",
|
||||
"#zhoucha_shuying1": "红煞蔽日,凶兵择噬!",
|
||||
"#yezhong_shuying1": "黑煞出冢,百鬼夜行!",
|
||||
"#huiyun_shuying1": "附骨之厄,追魂夺魄!",
|
||||
"#duane_shuying1": "幽冥之馈,尔等安敢弃之!",
|
||||
"#riyeyoushen_boss_shuying:die": "山河倒悬,阴阳相逆。",
|
||||
"#jizhou_shuying1": "鬼王凝咒,言出法随!",
|
||||
"#danshi_shuying1": "猛鬼食人,择魂而噬!",
|
||||
"#guiwang_boss_shuying:die": "阎罗殿里说枉死,忘川桥头叹奈何!",
|
||||
};
|
||||
|
||||
export default voices;
|
||||
|
||||
Reference in New Issue
Block a user