This commit is contained in:
33333-33333 2026-07-09 16:08:11 +09:00
commit f1c3af2b89
49 changed files with 989 additions and 310 deletions

View file

@ -494,6 +494,7 @@
},
addTarinai(opts = {}) {
if (!(this.canAddTarinai?.(1) ?? true)) return null;
opts = global.TarinaiSeedFactory.prepareAddOptions(this, opts) || opts;
const seedParents = Array.isArray(opts.seedParents) ? opts.seedParents.filter(p => p && typeof p === "object") : [];
if (!opts.genetics && seedParents.length >= 2 && typeof inheritedGenetics === "function") {
@ -611,6 +612,7 @@
startBirthRitual(a, b) {
if (!a || !b || a.dead || b.dead) return false;
if (!(this.canAddTarinai?.(1) ?? true)) return false;
if (!this.tarinai?.includes?.(a) || !this.tarinai?.includes?.(b)) return false;
if (!!a.isZunchiSlave !== !!b.isZunchiSlave) return false;
if (this.areParentChild(a, b)) return false;
@ -657,8 +659,10 @@
const bText = buildReasonText("social", bBehavior?.tiedNeeds || ["social"], { id: "birth_ritual", need: "social", subNeed: "mate", label: `${a.name || "\u76f8\u624b"}\u3068\u3078\u3053\u3078\u3053\u3057\u3066\u3044\u308b` }, b, this, { causeText: bLoveCause });
setBehaviorText(a, { need: "social", subNeed: "mate", actionId: "birth_ritual", actionLabel: `${b.name || "\u76f8\u624b"}\u3068\u3078\u3053\u3078\u3053\u3057\u3066\u3044\u308b`, reasonText: aText, causeText: aLoveCause, target: b });
setBehaviorText(b, { need: "social", subNeed: "mate", actionId: "birth_ritual", actionLabel: `${a.name || "\u76f8\u624b"}\u3068\u3078\u3053\u3078\u3053\u3057\u3066\u3044\u308b`, reasonText: bText, causeText: bLoveCause, target: a });
a.reproductionTimer = CONFIG.reproductionCooldown + rand(2, 10);
b.reproductionTimer = CONFIG.reproductionCooldown + rand(2, 10);
const championPair = Boolean(a.isTarinaiChampion && b.isTarinaiChampion);
const reproductionCooldown = championPair ? Math.max(8, CONFIG.reproductionCooldown * 0.45) + rand(1, 4) : CONFIG.reproductionCooldown + rand(2, 10);
a.reproductionTimer = reproductionCooldown;
b.reproductionTimer = reproductionCooldown;
a.surpriseTimer = Math.max(a.surpriseTimer, 0.35);
b.surpriseTimer = Math.max(b.surpriseTimer, 0.35);
return true;
@ -816,6 +820,7 @@
sizeItemMode: "",
lifeItemMode: "",
});
if (!child) return null;
if (zunchiSlaveChild) child.becomeZunchiSlave?.({ birth: true });
this.maxGeneration = Math.max(this.maxGeneration, child.generation);
a.hasPaired = true;