diff --git a/1.4/Assemblies/Numbers.dll b/1.4/Assemblies/Numbers.dll index 2d5a821..0dccac1 100644 Binary files a/1.4/Assemblies/Numbers.dll and b/1.4/Assemblies/Numbers.dll differ diff --git a/1.4/Defs/PawnColumnDef/PawnColumns_Numbers.xml b/1.4/Defs/PawnColumnDef/PawnColumns_Numbers.xml index 8b6da03..1dfa73f 100644 --- a/1.4/Defs/PawnColumnDef/PawnColumns_Numbers.xml +++ b/1.4/Defs/PawnColumnDef/PawnColumns_Numbers.xml @@ -342,6 +342,18 @@ 200 + + + Numbers_Certainty + Numbers.PawnColumnWorker_Certainty + true + Ideology certainty level + + +
  • + + 120 + Numbers_Strip diff --git a/1.4/Defs/PawnColumnOptionDef/Numbers_PawnColumnOptionDef.xml b/1.4/Defs/PawnColumnOptionDef/Numbers_PawnColumnOptionDef.xml index 6addce9..35649c4 100644 --- a/1.4/Defs/PawnColumnOptionDef/Numbers_PawnColumnOptionDef.xml +++ b/1.4/Defs/PawnColumnOptionDef/Numbers_PawnColumnOptionDef.xml @@ -22,6 +22,7 @@
  • Numbers_HediffBadList
  • Numbers_InventoryDropAll
  • Numbers_Ideology
  • +
  • Numbers_Certainty
  • Numbers_Xenogenes
  • Numbers_Endogenes
  • Numbers_GenesRegrowTime
  • diff --git a/Numbers/PawnColumnWorkers/PawnColumnWorker_Certainty.cs b/Numbers/PawnColumnWorkers/PawnColumnWorker_Certainty.cs new file mode 100644 index 0000000..bb1327c --- /dev/null +++ b/Numbers/PawnColumnWorkers/PawnColumnWorker_Certainty.cs @@ -0,0 +1,44 @@ +using System.Linq; + +namespace Numbers +{ + using RimWorld; + using UnityEngine; + using Verse; + + public class PawnColumnWorker_Certainty : PawnColumnWorker + { + private static readonly Texture2D BarFullTexHor = SolidColorMaterials.NewSolidColorTexture(GenUI.FillableBar_Green); + + public override void DoCell(Rect rect, Pawn pawn, PawnTable table) + { + if (pawn?.Ideo == null) return; + + // SocialCardUtility.DrawPawnCertainty(pawn, rect); + var iconRect = new Rect(rect.x, rect.y + rect.height / 2 - 16, 32, 32); + pawn.Ideo.DrawIcon(iconRect); + + var barRect = new Rect(rect.x + 32, rect.y + 2, rect.width - 32, rect.height - 4); + Widgets.FillableBar(barRect, pawn.ideo.Certainty, BarFullTexHor); + + Text.Anchor = TextAnchor.MiddleCenter; + Widgets.Label(barRect, pawn.Ideo.name.Truncate(barRect.width)); + Text.Anchor = TextAnchor.UpperLeft; + + if (Mouse.IsOver(rect)) + { + Widgets.DrawHighlight(rect); + // IdeoUIUtility.DrawIdeoPlate(rect, pawn.Ideo, pawn); + var taggedString1 = (TaggedString)pawn.Ideo.name.Colorize(ColoredText.TipSectionTitleColor); + taggedString1 += "\n" + "Certainty".Translate().CapitalizeFirst() + ": " + pawn.ideo.Certainty.ToStringPercent(); + if (pawn.ideo.PreviousIdeos.Any()) + taggedString1 += "\n\n" + "Formerly".Translate().CapitalizeFirst() + ": \n" + pawn.ideo.PreviousIdeos.Select(x => x.name).ToLineList(" - "); + TooltipHandler.TipRegion(rect, (TipSignal)taggedString1.Resolve()); + } + } + + public override int GetMinWidth(PawnTable table) => Mathf.Max(base.GetMinWidth(table), 120); + + public override int Compare(Pawn a, Pawn b) => (a.ideo?.Certainty ?? 0).CompareTo(b.ideo?.Certainty ?? 0); + } +} \ No newline at end of file