/* ============================================================
   斗地主 · 共享数据
   ============================================================ */

const FIELDS = [
  { id: 'novice',  name: '新手场', base: 100,    entry: 0,       tag: '新手专享 · 免费畅玩', online: 12840, accent: 'green' },
  { id: 'primary', name: '初级场', base: 1000,   entry: 10000,   tag: '轻松娱乐',           online: 28310, accent: 'teal' },
  { id: 'middle',  name: '中级场', base: 5000,   entry: 50000,   tag: '稳中求胜',           online: 19260, accent: 'gold' },
  { id: 'senior',  name: '高级场', base: 20000,  entry: 200000,  tag: '高手过招',           online: 8470,  accent: 'red' },
  { id: 'king',    name: '王者场', base: 100000, entry: 1000000, tag: '巅峰对决 · 王者专属', online: 1920,  accent: 'purple' },
];

const MODES = [
  { id: 'classic', name: '经典斗地主', desc: '三人对战 · 叫地主抢地主', icon: '♠', accent: 'green', action: 'fields', primary: true },
  { id: 'happy',   name: '欢乐场',     desc: '低门槛 · 极速匹配',       icon: '♥', accent: 'red',   action: 'quick' },
  { id: 'laizi',   name: '癞子场',     desc: '红桃3万能 · 更刺激',       icon: '♦', accent: 'gold',  action: 'laizi' },
  { id: 'endless', name: '残局闯关',   desc: '巧解棋局 · 单人挑战',    icon: '♣', accent: 'teal',  action: 'endless' },
  { id: 'friend',  name: '好友同乐',   desc: '创建房间 · 邀请开黑',     icon: '★', accent: 'purple', action: 'friend' },
];

/* 难度：影响 AI 强度与对局倍数加成 */
const DIFFICULTIES = [
  { id: 'easy',   name: '简单',  desc: 'AI 保守 · 适合新手', mult: 1,   icon: '🌱', accent: 'green' },
  { id: 'normal', name: '普通',  desc: 'AI 均衡 · 标准对局', mult: 1,   icon: '⚔️', accent: 'gold' },
  { id: 'hard',   name: '困难',  desc: 'AI 精算 · 高手挑战', mult: 2,   icon: '🔥', accent: 'red' },
];

/* 段位：按 星 数升降。每个段位 5 颗星，升满进下一段 */
const RANK_TIERS = [
  { id: 'bronze',   name: '青铜',   icon: '🥉', minStar: 0,  accent: 'green' },
  { id: 'silver',   name: '白银',   icon: '🥈', minStar: 5,  accent: 'teal' },
  { id: 'gold',     name: '黄金',   icon: '🥇', minStar: 10, accent: 'gold' },
  { id: 'platinum', name: '铂金',   icon: '💠', minStar: 18, accent: 'teal' },
  { id: 'diamond',  name: '钻石',   icon: '💎', minStar: 28, accent: 'purple' },
  { id: 'master',   name: '大师',   icon: '👑', minStar: 40, accent: 'gold' },
  { id: 'king',     name: '王者',   icon: '🏆', minStar: 55, accent: 'red' },
];
function rankFromStars(stars) {
  let cur = RANK_TIERS[0], next = null;
  for (let i = 0; i < RANK_TIERS.length; i++) {
    if (stars >= RANK_TIERS[i].minStar) cur = RANK_TIERS[i];
  }
  const ci = RANK_TIERS.indexOf(cur);
  next = RANK_TIERS[ci + 1] || null;
  const base = cur.minStar;
  const span = next ? next.minStar - base : 5;
  const inTier = stars - base;
  const starInTier = next ? inTier : Math.min(5, inTier);
  return { rank: cur, next, starInTier, tierSpan: span, totalStars: stars };
}

/* 每日转盘奖励（按权重） */
const WHEEL_PRIZES = [
  { label: '5,000 金币', type: 'coin', amount: 5000,  weight: 30, icon: '🪙' },
  { label: '12,000 金币', type: 'coin', amount: 12000, weight: 22, icon: '🪙' },
  { label: '30,000 金币', type: 'coin', amount: 30000, weight: 12, icon: '💰' },
  { label: '1 钻石',     type: 'dia',  amount: 1,     weight: 18, icon: '💎' },
  { label: '5 钻石',     type: 'dia',  amount: 5,     weight: 8,  icon: '💎' },
  { label: '88,000 金币', type: 'coin', amount: 88000, weight: 5,  icon: '🎁' },
  { label: '谢谢参与',   type: 'none', amount: 0,     weight: 5,  icon: '🍀' },
  { label: '188,000 金币', type: 'coin', amount: 188000, weight: 1, icon: '👑' },
];

const LEADERBOARD = [
  { rank: 1, name: '常胜将军', face: '🦁', coins: 8820000, wins: 3421 },
  { rank: 2, name: '金算盘',   face: '🦝', coins: 6540000, wins: 2890 },
  { rank: 3, name: '牌神老王', face: '🐯', coins: 4530000, wins: 2455 },
  { rank: 4, name: '飞花逐月', face: '🦋', coins: 3120000, wins: 2103 },
  { rank: 5, name: '稳健的狗', face: '🐺', coins: 2760000, wins: 1998 },
  { rank: 6, name: '街角老李', face: '🧓', coins: 2210000, wins: 1760 },
  { rank: 7, name: '一炮成名', face: '🐶', coins: 1880000, wins: 1542 },
  { rank: 8, name: '快刀阿良', face: '🦊', coins: 1340000, wins: 1320 },
];

