Ändere Altersgrenze für Schwangerschaften auf 16 Jahre und passe entsprechende Abfragen an
All checks were successful
Deploy yourpart (blue-green) / deploy (push) Successful in 4m14s
All checks were successful
Deploy yourpart (blue-green) / deploy (push) Successful in 4m14s
This commit is contained in:
@@ -2098,9 +2098,8 @@ pub const QUERY_AUTOBATISM: &str = r#"
|
|||||||
// Konzeption: genau ein Wurf pro Ehe und Kalendertag (`UserCharacterWorker`), mit random() < prob_year.
|
// Konzeption: genau ein Wurf pro Ehe und Kalendertag (`UserCharacterWorker`), mit random() < prob_year.
|
||||||
// Entspricht „ein Spieljahr pro Kalendertag“: keine 24× stündlichen Versuche mehr, keine „Hochzeitsnacht“
|
// 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.
|
// als Extra-Event — erste mögliche Konzeption am nächsten täglichen Fertilitätslauf nach der Hochzeit.
|
||||||
// Grenzen in Tagen: 1 Jahr ≈ 365 Tage (mother_age_days).
|
// Ein Kalendertag entspricht einem Spieljahr; `mother_age_days` ist daher zugleich das
|
||||||
// Erstes gemeinsames Kind (0 Zeilen in child_relation für dieses Paar): prob_year mindestens 1.0
|
// Alter in Spieljahren. Die Altersgrenze muss folglich 16 (nicht 16 * 365) sein.
|
||||||
// im Alter 18–~44 (6570–16000 Tage), damit kinderlose Ehen nicht über viele Jahre ohne Nachwuchs bleiben.
|
|
||||||
// WICHTIG: Vater/Mutter und Alter immer über gender ableiten — nicht character1/2 fest als Mutter!
|
// 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.
|
// Ablauf Ehe: (1) Konzeption setzt `marriage_pregnancy_due_at` (+18 Stunden), (2) Geburt wenn fällig.
|
||||||
@@ -2209,7 +2208,7 @@ pub const QUERY_TRY_MARRIAGE_CONCEPTION_UPDATE: &str = r#"
|
|||||||
conceivable AS (
|
conceivable AS (
|
||||||
SELECT ma.relationship_id
|
SELECT ma.relationship_id
|
||||||
FROM mother_age ma
|
FROM mother_age ma
|
||||||
WHERE ma.mother_age_days >= 5110
|
WHERE ma.mother_age_days >= 16
|
||||||
AND random() < ma.prob_year
|
AND random() < ma.prob_year
|
||||||
)
|
)
|
||||||
UPDATE falukant_data.relationship r
|
UPDATE falukant_data.relationship r
|
||||||
@@ -2286,7 +2285,7 @@ pub const QUERY_GET_LEGACY_MARRIAGE_INSTANT_PREGNANCY_CANDIDATES: &str = r#"
|
|||||||
mother_age_days,
|
mother_age_days,
|
||||||
prob_year * 100.0 AS prob_pct
|
prob_year * 100.0 AS prob_pct
|
||||||
FROM mother_age
|
FROM mother_age
|
||||||
WHERE mother_age_days >= 5110
|
WHERE mother_age_days >= 16
|
||||||
AND random() < prob_year;
|
AND random() < prob_year;
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
@@ -3855,7 +3854,8 @@ pub const QUERY_GET_LOVER_PREGNANCY_CANDIDATES: &str = r#"
|
|||||||
WHERE cr.mother_character_id = c_female.id
|
WHERE cr.mother_character_id = c_female.id
|
||||||
AND cr.created_at::date = CURRENT_DATE
|
AND cr.created_at::date = CURRENT_DATE
|
||||||
)
|
)
|
||||||
AND (CURRENT_DATE - c_female.birthdate::date) >= 5110
|
-- Ein Kalendertag entspricht einem Spieljahr (vgl. Ehe-Konzeption).
|
||||||
|
AND (CURRENT_DATE - c_female.birthdate::date) >= 16
|
||||||
AND random() * 100.0 < (
|
AND random() * 100.0 < (
|
||||||
LEAST(12.0, GREATEST(0.0,
|
LEAST(12.0, GREATEST(0.0,
|
||||||
CASE rs.lover_role
|
CASE rs.lover_role
|
||||||
@@ -4088,4 +4088,16 @@ mod tests {
|
|||||||
assert!(QUERY_SET_CHARACTER_PREGNANCY_FROM_LOVER.contains(AGE_16_GUARD));
|
assert!(QUERY_SET_CHARACTER_PREGNANCY_FROM_LOVER.contains(AGE_16_GUARD));
|
||||||
assert!(QUERY_GET_PLANNED_CHARACTER_BIRTH_DELIVERIES.contains("pregnancy_due_at <= NOW()"));
|
assert!(QUERY_GET_PLANNED_CHARACTER_BIRTH_DELIVERIES.contains("pregnancy_due_at <= NOW()"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn automatic_conception_uses_game_years_not_real_world_days() {
|
||||||
|
for query in [
|
||||||
|
QUERY_TRY_MARRIAGE_CONCEPTION_UPDATE,
|
||||||
|
QUERY_GET_LEGACY_MARRIAGE_INSTANT_PREGNANCY_CANDIDATES,
|
||||||
|
QUERY_GET_LOVER_PREGNANCY_CANDIDATES,
|
||||||
|
] {
|
||||||
|
assert!(!query.contains("5110"), "{query}");
|
||||||
|
assert!(query.contains(">= 16"), "{query}");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user