Verbessere Logik zur Berechnung von Reputation und Ehezufriedenheit: Aktualisiere die Kategorien und täglichen Deltas für Reputation und Ehezufriedenheit basierend auf Standsgruppen, um die Auswirkungen von Liebschaften präziser darzustellen. Füge Dokumentation zu Standsgruppen und deren Effekten hinzu.
All checks were successful
Deploy yourpart (blue-green) / deploy (push) Successful in 1m31s
All checks were successful
Deploy yourpart (blue-green) / deploy (push) Successful in 1m31s
This commit is contained in:
90
docs/LOVER_STAND_EFFECTS.md
Normal file
90
docs/LOVER_STAND_EFFECTS.md
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
# Standsabhängige Liebschaften - Frontend Übersicht
|
||||||
|
|
||||||
|
## Title Groups (Standsgruppen)
|
||||||
|
|
||||||
|
Die Standsgruppe wird aus dem **höchsten Titel beider Partner** bestimmt:
|
||||||
|
|
||||||
|
| Stand | Titel | Anzahl |
|
||||||
|
|-------|-------|--------|
|
||||||
|
| **0 - Niedrig** | noncivil, civil, sir | 3 |
|
||||||
|
| **1 - Mittel** | townlord, by, landlord | 3 |
|
||||||
|
| **2 - Hoch** | knight, baron, count, palsgrave, margrave, landgrave | 6 |
|
||||||
|
| **3 - Höchst** | ruler, elector, imperial-prince, duke, grand-duke, prince-regent, king | 7 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Auswirkungen auf Reputation (täglich)
|
||||||
|
|
||||||
|
Die Reputation der **beiden Liebhaber** wird täglich angepasst:
|
||||||
|
|
||||||
|
### Stand 0 - Niedrig
|
||||||
|
- **Heimlich** (Diskretheit ≥ 75): **±0.0** (neutral)
|
||||||
|
- **Öffentlich** (Sichtbarkeit ≥ 60): **-0.5** (täglich Reputationsverlust)
|
||||||
|
|
||||||
|
### Stand 1 - Mittel
|
||||||
|
- **Heimlich** (Diskretheit ≥ 75): **+0.3** (täglich Reputationsgewinn)
|
||||||
|
- **Öffentlich** (Sichtbarkeit ≥ 60): **-0.4** (täglich Reputationsverlust - Skandal!)
|
||||||
|
|
||||||
|
### Stand 2 - Hoch
|
||||||
|
- **Jederzeit**: **+0.5** (täglich Reputationsgewinn, unabhängig von Sichtbarkeit/Diskretheit)
|
||||||
|
|
||||||
|
### Stand 3 - Höchst
|
||||||
|
- **Jederzeit**: **+0.75** (täglich Reputationsgewinn, unabhängig von Sichtbarkeit/Diskretheit)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Auswirkungen auf Ehe-Zufriedenheit (täglich)
|
||||||
|
|
||||||
|
Die Zufriedenheit der **Ehe des Liebhabers** wird täglich angepasst, wenn eine Liebschaft existiert:
|
||||||
|
|
||||||
|
### Stand 0 - Niedrig
|
||||||
|
- **Heimlich**: **±0** (neutral, keine Auswirkung)
|
||||||
|
- **Öffentlich**: **-1** (täglich Ehe-Schaden)
|
||||||
|
|
||||||
|
### Stand 1 - Mittel
|
||||||
|
- **Heimlich**: **±0** (neutral - heimliche Affären sind akzeptabel)
|
||||||
|
- **Öffentlich**: **-2** (täglich Ehe-Schaden - großer Skandal!)
|
||||||
|
|
||||||
|
### Stand 2 - Hoch
|
||||||
|
- **Jederzeit**: **+1** (täglich Ehe-Gewinn - gesellschaftlich akzeptiert/bewundert)
|
||||||
|
|
||||||
|
### Stand 3 - Höchst
|
||||||
|
- **Jederzeit**: **+2** (täglich Ehe-Gewinn - sehr gesellschaftlich akzeptiert)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Sichtbarkeit vs. Diskretheit
|
||||||
|
|
||||||
|
| Eigenschaft | Beschreibung | Schwelle für "Öffentlich" |
|
||||||
|
|------------|-------------|--------------------------|
|
||||||
|
| **Sichtbarkeit** | Wie öffentlich bekannt ist die Liebschaft? | ≥ 60 |
|
||||||
|
| **Diskretheit** | Wie gut versteckt ist die Liebschaft? | ≥ 75 |
|
||||||
|
|
||||||
|
- Sichtbarkeit wird durch **Unterhaltsniveau, Zuneigung, Ehe-Konflikt, Bedieneten-Diskretheit** erhöht
|
||||||
|
- Diskretheit wird durch **hohes Unterhaltsniveau** erhöht und durch **hohe Sichtbarkeit** gesenkt
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Fazit für UI-Anzeige
|
||||||
|
|
||||||
|
**Bei höchstem Stand (3):**
|
||||||
|
- ✅ "Diese Liebschaft ist für diese Position prestigeträchtig"
|
||||||
|
- ✅ Reputation steigt stärker (+0.75/Tag)
|
||||||
|
- ✅ Ehe profitiert besonders (Zufriedenheit +2/Tag)
|
||||||
|
|
||||||
|
**Bei hohem Stand (2):**
|
||||||
|
- ✅ "Diese Liebschaft ist gesellschaftlich akzeptiert"
|
||||||
|
- ✅ Reputation steigt (+0.5/Tag)
|
||||||
|
- ✅ Ehe profitiert (Zufriedenheit +1/Tag)
|
||||||
|
|
||||||
|
**Bei mittlerem Stand (1):**
|
||||||
|
- ⚠️ "Diese Liebschaft muss diskret bleiben"
|
||||||
|
- ✅ Reputation steigt WENN geheim (+0.3/Tag)
|
||||||
|
- ⚠️ "Öffentliche Liebschaft würde massiven Skandal verursachen (-0.4 Rep/Tag, -2 Ehe-Zuf./Tag)"
|
||||||
|
- ✅ Ehe unbeeinflusst WENN geheim
|
||||||
|
|
||||||
|
**Bei niedrigem Stand (0):**
|
||||||
|
- ❌ "Diese Liebschaft ist gesellschaftlich unerwünscht"
|
||||||
|
- ❌ Reputation sinkt bei öffentlicher Affäre (-0.5/Tag)
|
||||||
|
- ⚠️ Ehe beschädigt bei öffentlicher Affäre (-1/Tag)
|
||||||
|
- ✅ Wenn geheim: nur neutral, kein Schaden
|
||||||
@@ -1332,33 +1332,24 @@ fn visibility_young_penalty(min_age_years: i32, visibility: i32) -> f64 {
|
|||||||
fn lover_status_category(title1: &str, title2: &str) -> u8 {
|
fn lover_status_category(title1: &str, title2: &str) -> u8 {
|
||||||
let t1 = title_group(title1);
|
let t1 = title_group(title1);
|
||||||
let t2 = title_group(title2);
|
let t2 = title_group(title2);
|
||||||
let max_group = t1.max(t2);
|
t1.max(t2) // 0 = niedrig, 1 = mittel, 2 = hoch, 3 = höchst
|
||||||
// Vereinfacht: 0 -> "niedrig", 1 -> "mittel", 2+ -> "hoch"
|
|
||||||
if max_group >= 2 {
|
|
||||||
2 // hoch (knight, baron, count, ruler, etc.)
|
|
||||||
} else if max_group == 1 {
|
|
||||||
1 // mittel (townlord, by, landlord)
|
|
||||||
} else {
|
|
||||||
0 // niedrig (noncivil, civil, sir)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Berechnet tägl. Reputations-Delta basierend auf Stand, Sichtbarkeit und Status der Liebschaft.
|
/// Berechnet tägl. Reputations-Delta basierend auf Stand, Sichtbarkeit und Status der Liebschaft.
|
||||||
/// Regel:
|
/// Regel:
|
||||||
/// - Hoher Stand: +Reputation (unabhängig von Sichtbarkeit)
|
/// - Stand 3 (Höchst): +0.75/Tag (sehr positiv)
|
||||||
/// - Mittlerer Stand: +Reputation wenn heimlich/diskret, -Reputation wenn öffentlich
|
/// - Stand 2 (Hoch): +0.5/Tag (positiv)
|
||||||
/// - Niedriger Stand: neutral wenn heimlich, -Reputation wenn öffentlich
|
/// - Stand 1 (Mittel): +0.3 wenn heimlich, -0.4 wenn öffentlich
|
||||||
|
/// - Stand 0 (Niedrig): 0 wenn heimlich, -0.5 wenn öffentlich
|
||||||
fn calculate_lover_reputation_delta(l: &LoverData) -> f64 {
|
fn calculate_lover_reputation_delta(l: &LoverData) -> f64 {
|
||||||
let category = lover_status_category(&l.title1_tr, &l.title2_tr);
|
let category = lover_status_category(&l.title1_tr, &l.title2_tr);
|
||||||
let is_public = l.visibility >= 60; // öffentlich wenn hohe Sichtbarkeit
|
let is_public = l.visibility >= 60; // öffentlich wenn hohe Sichtbarkeit
|
||||||
|
|
||||||
match category {
|
match category {
|
||||||
2 => {
|
3 => 0.75, // Höchst: sehr positiv
|
||||||
// Hoher Stand: immer +0,5 pro Tag (positiv)
|
2 => 0.5, // Hoch: positiv
|
||||||
0.5
|
|
||||||
}
|
|
||||||
1 => {
|
1 => {
|
||||||
// Mittlerer Stand: heimlich +0,3, öffentlich -0,4
|
// Mittel: heimlich +0,3, öffentlich -0,4
|
||||||
if is_public {
|
if is_public {
|
||||||
-0.4
|
-0.4
|
||||||
} else {
|
} else {
|
||||||
@@ -1366,7 +1357,7 @@ fn calculate_lover_reputation_delta(l: &LoverData) -> f64 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
// Niedriger Stand: heimlich/diskret 0, öffentlich -0,5
|
// Niedrig: heimlich/diskret 0, öffentlich -0,5
|
||||||
if is_public {
|
if is_public {
|
||||||
-0.5
|
-0.5
|
||||||
} else {
|
} else {
|
||||||
@@ -1378,20 +1369,19 @@ fn calculate_lover_reputation_delta(l: &LoverData) -> f64 {
|
|||||||
|
|
||||||
/// Berechnet tägl. Ehezufriedenheits-Delta für Ehe-Partner, wenn dieser eine Liebschaft hat.
|
/// Berechnet tägl. Ehezufriedenheits-Delta für Ehe-Partner, wenn dieser eine Liebschaft hat.
|
||||||
/// Regel:
|
/// Regel:
|
||||||
/// - Hoher Stand: +Zufriedenheit (sogar öffentliche Liebschaften sind akzeptabel)
|
/// - Stand 3 (Höchst): +2/Tag (sehr gesellschaftlich akzeptiert)
|
||||||
/// - Mittlerer Stand: +Zufriedenheit wenn heimlich, -Zufriedenheit wenn öffentlich
|
/// - Stand 2 (Hoch): +1/Tag (gesellschaftlich akzeptiert)
|
||||||
/// - Niedriger Stand: neutral wenn heimlich, -Zufriedenheit wenn öffentlich
|
/// - Stand 1 (Mittel): 0 wenn heimlich, -2 wenn öffentlich
|
||||||
|
/// - Stand 0 (Niedrig): 0 wenn heimlich, -1 wenn öffentlich
|
||||||
fn calculate_lover_marriage_satisfaction_delta(l: &LoverData) -> i32 {
|
fn calculate_lover_marriage_satisfaction_delta(l: &LoverData) -> i32 {
|
||||||
let category = lover_status_category(&l.title1_tr, &l.title2_tr);
|
let category = lover_status_category(&l.title1_tr, &l.title2_tr);
|
||||||
let is_public = l.visibility >= 60;
|
let is_public = l.visibility >= 60;
|
||||||
|
|
||||||
match category {
|
match category {
|
||||||
2 => {
|
3 => 2, // Höchst: +2 pro Tag (sehr positiv)
|
||||||
// Hoher Stand: +1 pro Tag (Liebschaft ist gesellschaftlich akzeptabel/vorteilhaft)
|
2 => 1, // Hoch: +1 pro Tag
|
||||||
1
|
|
||||||
}
|
|
||||||
1 => {
|
1 => {
|
||||||
// Mittlerer Stand: +0 wenn heimlich, -2 wenn öffentlich (Skandal)
|
// Mittel: +0 wenn heimlich, -2 wenn öffentlich (Skandal)
|
||||||
if is_public {
|
if is_public {
|
||||||
-2
|
-2
|
||||||
} else {
|
} else {
|
||||||
@@ -1399,7 +1389,7 @@ fn calculate_lover_marriage_satisfaction_delta(l: &LoverData) -> i32 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
// Niedriger Stand: 0 wenn heimlich, -1 wenn öffentlich
|
// Niedrig: 0 wenn heimlich, -1 wenn öffentlich
|
||||||
if is_public {
|
if is_public {
|
||||||
-1
|
-1
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user