fulfillment
This commit is contained in:
parent
e8f1d1db1e
commit
2e90add2e1
67 changed files with 5427 additions and 690 deletions
|
|
@ -166,6 +166,25 @@ function selectedInfoRowHtml(label, valueHtml, metric = "") {
|
|||
return `<div class="info-row"${metricAttr}><span>${escapeHtml(label)}</span><strong>${valueHtml}</strong></div>`;
|
||||
}
|
||||
|
||||
function selectedNeedRowsHtml(t) {
|
||||
const system = window.TarinaiNeedSystem;
|
||||
const keys = system?.NEED_KEYS || ["food", "sleep", "health", "safety", "social", "fulfill"];
|
||||
const labels = system?.NEED_LABELS || {
|
||||
food: "\u6442\u990c",
|
||||
sleep: "\u7761\u7720",
|
||||
health: "\u5065\u5eb7",
|
||||
safety: "\u5b89\u5168",
|
||||
social: "\u95a2\u4fc2",
|
||||
fulfill: "\u5145\u8db3",
|
||||
};
|
||||
const active = t?.intent?.need || t?.need || "";
|
||||
return keys.map(key => {
|
||||
const value = system?.getNeedDisplayValue ? system.getNeedDisplayValue(t?.needs?.[key] || 0) : Math.round((t?.needs?.[key] || 0) / 10);
|
||||
const mark = key === active ? ` <span class="selected-need-mark">\u25b2</span>` : "";
|
||||
return `<div class="info-row selected-need-row${key === active ? " active" : ""}" data-need="${escapeHtml(key)}"><span>${escapeHtml(labels[key] || key)}</span><strong>${escapeHtml(value)}${mark}</strong></div>`;
|
||||
}).join("");
|
||||
}
|
||||
|
||||
function renderSelected() {
|
||||
const t = world.selected;
|
||||
if (!t || t.dead || !world.tarinai.includes(t)) {
|
||||
|
|
@ -201,6 +220,7 @@ function renderSelected() {
|
|||
t.isZunchiSlave ? 1 : 0, fmt(t.totalFightLosses || 0), fmt(t.loveMochiTimer || 0), fmt(t.fightMochiTimer || 0),
|
||||
t.zunchiDisease ? 1 : 0, fmt(t.zunchiDiseaseSeverity || 0), fmt(t.zunchiStain || 0),
|
||||
t.sleepDisease ? 1 : 0, t.explosionDisease ? 1 : 0, fmt(t.explosionDiseaseTimer || 0), t.fightDisease ? 1 : 0, t.favorite ? 1 : 0,
|
||||
JSON.stringify(t.needs || {}), t.intent?.need || "", t.intent?.actionId || "", t.intent?.actionLabel || "", t.intent?.reasonText || "",
|
||||
personalitySnapshot, personalityDailySnapshot(t),
|
||||
["life", "attack", "speed", "size"].map(key => geneticPercentText(t, key)).join(","), fmt((t.growth || 0) * 100),
|
||||
itemEffectSummary.map(e => `${e.id}:${e.detail}`).join(","),
|
||||
|
|
@ -239,7 +259,8 @@ function renderSelected() {
|
|||
const basicHtml = `
|
||||
<div class="info-row"><span>\u4e16\u4ee3</span><strong>${escapeHtml(generationDisplay || "\u4e0d\u660e")}</strong></div>
|
||||
<div class="info-row"><span>\u72b6\u614b</span><strong>${escapeHtml(stateLabel(t.state))}</strong></div>
|
||||
<div class="info-row"><span>\u7406\u7531</span><strong>${escapeHtml(reasonLabel(t))}</strong></div>
|
||||
<div class="info-row"><span>\u3044\u307e</span><strong>${escapeHtml(t.intent?.actionLabel || stateLabel(t.state))}</strong></div>
|
||||
<div class="info-row"><span>\u7406\u7531</span><strong>${escapeHtml(t.intent?.reasonText || reasonLabel(t))}</strong></div>
|
||||
<div class="info-row"><span>\u5bfe\u8c61</span><strong>${escapeHtml(targetLabel(t.target))}</strong></div>
|
||||
<div class="info-row"><span>\u5e74\u9f62</span><strong>${fmt(t.age)} / ${fmt(t.lifeSpan)}</strong></div>
|
||||
<div class="info-row"><span>\u6700\u5927\u5bff\u547d</span><strong>${geneticPercentText(t, "life")}</strong></div>
|
||||
|
|
@ -247,14 +268,7 @@ function renderSelected() {
|
|||
<div class="info-row"><span>\u79fb\u52d5\u901f\u5ea6</span><strong>${geneticPercentText(t, "speed")}</strong></div>
|
||||
<div class="info-row"><span>\u30b5\u30a4\u30ba</span><strong>${geneticSizeText(t)}</strong></div>
|
||||
`;
|
||||
const healthHtml = [
|
||||
selectedInfoRowHtml("\u7dcf\u5408\u7684\u6c17\u5206", fmt(t.mood), "mood"),
|
||||
selectedInfoRowHtml("\u7a7a\u8179", fmt(t.hunger), "hunger"),
|
||||
selectedInfoRowHtml("\u5bc2\u3057\u3055", fmt(t.loneliness), "loneliness"),
|
||||
selectedInfoRowHtml("\u4f53\u529b", fmt(t.energy), "energy"),
|
||||
selectedInfoRowHtml("\u30b9\u30c8\u30ec\u30b9", fmt(t.stress), "stress"),
|
||||
selectedInfoRowHtml("\u305a\u3093\u3061\u6c5a\u308c", fmt(t.zunchiStain || 0), "zunchi"),
|
||||
].join("");
|
||||
const healthHtml = selectedNeedRowsHtml(t) + selectedInfoRowHtml("\u30b9\u30c8\u30ec\u30b9", fmt(t.stress), "stress");
|
||||
const itemEffectHtml = itemEffectSummary.length
|
||||
? itemEffectSummary.map(e => `<div class="info-row"><span>${escapeHtml(e.label)}</span><strong>${escapeHtml(e.detail)}</strong></div>`).join("")
|
||||
: `<div class="info-row"><span>\u30a2\u30a4\u30c6\u30e0\u52b9\u679c</span><strong>\u306a\u3057</strong></div>`;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue