protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { try { App.ViewModel.VehicleUnlocksCol.Clear(); int vtid = Convert.ToInt32(NavigationContext.QueryString["VehicleTypeID"].ToString()); VehicleType vt = App.ViewModel.BuiltPlayer.VehicleTypes[vtid]; txt_desc.Text = vt.TypeName; BitmapImage bmi = new BitmapImage(new Uri("bf3/" + vt.TypePic, UriKind.Relative)); img_type.Source = bmi; foreach (VehicleUnlock vu in vt.Unlocks) { ItemViewModel ivm = new ItemViewModel(); ivm.LineOne = vu.UnlockName; if (Convert.ToDouble(vu.Needed) == 0) { ivm.PBValue = 100.00; } else { ivm.PBValue = Convert.ToDouble((Convert.ToDouble(vu.Current) / Convert.ToDouble(vu.Needed)) * 100.00); } ivm.Needed = vu.Needed.ToString(); ivm.Current = vu.Current.ToString(); ivm.Tag = vu.Description; ivm.ImgSrc = "bf3/" + vu.UnlockPic; App.ViewModel.VehicleUnlocksCol.Add(ivm); } Kills.Text = vt.Kills.ToString(); Stars.Text = vt.ServiceStars.ToString(); starpb.Value = Convert.ToDouble((Convert.ToDouble(vt.SSCurrent) / Convert.ToDouble(vt.SSNeeded)) * 100.00); float hrs = Convert.ToSingle(vt.TimeRaw) / 3600; string timestr = String.Format("{0:0.##}", hrs); Time.Text = timestr + " hrs"; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
public static void BuildPage(Player player) { int i = 0; foreach (Weapon w in player.Weapons) { ItemViewModel ivm = new ItemViewModel(); if (w.Shots == "0") { ivm.LineTwo = "never used"; } else { float per = (Convert.ToSingle(w.Hits) / Convert.ToSingle(w.Shots)) * 100; string hitper = String.Format("{0:0.#}", per); float time = Convert.ToSingle(w.Time) / 3600; string timestr = String.Format("{0:0.##}", time); ivm.LineTwo = w.Kills + " kills @ " + hitper + "% acc in " + timestr + " hrs"; } // this is adjusted now so, for example, 733 current with 800 needed shows 33% rather than 92% //ivm.PBValue = Convert.ToDouble((Convert.ToDouble(w.Current) / Convert.ToDouble(w.Needed)) * 100.00); double adj_current = Convert.ToDouble(Convert.ToDouble(100) - (Convert.ToDouble(w.Needed) - Convert.ToDouble(w.Current))); double adj_needed = Convert.ToDouble(100); ivm.PBValue = Convert.ToDouble((adj_current / adj_needed) * 100.00); ivm.Current = w.Current.ToString(); ivm.Needed = w.Needed.ToString(); ivm.ImgSrc = "bf3/" + w.WeaponPic; ivm.LineOne = w.WeaponName; ivm.Tag = i.ToString(); i++; App.ViewModel.WeaponsCol.Add(ivm); } foreach (Vehicle v in player.Vehicles) { ItemViewModel ivm = new ItemViewModel(); ivm.ImgSrc = "bf3/" + v.VehiclePic; ivm.LineOne = v.VehicleName; float time = Convert.ToSingle(v.Time) / 3600; string timestr = String.Format("{0:0.##}", time); ivm.LineTwo = v.Destroys + " destroys & " + v.Kills + " kills in " + timestr + " hrs"; ivm.Tag = v.Description; App.ViewModel.VehiclesCol.Add(ivm); } foreach (Ribbon r in player.Ribbons) { ItemViewModel ivm = new ItemViewModel(); ivm.ImgSrc = "bf3/" + r.RibbonPic; ivm.LineOne = r.RibbonName; ivm.LineTwo = "acquired " + r.TimesTaken.ToString() + " times"; ivm.Tag = r.Description; App.ViewModel.RibbonsCol.Add(ivm); } foreach (Medal m in player.Medals) { ItemViewModel ivm = new ItemViewModel(); ivm.ImgSrc = "bf3/" + m.MedalPic; ivm.LineOne = m.MedalName; ivm.LineTwo = "acquired " + m.TimesTaken.ToString() + " times"; ivm.Tag = m.Description; App.ViewModel.MedalsCol.Add(ivm); } foreach (Equipment eq in player.Equipments) { ItemViewModel ivm = new ItemViewModel(); ivm.ImgSrc = "bf3/" + eq.EquipPic; ivm.Img2Src = "bf3/" + eq.KitPic; ivm.LineOne = eq.EquipName; ivm.LineTwo = eq.LineTwo; ivm.Tag = eq.Description; App.ViewModel.EquipmentsCol.Add(ivm); } i = 0; foreach (VehicleType vt in player.VehicleTypes) { ItemViewModel ivm = new ItemViewModel(); ivm.ImgSrc = "bf3/" + vt.TypePic; ivm.LineOne = vt.TypeName; ivm.Tag = i.ToString(); i++; App.ViewModel.VehicleTypesCol.Add(ivm); } ItemViewModel ivm_rank = new ItemViewModel(); ivm_rank.LineOne = player.PlayerName; ivm_rank.LineTwo = "rank " + player.Rank.ToString() + " score " + player.Score.ToString("N0"); ivm_rank.ImgSrc = "bf3/" + player.RankPic; ivm_rank.Tag = "Rank"; App.ViewModel.UserCol.Add(ivm_rank); ItemViewModel ivm_assault = new ItemViewModel(); ivm_assault.LineOne = "Assault"; ivm_assault.LineTwo = "score " + player.Assault.Score.ToString("N0"); ivm_assault.ImgSrc = "bf3/" + player.Assault.KitPic; App.ViewModel.UserCol.Add(ivm_assault); ItemViewModel ivm_eng = new ItemViewModel(); ivm_eng.LineOne = "Engineer"; ivm_eng.LineTwo = "score " + player.Engineer.Score.ToString("N0"); ivm_eng.ImgSrc = "bf3/" + player.Engineer.KitPic; App.ViewModel.UserCol.Add(ivm_eng); ItemViewModel ivm_recon = new ItemViewModel(); ivm_recon.LineOne = "Recon"; ivm_recon.LineTwo = "score " + player.Recon.Score.ToString("N0"); ivm_recon.ImgSrc = "bf3/" + player.Recon.KitPic; App.ViewModel.UserCol.Add(ivm_recon); ItemViewModel ivm_sup = new ItemViewModel(); ivm_sup.LineOne = "Support"; ivm_sup.LineTwo = "score " + player.Support.Score.ToString("N0"); ivm_sup.ImgSrc = "bf3/" + player.Support.KitPic; App.ViewModel.UserCol.Add(ivm_sup); foreach (NextRank nr in player.NextRanks) { ItemViewModel ivm = new ItemViewModel(); int curr = nr.RequiredScore - nr.Left; ivm.PBValue = Convert.ToDouble(Convert.ToDouble(curr)/Convert.ToDouble(nr.RequiredScore)) * 100.00; ivm.Current = curr.ToString(); ivm.Needed = nr.RequiredScore.ToString(); ivm.ImgSrc = "bf3/" + nr.RankPic; ivm.LineOne = "Lvl " + nr.Level + " " + nr.RankName; i++; App.ViewModel.NextRanksCol.Add(ivm); } App.ViewModel.BuiltPlayer = player; PageHandler.SetTile(); }
public PlayerDetails() { InitializeComponent(); DataContext = App.ViewModel; PageTitle.Title = App.ViewModel.BuiltPlayer.PlayerName; App.ViewModel.SpecsCol.Clear(); foreach (Specialization s in App.ViewModel.BuiltPlayer.Specs) { ItemViewModel ivm = new ItemViewModel(); ivm.LineOne = s.SpecName; ivm.PBValue = Convert.ToDouble((Convert.ToDouble(s.Current) / Convert.ToDouble(s.Needed)) * 100.00); ivm.ImgSrc = "bf3/" + s.SpecPic; ivm.Tag = s.Description; ivm.Current = s.Current.ToString(); ivm.Needed = s.Needed.ToString(); App.ViewModel.SpecsCol.Add(ivm); } double d = ((App.ViewModel.BuiltPlayer.Wins * 1.00) / (App.ViewModel.BuiltPlayer.Losses * 1.00)); double scaled = 0; if (d == 0) { scaled = 50; } else if (d > 5) { scaled = 100; } else if (d > 0) { scaled = 50 + (d * 10); } else if (d < -5) { scaled = 0; } else { scaled = 50 - (d * 10); } string wl = String.Format("{0:0.##}", d); string scaledwl = String.Format("{0:0.##}", scaled); string uri = "http://chart.googleapis.com/chart?chs=300x150&cht=gom&chd=t:" + scaled + "&chco=939393,2E86B6&chf=bg%2Cs%2CFFFFFF00"; BitmapImage bmi = new BitmapImage(new Uri(uri, UriKind.Absolute)); img_wl.Source = bmi; txt_wl.Text = wl; double kdratio = ((App.ViewModel.BuiltPlayer.Kills * 1.00) / (App.ViewModel.BuiltPlayer.Deaths * 1.00)); double scaledkd = 0; if (kdratio == 1) { scaledkd = 50; } else if (kdratio > 5) { scaledkd = 100; } else if (kdratio > 1) { scaledkd = 50 + (kdratio * 10); } else { scaledkd = (kdratio / 2) * 100; } string scaledkdstr = String.Format("{0:0.##}", scaledkd); string kduri = "http://chart.googleapis.com/chart?chs=300x150&cht=gom&chd=t:" + scaledkdstr + "&chco=939393,2E86B6&chf=bg%2Cs%2CFFFFFF00"; BitmapImage kdbmi = new BitmapImage(new Uri(kduri, UriKind.Absolute)); img_kd.Source = kdbmi; string scaledkdstrval = String.Format("{0:0.##}", kdratio); txt_kd.Text = scaledkdstrval; double acc = ((App.ViewModel.BuiltPlayer.Hits * 1.00) / (App.ViewModel.BuiltPlayer.Shots * 1.00)); string str_acc = String.Format("{0:0.##}", (acc*100)); txt_acc.Text = str_acc + "%"; BitmapImage timebmi = new BitmapImage(new Uri(App.ViewModel.BuiltPlayer.BackTilePic + "150x120", UriKind.Absolute)); img_kitstime.Source = timebmi; double assaultscore = Convert.ToDouble(App.ViewModel.BuiltPlayer.Assault.Score); double reconscore = Convert.ToDouble(App.ViewModel.BuiltPlayer.Recon.Score); double supportscore = Convert.ToDouble(App.ViewModel.BuiltPlayer.Support.Score); double engscore = Convert.ToDouble(App.ViewModel.BuiltPlayer.Engineer.Score); double totalscore = assaultscore + reconscore + supportscore + engscore; string assaultpers = String.Format("{0:0.##}", ((assaultscore / totalscore) * 100)); string reconpers = String.Format("{0:0.##}", ((reconscore / totalscore) * 100)); string supportpers = String.Format("{0:0.##}", ((supportscore / totalscore) * 100)); string engpers = String.Format("{0:0.##}", ((engscore / totalscore) * 100)); string scoreuiri = "https://chart.googleapis.com/chart?&cht=pc&chd=t:100|" + assaultpers + "," + engpers + "," + supportpers + "," + reconpers + "&chco=ffffff,308DBF|C4B469|86AE31|A1562E&chs=150x120"; BitmapImage scorebmi = new BitmapImage(new Uri(scoreuiri, UriKind.Absolute)); img_kitsscore.Source = scorebmi; double spm = (Convert.ToDouble(App.ViewModel.BuiltPlayer.Score) / (Convert.ToDouble(App.ViewModel.BuiltPlayer.TimeRaw) / 60.00)); txt_spm.Text = String.Format("{0:0.##}", spm); double opm = (Convert.ToDouble(App.ViewModel.BuiltPlayer.Objective) / (Convert.ToDouble(App.ViewModel.BuiltPlayer.TimeRaw) / 60.00)); txt_opm.Text = String.Format("{0:0.##}", opm); txt_elo.Text = App.ViewModel.BuiltPlayer.Skill.ToString(); double timeplayed = (Convert.ToDouble(App.ViewModel.BuiltPlayer.TimeRaw) / 3600.00); txt_time.Text = String.Format("{0:0.#}", timeplayed) + " hrs"; }
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { App.ViewModel.UnlocksCol.Clear(); int wid = Convert.ToInt32(NavigationContext.QueryString["WeaponID"].ToString()); Weapon w = App.ViewModel.BuiltPlayer.Weapons[wid]; weaponmain.Header = w.WeaponName; txt_desc.Text = w.Description; BitmapImage bmi = new BitmapImage(new Uri("bf3/" + w.WeaponPic, UriKind.Relative)); img_weapon.Source = bmi; if (w.HasHeatMap) { heatmap.Visibility = Visibility.Visible; BitmapImage heatbmi = w.HeatMap; img_heat.Source = heatbmi; } else { //heatmap.Visibility = Visibility.Collapsed; pivotroot.Items.Remove(heatmap); } if (w.Unlocks.Count > 0) { unlocks.Visibility = Visibility.Visible; foreach (WeaponUnlock wu in w.Unlocks) { ItemViewModel ivm = new ItemViewModel(); ivm.LineOne = wu.UnlockName; ivm.PBValue = Convert.ToDouble((Convert.ToDouble(wu.Current) / Convert.ToDouble(wu.Needed)) * 100.00); ivm.Current = wu.Current.ToString(); ivm.Needed = wu.Needed.ToString(); ivm.ImgSrc = "bf3/" + wu.UnlockPic; ivm.LineOne = wu.UnlockName; ivm.Tag = wu.Description; App.ViewModel.UnlocksCol.Add(ivm); } } else { //unlocks.Visibility = Visibility.Collapsed; pivotroot.Items.Remove(unlocks); } WeaponStats ws = App.ViewModel.WS; if (ws.Stats.ContainsKey(w.WeaponName)) { DmgMax.Text = ws.Stats[w.WeaponName][(int)WeaponStats.Types.dmgMax] + "%"; DmgMin.Text = ws.Stats[w.WeaponName][(int)WeaponStats.Types.dmgMin] + "%"; Reload.Text = ws.Stats[w.WeaponName][(int)WeaponStats.Types.rld] + "sec"; ReloadEmpty.Text = ws.Stats[w.WeaponName][(int)WeaponStats.Types.rldem] + "sec"; ReloadThresh.Text = ws.Stats[w.WeaponName][(int)WeaponStats.Types.rldtrs] + "sec"; Suppression.Text = ws.Stats[w.WeaponName][(int)WeaponStats.Types.supp]; Speed.Text = ws.Stats[w.WeaponName][(int)WeaponStats.Types.speed] + "m/s"; Distance.Text = ws.Stats[w.WeaponName][(int)WeaponStats.Types.maxdist] + "m"; Horz.Text = ws.Stats[w.WeaponName][(int)WeaponStats.Types.recoil_l] + "/" + ws.Stats[w.WeaponName][(int)WeaponStats.Types.recoil_r]; Vert.Text = ws.Stats[w.WeaponName][(int)WeaponStats.Types.recoil_u]; BTK.Text = ws.Stats[w.WeaponName][(int)WeaponStats.Types.btk_10] + " / " + ws.Stats[w.WeaponName][(int)WeaponStats.Types.btk_50]; TTK.Text = ws.Stats[w.WeaponName][(int)WeaponStats.Types.ttk_10] + " / " + ws.Stats[w.WeaponName][(int)WeaponStats.Types.ttk_50]; } else { pivotroot.Items.Remove(fire); } float hrs = Convert.ToSingle(w.Time) / 3600; string timestr = String.Format("{0:0.##}", hrs); Time.Text = timestr + " hrs"; Stars.Text = w.Stars.ToString(); Hits.Text = w.Hits; Shots.Text = w.Shots; Kills.Text = w.Kills; Headshots.Text = w.Headshots; double adj_current = Convert.ToDouble(Convert.ToDouble(100) - (Convert.ToDouble(w.NextStarNeeded) - Convert.ToDouble(w.NextStarCurrent))); double adj_needed = Convert.ToDouble(100); //starpb.Value = Convert.ToDouble((Convert.ToDouble(w.NextStarCurrent) / Convert.ToDouble(w.NextStarNeeded)) * 100.00); starpb.Value = Convert.ToDouble((adj_current / adj_needed) * 100.00); Kit.Text = w.InKit.ToString(); Range.Text = w.Range.ToString(); ROF.Text = w.ROF.ToString(); Ammo.Text = w.Ammo.ToString(); List<string> mode = new List<string>(); if (w.FireModeAuto) { mode.Add("Auto"); } if (w.FireModeBurst) { mode.Add("Burst"); } if (w.FireModeSingle) { mode.Add("Single"); } Modes.Text = string.Join(", ", mode); }