mirror of
https://github.com/Shu-Ying/noname-shuying.git
synced 2026-10-19 05:39:59 +08:00
改动整体底层系统
This commit is contained in:
@@ -12,7 +12,8 @@ const act1Map = {
|
||||
contentId: "act1.battle.liubeiOpening",
|
||||
},
|
||||
],
|
||||
enemies: ["re_xiahoudun", "re_zhangliao", "re_xuzhu"],
|
||||
enemies: ["mengsan_flyconid_shuying"],
|
||||
eliteEnemies: ["re_xiahoudun", "re_zhangliao", "re_xuzhu"],
|
||||
boss: "re_lvbu",
|
||||
baseGold: 20,
|
||||
};
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
// 梦三永久牌组的可获得牌注册表。这里登记牌名与归属,不复制引擎中的效果定义。
|
||||
// 新增武将专属牌时填写 owner 为该武将 ID;通用牌填写 owner: null。
|
||||
const definitions = [
|
||||
{ name: "sha", category: "damage", owner: null },
|
||||
{ name: "shan", category: "utility", owner: null },
|
||||
{ name: "tao", category: "recovery", owner: null },
|
||||
{ name: "jiu", category: "recovery", owner: null },
|
||||
{ name: "guohe", category: "utility", owner: null },
|
||||
{ name: "wuzhong", category: "utility", owner: null },
|
||||
{ name: "juedou", category: "damage", owner: null },
|
||||
{ name: "bagua", category: "utility", owner: null },
|
||||
// 当前仅刘备专属首关的固定奖励会永久获得【的卢】。
|
||||
{ name: "dilu", category: "utility", owner: "mengsan_liubei_shuying" },
|
||||
];
|
||||
|
||||
export function createCardRegistry(entries) {
|
||||
const registry = Object.create(null);
|
||||
for (const entry of entries) {
|
||||
if (!entry || typeof entry.name !== "string" || !/^[a-z][a-z0-9_]*$/.test(entry.name) ||
|
||||
!["damage", "recovery", "utility"].includes(entry.category) ||
|
||||
!(entry.owner === null || typeof entry.owner === "string" && entry.owner.length > 0) ||
|
||||
Object.hasOwn(registry, entry.name)) {
|
||||
throw new Error(`梦三牌定义无效或重复:${entry?.name}`);
|
||||
}
|
||||
registry[entry.name] = Object.freeze({ name: entry.name, category: entry.category, owner: entry.owner });
|
||||
}
|
||||
return Object.freeze(registry);
|
||||
}
|
||||
|
||||
export const cardDefinitions = createCardRegistry(definitions);
|
||||
|
||||
export function canAcquireCard(character, name, registry = cardDefinitions) {
|
||||
const definition = Object.hasOwn(registry, name) ? registry[name] : null;
|
||||
return !!definition && (definition.owner === null || definition.owner === character);
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
import { createCardData } from "../runtime/card-data.js";
|
||||
|
||||
// Mode-owned starting decks. Existing saves always retain their actual player.deck.
|
||||
export const defaultDeck = Object.freeze([
|
||||
["spade", 7, "sha"], ["heart", 10, "sha"],
|
||||
@@ -24,8 +26,8 @@ export function getStartingDeck(character) {
|
||||
}
|
||||
|
||||
export function createStartingDeck(character, prefix = `mengsan_card_${Date.now()}`) {
|
||||
return getStartingDeck(character).map((entry, index) => ({
|
||||
return getStartingDeck(character).map((entry, index) => createCardData({
|
||||
id: `${prefix}_${index}`, suit: entry[0], number: entry[1], name: entry[2],
|
||||
nature: entry[3] || null, affixes: entry[4] ? entry[4].slice() : [], upgrade: 0,
|
||||
}));
|
||||
}, { character }));
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@ export function createScenarioCharacters(Character) {
|
||||
// 国战男性普通小兵使用原生 shibing1 立绘;实际战斗生命由怪物类或关卡配置决定。
|
||||
mengsan_soldier_shuying: new Character({ sex: "male", group: "qun", hp: 4, maxHp: 4,
|
||||
skills: [], img: "image/character/shibing1.jpg" }),
|
||||
mengsan_flyconid_shuying: new Character({ sex: "none", group: "qun", hp: 48, maxHp: 48,
|
||||
skills: [], img: "extension/术樱包/mengsan/assets/flyconid-portrait.png" }),
|
||||
mengsan_sushuang_zhangshiping_shuying: new Character({ sex: "male", group: "shu", hp: 4, maxHp: 4,
|
||||
skills: [], img: "extension/术樱包/mengsan/assets/sushuang-zhangshiping.png", names: "苏|双-张|世平" }),
|
||||
};
|
||||
@@ -13,5 +15,6 @@ export function createScenarioCharacters(Character) {
|
||||
export const scenarioTranslations = {
|
||||
mengsan_liubei_shuying: "界刘备", mengsan_liubei_shuying_title: "50/50生命 · 无初始技能",
|
||||
mengsan_soldier_shuying: "士兵",
|
||||
mengsan_flyconid_shuying: "飞蝇菌子",
|
||||
mengsan_sushuang_zhangshiping_shuying: "苏双&张世平",
|
||||
};
|
||||
|
||||
@@ -5,6 +5,7 @@ export const rewards = {
|
||||
},
|
||||
"shared.reward.card.sha": { effectId: "card_sha", name: "获得一张【杀】", description: "加入独立永久牌组" },
|
||||
"shared.reward.card.tao": { effectId: "card_tao", name: "获得一张【桃】", description: "加入独立永久牌组" },
|
||||
"shared.reward.card.wuzhong": { card: { name: "wuzhong" }, name: "获得一张【无中生有】", description: "加入独立永久牌组" },
|
||||
"shared.reward.card.upgrade": { effectId: "upgrade", name: "随机强化", description: "随机一张牌强化一级" },
|
||||
"shared.reward.heal": { effectId: "heal", name: "整顿伤势", description: "回复 8 点生命" },
|
||||
"shared.reward.item.handCharm": { effectId: "item_hand", name: "道具·束带", description: "基础手牌上限额外 +1" },
|
||||
@@ -16,7 +17,7 @@ export const rewardPools = {
|
||||
"shared.pool.battle.normal": [
|
||||
"shared.reward.card.sha",
|
||||
"shared.reward.card.tao",
|
||||
"shared.reward.card.upgrade",
|
||||
"shared.reward.card.wuzhong",
|
||||
],
|
||||
"shared.pool.boss.premium": [
|
||||
"shared.reward.skill.heroic",
|
||||
|
||||
Reference in New Issue
Block a user