v0.1.4: 百年定局(终局/大比/寄读/春秋原)
- 望气定鼎:stats 追踪四维(人兴/道兴/威名/香火)+ 十二称号分档 + 铭文诗 春秋原页预演称号,落印定局(青册留档,不阻继续游历) - 太虚大比:每五年征召,点将三关(初试/拔擢/问鼎)复用战斗结算, 名次四档红利(声望/灵石/全场好感),史书战报自动落笔 - 宗门寄读:随机宗门收徒(适龄少年),寄读 2-4 年期间每季寄资源, 期满三选:归来精进(可触发突破+随机机运)或续读深造;低概率择师不回 - 求经台:藏书阁≥3 解锁,两年一访得稀有功法 - 春秋原复盘页:气数四维图/岁末族簿汇编/生卒与突破年表/大比年表 - 修复:大比征召曾因月份条件错过整年;抢在百年庆典前的优先级倒置 - 测试 161→176(评分边界/称号分档/大比三轨/寄读全链/求经冷却)
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
import { useGameStore } from '../store'
|
||||
import { LegacyArch } from '../../game/core/legacy'
|
||||
import { sBell } from '../sound'
|
||||
|
||||
function dimLabel(k: string): string {
|
||||
const map: Record<string, string> = {
|
||||
renXing: '人兴',
|
||||
daoXing: '道兴',
|
||||
weiMing: '威名',
|
||||
xiangHuo: '香火'
|
||||
}
|
||||
return map[k] ?? k
|
||||
}
|
||||
|
||||
export function ResolveModal({ arch, onClose }: { arch: LegacyArch; onClose: () => void }) {
|
||||
return (
|
||||
<div className="modal-outer">
|
||||
<div className="modal resolve-modal">
|
||||
<div className="modal-cat" style={{ color: '#97835c', letterSpacing: 4 }}>
|
||||
—— 百年望气 · 定鼎之文 ——
|
||||
</div>
|
||||
<div className="resolve-title">「{arch.title}」</div>
|
||||
<div className="resolve-dims">
|
||||
{Object.entries(arch.dims)
|
||||
.filter(([k]) => k !== 'total')
|
||||
.map(([k, v]) => (
|
||||
<div key={k} className="resolve-dim">
|
||||
<span className="dim">{dimLabel(k)}</span>
|
||||
<div className="bar" style={{ flex: 1, height: 6 }}>
|
||||
<div style={{ width: `${Math.min(100, (v / 160) * 100)}%` }} />
|
||||
</div>
|
||||
<b>{v}</b>
|
||||
</div>
|
||||
))}
|
||||
<div className="resolve-dim">
|
||||
<span className="dim">总评</span>
|
||||
<div className="bar" style={{ flex: 1, height: 6 }}>
|
||||
<div style={{ width: `${Math.min(100, (arch.dims.total / 400) * 100)}%`, background: 'linear-gradient(90deg,#8e2f24,#c05a41,#e0c15e)' }} />
|
||||
</div>
|
||||
<b className="gold">{arch.dims.total}</b>
|
||||
</div>
|
||||
</div>
|
||||
<div className="resolve-poem">
|
||||
{arch.poem.map((l, i) => (
|
||||
<div key={i}>{l}</div>
|
||||
))}
|
||||
</div>
|
||||
<div className="resolve-stamp">仙途家族志 · 青册</div>
|
||||
<div style={{ display: 'flex', justifyContent: 'center', gap: 10, marginTop: 14 }}>
|
||||
<button className="btn" onClick={onClose}>暂不落印</button>
|
||||
<button
|
||||
className="btn btn-primary"
|
||||
onClick={() => {
|
||||
const w = useGameStore.getState().world
|
||||
if (w) {
|
||||
sBell()
|
||||
w.resolveLegacyNow()
|
||||
useGameStore.getState().bump()
|
||||
useGameStore.getState().refreshSlots()
|
||||
}
|
||||
onClose()
|
||||
}}
|
||||
>
|
||||
落 印 定 局
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default ResolveModal
|
||||
Reference in New Issue
Block a user