mirror of
https://github.com/Shu-Ying/noname-shuying.git
synced 2026-10-22 15:19:59 +08:00
fixed # 补全部分卡牌
fixed # 修复部分已知BUG
This commit is contained in:
+15
-22
@@ -1,21 +1,6 @@
|
||||
import { cardPackUpgradeRules } from "./packs/data.js";
|
||||
const upgrades = Object.freeze({
|
||||
mengsan_songjianwushi: Object.freeze({ maxLevel: 1, baseBlock: 8, block: 11, draw: 1 }),
|
||||
mengsan_pomie: Object.freeze({ maxLevel: 1, baseCost: 1, cost: 0 }),
|
||||
mengsan_jianyi: Object.freeze({ maxLevel: 1, baseBlock: 7, block: 9, chooseExhaust: true }),
|
||||
mengsan_fangxue: Object.freeze({ maxLevel: 1, loseHp: 3, baseEnergy: 2, energy: 3 }),
|
||||
mengsan_yujin: Object.freeze({ maxLevel: 1, baseDamage: 18, damage: 24, exhaust: 1 }),
|
||||
mengsan_wanmeidaji: Object.freeze({ maxLevel: 1, baseDamage: 6, damage: 6, basePerStrike: 2, perStrike: 3 }),
|
||||
mengsan_yubeidaji: Object.freeze({ maxLevel: 1, baseDamage: 7, damage: 9, baseStrength: 2, strength: 3 }),
|
||||
mengsan_tupo: Object.freeze({ maxLevel: 1, baseDamage: 9, damage: 13, loseHp: 1 }),
|
||||
mengsan_touchui: Object.freeze({ maxLevel: 1, baseDamage: 9, damage: 12 }),
|
||||
mengsan_tiezhanbo: Object.freeze({ maxLevel: 1, baseBlock: 5, block: 7, baseDamage: 5, damage: 7 }),
|
||||
mengsan_shuangchongdaji: Object.freeze({ maxLevel: 1, baseDamage: 5, damage: 7, hits: 2 }),
|
||||
mengsan_shandianpili: Object.freeze({ maxLevel: 1, baseDamage: 4, damage: 7, vulnerable: 1 }),
|
||||
mengsan_rongrongzhiquan: Object.freeze({ maxLevel: 1, baseDamage: 10, damage: 14, exhaust: true }),
|
||||
mengsan_quanshenzhuangji: Object.freeze({ maxLevel: 1, baseCost: 1, cost: 0, damageFromBlock: true }),
|
||||
mengsan_jianbingdaji: Object.freeze({ maxLevel: 1, baseDamage: 9, damage: 10, baseDraw: 1, draw: 2 }),
|
||||
mengsan_feijianhuixuanbiao: Object.freeze({ maxLevel: 1, damage: 3, baseHits: 3, hits: 4 }),
|
||||
mengsan_fennu: Object.freeze({ maxLevel: 1, baseDamage: 6, damage: 8 }),
|
||||
...cardPackUpgradeRules,
|
||||
sha: Object.freeze({ maxLevel: 1, damage: 9 }),
|
||||
mengsan_zhongsha: Object.freeze({ maxLevel: 1, damage: 10,
|
||||
vulnerable: 3 }),
|
||||
@@ -24,8 +9,14 @@ const upgrades = Object.freeze({
|
||||
export const cardUpgradeRule = name =>
|
||||
Object.hasOwn(upgrades, name) ? upgrades[name] : null;
|
||||
|
||||
function upgradeData(card) {
|
||||
if(card?.cards?.length===1 && card.cards[0]?.name===card.name && card.cards[0].storage?.mengsanCard_shuying)card=card.cards[0];
|
||||
const data=card?.storage?.mengsanCard_shuying || card;
|
||||
return data && data.name===card?.name ? data : null;
|
||||
}
|
||||
|
||||
export function cardUpgradeLevel(card) {
|
||||
const data = card?.storage?.mengsanCard_shuying || card;
|
||||
const data = upgradeData(card);
|
||||
if (!data || data.name !== card?.name) return 0;
|
||||
const limit = cardUpgradeRule(card.name)?.maxLevel || 0;
|
||||
return Number.isInteger(data.upgrade) && data.upgrade > 0
|
||||
@@ -34,9 +25,10 @@ export function cardUpgradeLevel(card) {
|
||||
|
||||
export function canUpgradeCard(card) {
|
||||
const rule = cardUpgradeRule(card?.name);
|
||||
const level = card?.upgrade ?? 0;
|
||||
return Boolean(rule && Number.isInteger(level) && level >= 0 &&
|
||||
level < rule.maxLevel && !card.affixes?.includes("eternal"));
|
||||
const data = upgradeData(card), level = data?.upgrade ?? 0;
|
||||
// 永恒只禁止移除和变化;是否可强化由强化规则及真实等级决定。
|
||||
return Boolean(data && rule && Number.isInteger(level) && level >= 0 &&
|
||||
level < rule.maxLevel);
|
||||
}
|
||||
|
||||
export const hasUpgradeableCard = deck =>
|
||||
@@ -50,6 +42,7 @@ export function upgradeRandomCard(deck, random) {
|
||||
throw new RangeError("梦三强化随机数必须位于[0, 1)");
|
||||
}
|
||||
const card = eligible[Math.floor(value * eligible.length)];
|
||||
card.upgrade = (card.upgrade || 0) + 1;
|
||||
const data=upgradeData(card);
|
||||
data.upgrade = (data.upgrade || 0) + 1;
|
||||
return card;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user