示例#1
0
 public List<PicksBansOld> ConvertJRecentToPickBan(JToken picks)
 {
     List<PicksBansOld> listPicks = new List<PicksBansOld> ();
     PicksBansOld radPB = new PicksBansOld ();
     PicksBansOld direPB = new PicksBansOld ();
     List<int> radiantPick = new List<int> ();
     List<int> radiantBan = new List<int> ();
     List<int> direPick = new List<int> ();
     List<int> direBan = new List<int> ();
     List<int> newPick = new List<int>(){0,0,0,0,0};
     List<int> newBan = new List<int>() {0,0,0,0,0};
     if (picks == null) {
         radPB.ListPicks = newPick;
         radPB.ListBans = newBan;
         direPB.ListPicks = newPick;
         direPB.ListBans = newBan;
         listPicks.Add(radPB);
         listPicks.Add (direPB);
         return listPicks;
     }
     foreach (var pick in picks) {
         if ((int)pick.SelectToken ("team") == 0) {
             if ((bool)pick.SelectToken ("is_pick") == true)
                 radiantPick.Add ((int)pick.SelectToken ("hero_id"));
             else
                 radiantBan.Add ((int)pick.SelectToken ("hero_id"));
         }
         else if ((bool)pick.SelectToken ("is_pick") == true)
                 direPick.Add ((int)pick.SelectToken ("hero_id"));
             else
                 direBan.Add ((int)pick.SelectToken ("hero_id"));
     }
     radPB.ListPicks = radiantPick;
     radPB.ListBans = radiantBan;
     direPB.ListBans = direBan;
     direPB.ListPicks = direPick;
     listPicks.Add (radPB);
     listPicks.Add (direPB);
     return listPicks;
 }
示例#2
0
        public int GetFirstPick(PicksBansOld radiant, PicksBansOld dire)
        {
            var radBanCount = radiant.ListBans.Where (x=>x != 0).Count();
            var radPickCount = radiant.ListPicks.Where (x=>x != 0).Count();
            var direBanCount = dire.ListBans.Where (x=>x != 0).Count();
            var direPickCount = dire.ListPicks.Where (x=>x != 0).Count();
            if (radPickCount == direPickCount && radBanCount == direBanCount) {
                return 0;
            } else {
                int[] radiantFP = new int[20];
                int[] direFP = new int[20];

                radiantFP[0]=radiant.ListBans[0];
                radiantFP[1]=dire.ListBans[0];
                radiantFP[2]=radiant.ListBans[1];
                radiantFP[3]=dire.ListBans[1];
                radiantFP[4]=radiant.ListPicks[0];
                radiantFP[5]=dire.ListPicks[0];
                radiantFP[6]=dire.ListPicks[1];
                radiantFP[7]=radiant.ListPicks[1];
                radiantFP[8]=radiant.ListBans[2];
                radiantFP[9]=dire.ListBans[2];
                radiantFP[10]=radiant.ListBans[3];
                radiantFP[11]=dire.ListBans[3];
                radiantFP[12]=dire.ListPicks[2];
                radiantFP[13]=radiant.ListPicks[2];
                radiantFP[14]=dire.ListPicks[3];
                radiantFP[15]=radiant.ListPicks[3];
                radiantFP[16]=dire.ListBans[4];
                radiantFP[17]=radiant.ListBans[4];
                radiantFP[18]=dire.ListPicks[4];
                radiantFP[19]=radiant.ListPicks[4];

                var list1 = radiantFP.ToList();

                var i=list1.IndexOf (0);
                list1.RemoveRange (0, i);
                var count0 = list1.Where (x => x != 0).Count ();
                if (count0 == 0)
                    return 1;
                else
                    return 2;
            }
        }
示例#3
0
 public PicksBansOld ConvertJsonToPickBan(JToken jString)
 {
     PicksBansOld pb = new PicksBansOld ();
     List<int> newPick = new List<int>(){0,0,0,0,0};
     List<int> newBan = new List<int>() {0,0,0,0,0};
     if (jString == null) {
         pb.ListPicks=newPick;
         pb.ListBans=newBan;
         return pb;
     }
     if(jString.SelectToken ("picks")!=null){
         var picks = jString.SelectToken ("picks");
         int i = 0;
             foreach (var pick in picks) {
                 int h = (int)pick.SelectToken ("hero_id");
                 newPick[i] = h ;
                 i++;
             }
     }
     pb.ListPicks = newPick;
     var bans = jString.SelectToken ("bans");
     if (bans!=null) {
         var i = 0;
             foreach (var ban in bans) {
                 int h = (int)ban.SelectToken ("hero_id");
                 newBan [i] = h;
                 i++;
             }
     }
     pb.ListBans = newBan;
     return pb;
 }
