Vereinheitliche Schwangerschaftschancen auf 50 Prozent
Some checks failed
Deploy yourpart (blue-green) / deploy (push) Has been cancelled

This commit is contained in:
Torsten Schulz (local)
2026-11-04 15:09:52 +01:00
parent 465924a0a6
commit 30f5c22974
2 changed files with 5 additions and 19 deletions

View File

@@ -751,10 +751,6 @@ impl FalukantFamilyWorker {
self.publish_falukant_update_family_batch(&notify, "daily");
drop(conn);
// Liebschafts-Geburt: täglich (1 Spieljahr); Monats-Stempel erfolgt oben mit dem Tageslauf.
if let Err(e) = self.process_lover_births() {
eprintln!("[FalukantFamilyWorker] process_lover_births: {e}");
}
Ok(())
}
@@ -787,6 +783,7 @@ impl FalukantFamilyWorker {
self.publish_falukant_update_family_batch(&monthly_notify, "monthly");
drop(conn);
// Ein gemeinsamer Fertilitätswurf pro Jahreslauf für Liebschaften und Verlobte.
self.process_lover_births()?;
Ok(())
}

View File

@@ -2135,7 +2135,7 @@ pub const QUERY_AUTOBATISM: &str = r#"
// Entspricht „ein Spieljahr pro Kalendertag“: keine 24× stündlichen Versuche mehr, keine „Hochzeitsnacht“
// als Extra-Event — erste mögliche Konzeption am nächsten täglichen Fertilitätslauf nach der Hochzeit.
// Ein Kalendertag entspricht einem Spieljahr; `mother_age_days` ist daher zugleich das
// Alter in Spieljahren. Die Altersgrenze muss folglich 16 (nicht 16 * 365) sein.
// Alter in Spieljahren. Beide Eltern müssen ihr individuelles Fruchtbarkeitsalter erreicht haben.
// WICHTIG: Vater/Mutter und Alter immer über gender ableiten — nicht character1/2 fest als Mutter!
//
// Ablauf Ehe: (1) Konzeption setzt `marriage_pregnancy_due_at` (+18 Stunden), (2) Geburt wenn fällig.
@@ -2248,7 +2248,7 @@ pub const QUERY_TRY_MARRIAGE_CONCEPTION_UPDATE: &str = r#"
p.father_uid,
p.mother_uid,
p.mother_age_days,
0.72::float AS prob_year
0.50::float AS prob_year
FROM paired p
),
conceivable AS (
@@ -2321,7 +2321,7 @@ pub const QUERY_GET_LEGACY_MARRIAGE_INSTANT_PREGNANCY_CANDIDATES: &str = r#"
p.father_uid,
p.mother_uid,
p.mother_age_days,
0.72::float AS prob_year
0.50::float AS prob_year
FROM paired p
)
SELECT
@@ -3970,18 +3970,7 @@ pub const QUERY_GET_LOVER_PREGNANCY_CANDIDATES: &str = r#"
AND cr.created_at::date = CURRENT_DATE
)
-- Ein Kalendertag entspricht einem Spieljahr (vgl. Ehe-Konzeption).
AND random() * 100.0 < (
LEAST(12.0, GREATEST(0.0,
CASE WHEN rt.tr = 'engaged' THEN 4.0 ELSE CASE rs.lover_role
WHEN 'secret_affair' THEN 2.0
WHEN 'lover' THEN 4.0
WHEN 'mistress_or_favorite' THEN 6.0
ELSE 0.0
END END
+ CASE WHEN rs.affection >= 75 THEN 2.0 ELSE 0.0 END
+ CASE WHEN rs.visibility >= 70 AND rs.affection < 50 THEN -2.0 ELSE 0.0 END
))
);
AND random() < 0.50;
"#;
/// Konzeption bei Liebschaften/Verlobten setzt eine geplante Schwangerschaft am Mutter-Charakter