Пример #1
0
        public static ObservableCollection<Child> SearchArena()
        {
            var result = new ObservableCollection<Child>();

            EnterToBigArenaResponse response = new EnterToBigArenaService().ExecuteSerialize<EnterToBigArenaResponse>();

            if (response != null && response.success)
            {
                result.AddRange(response.children.Where(x => x.arenaStatus == 1));
            }

            return result;
        }
Пример #2
0
 public bool Action()
 {
     long countPVP = 0L;
     EnterToBigArenaResponse enterToBigArenaResponse = this.ExecuteSerialize<EnterToBigArenaResponse>();
     bool result;
     if (enterToBigArenaResponse == null)
     {
         this.logger.Add("Big arena response is empty", LogType.Information);
         result = false;
     }
     else
     {
         List<Child> childActive = (from x in enterToBigArenaResponse.children
         where x.arenaStatus == 1
         select x).ToList<Child>();
         foreach (Child child in childActive)
         {
             this.logger.Add(string.Format("Arena name: {0}, id: {1}", child.name, child.childId), LogType.Information);
         }
         Console.Write("Enter child arena id: ");
         int childId = int.Parse(Console.ReadLine());
         Console.Write("Enter desired points: ");
         int maxPoints = int.Parse(Console.ReadLine());
         this.user.ChildArena = childId;
         while (true)
         {
             enterToBigArenaResponse = new EnterToBigArenaService(this.user, this.logger).ExecuteSerialize<EnterToBigArenaResponse>();
             EnterToChildArenaResponse enterToChildArenaResponse = new EnterToChildArenaService(this.user, this.logger).ExecuteSerialize<EnterToChildArenaResponse>();
             if (enterToChildArenaResponse == null)
             {
                 goto IL_2F3;
             }
             if (enterToChildArenaResponse.smallArena.points >= maxPoints)
             {
                 break;
             }
             List<Rival> rivals = (from x in enterToChildArenaResponse.rivals
             where x.status == 0
             orderby x.winPoint descending
             select x).ToList<Rival>();
             this.logger.Add("Current points: " + enterToBigArenaResponse.children.FirstOrDefault((Child x) => x.childId == this.user.ChildArena).points, LogType.Information);
             foreach (Rival rival in rivals)
             {
                 string uid = rival.uid.ToString(CultureInfo.InvariantCulture);
                 ArenaBattleResponse arenaBattleResult = new ArenaBattleService(this.user, this.logger, uid).ExecuteSerialize<ArenaBattleResponse>();
                 countPVP += 1L;
                 this.logger.Add(string.Format("PVP with UID: {0} Name: {1} ended, you {2}. {3}", new object[]
                 {
                     uid,
                     rival.name,
                     arenaBattleResult.winner,
                     countPVP
                 }), LogType.Information);
                 if (rivals.LastOrDefault<Rival>() != rival)
                 {
                     new EnterToChildArenaService(this.user, this.logger).ExecuteSerialize<EnterToChildArenaResponse>();
                 }
             }
         }
         Console.WriteLine(string.Format("Desired {0} points are achieved. exiting", maxPoints));
         goto IL_311;
         IL_2F3:
         this.logger.Add("Arena: result for enter to arena is empty", LogType.Information);
         IL_311:
         result = false;
     }
     return result;
 }