示例#4
0
		public async Task<DotaMatchInfo_2> ParseMatchTitle(MatchInfo matchInfo)
		{
			var dotaMatchInfo_2 = new DotaMatchInfo_2 ();
			TeamDb teamDb = new TeamDb ();
			var radiantWin=matchInfo.Winner;
			var radiantTeam= await teamDb.GetTeam(matchInfo.Team1Id,"DOTA2");
			var direTeam= await teamDb.GetTeam(matchInfo.Team2Id,"DOTA2");
			var dotaMatchInfo = matchInfo.DetailsMatch.Cast<DotaMatchInfo>().ToList();

			var duration=TimeSpan.FromSeconds(dotaMatchInfo[0].Duration);
			var id=matchInfo.MatchId;
			PicksBansOld radiantPB=new PicksBansOld();
			//var listPicksBans=radiantPB.ConvertJRecentToPickBan(jMatch.SelectToken("picks_bans"));
			var radTower=dotaMatchInfo[0].TowerStatusRadiant;
			var direTower = dotaMatchInfo[0].TowerStatusDire;
			var radBarr=dotaMatchInfo[0].BarracksStatusRadiant;
			var direBarr=dotaMatchInfo[0].BarracksStatusDire;
			var startTime=matchInfo.StartTime;
			var players=dotaMatchInfo[0].Players;
			var allRadGold = 0;
			var allDireGold = 0;
			var allRadXp = 0;
			var allDireXp = 0;
			var radiantScore=0;
			var direScore=0;
			var playersUp=new PlayerStatsUpdate_2();
			for (int i = 0; i < players.Count (); i++) {
				var player=players[i];
				var lvl =(int) player.Level;
				var deaths = (int)player.Death;
				var networth = (int)player.Net_worth;
				if(i<5) {
					direScore+=deaths;
					allRadGold += networth;
					allRadXp += GetXpLevel (lvl);
				}
				else {
					radiantScore+=deaths;
					allDireGold +=networth;
					allDireXp += GetXpLevel (lvl);
				}
			}
			dotaMatchInfo_2=new DotaMatchInfo_2(){
				Team1Win=radiantWin,
				Team1=radiantTeam,
				Team2=direTeam,
				Duration=duration,
				Team1Score=radiantScore,
				Team2Score=direScore,
				MatchId=id,
				TowerStatusRadiant=radTower,
				TowerStatusDire=direTower,
				BarracksStatusRadiant=radBarr,
				BarracksStatusDire=direBarr,
				StartTime=startTime,
				RadiantPicks=dotaMatchInfo[0].RadiantPicks,
				DirePicks=dotaMatchInfo[0].DirePicks,
				RadiantGold = allRadGold,
				DireGold = allDireGold,
				RadiantXp = allRadXp,
				DireXp = allDireXp
			};
			return dotaMatchInfo_2;
		}
		protected override async void OnCreate (Bundle bundle)
		{
			//Window.RequestFeature(WindowFeatures.NoTitle);
			try{

				base.OnCreate (bundle);
				SetContentView (Resource.Layout.PicksLayout);
				pb = FindViewById<ProgressBar> (Resource.Id.progressBar3);
				ActionBarTitle.SetTitle (this,Resource.Layout.ActionBarLayout,Resources.GetString(Resource.String.capitanMod),"DOTA 2");
				buttonRefresh=FindViewById<Button>(Resource.Id.buttonRefreshActionBar);
				buttonRefresh.Click+=ButtonRefreshClick;
				buttonRefresh.Visibility=ViewStates.Invisible;
				var buttonBack=FindViewById<Button>(Resource.Id.buttonBackActionBar);
				buttonBack.Click+=ButtonBackClick;
				pb=FindViewById<ProgressBar> (Resource.Id.progressBar3);
				pb.Visibility= ViewStates.Visible;
				APIRequest ApiReq = new APIRequest ();
				PicksBansOld pickBans=new PicksBansOld();
				Player playerReq=new Player();
				gameInfo=Intent.GetStringExtra("matchDetail");
				var jDetailMatchInfo= JsonConvert.DeserializeObject<JDetailMatchInfo>(gameInfo);
				var jMatchDetails=JToken.Parse(jDetailMatchInfo.JMatchDetails);
				matchInfo=JsonConvert.DeserializeObject<MatchInfo>(jMatchDetails.ToString());
				dotaMatchInfo=JsonConvert.DeserializeObject<List<DotaMatchInfo>>(jMatchDetails.SelectToken("DetailsMatch").ToString());
				List<DetailInfo> listDetail=new List<DetailInfo>();
				listDetail.AddRange(dotaMatchInfo);
				matchInfo.DetailsMatch=listDetail;

				liveFlag=Intent.GetStringExtra("liveFlag");
				title=Intent.GetStringExtra("title");



			TextView radiantName, direName,textRadiant,textDire;
			ImageView radiantLogo, direLogo;
			LinearLayout llradiantTeam, lldireTeam;
				radiantName=FindViewById<TextView>(Resource.Id.radiantTeamName);
				direName=FindViewById<TextView>(Resource.Id.direTeamName);
				radiantLogo=FindViewById<ImageView>(Resource.Id.logoRadiantTeam);
				direLogo=FindViewById<ImageView>(Resource.Id.logoDireTeam);
				llradiantTeam=FindViewById<LinearLayout>(Resource.Id.llradiantTeam);
				lldireTeam=FindViewById<LinearLayout>(Resource.Id.lldireTeam);
					textRadiant=FindViewById<TextView>(Resource.Id.textTeamFP);
					textDire=FindViewById<TextView>(Resource.Id.textTeamSP);

				var analisPick=new AnalysisPick();
				var value=analisPick.GetAnalysisTeam(dotaMatchInfo[0].RadiantPicks.ListPicks,dotaMatchInfo[0].DirePicks.ListPicks);
				textRadiant.Text=Resources.GetString(Resource.String.radiant)+"  "+value[0].ToString();
				textDire.Text=Resources.GetString(Resource.String.dire)+"  "+(value[1].ToString());
				textRadiant.SetTextAppearance(this,Resource.Style.RadiantName);
				textDire.SetTextAppearance(this,Resource.Style.DireName);

				TeamDb teamDb=new TeamDb();
				var radiantTeam= await teamDb.GetTeam(matchInfo.Team1Id,"DOTA2");
				var direTeam= await teamDb.GetTeam(matchInfo.Team2Id,"DOTA2");
				if(radiantTeam != null){
					radiantName.Text=radiantTeam.Name;
					if(radiantTeam.LogoByte!=null){
						Bitmap bmp1= BitmapFactory.DecodeByteArray (radiantTeam.LogoByte, 0, radiantTeam.LogoByte.Length);
						radiantLogo.SetImageBitmap(bmp1);
					}
				}
				if(direTeam != null){
					direName.Text=direTeam.Name;
					if(direTeam.LogoByte!=null){
						Bitmap bmp2= BitmapFactory.DecodeByteArray (direTeam.LogoByte, 0, direTeam.LogoByte.Length);
						direLogo.SetImageBitmap(bmp2);
					}
				}
				var bluePlayer=llradiantTeam.FindViewById<TextView>(Resource.Id.textPlayer1);
				var cyanPlayer=llradiantTeam.FindViewById<TextView>(Resource.Id.textPlayer2);
				var purpurePlayer=llradiantTeam.FindViewById<TextView>(Resource.Id.textPlayer3);
				var yellowPlayer=llradiantTeam.FindViewById<TextView>(Resource.Id.textPlayer4);
				var orangePlayer=llradiantTeam.FindViewById<TextView>(Resource.Id.textPlayer5);
			 
			var pinkPlayer=lldireTeam.FindViewById<TextView>(Resource.Id.textPlayer1);
			var olivePlayer=lldireTeam.FindViewById<TextView>(Resource.Id.textPlayer2);
			var aquaPlayer=lldireTeam.FindViewById<TextView>(Resource.Id.textPlayer3);
			var darkgreenPlayer=lldireTeam.FindViewById<TextView>(Resource.Id.textPlayer4);
			var chokolatePlayer=lldireTeam.FindViewById<TextView>(Resource.Id.textPlayer5);
				var listTextView = new List<TextView> (){bluePlayer,cyanPlayer,purpurePlayer,yellowPlayer,orangePlayer,
				pinkPlayer,olivePlayer,aquaPlayer,darkgreenPlayer,chokolatePlayer};
			
				var allPlayerInfo = dotaMatchInfo[0].Players;
			for (var i = 0; i < allPlayerInfo.Count(); i++) {
					int color=ColorsOnMatch.GetColorPlayer(i);
				listTextView [i].Text = allPlayerInfo [i].PlayerName;
				listTextView[i].SetTextColor(Resources.GetColor(color));
			}
				radiantPB = pickBans.ParseJsonToRadPick (dotaMatchInfo[0].RadiantPicks);
				direPB = pickBans.ParseJsonToDirePick (dotaMatchInfo[0].DirePicks);
				cts=new CancellationTokenSource();
				cts.Token.ThrowIfCancellationRequested ();
				await SetHeroesImageInLayout (cts.Token);
				cts = null;
			}
			catch(Exception e){
				Console.WriteLine (e);
			}
			pb.Visibility= ViewStates.Gone;
			buttonRefresh.Visibility = ViewStates.Visible;
		}
		async Task OnRefresh(CancellationToken token)
		{
			APIRequest ApiReq = new APIRequest ();
			PicksBansOld pickBans=new PicksBansOld();
			//cts = new CancellationTokenSource ();
			refreshFlag = true;
			token.ThrowIfCancellationRequested ();
			var url =SettingsApp.ServerAPIAddress+SettingsApp.GameName+"/GetDetailInfo?match_id="+matchInfo.MatchId;
			var jMatchResponce = await ApiReq.GetJsonAsync (url);

			var jDetailMatchInfo= JsonConvert.DeserializeObject<JDetailMatchInfo>(jMatchResponce.ToString());
			var jMatchDetails=JToken.Parse(jDetailMatchInfo.JMatchDetails);
			matchInfo=JsonConvert.DeserializeObject<MatchInfo>(jMatchDetails.ToString());
			dotaMatchInfo=JsonConvert.DeserializeObject<List<DotaMatchInfo>>(jMatchDetails.SelectToken("DetailsMatch").ToString());
			List<DetailInfo> listDetail=new List<DetailInfo>();
			listDetail.AddRange(dotaMatchInfo);
			matchInfo.DetailsMatch=listDetail;

			radiantPB = pickBans.ParseJsonToRadPick (dotaMatchInfo[0].RadiantPicks);
			direPB = pickBans.ParseJsonToDirePick (dotaMatchInfo[0].DirePicks);
			token.ThrowIfCancellationRequested ();
			await SetHeroesImageInLayout (token);

			var analisPick=new AnalysisPick();
			var textRadiant=FindViewById<TextView>(Resource.Id.textTeamFP);
			var textDire=FindViewById<TextView>(Resource.Id.textTeamSP);
			var value=analisPick.GetAnalysisTeam(dotaMatchInfo[0].RadiantPicks.ListPicks,dotaMatchInfo[0].DirePicks.ListPicks);
			textRadiant.Text=Resources.GetString(Resource.String.radiant)+"  "+value[0].ToString();
			textDire.Text=Resources.GetString(Resource.String.dire)+"  "+(value[1].ToString());
			Toast.MakeText (this, Resources.GetString(Resource.String.updated), ToastLength.Short).Show ();
			refreshFlag = false;
		}
示例#7
0
		async Task OnRefresh (CancellationToken token){

			APIRequest ApiReq = new APIRequest ();
			//cts = new CancellationTokenSource ();
			PicksBansOld PB = new PicksBansOld ();
			refreshFlag = true;
			titleFlag = false;

			token.ThrowIfCancellationRequested ();
			if (listMatchInfo.Count > 0) {
				hsMatchInfo_2 = listMatchInfo [0];
			}
			FillTitleMatch ();
			CreateFragment (Resource.Id.hs_llayout_match_draft, new FragmentHSMatchDraft (listMatchInfo));
			Toast.MakeText (this, Resources.GetString(Resource.String.updated), ToastLength.Short).Show ();
			//await RefreshData (token);
			refreshFlag = false;

		}