diff --git a/frontend/src/views/falukant/FamilyView.vue b/frontend/src/views/falukant/FamilyView.vue index 10e9551..aa427d5 100644 --- a/frontend/src/views/falukant/FamilyView.vue +++ b/frontend/src/views/falukant/FamilyView.vue @@ -568,6 +568,13 @@

{{ $t('falukant.family.lovers.candidates.none') }}

+
+

{{ $t('falukant.family.lovers.overview.title') }}

+

+ {{ $t('falukant.family.lovers.overview.forYourStand', { stand: ownLoverStandLabel }) }} +

+

{{ ownLoverEffectsText }}

+
@@ -691,6 +698,18 @@ export default { } return this.$t('falukant.family.summary.noPartner'); }, + ownLoverStandLabel() { + if (!this.ownCharacter) return ''; + const t = this.ownCharacter.nobleTitle || this.ownCharacter.titleOfNobility || this.ownCharacter.noble_title || null; + const cat = this.getTitleGroup(t); + return this.$t('falukant.family.lovers.overview.' + cat + '.label'); + }, + ownLoverEffectsText() { + if (!this.ownCharacter) return ''; + const t = this.ownCharacter.nobleTitle || this.ownCharacter.titleOfNobility || this.ownCharacter.noble_title || null; + const cat = this.getTitleGroup(t); + return this.$t('falukant.family.lovers.overview.' + cat + '.effects'); + }, }, watch: { socket(newVal, oldVal) { @@ -1159,6 +1178,18 @@ export default { } }, + getTitleGroup(title) { + if (!title) return 'mid'; + const t = String(title).toLowerCase(); + const low = ['noncivil', 'civil', 'sir']; + const mid = ['townlord', 'by', 'landlord']; + const high = ['knight', 'baron', 'count', 'palsgrave', 'margrave', 'landgrave', 'ruler', 'elector', 'imperial-prince', 'duke', 'grand-duke', 'prince-regent', 'king']; + if (low.includes(t)) return 'low'; + if (mid.includes(t)) return 'mid'; + if (high.includes(t)) return 'high'; + return 'mid'; + }, + progressColor(p) { const pct = this.normalizeWooingProgress(p) / 100; const red = Math.round(255 * (1 - pct));