コード例 #1
0
ファイル: DebugAutotests.cs プロジェクト: KraigXu/GameProject
        private static void TestTimeToDown()
        {
            List <DebugMenuOption> list = new List <DebugMenuOption>();

            foreach (PawnKindDef kindDef in DefDatabase <PawnKindDef> .AllDefs.OrderBy((PawnKindDef kd) => kd.defName))
            {
                list.Add(new DebugMenuOption(kindDef.label, DebugMenuOptionMode.Action, delegate
                {
                    if (kindDef == PawnKindDefOf.Colonist)
                    {
                        Log.Message("Current colonist TTD reference point: 22.3 seconds, stddev 8.35 seconds");
                    }
                    List <float> results     = new List <float>();
                    List <PawnKindDef> list2 = new List <PawnKindDef>();
                    List <PawnKindDef> list3 = new List <PawnKindDef>();
                    list2.Add(kindDef);
                    list3.Add(kindDef);
                    ArenaUtility.BeginArenaFightSet(1000, list2, list3, delegate(ArenaUtility.ArenaResult result)
                    {
                        if (result.winner != 0)
                        {
                            results.Add(result.tickDuration.TicksToSeconds());
                        }
                    }, delegate
                    {
                        Log.Message($"Finished {results.Count} tests; time-to-down {results.Average()}, stddev {GenMath.Stddev(results)}\n\nraw: {results.Select((float res) => res.ToString()).ToLineList()}");
                    });
                }));
            }
            Find.WindowStack.Add(new Dialog_DebugOptionListLister(list));
        }