private static void GetPawnsNewInfluence() { var wDict = new Dictionary <AnimalClassBase, float>(); var mutations = new List <Hediff_AddedMutation>(); var strings = new List <string>(); float maxInf = MorphUtilities.MaxHumanInfluence; foreach (Pawn pawn in PawnsFinder.AllMaps_FreeColonists) { mutations.Clear(); mutations.AddRange(pawn.health.hediffSet.hediffs.OfType <Hediff_AddedMutation>()); AnimalClassUtilities.FillInfluenceDict(mutations, wDict); if (wDict.Count == 0) { continue; } //now build the log message entry var builder = new StringBuilder(); builder.AppendLine($"{pawn.Name}:"); foreach (KeyValuePair <AnimalClassBase, float> kvp in wDict) { var def = (Def)kvp.Key; builder.AppendLine($"\t{def.label}:{(kvp.Value / maxInf).ToStringPercent()}"); } strings.Add(builder.ToString()); } string msg = strings.Join(delimiter: "\n----------------------------\n"); Log.Message(msg); }
static void GetInfluenceDebugInfo(Pawn pawn) { var mutTracker = pawn?.GetMutationTracker(); if (mutTracker == null) { Log.Message("no mutation tracker"); return; } Log.Message(AnimalClassUtilities.GenerateDebugInfo(mutTracker.AllMutations)); }