v0.1.2: 宗族气韵(职事/悟道/谱系/碑录/庆典/飞升/音效)

- 职事任命:长老(+修炼)/供奉(+战力)/执事(+坊市)/掌教(+闭关) 每人加成叠加,上限管理
- 功法悟道:修习积悟性点,小成/大成逐级+战力,大境界突破传道于直系晚辈
- 宗族谱系页:世代分带 + 夫妻同卷 + 子孙连枝,点节点开详情,先人簿可查
- 功德碑:宗主辞世即勒石,宗祠页碑录永存
- 百年庆典 + 飞升之路事件链(留世坐镇/仙风入体 或 云游飞升/宗族蒙荫)
- 合成音效(WebAudio):鼓点/钟鸣/纸韵/磬响,设置页开关
- 单测 29→38;typecheck/build 通过;GUI 冒烟受限于 WSLg 掉线(SMOKE-TIMEOUT 优雅退出)
This commit is contained in:
2026-08-23 08:28:49 +08:00
parent 6b15a97d0c
commit fefbe1f1d7
22 changed files with 864 additions and 8 deletions
+111
View File
@@ -1229,6 +1229,105 @@ body {
letter-spacing: 2px;
}
/* ---------- 谱系 ---------- */
.genealogy-row {
display: flex;
gap: 14px;
margin-bottom: 14px;
background: linear-gradient(180deg, rgba(242, 233, 212, 0.035), rgba(242, 233, 212, 0.015));
border: 1px solid rgba(140, 120, 80, 0.22);
border-radius: 3px;
padding: 12px 14px;
}
.genealogy-gen {
writing-mode: vertical-rl;
color: #cdaa63;
letter-spacing: 6px;
font-size: 0.95rem;
border-right: 1px solid rgba(140, 120, 80, 0.25);
padding-right: 10px;
flex-shrink: 0;
}
.genealogy-body {
flex: 1;
display: flex;
flex-direction: column;
gap: 12px;
}
.genealogy-unit {
display: flex;
flex-direction: column;
gap: 6px;
border-left: 3px solid rgba(150, 128, 88, 0.35);
padding-left: 10px;
}
.genealogy-parents {
display: flex;
align-items: center;
gap: 8px;
}
.genealogy-matron {
color: #a09374;
font-size: 0.9rem;
}
.genealogy-drop {
height: 12px;
border-left: 2px solid rgba(150, 128, 88, 0.4);
margin-left: 30px;
}
.genealogy-children,
.genealogy-singles {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
.gene-node {
background: linear-gradient(180deg, #f4ecd9, #e7d6b4);
color: #2e2415;
border: 1px solid #b3a075;
border-radius: 3px;
padding: 5px 10px;
min-width: 108px;
cursor: pointer;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 252, 240, 0.6);
transition: all 0.14s;
}
.gene-node:hover {
border-color: var(--gold);
transform: translateY(-1px);
}
.gene-dead {
filter: saturate(0.4);
opacity: 0.55;
background: linear-gradient(180deg, #d9cfb8, #c8bb9e);
}
.gene-head {
border-color: var(--vermilion);
box-shadow: 0 0 0 1px rgba(169, 59, 46, 0.25), 0 2px 6px rgba(0, 0, 0, 0.5);
}
.gene-name {
display: flex;
align-items: center;
font-size: 0.94rem;
font-weight: 700;
letter-spacing: 1px;
}
.gene-sub {
font-size: 0.75rem;
color: #6d5b3e;
margin-top: 1px;
display: flex;
align-items: center;
flex-wrap: wrap;
}
.gene-node .tag {
font-size: 0.62rem;
padding: 0 4px;
}
.genealogy-gen + .genealogy-body:has(.genealogy-singles:empty) .genealogy-singles {
display: none;
}
/* ---------- 媒人提示 / 年度族簿 ---------- */
.matchmaker-strip {
background: linear-gradient(180deg, rgba(240, 214, 160, 0.12), rgba(240, 214, 160, 0.05));
@@ -1307,3 +1406,15 @@ body {
margin-bottom: 16px;
text-shadow: 0 4px 18px rgba(0, 0, 0, 0.8);
}
/* ---------- 宗祠碑录 ---------- */
.monument-strip {
margin-bottom: 14px;
background: rgba(20, 15, 9, 0.72);
border: 1px solid #33291a;
border-radius: 3px;
padding: 10px 16px;
}
.monument-strip .card-title {
color: #cdaa63;
}