This commit is contained in:
33333-33333 2026-06-28 23:07:40 +09:00
commit 0e432c62ae
87 changed files with 4282 additions and 3066 deletions

View file

@ -35,17 +35,17 @@ function lineageTreeNodeHtml(n, x, y) {
const live = entity && !entity.dead ? entity : null;
const img = n ? tarinaiSpritePathForId(n.id) : SPRITES[0].path;
const name = escapeHtml(n?.name || "\u4e0d\u660e");
const status = familyStatusText(n);
const gen = n?.generation ? `G${n.generation}` : "G?";
const rawReason = !n?.alive && n?.deathReason ? String(n.deathReason) : "";
const briefReason = familyDeathReasonLabel(rawReason, entity);
const status = n?.alive ? familyStatusText(n) : (briefReason || "死亡");
const reason = briefReason ? ` / ${briefReason}` : "";
const rawTags = live?.personalityTags ? live.personalityTags() : (Array.isArray(n?.personalityTags) ? n.personalityTags : []);
const tags = rawTags.slice();
const displayTags = tags.slice(0, 4);
const tagText = tags.length ? ` / ${tags.join(" ")}` : "";
const title = escapeHtml(`${n?.name || "\u4e0d\u660e"} / \u4e16\u4ee3 ${n?.generation || "?"} / ${status}${reason}${tagText}`);
const deathLine = briefReason ? `<span class="death-reason">${escapeHtml(briefReason)}</span>` : "";
const deathLine = "";
const tagLine = displayTags.length ? `<span class="family-personality-tags">${displayTags.map(tag => `<em>${escapeHtml(tag)}</em>`).join("")}</span>` : "";
const champion = !!(live?.isTarinaiChampion || n?.isTarinaiChampion);
const statLine = n ? `<span class="family-genetic-stats" title="寿命 / 体格 / 攻撃 / 速度">
@ -385,10 +385,10 @@ function lineageBuildRowGroups(row, idSet) {
function lineageLayoutRows(rows, idSet) {
const NODE_W = 150;
const NODE_H = 104;
const SIBLING_GAP = 32;
const GROUP_GAP = 52;
const PARTNER_GROUP_GAP = 24;
const ROW_GAP = 108;
const SIBLING_GAP = 24;
const GROUP_GAP = 42;
const PARTNER_GROUP_GAP = 18;
const ROW_GAP = 96;
const LEFT_PAD = 82;
const TOP_PAD = 44;
const RIGHT_PAD = 48;
@ -447,7 +447,7 @@ function lineageLayoutRows(rows, idSet) {
}
const lefts = [];
const SOFT_EXTRA_GAP = 68;
const SOFT_EXTRA_GAP = 54;
for (let gIndex = 0; gIndex < groups.length; gIndex++) {
const prevGroup = groups[gIndex - 1];
const pairGap = prevGroup && prevGroup.items.length === 1 && groups[gIndex].items.length === 1