// 充值档位（仅供商城页展示参考）：金币数量 = usdt * 汇率(usdt.coinsPerToken，后台可改)，
// 展示时动态换算，不写死数量。实际充值走"我的钱包"面板转账到平台收款地址。
const SHOP_COINS = [
  { id: 'c1', usdt: 10,  hot: false },
  { id: 'c2', usdt: 50,  hot: true },
  { id: 'c3', usdt: 100, hot: false },
  { id: 'c4', usdt: 500, hot: false },
];
const SHOP_ITEMS = [
  { id: 'i1', name: '黄金牌背', desc: '尊贵金色牌背', cost: 50, icon: '🟨', slot: 'cardback' },
  { id: 'i2', name: '青龙头像框', desc: '炫彩动态头像框', cost: 80, icon: '🐉', slot: 'frame' },
  { id: 'i3', name: '炸弹特效', desc: '出炸弹震屏特效', cost: 30, icon: '💥', slot: 'bombfx' },
  { id: 'i4', name: '免费托管卡', desc: '掉线自动托管', cost: 12, icon: '🤖' },
];

const TASKS = [
  { id: 't1', name: '每日首胜', desc: '今日获得 1 场胜利', reward: '8,000 金币', progress: 1, total: 1, done: true },
  { id: 't2', name: '对局达人', desc: '完成 5 局对局', reward: '15,000 金币', progress: 3, total: 5, done: false },
  { id: 't3', name: '炸弹高手', desc: '使用 3 次炸弹/火箭', reward: '1 钻石', progress: 1, total: 3, done: false },
  { id: 't4', name: '连胜之星', desc: '达成 3 连胜', reward: '20,000 金币', progress: 2, total: 3, done: false },
];

const SIGN_REWARDS = ['6,000', '8,000', '10,000', '15,000', '20,000', '30,000', '1 钻石'];

const QUOTES = ['牌品如人品，落子无悔', '运气也是实力的一部分', '一手好牌，更要会打'];

const DEFAULT_PROFILE = {
  name: '金牌玩家', avatar: '😎', level: 32, exp: 680, expMax: 1000,
  coins: 186500, diamonds: 88, wins: 412, plays: 587, winStreak: 3,
  signedDays: 3, signedToday: false,
  equipped: { cardback: false, frame: false }, owned: [], endlessLevel: 1,
  stars: 12, bestStreak: 6, wheelDate: null, difficulty: 'normal',
};

/* 残局闯关：你(农民,先手) 须先出完手牌 */
const ENDLESS_LEVELS = [
  { id: 1, name: '小试牛刀', star: 1, reward: '8,000 金币',
    me: ['3','4','5','6','7'], opp: ['9','9'] },
  { id: 2, name: '连环顺子', star: 1, reward: '10,000 金币',
    me: ['3','4','5','6','7','8'], opp: ['K','K','A'] },
  { id: 3, name: '炸弹封喉', star: 2, reward: '15,000 金币',
    me: ['7','7','7','7','3'], opp: ['2','2','5'] },
  { id: 4, name: '一对定乾坤', star: 2, reward: '18,000 金币',
    me: ['10','10','J','J','Q','Q'], opp: ['2','2','9'] },
  { id: 5, name: '王炸收官', star: 3, reward: '1 钻石',
    me: ['小','大','A','A'], opp: ['2','2','K'] },
  { id: 6, name: '步步惊心', star: 3, reward: '30,000 金币',
    me: ['3','4','5','6','7','8','9','9'], opp: ['2','K','K','7'] },
  { id: 7, name: '三带玄机', star: 2, reward: '12,000 金币',
    me: ['5','5','5','6','6'], opp: ['9','9'] },
  { id: 8, name: '连对压制', star: 2, reward: '16,000 金币',
    me: ['3','3','4','4','5','5'], opp: ['Q','Q','K','K'] },
  { id: 9, name: '飞机起飞', star: 3, reward: '22,000 金币',
    me: ['7','7','7','8','8','8','9','10'], opp: ['2','2','A','A'] },
  { id: 10, name: '单顺绝杀', star: 3, reward: '1 钻石',
    me: ['3','4','5','6','7','8','9','10','J','Q'], opp: ['2','2','A','K'] },
  { id: 11, name: '炸弹连环', star: 4, reward: '40,000 金币',
    me: ['9','9','9','9','5','5'], opp: ['K','K','K','A'] },
  { id: 12, name: '王者残局', star: 5, reward: '2 钻石',
    me: ['小','大','2','2','2'], opp: ['A','A','A','K','K'] },
];

window.DATA = { FIELDS, MODES, DIFFICULTIES, RANK_TIERS, rankFromStars, WHEEL_PRIZES, LEADERBOARD, SHOP_COINS, SHOP_ITEMS, TASKS, SIGN_REWARDS, QUOTES, DEFAULT_PROFILE, ENDLESS_LEVELS };

/* 数字格式化（万/千分位），供联机大厅、面板和对局共用。 */
window.fmt = window.fmt || ((n) => (n == null ? '—' : n >= 10000 ? (n / 10000).toFixed(n % 10000 === 0 ? 0 : 1) + '万' : n.toLocaleString()));
