diff --git a/Assemblies/AIImages.dll b/Assemblies/AIImages.dll
index f5ad92c..31c2c5c 100644
Binary files a/Assemblies/AIImages.dll and b/Assemblies/AIImages.dll differ
diff --git a/Languages/English/Keyed/AIImages.xml b/Languages/English/Keyed/AIImages.xml
index e8fdb06..4a1b8ce 100644
--- a/Languages/English/Keyed/AIImages.xml
+++ b/Languages/English/Keyed/AIImages.xml
@@ -18,6 +18,8 @@
Hair Color
Traits
Apparel
+ Genes
+ Hediffs
Appearance
Appearance information unavailable
diff --git a/Languages/Russian/Keyed/AIImages.xml b/Languages/Russian/Keyed/AIImages.xml
index d832c4a..2a0422a 100644
--- a/Languages/Russian/Keyed/AIImages.xml
+++ b/Languages/Russian/Keyed/AIImages.xml
@@ -18,6 +18,8 @@
Цвет волос
Черты характера
Одежда
+ Гены
+ Состояния
Внешность
Информация о внешности недоступна
diff --git a/Source/AIImages/Window_AIImage.cs b/Source/AIImages/Window_AIImage.cs
index 0f71c06..269542c 100644
--- a/Source/AIImages/Window_AIImage.cs
+++ b/Source/AIImages/Window_AIImage.cs
@@ -641,6 +641,56 @@ namespace AIImages
}
}
+ // Гены
+ if (pawn.genes?.GenesListForReading != null && pawn.genes.GenesListForReading.Any())
+ {
+ contentY += 15f;
+ Text.Font = GameFont.Small;
+ Widgets.Label(
+ new Rect(parentRect.x + 5f, contentY, parentRect.width - 10f, lineHeight),
+ "AIImages.Info.Genes".Translate() + ":"
+ );
+ contentY += lineHeight + 2f;
+
+ Text.Font = GameFont.Tiny;
+ var geneLabels = pawn
+ .genes.GenesListForReading.Where(gene => gene.Active)
+ .Select(gene => gene.def.LabelCap);
+ foreach (var geneLabel in geneLabels)
+ {
+ Widgets.Label(
+ new Rect(parentRect.x + 15f, contentY, parentRect.width - 20f, lineHeight),
+ "• " + geneLabel
+ );
+ contentY += lineHeight;
+ }
+ }
+
+ // Хедифы (состояния)
+ if (pawn.health?.hediffSet?.hediffs != null && pawn.health.hediffSet.hediffs.Any())
+ {
+ contentY += 15f;
+ Text.Font = GameFont.Small;
+ Widgets.Label(
+ new Rect(parentRect.x + 5f, contentY, parentRect.width - 10f, lineHeight),
+ "AIImages.Info.Hediffs".Translate() + ":"
+ );
+ contentY += lineHeight + 2f;
+
+ Text.Font = GameFont.Tiny;
+ var hediffLabels = pawn
+ .health.hediffSet.hediffs.Where(hediff => hediff.Visible)
+ .Select(hediff => hediff.LabelCap);
+ foreach (var hediffLabel in hediffLabels)
+ {
+ Widgets.Label(
+ new Rect(parentRect.x + 15f, contentY, parentRect.width - 20f, lineHeight),
+ "• " + hediffLabel
+ );
+ contentY += lineHeight;
+ }
+ }
+
// Одежда
var apparel = pawn.apparel?.WornApparel;
if (apparel != null && apparel.Any())
@@ -767,6 +817,24 @@ namespace AIImages
height += pawn.story.traits.allTraits.Count * 22f; // Каждая черта
}
+ // Гены (если есть)
+ if (pawn.genes?.GenesListForReading != null && pawn.genes.GenesListForReading.Any())
+ {
+ height += 15f; // Отступ
+ height += 22f; // Заголовок "Гены"
+ height += 2f; // Отступ
+ height += pawn.genes.GenesListForReading.Count(gene => gene.Active) * 22f; // Каждый активный ген
+ }
+
+ // Хедифы (если есть)
+ if (pawn.health?.hediffSet?.hediffs != null && pawn.health.hediffSet.hediffs.Any())
+ {
+ height += 15f; // Отступ
+ height += 22f; // Заголовок "Хедифы"
+ height += 2f; // Отступ
+ height += pawn.health.hediffSet.hediffs.Count(hediff => hediff.Visible) * 22f; // Каждый видимый хедиф
+ }
+
// Одежда (если есть)
var apparel = pawn.apparel?.WornApparel;
if (apparel != null && apparel.Any())