コード例 #1
0
 static PawnNameColorUtility()
 {
     PawnNameColorUtility.ColorsNeutral     = new List <Color>();
     PawnNameColorUtility.ColorsHostile     = new List <Color>();
     PawnNameColorUtility.ColorsPrisoner    = new List <Color>();
     PawnNameColorUtility.ColorBaseNeutral  = new Color(0.4f, 0.85f, 0.9f);
     PawnNameColorUtility.ColorBaseHostile  = new Color(0.9f, 0.2f, 0.2f);
     PawnNameColorUtility.ColorBasePrisoner = new Color(1f, 0.85f, 0.5f);
     PawnNameColorUtility.ColorColony       = new Color(0.9f, 0.9f, 0.9f);
     PawnNameColorUtility.ColorWildMan      = new Color(1f, 0.8f, 1f);
     PawnNameColorUtility.ColorShifts       = new List <Color>
     {
         new Color(1f, 1f, 1f),
         new Color(0.8f, 1f, 1f),
         new Color(0.8f, 0.8f, 1f),
         new Color(0.8f, 0.8f, 0.8f),
         new Color(1.2f, 1f, 1f),
         new Color(0.8f, 1.2f, 1f),
         new Color(0.8f, 1.2f, 1.2f),
         new Color(1.2f, 1.2f, 1.2f),
         new Color(1f, 1.2f, 1f),
         new Color(1.2f, 1f, 0.8f)
     };
     for (int i = 0; i < 10; i++)
     {
         PawnNameColorUtility.ColorsNeutral.Add(PawnNameColorUtility.RandomShiftOf(PawnNameColorUtility.ColorBaseNeutral, i));
         PawnNameColorUtility.ColorsHostile.Add(PawnNameColorUtility.RandomShiftOf(PawnNameColorUtility.ColorBaseHostile, i));
         PawnNameColorUtility.ColorsPrisoner.Add(PawnNameColorUtility.RandomShiftOf(PawnNameColorUtility.ColorBasePrisoner, i));
     }
 }
コード例 #2
0
 static PawnNameColorUtility()
 {
     for (int i = 0; i < 10; i++)
     {
         PawnNameColorUtility.ColorsNeutral.Add(PawnNameColorUtility.RandomShiftOf(PawnNameColorUtility.ColorBaseNeutral, i));
         PawnNameColorUtility.ColorsHostile.Add(PawnNameColorUtility.RandomShiftOf(PawnNameColorUtility.ColorBaseHostile, i));
         PawnNameColorUtility.ColorsPrisoner.Add(PawnNameColorUtility.RandomShiftOf(PawnNameColorUtility.ColorBasePrisoner, i));
     }
 }
コード例 #3
0
ファイル: GenMapUI.cs プロジェクト: potsh/RimWorld
        public static void DrawPawnLabel(Pawn pawn, Rect bgRect, float alpha = 1f, float truncateToWidth = 9999f, Dictionary <string, string> truncatedLabelsCache = null, GameFont font = GameFont.Tiny, bool alwaysDrawBg = true, bool alignCenter = true)
        {
            GUI.color = new Color(1f, 1f, 1f, alpha);
            Text.Font = font;
            string pawnLabel            = GetPawnLabel(pawn, truncateToWidth, truncatedLabelsCache, font);
            float  pawnLabelNameWidth   = GetPawnLabelNameWidth(pawn, truncateToWidth, truncatedLabelsCache, font);
            float  summaryHealthPercent = pawn.health.summaryHealth.SummaryHealthPercent;

            if (alwaysDrawBg || summaryHealthPercent < 0.999f)
            {
                GUI.DrawTexture(bgRect, TexUI.GrayTextBG);
            }
            if (summaryHealthPercent < 0.999f)
            {
                Rect rect = bgRect.ContractedBy(1f);
                Widgets.FillableBar(rect, summaryHealthPercent, OverlayHealthTex, BaseContent.ClearTex, doBorder: false);
            }
            Color color = PawnNameColorUtility.PawnNameColorOf(pawn);

            color.a   = alpha;
            GUI.color = color;
            Rect rect2 = default(Rect);

            if (alignCenter)
            {
                Text.Anchor = TextAnchor.UpperCenter;
                Vector2 center = bgRect.center;
                rect2 = new Rect(center.x - pawnLabelNameWidth / 2f, bgRect.y - 2f, pawnLabelNameWidth, 100f);
            }
            else
            {
                Text.Anchor = TextAnchor.UpperLeft;
                float   x       = bgRect.x + 2f;
                Vector2 center2 = bgRect.center;
                float   y       = center2.y;
                Vector2 vector  = Text.CalcSize(pawnLabel);
                rect2 = new Rect(x, y - vector.y / 2f, pawnLabelNameWidth, 100f);
            }
            Widgets.Label(rect2, pawnLabel);
            if (pawn.Drafted)
            {
                Vector2 center3 = bgRect.center;
                Widgets.DrawLineHorizontal(center3.x - pawnLabelNameWidth / 2f, bgRect.y + 11f, pawnLabelNameWidth);
            }
            GUI.color   = Color.white;
            Text.Anchor = TextAnchor.UpperLeft;
        }