Ergänze individuelle Charakterentwicklung und klare Hochzeitshinweise
Some checks failed
Deploy to production / deploy (push) Failing after 1m18s

This commit is contained in:
Torsten Schulz (local)
2026-11-04 14:16:11 +01:00
parent fddb97b385
commit 343bf64115
13 changed files with 350 additions and 9 deletions

View File

@@ -1056,6 +1056,7 @@
}
},
"spouse": {
"weddingAgeHint": "Mahimong magsaulog og kasal kon ang duha ka managtrato labing menos {age} ka tuig na sa dula.",
"traitsToggle": "Character traits",
"marriageSatisfaction": "Kasal Satisfaction",
"marriageState": "Kasal State",
@@ -1315,6 +1316,7 @@
"order": "Umara og party",
"inProgress": "Mga party nga giandam",
"completed": "Nahuman nga mga party",
"weddingUnavailable": "Ang kasal nagkinahanglan og managtrato nga ang duha labing menos {age} ka tuig na sa dula.",
"newpartyview": {
"open": "Create New Party",
"close": "Hide New Party",

View File

@@ -667,6 +667,7 @@
"dueHint": "Voraussichtlicher Geburtstermin"
},
"spouse": {
"weddingAgeHint": "Eine Hochzeitsfeier ist möglich, sobald beide Verlobten mindestens {age} Spieljahre alt sind.",
"title": "Beziehung",
"traitsToggle": "Charaktereigenschaften",
"name": "Name",
@@ -1302,6 +1303,7 @@
"order": "Fest veranstalten",
"inProgress": "Feste in Vorbereitung",
"completed": "Abgeschlossene Feste",
"weddingUnavailable": "Für eine Hochzeit muss ein verlobtes Paar vorhanden sein, bei dem beide mindestens {age} Spieljahre alt sind.",
"newpartyview": {
"open": "Neues Fest erstellen",
"close": "Neues Fest verbergen",

View File

@@ -937,6 +937,7 @@
}
},
"spouse": {
"weddingAgeHint": "You can hold a wedding celebration once both partners are at least {age} game years old.",
"traitsToggle": "Character traits",
"marriageSatisfaction": "Marriage Satisfaction",
"marriageState": "Marriage State",
@@ -1282,6 +1283,7 @@
"order": "Order Party",
"inProgress": "Parties in Preparation",
"completed": "Completed Parties",
"weddingUnavailable": "A wedding requires an engaged couple whose partners are both at least {age} game years old.",
"newpartyview": {
"open": "Create New Party",
"close": "Hide New Party",

View File

@@ -655,6 +655,7 @@
"dueHint": "Fecha prevista de nacimiento"
},
"spouse": {
"weddingAgeHint": "Puedes celebrar una boda cuando ambos prometidos tengan al menos {age} años de juego.",
"title": "Relación",
"traitsToggle": "Rasgos de carácter",
"name": "Nombre",
@@ -1276,6 +1277,7 @@
"order": "Organizar fiesta",
"inProgress": "Fiestas en preparación",
"completed": "Fiestas completadas",
"weddingUnavailable": "Una boda requiere una pareja comprometida en la que ambos tengan al menos {age} años de juego.",
"newpartyview": {
"open": "Crear nueva fiesta",
"close": "Ocultar nueva fiesta",

View File

@@ -659,6 +659,7 @@
"dueHint": "Date d'échéance prévue"
},
"spouse": {
"weddingAgeHint": "Une fête de mariage est possible dès que les deux fiancés ont au moins {age} ans dans le jeu.",
"title": "Relation",
"traitsToggle": "Traits de caractère",
"name": "nom",
@@ -1271,6 +1272,7 @@
"order": "Organiser un festival",
"inProgress": "Des festivals en préparation",
"completed": "Festivals terminés",
"weddingUnavailable": "Un mariage nécessite un couple fiancé dont les deux partenaires ont au moins {age} ans dans le jeu.",
"newpartyview": {
"open": "Créer un nouveau festival",
"close": "Masquer le nouveau festival",

View File

@@ -132,8 +132,9 @@
</div>
</dl>
<div v-if="relationships[0].relationshipType === 'engaged'" class="spouse-card__cta">
<button type="button" class="button" @click="jumpToPartyForm">{{ $t('falukant.family.spouse.jumpToPartyForm')
<button v-if="relationships[0].canCelebrateWedding" type="button" class="button" @click="jumpToPartyForm">{{ $t('falukant.family.spouse.jumpToPartyForm')
}}</button>
<p v-else>{{ $t('falukant.family.spouse.weddingAgeHint', { age: minMarriageAge }) }}</p>
</div>
<details
v-if="relationships[0].character2.traits?.length"
@@ -683,6 +684,7 @@ export default {
data() {
return {
relationships: [],
minMarriageAge: null,
children: [],
lovers: [],
politicalFreeLoverSlots: 0,
@@ -891,6 +893,7 @@ export default {
try {
const response = await apiClient.get('/api/falukant/family');
this.relationships = response.data.relationships;
this.minMarriageAge = response.data.minMarriageAge;
this.children = response.data.children;
this.selectedChildProposalIds = Object.fromEntries(
this.children.map((child) => [child.childCharacterId, this.selectedChildProposalIds[child.childCharacterId] || null])

View File

@@ -66,6 +66,9 @@
</button>
<div v-if="newPartyView" class="new-party-form">
<p v-if="weddingCandidates.length === 0 && minMarriageAge != null">
{{ $t('falukant.reputation.party.weddingUnavailable', { age: minMarriageAge }) }}
</p>
<label>
{{ $t('falukant.reputation.party.newpartyview.type') }}:
<select v-model.number="newPartyTypeId">
@@ -226,6 +229,7 @@ export default {
relationshipId: null,
isOrderingParty: false,
weddingCandidates: [],
minMarriageAge: null,
inProgressParties: [],
completedParties: [],
reputation: null,
@@ -248,6 +252,7 @@ export default {
this.musicTypes = data.musicTypes;
this.banquetteTypes = data.banquetteTypes;
this.weddingCandidates = data.weddingCandidates || [];
this.minMarriageAge = data.minMarriageAge;
this.musicId = this.musicTypes[0]?.id;
this.banquetteId = this.banquetteTypes[0]?.id;
},