public static string Dump(this ClanWarLeagueWarClan clan)
        {
            var sb = new StringBuilder();

            sb.Append($"Clan {clan.Tag}/{clan.Name} [{clan.Stars}☆/{clan.DestructionPercentage:0.00}%/{clan.Attacks}]");
            sb.Append(Environment.NewLine);

            var members = clan.Members.Where(m => m.Attacks != null || m.BestOpponentAttack != null).OrderBy(m => m.MapPosition);

            sb.Append(Dump("InWar", members));

            members = clan.Members.Where(m => m.Attacks == null && m.BestOpponentAttack == null).OrderBy(m => m.MapPosition);
            sb.Append(Dump("Roster", members));

            return(sb.ToString());
        }
示例#2
0
        private async Task <ClanWarLeagueWar> GetClanCurrentLeagueWar(Clan selectedClan, CurrentWarLeagueGroup currentWarLeagueGroup)
        {
            ClanWarLeagueWar currentLeagueWar = null;

            foreach (InlineModel0 model in currentWarLeagueGroup.Rounds)
            {
                foreach (string warTag in model.WarTags)
                {
                    if (warTag.Contains("#0")) // #0 = Round not started
                    {
                        continue;
                    }

                    ClanWarLeagueWar war = await _clashClient.Clans.GetClanWarLeaguesWarsAsync(warTag);

                    if (war.Clan.Tag == selectedClan.Tag)
                    {
                        if (war.State == State.InWar)
                        {
                            currentLeagueWar = war;
                            break;
                        }
                    }
                    else if (war.Opponent.Tag == selectedClan.Tag)
                    {
                        // If the opponent in the war is the selected clan, we want to switch the opponent and the main clan
                        ClanWarLeagueWarClan tempMainClan = war.Clan;
                        war.Clan     = war.Opponent;
                        war.Opponent = tempMainClan;

                        if (war.State == State.InWar)
                        {
                            currentLeagueWar = war;
                            break;
                        }
                    }
                }
            }
            return(currentLeagueWar);
        }