Files
xiaochoupai/src/content/catalog.ts
richarjiang 12380c715c first commit
2026-09-21 14:45:24 +08:00

289 lines
7.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
export const HANDS = [
['高牌', 5, 1, 10, 1, '冥王星'],
['对子', 10, 2, 15, 1, '水星'],
['两对', 20, 2, 20, 1, '天王星'],
['三条', 30, 3, 20, 2, '金星'],
['顺子', 30, 4, 30, 3, '土星'],
['同花', 35, 4, 15, 2, '木星'],
['葫芦', 40, 4, 25, 2, '地球'],
['四条', 60, 7, 30, 3, '火星'],
['同花顺', 100, 8, 40, 4, '海王星'],
['五条', 120, 12, 35, 3, 'X 行星'],
['同花葫芦', 140, 14, 40, 4, '谷神星'],
['同花五条', 160, 16, 50, 3, '阋神星'],
] as const;
export type JokerDef = {
id: string;
name: string;
en: string;
desc: string;
price: number;
rarity: string;
color: string;
motif: number;
};
export const JOKERS: JokerDef[] = [
{
id: 'smile',
name: '微笑先生',
en: 'THE SMILER',
desc: '每次出牌 +4 倍率。',
price: 4,
rarity: '普通',
color: '#d36856',
motif: 0,
},
{
id: 'pair',
name: '双面演员',
en: 'TWO FACED',
desc: '打出的牌包含对子时,+8 倍率。',
price: 5,
rarity: '普通',
color: '#7296a0',
motif: 1,
},
{
id: 'triple',
name: '三重奏',
en: 'TRIO',
desc: '包含三条时,+20 倍率。',
price: 6,
rarity: '普通',
color: '#b69253',
motif: 2,
},
{
id: 'flush',
name: '花色诗人',
en: 'SUIT POET',
desc: '5 张同花色时,+18 倍率。',
price: 6,
rarity: '普通',
color: '#749574',
motif: 3,
},
{
id: 'straight',
name: '走钢丝',
en: 'TIGHTROPE',
desc: '包含顺子时,+100 筹码。',
price: 5,
rarity: '普通',
color: '#bb795f',
motif: 4,
},
{
id: 'chips',
name: '筹码匠',
en: 'CHIP MAKER',
desc: '每次出牌 +80 筹码。',
price: 5,
rarity: '普通',
color: '#5896aa',
motif: 5,
},
{
id: 'hearts',
name: '红心皇后',
en: 'QUEEN OF HEARTS',
desc: '每张计分红桃 +4 倍率。',
price: 6,
rarity: '普通',
color: '#bc5869',
motif: 6,
},
{
id: 'spades',
name: '夜行客',
en: 'NIGHT WALKER',
desc: '每张计分黑桃 +35 筹码。',
price: 5,
rarity: '普通',
color: '#6c779b',
motif: 7,
},
{
id: 'diamonds',
name: '钻石眼',
en: 'DIAMOND EYE',
desc: '每张计分方块赚取 $1。',
price: 6,
rarity: '罕见',
color: '#c59b62',
motif: 8,
},
{
id: 'clubs',
name: '三叶草',
en: 'CLOVER',
desc: '每张计分梅花 +4 倍率。',
price: 5,
rarity: '普通',
color: '#639176',
motif: 9,
},
{
id: 'faces',
name: '宫廷画师',
en: 'COURT PAINTER',
desc: '每张计分 J、Q、K +5 倍率。',
price: 6,
rarity: '普通',
color: '#b08b5c',
motif: 10,
},
{
id: 'aces',
name: '王牌魔术',
en: 'ACE MAGIC',
desc: '每张计分 A +30 筹码、+4 倍率。',
price: 6,
rarity: '罕见',
color: '#839aac',
motif: 11,
},
{
id: 'even',
name: '偶数哲学',
en: 'EVEN ODDS',
desc: '每张计分 2、4、6、8、10 +4 倍率。',
price: 5,
rarity: '普通',
color: '#8c9c72',
motif: 12,
},
{
id: 'odd',
name: '奇数俱乐部',
en: 'ODD SOCIETY',
desc: '每张计分 A、3、5、7、9 +35 筹码。',
price: 5,
rarity: '普通',
color: '#a67d98',
motif: 13,
},
{
id: 'echo',
name: '回声',
en: 'ENCORE',
desc: '第一张计分牌额外触发一次。',
price: 8,
rarity: '罕见',
color: '#70a5a0',
motif: 14,
},
{
id: 'moon',
name: '月后',
en: 'MOON QUEEN',
desc: '每张留在手中的 Q +13 倍率。',
price: 6,
rarity: '罕见',
color: '#8a83b0',
motif: 15,
},
{
id: 'double',
name: '双倍赌注',
en: 'DOUBLE DOWN',
desc: '打出的牌包含对子时,倍率 ×2。',
price: 9,
rarity: '稀有',
color: '#bb6656',
motif: 16,
},
{
id: 'minimal',
name: '独幕剧',
en: 'SOLO ACT',
desc: '打出不超过 3 张牌时,倍率 ×2。',
price: 8,
rarity: '罕见',
color: '#7797a0',
motif: 17,
},
{
id: 'growth',
name: '常青藤',
en: 'EVERGREEN',
desc: '每次出牌永久积累 +2 倍率;弃牌减少 1,最低 0。',
price: 7,
rarity: '罕见',
color: '#73946b',
motif: 18,
},
{
id: 'scholar',
name: '老学者',
en: 'THE SCHOLAR',
desc: '倍率增加本局该牌型已打出次数 ×3(含本次)。',
price: 7,
rarity: '罕见',
color: '#ad9570',
motif: 19,
},
{
id: 'bank',
name: '银行家',
en: 'THE BANKER',
desc: '每持有 $5,+4 倍率(结算到此刻的余额)。',
price: 7,
rarity: '罕见',
color: '#8aa579',
motif: 20,
},
{
id: 'egg',
name: '金蛋',
en: 'GOLDEN EGG',
desc: '每次过关额外赚取 $4。',
price: 5,
rarity: '普通',
color: '#ceac65',
motif: 21,
},
{
id: 'last',
name: '最后一舞',
en: 'LAST DANCE',
desc: '本轮最后一次出牌,倍率 ×3。',
price: 7,
rarity: '罕见',
color: '#a77a93',
motif: 22,
},
{
id: 'wanderer',
name: '流浪艺人',
en: 'THE WANDERER',
desc: '每跳过一个盲注,永久增加 ×0.35 倍率,初始 ×1。',
price: 8,
rarity: '稀有',
color: '#af9367',
motif: 23,
},
];
export const TAROTS = [
{ name: '恋人', desc: '选择 1–3 张牌,转为红桃。', max: 3 },
{ name: '月亮', desc: '选择 1–3 张牌,转为黑桃。', max: 3 },
{ name: '力量', desc: '选择 1–2 张牌,点数 +1(A 变为 2)。', max: 2 },
{ name: '魔术师', desc: '选择 1 张牌,复制到手牌与牌组。', max: 1 },
{ name: '倒吊人', desc: '选择 1–2 张牌,永久移除。', max: 2 },
{ name: '正义', desc: '选择 1 张牌,变成玻璃牌:计分 ×2 倍率,1/4 概率破碎。', max: 1 },
{ name: '战车', desc: '选择 1 张牌,变成钢铁牌:留手 ×1.5 倍率。', max: 1 },
{ name: '太阳', desc: '选择 1 张牌,增加 +30 筹码强化与红色蜡封(重触发)。', max: 1 },
{ name: '女皇', desc: '选择 1–2 张牌,变成多倍牌:计分时 +4 倍率。', max: 2 },
];
export const BOSSES = [
{ name: '红心禁令', en: 'THE HEART', desc: '所有红桃牌失效:仍可组成牌型,但不触发计分。' },
{ name: '黑夜帷幕', en: 'THE VEIL', desc: '所有黑桃牌失效:仍可组成牌型,但不触发计分。' },
{ name: '狭窄舞台', en: 'THE STAGE', desc: '本轮手牌上限减少 1。' },
{ name: '孤注一掷', en: 'THE GAMBLE', desc: '本轮没有弃牌次数。' },
{ name: '满员谢幕', en: 'THE CAST', desc: '每次必须打出 5 张牌。' },
{ name: '钝刃', en: 'THE FLINT', desc: '牌型基础筹码与倍率减半,向上取整。' },
{ name: '天鹅绒终幕', en: 'THE FINAL CURTAIN', desc: '最终挑战:目标分数为基础分数的 4 倍。' },
];
export const BASE_TARGETS = [300, 800, 2000, 5000, 11000, 20000, 35000, 50000];
export const jokerDef = (id: string) => JOKERS.find((j) => j.id === id)!;