public static void PrintResults(List <ClanBossBattleResult> results, CBBRA flags) { foreach (ClanBossBattleResult result in results) { string suffix = string.Empty; if ((flags & CBBRA.IncludeUnkillable) == CBBRA.IncludeUnkillable) { suffix = string.Format(" - Unkillable Champs: {0}", string.Join(", ", result.BattleParticipants.Where(p => !p.IsClanBoss && p.ActiveBuffs.ContainsKey(Constants.Buff.Unkillable)).Select(p => p.Name))); } if ((flags & CBBRA.IncludeTurnMeter) == CBBRA.IncludeTurnMeter) { suffix += string.Format(" - TM: {0}", string.Join(", ", result.BattleParticipants.Where(p => !p.IsClanBoss).Select(p => p.Name + ": " + p.TurnMeter))); } Console.WriteLine("{0,2}: {1,20} turn {2,2} use skill {3} ({4,20}){5}", result.ClanBossTurn, result.AttackDetails.ActorName, result.AttackDetails.ActorTurn, result.AttackDetails.Skill, result.AttackDetails.SkillName, suffix); if ((flags & CBBRA.IncludeCooldowns) == CBBRA.IncludeCooldowns) { foreach (ClanBossBattleResult.BattleParticipantStats bp in result.BattleParticipants) { string cooldowns = string.Format(" {0,20} Cooldowns: ", bp.Name); foreach (Constants.SkillId skillId in bp.SkillCooldownMap.Keys) { cooldowns += string.Format("{0}: {1} ", skillId, bp.SkillCooldownMap[skillId]); } Console.WriteLine(cooldowns); } } if (result.AdditionalAttacks != null) { foreach (ClanBossBattleResult.Attack ca in result.AdditionalAttacks) { Console.WriteLine(" {0,20} also attacks for turn {1,2}", ca.ActorName, ca.ActorTurn); } } } }
public static void PrintSummary(List <ClanBossBattleResult> results, Champion stunTarget, CBBRA flags) { ClanBossBattleResultsAnalysis.PrintResults(results, flags); int lastKillableTurn = ClanBossBattleResultsAnalysis.LastClanBossTurnThatHitKillableChampion(results, stunTarget); Console.WriteLine("Last turn where there was a hit on a champion that wasn't unkillable: {0}", lastKillableTurn); PrintAttacksPerChampion(results); }