Speichere individuelle Haar- und Augenfarben je Charakter
All checks were successful
Deploy to production / deploy (push) Successful in 2m24s

This commit is contained in:
Torsten Schulz (local)
2026-11-04 16:54:33 +01:00
parent dd409a6a6a
commit bc7a0cb67a
10 changed files with 250 additions and 15 deletions

View File

@@ -980,7 +980,7 @@ class FalukantService extends BaseService {
{ model: TitleOfNobility, as: 'nobleTitle', attributes: ['labelTr', 'id', 'level'] }
],
// reputation: für Adel-Voraussetzungen u.a. (checkReputationRequirement nutzt user.character ohne Nachladen)
attributes: ['id', 'birthdate', 'gender', 'moodId', 'health', 'reputation', 'pubertyStartAge', 'fertileFromAge']
attributes: ['id', 'birthdate', 'gender', 'moodId', 'health', 'reputation', 'pubertyStartAge', 'fertileFromAge', 'hairColor', 'eyeColor']
},
]
});
@@ -1028,7 +1028,7 @@ class FalukantService extends BaseService {
{ model: FalukantPredefineLastname, as: 'definedLastName', attributes: ['name'] },
{ model: TitleOfNobility, as: 'nobleTitle', attributes: ['labelTr', 'level'] }
],
attributes: ['id', 'birthdate', 'gender', 'reputation', 'titleOfNobility']
attributes: ['id', 'birthdate', 'gender', 'reputation', 'titleOfNobility', 'hairColor', 'eyeColor']
},
{
model: RegionData,
@@ -1142,7 +1142,7 @@ class FalukantService extends BaseService {
{
model: FalukantCharacter,
as: 'character',
attributes: ['id', 'birthdate', 'health', 'reputation', 'titleOfNobility', 'pubertyStartAge', 'fertileFromAge'],
attributes: ['id', 'birthdate', 'health', 'reputation', 'titleOfNobility', 'pubertyStartAge', 'fertileFromAge', 'hairColor', 'eyeColor'],
include: [
{ model: FalukantPredefineFirstname, as: 'definedFirstName', attributes: ['name'] },
{ model: FalukantPredefineLastname, as: 'definedLastName', attributes: ['name'] },
@@ -2944,7 +2944,7 @@ class FalukantService extends BaseService {
{
model: FalukantCharacter,
as: 'character',
attributes: ['firstName', 'lastName', 'birthdate', 'titleOfNobility', 'gender'],
attributes: ['firstName', 'lastName', 'birthdate', 'titleOfNobility', 'gender', 'hairColor', 'eyeColor'],
where: { regionId },
include: [
{ model: FalukantPredefineFirstname, as: 'definedFirstName' },
@@ -3287,6 +3287,8 @@ class FalukantService extends BaseService {
age,
knowledge,
gender: proposal.character.gender,
hairColor: proposal.character.hairColor ?? null,
eyeColor: proposal.character.eyeColor ?? null,
},
};
});
@@ -3370,7 +3372,7 @@ class FalukantService extends BaseService {
as: 'character',
// Wichtige Felder explizit auswählen, damit die Joins auf Titel,
// Namen und Region im äußeren Select funktionieren.
attributes: ['id', 'birthdate', 'gender', 'titleOfNobility', 'firstName', 'lastName', 'regionId'],
attributes: ['id', 'birthdate', 'gender', 'titleOfNobility', 'firstName', 'lastName', 'regionId', 'hairColor', 'eyeColor'],
where: {
regionId: branch.regionId,
},
@@ -3434,6 +3436,8 @@ class FalukantService extends BaseService {
title: director.character.nobleTitle.labelTr,
age,
gender: director.character.gender,
hairColor: director.character.hairColor ?? null,
eyeColor: director.character.eyeColor ?? null,
nobleTitle: director.character.nobleTitle,
definedFirstName: director.character.definedFirstName,
definedLastName: director.character.definedLastName,
@@ -3463,7 +3467,7 @@ class FalukantService extends BaseService {
{
model: FalukantCharacter,
as: 'character',
attributes: ['id', 'birthdate', 'gender'],
attributes: ['id', 'birthdate', 'gender', 'hairColor', 'eyeColor'],
include: [
{
model: TitleOfNobility,
@@ -3632,7 +3636,7 @@ class FalukantService extends BaseService {
RelationshipType.findAll({ where: { id: typeIds }, attributes: ['id', 'tr'] }),
FalukantCharacter.findAll({
where: { id: char2Ids },
attributes: ['id', 'birthdate', 'gender', 'moodId', 'pubertyStartAge', 'fertileFromAge'],
attributes: ['id', 'birthdate', 'gender', 'moodId', 'pubertyStartAge', 'fertileFromAge', 'hairColor', 'eyeColor'],
include: [
{ model: FalukantPredefineFirstname, as: 'definedFirstName', attributes: ['name'] },
{ model: TitleOfNobility, as: 'nobleTitle', attributes: ['labelTr'] },
@@ -3675,6 +3679,8 @@ class FalukantService extends BaseService {
age: calcAge(c2.birthdate),
development: getCharacterDevelopment(c2, calcAge(c2.birthdate)),
gender: c2.gender,
hairColor: c2.hairColor ?? null,
eyeColor: c2.eyeColor ?? null,
firstName: c2.definedFirstName?.name || 'Unknown',
nobleTitle: c2.nobleTitle?.labelTr || '',
mood: c2.mood,
@@ -3720,7 +3726,7 @@ class FalukantService extends BaseService {
const childChars = childCharIds.length
? await FalukantCharacter.findAll({
where: { id: childCharIds },
attributes: ['id', 'birthdate', 'gender', 'regionId', 'titleOfNobility', 'pubertyStartAge', 'fertileFromAge'],
attributes: ['id', 'birthdate', 'gender', 'regionId', 'titleOfNobility', 'pubertyStartAge', 'fertileFromAge', 'hairColor', 'eyeColor'],
include: [{ model: FalukantPredefineFirstname, as: 'definedFirstName', attributes: ['name'] }]
})
: [];
@@ -3781,6 +3787,8 @@ class FalukantService extends BaseService {
childCharacterId: rel.childCharacterId,
name: kid?.definedFirstName?.name || 'Unknown',
gender: kid?.gender,
hairColor: kid?.hairColor ?? null,
eyeColor: kid?.eyeColor ?? null,
age: kid?.birthdate ? calcAge(kid.birthdate) : null,
development: getCharacterDevelopment(kid, kid?.birthdate ? calcAge(kid.birthdate) : null),
hasName: rel.nameSet,
@@ -3857,6 +3865,8 @@ class FalukantService extends BaseService {
name: partner.firstName || 'Unknown',
age: partner.age != null ? partner.age : null,
gender: partner.gender || null,
hairColor: partner.hairColor ?? null,
eyeColor: partner.eyeColor ?? null,
title: partner.nobleTitle || '',
role: state.loverRole || 'lover',
affection: state.affection,
@@ -4451,7 +4461,7 @@ class FalukantService extends BaseService {
const loadCandidates = async (where) => FalukantCharacter.findAll({
where,
include: includes,
attributes: ['id', 'birthdate', 'gender'],
attributes: ['id', 'birthdate', 'gender', 'hairColor', 'eyeColor'],
order: sequelize.random(),
limit: 10
});
@@ -4522,7 +4532,7 @@ class FalukantService extends BaseService {
{
model: FalukantCharacter,
as: 'proposedCharacter',
attributes: ['id', 'firstName', 'lastName', 'gender', 'regionId', 'birthdate'],
attributes: ['id', 'firstName', 'lastName', 'gender', 'regionId', 'birthdate', 'hairColor', 'eyeColor'],
include: [
{ model: FalukantPredefineFirstname, as: 'definedFirstName', attributes: ['name'] },
{ model: FalukantPredefineLastname, as: 'definedLastName', attributes: ['name'] },
@@ -5774,6 +5784,8 @@ class FalukantService extends BaseService {
return {
id: child.child.id,
gender: child.child.gender,
hairColor: child.child.hairColor ?? null,
eyeColor: child.child.eyeColor ?? null,
age: calcAge(child.child.birthdate),
proposedFirstName: child.child.definedFirstName.name,
};
@@ -6824,7 +6836,7 @@ class FalukantService extends BaseService {
{
model: FalukantCharacter,
as: 'holder',
attributes: ['id', 'gender', 'birthdate'],
attributes: ['id', 'gender', 'birthdate', 'hairColor', 'eyeColor'],
include: [
{
model: FalukantPredefineFirstname,
@@ -6906,6 +6918,8 @@ class FalukantService extends BaseService {
definedLastName: o.holder.definedLastName,
nobleTitle: o.holder.nobleTitle,
gender: o.holder.gender,
hairColor: o.holder.hairColor ?? null,
eyeColor: o.holder.eyeColor ?? null,
age: o.holder.birthdate ? calcAge(o.holder.birthdate) : null
}
: null,
@@ -6975,7 +6989,7 @@ class FalukantService extends BaseService {
include: [{
model: FalukantCharacter,
as: 'character',
attributes: ['birthdate', 'gender'],
attributes: ['birthdate', 'gender', 'hairColor', 'eyeColor'],
include: [
{ model: FalukantPredefineFirstname, as: 'definedFirstName', attributes: ['name'] },
{ model: FalukantPredefineLastname, as: 'definedLastName', attributes: ['name'] },
@@ -7890,7 +7904,7 @@ ORDER BY r.id`,
{
model: FalukantCharacter,
as: 'character',
attributes: ['id', 'birthdate', 'gender'],
attributes: ['id', 'birthdate', 'gender', 'hairColor', 'eyeColor'],
include: [
{ model: FalukantPredefineFirstname, as: 'definedFirstName', attributes: ['name'] },
{ model: FalukantPredefineLastname, as: 'definedLastName', attributes: ['name'] },
@@ -7929,6 +7943,8 @@ ORDER BY r.id`,
titleLabelTr: titleLabelTr || null,
nameWithoutTitle,
gender: character.gender ?? null,
hairColor: character.hairColor ?? null,
eyeColor: character.eyeColor ?? null,
age,
money: Number(falukantUser.money ?? 0),
unreadNotificationsCount,
@@ -8404,7 +8420,7 @@ ORDER BY r.id`,
{
model: FalukantCharacter,
as: 'holder',
attributes: ['id', 'gender', 'birthdate'],
attributes: ['id', 'gender', 'birthdate', 'hairColor', 'eyeColor'],
required: false,
include: [
{
@@ -8470,6 +8486,8 @@ ORDER BY r.id`,
id: o.holder.id,
name: `${o.holder.definedFirstName?.name || ''} ${o.holder.definedLastName?.name || ''}`.trim(),
gender: o.holder.gender,
hairColor: o.holder.hairColor ?? null,
eyeColor: o.holder.eyeColor ?? null,
title: o.holder.nobleTitle?.labelTr,
age: o.holder.birthdate ? calcAge(o.holder.birthdate) : null
}