feat(falukant): add character visual representation and settings
All checks were successful
Deploy to production / deploy (push) Successful in 2m53s

- Introduced FalukantCharacterVisual component to display character portraits and 3D figures based on user settings.
- Updated DirectorInfo, ChurchView, PoliticsView, and other components to utilize the new character visual component.
- Added visual settings management for users, allowing selection between portrait styles and display modes (portraits, 3D, or both).
- Implemented age rules for engagement and marriage in the backend, ensuring compliance with specified age limits.
- Created a new settings view for Falukant to manage visual preferences.
- Added new images for medieval character portraits.
- Updated translations for new settings and features in multiple languages.
This commit is contained in:
Torsten Schulz (local)
2026-07-24 10:55:19 +02:00
parent c13339f771
commit 16703f467f
36 changed files with 811 additions and 49 deletions

View File

@@ -25,6 +25,10 @@ const initializeSettings = async () => {
where: { name: 'languageAssistant' },
defaults: { name: 'languageAssistant' }
});
await SettingsType.findOrCreate({
where: { name: 'falukant' },
defaults: { name: 'falukant' }
});
};
export default initializeSettings;

View File

@@ -51,6 +51,8 @@ const initializeTypes = async () => {
adult_upload_blocked: { type: 'bool', setting: 'account', minAge: 18 },
llm_settings: { type: 'string', setting: 'languageAssistant' },
llm_api_key: { type: 'string', setting: 'languageAssistant' },
falukantPortraitStyle: { type: 'singleselect', setting: 'falukant' },
falukantFigureMode: { type: 'singleselect', setting: 'falukant' },
};
let orderId = 1;
for (const key of Object.keys(userParams)) {
@@ -78,7 +80,9 @@ const initializeTypes = async () => {
interestedInGender: ['male', 'female'],
smokes: ['never', 'socially', 'often', 'daily'],
drinks: ['never', 'socially', 'often', 'daily'],
brasize: ['Keine', 'AA', 'A', 'B', 'C', 'D', 'E (DD)', 'F (E)', 'G (F)', 'H (FF)', 'I (G)', 'J (GG)', 'K (H)']
brasize: ['Keine', 'AA', 'A', 'B', 'C', 'D', 'E (DD)', 'F (E)', 'G (F)', 'H (FF)', 'I (G)', 'J (GG)', 'K (H)'],
falukantPortraitStyle: ['classic', 'medieval'],
falukantFigureMode: ['portraits', '3d', 'both']
};
Object.keys(valuesList).forEach(async (key) => {
const values = valuesList[key];