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; }
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; } }
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; }
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; }
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; }