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)!;