Exemplo n.º 1
0
    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());
    }
Exemplo n.º 2
0
    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);
    }