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())