✨ feat: 整合活动BOSS主题并完善捉鬼驱邪内容
✨ feat: 统一活动BOSS主题入口与武将包合并流程 ✨ feat: 补充十二生肖及捉鬼驱邪武将、技能和配音资源 ✨ feat: 支持更新时安全清理废弃文件与目录
This commit is contained in:
+118
-228
@@ -1,210 +1,125 @@
|
||||
const bossList = {
|
||||
// stage1: ["caocao_boss_shuying", "dongzhuo_boss_shuying"],
|
||||
stage1: ["zishu_boss_shuying", "wuma_boss_shuying", "chenlong_boss_shuying", "weiyang_boss_shuying", "shenhou_boss_shuying", "xvgou_boss_shuying"],
|
||||
stage2: ["heibaiwuchang_boss_shuying", "yvsai_boss_shuying", "huangfeng_boss_shuying", "riyeyoushen_boss_shuying"],
|
||||
stage3: ["caocao_boss_shuying", "simayi_boss_shuying", "lvbu_boss_shuying", "dongzhuo_boss_shuying"],
|
||||
stage4: ["shuishengonggong_boss_shuying", "shaohao_boss_shuying", "xuannv_boss_shuying", "hanba_boss_shuying"],
|
||||
const difficultyOrder = [normal, hard, nightmare];
|
||||
|
||||
const stages = [
|
||||
{
|
||||
id: stage1,
|
||||
name: 第一关,
|
||||
// bosses: [caocao_boss_shuying, dongzhuo_boss_shuying],
|
||||
bosses: [zishu_boss_shuying, chouniu_boss_shuying, yinhu_boss_shuying, maotu_boss_shuying, chenlong_boss_shuying, sishe_boss_shuying, wuma_boss_shuying, weiyang_boss_shuying, shenhou_boss_shuying, youji_boss_shuying, xvgou_boss_shuying, haizhu_boss_shuying],
|
||||
},
|
||||
{
|
||||
id: stage2,
|
||||
name: 第二关,
|
||||
bosses: [mengpo_boss_shuying, baowei_boss_shuying, niaozui_boss_shuying, heibaiwuchang_boss_shuying, niutoumamian_boss_shuying, yvsai_boss_shuying, huangfeng_boss_shuying, riyeyoushen_boss_shuying, guiwang_boss_shuying, yanluowang_boss_shuying],
|
||||
},
|
||||
{
|
||||
id: stage3,
|
||||
name: 第三关,
|
||||
bosses: [caocao_boss_shuying, simayi_boss_shuying, lvbu_boss_shuying, dongzhuo_boss_shuying],
|
||||
},
|
||||
{
|
||||
id: stage4,
|
||||
name: 第四关,
|
||||
bosses: [shuishengonggong_boss_shuying, shaohao_boss_shuying, xuannv_boss_shuying, hanba_boss_shuying],
|
||||
},
|
||||
];
|
||||
|
||||
const bossList = Object.fromEntries(stages.map(stage => [stage.id, stage.bosses]));
|
||||
|
||||
const virtualIdols = {
|
||||
Xiaotao: vtb_xiaotao,
|
||||
Xiaosha: vtb_xiaosha,
|
||||
Xiaoshan: vtb_xiaoshan,
|
||||
Xiaole: vtb_xiaole,
|
||||
Xiaojiu: vtb_xiaojiu,
|
||||
};
|
||||
const virtualIdolList = Object.values(virtualIdols);
|
||||
|
||||
const virtualIdolList = ["vtb_xiaotao", "vtb_xiaosha", "vtb_xiaoshan", "vtb_xiaole", "vtb_xiaojiu"];
|
||||
|
||||
const difficultyOrder = ["normal", "hard", "nightmare"];
|
||||
// Boss 的体力与体力上限始终使用相同加成,只需在配置中填写一次。
|
||||
const createDifficultyConfig = (startCards, hpBonus = 0) => ({
|
||||
startCards,
|
||||
hpBonus,
|
||||
maxHpBonus: hpBonus,
|
||||
});
|
||||
|
||||
const bossDifficultyTemplates = {
|
||||
shiershengxiao:
|
||||
{
|
||||
normal: {
|
||||
startCards: 4,
|
||||
},
|
||||
hard: {
|
||||
startCards: 6,
|
||||
hpBonus: 1,
|
||||
maxHpBonus: 1,
|
||||
},
|
||||
nightmare: {
|
||||
startCards: 8,
|
||||
hpBonus: 4,
|
||||
maxHpBonus: 4,
|
||||
},
|
||||
shiershengxiao: {
|
||||
normal: createDifficultyConfig(4),
|
||||
hard: createDifficultyConfig(6, 1),
|
||||
nightmare: createDifficultyConfig(8, 4),
|
||||
},
|
||||
|
||||
zhuoguiquxie: {
|
||||
normal: {
|
||||
startCards: 4,
|
||||
hpBonus: 2,
|
||||
maxHpBonus: 2,
|
||||
},
|
||||
hard: {
|
||||
startCards: 6,
|
||||
hpBonus: 4,
|
||||
maxHpBonus: 4,
|
||||
},
|
||||
nightmare: {
|
||||
startCards: 8,
|
||||
hpBonus: 8,
|
||||
maxHpBonus: 8,
|
||||
},
|
||||
normal: createDifficultyConfig(4, 2),
|
||||
hard: createDifficultyConfig(6, 4),
|
||||
nightmare: createDifficultyConfig(8, 8),
|
||||
},
|
||||
|
||||
qingqingzijin: {
|
||||
normal: {
|
||||
startCards: 6,
|
||||
hpBonus: 6,
|
||||
maxHpBonus: 6,
|
||||
},
|
||||
hard: {
|
||||
startCards: 8,
|
||||
hpBonus: 16,
|
||||
maxHpBonus: 16,
|
||||
},
|
||||
nightmare: {
|
||||
startCards: 10,
|
||||
hpBonus: 26,
|
||||
maxHpBonus: 26,
|
||||
},
|
||||
normal: createDifficultyConfig(6, 6),
|
||||
hard: createDifficultyConfig(8, 16),
|
||||
nightmare: createDifficultyConfig(10, 26),
|
||||
},
|
||||
|
||||
tianshuluandou:
|
||||
{
|
||||
normal: {
|
||||
startCards: 6,
|
||||
hpBonus: 6,
|
||||
maxHpBonus: 6,
|
||||
},
|
||||
hard: {
|
||||
startCards: 8,
|
||||
hpBonus: 11,
|
||||
maxHpBonus: 11,
|
||||
},
|
||||
nightmare: {
|
||||
startCards: 12,
|
||||
hpBonus: 21,
|
||||
maxHpBonus: 21,
|
||||
},
|
||||
tianshuluandou: {
|
||||
normal: createDifficultyConfig(6, 6),
|
||||
hard: createDifficultyConfig(8, 11),
|
||||
nightmare: createDifficultyConfig(12, 21),
|
||||
},
|
||||
};
|
||||
|
||||
// 为单个 Boss 复制模板,并按难度覆盖其补充技能。
|
||||
const createBossConfig = (template, skills = {}) => ({
|
||||
normal: { ...template.normal, ...(skills.normal?.length ? { skills: skills.normal } : {}) },
|
||||
hard: { ...template.hard, ...(skills.hard?.length ? { skills: skills.hard } : {}) },
|
||||
nightmare: { ...template.nightmare, ...(skills.nightmare?.length ? { skills: skills.nightmare } : {}) },
|
||||
});
|
||||
|
||||
// 同组 Boss 使用相同模板,但生成彼此独立的配置对象。
|
||||
const createBossGroup = (bosses, template) => Object.fromEntries(
|
||||
bosses.map(boss => [boss, createBossConfig(template)])
|
||||
);
|
||||
|
||||
const addSkillFromHard = skill => ({ hard: [skill], nightmare: [skill] });
|
||||
|
||||
const bossDifficulty = {
|
||||
default: {
|
||||
normal: {
|
||||
startCards: 4,
|
||||
hp: null,
|
||||
maxHp: null,
|
||||
hpBonus: 0,
|
||||
maxHpBonus: 0,
|
||||
skills: [],
|
||||
},
|
||||
hard: {
|
||||
startCards: 5,
|
||||
hp: null,
|
||||
maxHp: null,
|
||||
hpBonus: 2,
|
||||
maxHpBonus: 2,
|
||||
skills: [],
|
||||
},
|
||||
nightmare: {
|
||||
startCards: 6,
|
||||
hp: null,
|
||||
maxHp: null,
|
||||
hpBonus: 4,
|
||||
maxHpBonus: 4,
|
||||
skills: [],
|
||||
},
|
||||
normal: createDifficultyConfig(4),
|
||||
hard: createDifficultyConfig(5, 2),
|
||||
nightmare: createDifficultyConfig(6, 4),
|
||||
},
|
||||
bosses: {
|
||||
chenlong_boss_shuying: { ...bossDifficultyTemplates.shiershengxiao, },
|
||||
weiyang_boss_shuying: { ...bossDifficultyTemplates.shiershengxiao, },
|
||||
shenhou_boss_shuying: { ...bossDifficultyTemplates.shiershengxiao, },
|
||||
xvgou_boss_shuying: { ...bossDifficultyTemplates.shiershengxiao, },
|
||||
...createBossGroup(stages[0].bosses, bossDifficultyTemplates.shiershengxiao),
|
||||
|
||||
heibaiwuchang_boss_shuying: {
|
||||
...bossDifficultyTemplates.zhuoguiquxie,
|
||||
hard: {
|
||||
...bossDifficultyTemplates.zhuoguiquxie.hard,
|
||||
skills: ["xixing_shuying"],
|
||||
},
|
||||
nightmare: {
|
||||
...bossDifficultyTemplates.zhuoguiquxie.nightmare,
|
||||
skills: ["xixing_shuying", "taiping_shuying"],
|
||||
},
|
||||
},
|
||||
yvsai_boss_shuying: {
|
||||
...bossDifficultyTemplates.zhuoguiquxie,
|
||||
},
|
||||
huangfeng_boss_shuying:
|
||||
{
|
||||
...bossDifficultyTemplates.zhuoguiquxie,
|
||||
},
|
||||
riyeyoushen_boss_shuying: {
|
||||
...bossDifficultyTemplates.zhuoguiquxie,
|
||||
nightmare: {
|
||||
...bossDifficultyTemplates.zhuoguiquxie.nightmare,
|
||||
skills: ["duane_shuying"],
|
||||
},
|
||||
},
|
||||
...createBossGroup([yvsai_boss_shuying, huangfeng_boss_shuying], bossDifficultyTemplates.zhuoguiquxie),
|
||||
mengpo_boss_shuying: createBossConfig(bossDifficultyTemplates.zhuoguiquxie, {
|
||||
nightmare: [guimei_shuying],
|
||||
}),
|
||||
baowei_boss_shuying: createBossConfig(bossDifficultyTemplates.zhuoguiquxie, addSkillFromHard(yinsha_shuying)),
|
||||
niaozui_boss_shuying: createBossConfig(bossDifficultyTemplates.zhuoguiquxie, addSkillFromHard(bingyi_shuying)),
|
||||
heibaiwuchang_boss_shuying: createBossConfig(bossDifficultyTemplates.zhuoguiquxie, {
|
||||
hard: [xixing_shuying],
|
||||
nightmare: [xixing_shuying, taiping_shuying],
|
||||
}),
|
||||
riyeyoushen_boss_shuying: createBossConfig(bossDifficultyTemplates.zhuoguiquxie, {
|
||||
nightmare: [duane_shuying],
|
||||
}),
|
||||
niutoumamian_boss_shuying: createBossConfig(bossDifficultyTemplates.zhuoguiquxie, {
|
||||
hard: [xiaoshou_shuying],
|
||||
nightmare: [xiaoshou_shuying, guizhao_shuying],
|
||||
}),
|
||||
guiwang_boss_shuying: createBossConfig(bossDifficultyTemplates.zhuoguiquxie, {
|
||||
nightmare: [chihu_shuying],
|
||||
}),
|
||||
yanluowang_boss_shuying: createBossConfig(bossDifficultyTemplates.zhuoguiquxie, {
|
||||
hard: [zhennu_shuying],
|
||||
nightmare: [zhennu_shuying, xuanpan_shuying],
|
||||
}),
|
||||
|
||||
caocao_boss_shuying:
|
||||
{
|
||||
...bossDifficultyTemplates.qingqingzijin,
|
||||
hard: {
|
||||
...bossDifficultyTemplates.qingqingzijin.hard,
|
||||
skills: ["yishen_shuying"],
|
||||
},
|
||||
nightmare: {
|
||||
...bossDifficultyTemplates.qingqingzijin.nightmare,
|
||||
skills: ["yishen_shuying"],
|
||||
},
|
||||
},
|
||||
simayi_boss_shuying:
|
||||
{
|
||||
...bossDifficultyTemplates.qingqingzijin,
|
||||
hard: {
|
||||
...bossDifficultyTemplates.qingqingzijin.hard,
|
||||
skills: ["yuanlv_shuying"],
|
||||
},
|
||||
nightmare: {
|
||||
...bossDifficultyTemplates.qingqingzijin.nightmare,
|
||||
skills: ["yuanlv_shuying"],
|
||||
},
|
||||
},
|
||||
lvbu_boss_shuying: {
|
||||
...bossDifficultyTemplates.qingqingzijin,
|
||||
hard: {
|
||||
...bossDifficultyTemplates.qingqingzijin.hard,
|
||||
skills: ["zhanjia_shuying"],
|
||||
},
|
||||
nightmare: {
|
||||
...bossDifficultyTemplates.qingqingzijin.nightmare,
|
||||
skills: ["zhanjia_shuying"],
|
||||
},
|
||||
},
|
||||
dongzhuo_boss_shuying: {
|
||||
...bossDifficultyTemplates.qingqingzijin,
|
||||
hard: {
|
||||
...bossDifficultyTemplates.qingqingzijin.hard,
|
||||
skills: ["qubu_shuying"],
|
||||
},
|
||||
nightmare: {
|
||||
...bossDifficultyTemplates.qingqingzijin.nightmare,
|
||||
skills: ["qubu_shuying"],
|
||||
},
|
||||
},
|
||||
|
||||
shuishengonggong_boss_shuying: {
|
||||
...bossDifficultyTemplates.tianshuluandou,
|
||||
hard: {
|
||||
...bossDifficultyTemplates.tianshuluandou.hard,
|
||||
skills: ["shuishen_shuying"],
|
||||
},
|
||||
nightmare: {
|
||||
...bossDifficultyTemplates.tianshuluandou.nightmare,
|
||||
skills: ["shuishen_shuying"],
|
||||
},
|
||||
},
|
||||
shaohao_boss_shuying: { ...bossDifficultyTemplates.tianshuluandou, },
|
||||
xuannv_boss_shuying: { ...bossDifficultyTemplates.tianshuluandou, },
|
||||
hanba_boss_shuying: { ...bossDifficultyTemplates.tianshuluandou, },
|
||||
caocao_boss_shuying: createBossConfig(bossDifficultyTemplates.qingqingzijin, addSkillFromHard(yishen_shuying)),
|
||||
simayi_boss_shuying: createBossConfig(bossDifficultyTemplates.qingqingzijin, addSkillFromHard(yuanlv_shuying)),
|
||||
lvbu_boss_shuying: createBossConfig(bossDifficultyTemplates.qingqingzijin, addSkillFromHard(zhanjia_shuying)),
|
||||
dongzhuo_boss_shuying: createBossConfig(bossDifficultyTemplates.qingqingzijin, addSkillFromHard(qubu_shuying)),
|
||||
|
||||
...createBossGroup([shaohao_boss_shuying, xuannv_boss_shuying, hanba_boss_shuying], bossDifficultyTemplates.tianshuluandou),
|
||||
shuishengonggong_boss_shuying: createBossConfig(bossDifficultyTemplates.tianshuluandou, addSkillFromHard(shuishen_shuying)),
|
||||
|
||||
baiqi_boss_shuying: {},
|
||||
pangu_boss_shuying: {},
|
||||
@@ -213,37 +128,16 @@ const bossDifficulty = {
|
||||
|
||||
const tianshuConfig = {
|
||||
bossList,
|
||||
stages: [
|
||||
{
|
||||
id: "stage1",
|
||||
name: "第一关",
|
||||
bosses: bossList.stage1,
|
||||
},
|
||||
{
|
||||
id: "stage2",
|
||||
name: "第二关",
|
||||
bosses: bossList.stage2,
|
||||
},
|
||||
{
|
||||
id: "stage3",
|
||||
name: "第三关",
|
||||
bosses: bossList.stage3,
|
||||
},
|
||||
{
|
||||
id: "stage4",
|
||||
name: "第四关",
|
||||
bosses: bossList.stage4,
|
||||
},
|
||||
],
|
||||
stages,
|
||||
difficulties: {
|
||||
normal: {
|
||||
name: "普通",
|
||||
name: 普通,
|
||||
},
|
||||
hard: {
|
||||
name: "困难",
|
||||
name: 困难,
|
||||
},
|
||||
nightmare: {
|
||||
name: "阴间",
|
||||
name: 阴间,
|
||||
},
|
||||
},
|
||||
difficultyOrder,
|
||||
@@ -251,11 +145,7 @@ const tianshuConfig = {
|
||||
virtualIdolList,
|
||||
virtualIdols: {
|
||||
random: virtualIdolList,
|
||||
Xiaojiu: "vtb_xiaojiu",
|
||||
Xiaosha: "vtb_xiaosha",
|
||||
Xiaoshan: "vtb_xiaoshan",
|
||||
Xiaole: "vtb_xiaole",
|
||||
Xiaotao: "vtb_xiaotao",
|
||||
...virtualIdols,
|
||||
},
|
||||
reward: {
|
||||
killRecover: 1,
|
||||
@@ -265,32 +155,32 @@ const tianshuConfig = {
|
||||
skillChoiceCount: 5,
|
||||
},
|
||||
settings: {
|
||||
virtualIdolConfigKey: "extension_术樱包_tianShu_Xvni",
|
||||
virtualIdolRandomPoolConfigKey: "extension_术樱包_tianShu_XvniRandomPool",
|
||||
virtualIdolReviveConfigKey: "extension_术樱包_tianShu_dead",
|
||||
addBossConfigKey: "extension_术樱包_tianShu_addBoss",
|
||||
revivePlayersConfigKey: "extension_术樱包_tianShu_revivePlayers",
|
||||
difficultyStatusKey: "shuYing_tianshuDifficulty",
|
||||
virtualIdolConfigKey: extension_术樱包_tianShu_Xvni,
|
||||
virtualIdolRandomPoolConfigKey: extension_术樱包_tianShu_XvniRandomPool,
|
||||
virtualIdolReviveConfigKey: extension_术樱包_tianShu_dead,
|
||||
addBossConfigKey: extension_术樱包_tianShu_addBoss,
|
||||
revivePlayersConfigKey: extension_术樱包_tianShu_revivePlayers,
|
||||
difficultyStatusKey: shuYing_tianshuDifficulty,
|
||||
},
|
||||
skillPool: {
|
||||
banned: ["huoxin", "jueqing", "qinqing", "beige", "huashen", "drlt_zhiti", "olzhiti", "xinfu_pdgyingshi", "rebeige"],
|
||||
banned: [huoxin, jueqing, qinqing, beige, huashen, drlt_zhiti, olzhiti, xinfu_pdgyingshi, rebeige],
|
||||
},
|
||||
keywordBuffs: [
|
||||
{
|
||||
keyword: "杀",
|
||||
keyword: 杀,
|
||||
levels: [
|
||||
{ count: 2, damageBonus: 1 },
|
||||
{ count: 3, damageBonus: 2 },
|
||||
],
|
||||
},
|
||||
{
|
||||
keyword: "闪",
|
||||
keyword: 闪,
|
||||
levels: [
|
||||
{ count: 2, drawAfterShan: 1 },
|
||||
],
|
||||
},
|
||||
{
|
||||
keyword: "桃",
|
||||
keyword: 桃,
|
||||
levels: [
|
||||
{ count: 2, recoverBonus: 1 },
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user