private string?GetAlignmentGenderRaceText() { if (CurrentCritter == null) { return(null); } var textBuilder = new StringBuilder(); // Alignment if (CurrentCritter.IsPC() || Globals.Config.ShowNpcStats) { var alignment = (Alignment)GameSystems.Stat.StatLevelGet(CurrentCritter, Stat.alignment); var alignmentName = GameSystems.Stat.GetAlignmentName(alignment); textBuilder.Append(alignmentName).Append(' '); } // Subtype if (CurrentCritter.IsNPC()) { var isHuman = GameSystems.Critter.IsCategorySubtype(CurrentCritter, MonsterSubtype.human) && GameSystems.Critter.IsCategory(CurrentCritter, MonsterCategory.humanoid); for (var i = 0; (1 << i) <= (int)MonsterSubtype.water; i += 1) { var monSubcat = (MonsterSubtype)(1 << i); if (monSubcat == MonsterSubtype.human && isHuman) { continue; // skip silly string of "Human Humanoid" } if (GameSystems.Critter.IsCategorySubtype(CurrentCritter, monSubcat)) { textBuilder .Append(GameSystems.Stat.GetMonsterSubcategoryName(i)) .Append(' '); } } } var gender = GameSystems.Stat.StatLevelGet(CurrentCritter, Stat.gender); var genderName = GameSystems.Stat.GetGenderName(gender); if (CurrentCritter.IsPC()) { var race = GameSystems.Critter.GetRace(CurrentCritter, false); var raceName = GameSystems.Stat.GetRaceName(race); textBuilder.Append(genderName).Append(' ').Append(raceName); } else { var moncat = GameSystems.Critter.GetCategory(CurrentCritter); var monsterCatName = GameSystems.Stat.GetMonsterCategoryName(moncat); textBuilder.Append(genderName).Append(' ').Append(monsterCatName); } return(textBuilder.ToString()); }
private InlineElement?GetWorshipDisplayText() { if (CurrentCritter == null) { return(null); } var result = new ComplexInlineElement(); // "Worships: " result.AppendContent(_translations[1500] + " ", "char-ui-worship-label"); if (CurrentCritter.IsPC()) { var deity = (DeityId)GameSystems.Stat.StatLevelGet(CurrentCritter, Stat.deity); result.AppendContent(GameSystems.Deity.GetName(deity)); } else { result.AppendContent("--"); } return(result); }