コード例 #1
0
        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);
        }
コード例 #2
0
        static void GetInfluenceDebugInfo(Pawn pawn)
        {
            var mutTracker = pawn?.GetMutationTracker();

            if (mutTracker == null)
            {
                Log.Message("no mutation tracker");
                return;
            }

            Log.Message(AnimalClassUtilities.GenerateDebugInfo(mutTracker.AllMutations));
        }