good version

This commit is contained in:
王性驊 2025-11-24 23:32:17 +08:00
parent 384c8df9c7
commit 7680034ba6
1 changed files with 623 additions and 33 deletions

View File

@ -1,63 +1,653 @@
// 命格資料配置 // 命格資料配置
// 機率設定SSR(1%), SR(9%), R(20%), N(30%), C(40%)
export const FATE_TIERS = {
SSR: { name: '傳說', probability: 0.01, color: '#ff6b6b' },
SR: { name: '史詩', probability: 0.09, color: '#9b59b6' },
R: { name: '稀有', probability: 0.20, color: '#3498db' },
N: { name: '普通', probability: 0.30, color: '#2ecc71' },
C: { name: '常見', probability: 0.40, color: '#95a5a6' }
}
export const FATES = [ export const FATES = [
// ==================== SSR 級 (傳說) - 5種 ====================
// 🏮 宮廟靈獸與神祇
{ {
id: 'lonestar', id: 'mazu_blessing',
name: '天煞孤星', name: '媽祖庇佑',
description: '孤獨的強者,攻擊力極高但容易抑鬱', tier: 'SSR',
description: '海上女神降福,逢凶化吉,四海皆平安',
buffs: { buffs: {
attack: 0.25, luck: 35,
happinessRecovery: -0.2, badEventReduction: 0.6,
sicknessReduction: 0.1 sicknessReduction: 0.7,
happinessRecovery: 0.4,
resourceGain: 0.3,
dropRate: 0.35
} }
}, },
{ {
id: 'lucky_star', id: 'white_tiger_soul',
name: '天乙貴人', name: '白虎魂',
description: '吉星高照,處處逢凶化吉', tier: 'SSR',
description: '西方神獸降臨,攻守兼備,天下無敵',
buffs: { buffs: {
luck: 20, attack: 0.5,
badEventReduction: 0.3, defense: 0.5,
dropRate: 0.15 speed: 0.4,
strGain: 0.5,
healthRegen: 0.4
} }
}, },
{ {
id: 'martial_god', id: 'guan_gong_spirit',
name: '武曲星', name: '關公顯靈',
description: '天生神力,適合戰鬥', tier: 'SSR',
description: '武聖在世,忠義雙全,戰無不勝',
buffs: { buffs: {
attack: 0.6,
strGain: 0.5,
defense: 0.4,
luck: 28,
badEventReduction: 0.5
}
},
{
id: 'jade_emperor',
name: '玉皇大天尊',
tier: 'SSR',
description: '天界之主加持,萬靈朝拜,福壽綿長',
buffs: {
intGain: 0.6,
healthRegen: 0.6,
luck: 30,
resourceGain: 0.4,
gameSuccessRate: 0.5
}
},
{
id: 'dragon_king',
name: '青龍王',
tier: 'SSR',
description: '東方神龍,呼風喚雨,財源滾滾',
buffs: {
resourceGain: 0.6,
dropRate: 0.5,
luck: 32,
speed: 0.4,
miniGameBonus: 0.5
}
},
// ==================== SR 級 (史詩) - 10種 ====================
// 🎭 民俗神將與靈體
{
id: 'bajiajiang',
name: '八家將',
tier: 'SR',
description: '神將護體,驅邪避凶,威震四方',
buffs: {
attack: 0.4,
defense: 0.35,
badEventReduction: 0.5,
speed: 0.3,
luck: 20
}
},
{
id: 'seventh_eighth_lords',
name: '七爺八爺',
tier: 'SR',
description: '黑白無常護佑,轉運奇效,不受病痛',
buffs: {
luck: 28,
sicknessReduction: 0.6,
healthRegen: 0.4,
badEventReduction: 0.4,
happinessRecovery: 0.3
}
},
{
id: 'tudi_gong',
name: '土地公保庇',
tier: 'SR',
description: '地方守護神,錢財廣進,日日有餘',
buffs: {
resourceGain: 0.5,
dropRate: 0.4,
luck: 25,
happinessRecovery: 0.3,
gameSuccessRate: 0.25
}
},
{
id: 'palanquin_deity',
name: '神轎真身',
tier: 'SR',
description: '乘神轎而行,力大無窮,氣勢如虹',
buffs: {
strGain: 0.45,
attack: 0.4,
speed: 0.35,
defense: 0.3,
healthRegen: 0.3
}
},
{
id: 'lion_dance',
name: '瑞獅之靈',
tier: 'SR',
description: '舞獅獻瑞,驅邪納福,喜氣洋洋',
buffs: {
happinessRecovery: 0.45,
luck: 22,
badEventReduction: 0.4,
strGain: 0.3, strGain: 0.3,
defense: 0.15, resourceGain: 0.25
speed: 0.1
} }
}, },
{ {
id: 'scholar', id: 'incense_master',
name: '文曲星', name: '香火鼎盛',
description: '聰明絕頂,學習能力強', tier: 'SR',
description: '供奉不斷,神明眷顧,萬事如意',
buffs: { buffs: {
intGain: 0.4, luck: 26,
miniGameBonus: 0.2, happinessRecovery: 0.4,
gameSuccessRate: 0.15 sicknessReduction: 0.4,
resourceGain: 0.3,
intGain: 0.3
} }
}, },
{ {
id: 'peach_blossom', id: 'temple_guardian',
name: '紅鸞星', name: '石獅守護',
description: '人見人愛,容易獲得好感', tier: 'SR',
description: '廟口石獅加護,固若金湯,百邪不侵',
buffs: {
defense: 0.5,
healthRegen: 0.4,
sicknessReduction: 0.45,
badEventReduction: 0.35,
strGain: 0.3
}
},
{
id: 'firecracker_spirit',
name: '炮仔聲',
tier: 'SR',
description: '鞭炮震天,邪煞退散,運勢亨通',
buffs: {
badEventReduction: 0.5,
luck: 24,
speed: 0.4,
attack: 0.3,
happinessRecovery: 0.25
}
},
{
id: 'temple_fair',
name: '廟會之子',
tier: 'SR',
description: '廟會熱鬧,人氣旺盛,好事不斷',
buffs: {
happinessRecovery: 0.4,
breedingSuccess: 0.5,
resourceGain: 0.3,
luck: 20,
miniGameBonus: 0.3
}
},
{
id: 'moon_blocks',
name: '聖筊連發',
tier: 'SR',
description: '擲筊必中,神明應允,事事順遂',
buffs: {
gameSuccessRate: 0.45,
luck: 27,
miniGameBonus: 0.4,
resourceGain: 0.25,
intGain: 0.35
}
},
// ==================== R 級 (稀有) - 15種 ====================
// 🏮 夜市與靈獸
{
id: 'night_market_king',
name: '夜市王',
tier: 'R',
description: '夜市裡的霸主,吃喝玩樂樣樣通',
buffs: {
happinessRecovery: 0.3,
resourceGain: 0.28,
luck: 15,
hungerDecay: -0.25
}
},
{
id: 'stinky_tofu_master',
name: '臭豆腐達人',
tier: 'R',
description: '聞香下馬,回味無窮,胃口極佳',
buffs: {
hungerDecay: -0.3,
healthRegen: 0.25,
happinessRecovery: 0.25,
resourceGain: 0.15
}
},
{
id: 'fortune_teller',
name: '鐵口直斷',
tier: 'R',
description: '算命仙指點迷津,先知先覺',
buffs: {
intGain: 0.35,
gameSuccessRate: 0.3,
miniGameBonus: 0.28,
luck: 16
}
},
{
id: 'stone_lion',
name: '廟口石獅',
tier: 'R',
description: '鎮守要地,穩如泰山,守護家園',
buffs: {
defense: 0.35,
healthRegen: 0.28,
sicknessReduction: 0.25,
strGain: 0.2
}
},
{
id: 'fishball_soup',
name: '魚丸湯世家',
tier: 'R',
description: '古早味傳承,溫暖人心,療癒滿分',
buffs: {
healthRegen: 0.3,
happinessRecovery: 0.28,
sicknessReduction: 0.22,
hungerDecay: -0.2
}
},
{
id: 'temple_turtle',
name: '廟龜仙',
tier: 'R',
description: '神龜長壽,步調穩健,健康長命',
buffs: {
healthRegen: 0.32,
defense: 0.28,
sicknessReduction: 0.3,
luck: 12
}
},
{
id: 'betel_nut_beauty',
name: '檳榔西施',
tier: 'R',
description: '魅力四射,人氣爆表,生意興隆',
buffs: {
happinessRecovery: 0.3,
breedingSuccess: 0.35,
resourceGain: 0.22,
luck: 14
}
},
{
id: 'bubble_tea',
name: '珍奶之王',
tier: 'R',
description: '台灣之光,甜蜜滋味,快樂滿點',
buffs: {
happinessRecovery: 0.32,
hungerDecay: -0.22,
luck: 13,
resourceGain: 0.18
}
},
{
id: 'taxi_driver',
name: '計程車司機',
tier: 'R',
description: '走遍大街小巷,見多識廣,速度一流',
buffs: {
speed: 0.4,
intGain: 0.25,
resourceGain: 0.2,
luck: 11
}
},
{
id: 'temple_incense',
name: '三柱清香',
tier: 'R',
description: '誠心祈福,香火延綿,神明保佑',
buffs: {
luck: 18,
badEventReduction: 0.28,
happinessRecovery: 0.22,
sicknessReduction: 0.2
}
},
{
id: 'lottery_winner',
name: '大家樂',
tier: 'R',
description: '偏財運極佳,常有意外之財',
buffs: {
dropRate: 0.3,
resourceGain: 0.28,
luck: 17,
gameSuccessRate: 0.2
}
},
{
id: 'koi_spirit',
name: '錦鯉附身',
tier: 'R',
description: '如同錦鯉般幸運,好事連連',
buffs: {
luck: 19,
dropRate: 0.25,
badEventReduction: 0.25,
happinessRecovery: 0.2
}
},
{
id: 'temple_drum',
name: '鼓聲震天',
tier: 'R',
description: '鼓響神威,氣勢磅礡,力量驚人',
buffs: {
attack: 0.28,
strGain: 0.28,
speed: 0.22,
badEventReduction: 0.18
}
},
{
id: 'red_envelope',
name: '紅包滿滿',
tier: 'R',
description: '過年發財,紅包收不完,財運亨通',
buffs: {
resourceGain: 0.3,
dropRate: 0.22,
luck: 16,
happinessRecovery: 0.18
}
},
{
id: 'phoenix_tail',
name: '鳳凰木下',
tier: 'R',
description: '火紅鳳凰花,青春活力,朝氣蓬勃',
buffs: {
speed: 0.32,
happinessRecovery: 0.25,
strGain: 0.22,
healthRegen: 0.2
}
},
// ==================== N 級 (普通) - 15種 ====================
// 🏠 庶民生活
{
id: 'breakfast_shop',
name: '早餐店仔',
tier: 'N',
description: '清晨的活力來源,勤勞踏實',
buffs: {
strGain: 0.2,
healthRegen: 0.18,
resourceGain: 0.15
}
},
{
id: 'scooter_rider',
name: '機車族',
tier: 'N',
description: '穿梭自如,速度就是一切',
buffs: {
speed: 0.28,
luck: 8,
resourceGain: 0.12
}
},
{
id: 'convenience_store',
name: '便利商店店員',
tier: 'N',
description: '24小時全年無休服務至上',
buffs: {
resourceGain: 0.2,
happinessRecovery: 0.15,
intGain: 0.15
}
},
{
id: 'fruit_vendor',
name: '水果攤販',
tier: 'N',
description: '新鮮水果,健康滿分',
buffs: {
healthRegen: 0.22,
sicknessReduction: 0.2,
hungerDecay: -0.15
}
},
{
id: 'tea_ceremony',
name: '泡茶聊天',
tier: 'N',
description: '悠閒品茗,修身養性',
buffs: {
happinessRecovery: 0.22,
intGain: 0.18,
badEventReduction: 0.15
}
},
{
id: 'tv_shopping',
name: '電視購物達人',
tier: 'N',
description: '看電視買東西,資訊靈通',
buffs: {
resourceGain: 0.18,
intGain: 0.15,
luck: 9
}
},
{
id: 'lottery_booth',
name: '刮刮樂',
tier: 'N',
description: '試試手氣,說不定有驚喜',
buffs: {
luck: 10,
dropRate: 0.15,
happinessRecovery: 0.12
}
},
{
id: 'karaoke_king',
name: 'KTV歌王',
tier: 'N',
description: '歌聲嘹亮,歡樂無限',
buffs: { buffs: {
happinessRecovery: 0.2, happinessRecovery: 0.2,
breedingSuccess: 0.3, breedingSuccess: 0.18,
resourceGain: 0.1 luck: 7
} }
}, },
{ {
id: 'broken_army', id: 'dumpling_maker',
name: '破軍星', name: '水餃店師傅',
description: '衝鋒陷陣,速度極快但防禦較低', tier: 'N',
description: '手工水餃,真材實料',
buffs: { buffs: {
speed: 0.3, strGain: 0.18,
hungerDecay: -0.18,
healthRegen: 0.15
}
},
{
id: 'morning_exercise',
name: '公園運動咖',
tier: 'N',
description: '每天運動,身體健康',
buffs: {
healthRegen: 0.2,
strGain: 0.18,
sicknessReduction: 0.15
}
},
{
id: 'mahjong_player',
name: '麻將高手',
tier: 'N',
description: '打麻將練腦力,手氣不錯',
buffs: {
intGain: 0.2,
gameSuccessRate: 0.18,
luck: 11
}
},
{
id: 'temple_volunteer',
name: '廟會志工',
tier: 'N',
description: '樂於助人,福報滿滿',
buffs: {
happinessRecovery: 0.18,
badEventReduction: 0.18,
luck: 9
}
},
{
id: 'street_cat',
name: '巷口貓',
tier: 'N',
description: '自由自在,靈活敏捷',
buffs: {
speed: 0.22,
luck: 8,
defense: 0.12
}
},
{
id: 'recycling_granny',
name: '資源回收阿婆',
tier: 'N',
description: '勤儉持家,不浪費資源',
buffs: {
resourceGain: 0.2,
strGain: 0.15,
healthRegen: 0.12
}
},
{
id: 'street_performer',
name: '街頭藝人',
tier: 'N',
description: '才藝出眾,博得掌聲',
buffs: {
happinessRecovery: 0.18,
miniGameBonus: 0.2,
breedingSuccess: 0.15
}
},
// ==================== C 級 (常見) - 5種 ====================
// 🌾 平凡命格
{
id: 'ordinary_life',
name: '平凡人生',
tier: 'C',
description: '平平淡淡才是真,簡單就是福',
buffs: {
luck: 5,
happinessRecovery: 0.1
}
},
{
id: 'unlucky_star',
name: '歹運連連',
tier: 'C',
description: '運氣不好但吃都吃不飽,體質還不錯',
buffs: {
luck: -5,
hungerDecay: -0.2,
healthRegen: 0.15
}
},
{
id: 'lazy_homebody',
name: '宅在家',
tier: 'C',
description: '能躺就不坐,成長緩慢但快樂',
buffs: {
strGain: -0.12,
happinessRecovery: 0.18,
hungerDecay: -0.15
}
},
{
id: 'glass_heart',
name: '玻璃心',
tier: 'C',
description: '情緒敏感,容易受傷但也容易開心',
buffs: {
happinessRecovery: 0.2,
defense: -0.15,
sicknessReduction: -0.1
}
},
{
id: 'rush_warrior',
name: '無頭蒼蠅',
tier: 'C',
description: '行動力強但容易出錯,有勇無謀',
buffs: {
speed: 0.25,
attack: 0.15, attack: 0.15,
defense: -0.1 gameSuccessRate: -0.15
} }
} }
] ]
// 根據機率隨機抽取命格
export function getRandomFate() {
const rand = Math.random()
let cumulativeProbability = 0
// 按照稀有度排序抽取
const tiers = ['SSR', 'SR', 'R', 'N', 'C']
for (const tier of tiers) {
cumulativeProbability += FATE_TIERS[tier].probability
if (rand < cumulativeProbability) {
// 從該等級中隨機選一個
const fatesInTier = FATES.filter(f => f.tier === tier)
return fatesInTier[Math.floor(Math.random() * fatesInTier.length)]
}
}
// 兜底返回普通命格
return FATES.find(f => f.id === 'ordinary')
}
// 獲取命格顏色
export function getFateColor(tier) {
return FATE_TIERS[tier]?.color || '#95a5a6'
}
// 獲取指定等級的所有命格
export function getFatesByTier(tier) {
return FATES.filter(f => f.tier === tier)
}