public void ConstructScoresForPilot(AcesHighPilotScore score, string pilotName) { var fighterScoreDo = new FighterScoresDO(score); GetPilotStats(pilotName).FighterScoresList.Add(fighterScoreDo); var fighterStatsDo = new FighterStatsDO(score); GetPilotStats(pilotName).FighterStatsList.Add(fighterStatsDo); var attackScoresDo = new AttackScoresDO(score); GetPilotStats(pilotName).AttackScoresList.Add(attackScoresDo); var attackStatsDo = new AttackStatsDO(score); GetPilotStats(pilotName).AttackStatsList.Add(attackStatsDo); var bomberScoresDo = new BomberScoresDO(score); GetPilotStats(pilotName).BomberScoresList.Add(bomberScoresDo); var bomberStatsDo = new BomberStatsDO(score); GetPilotStats(pilotName).BomberStatsList.Add(bomberStatsDo); var vehicleBoatScoresDo = new VehicleBoatScoresDO(score); GetPilotStats(pilotName).VehicleBoatScoresList.Add(vehicleBoatScoresDo); var vehicleBoatStatsDo = new VehicleBoatStatsDO(score); GetPilotStats(pilotName).VehicleBoatStatsList.Add(vehicleBoatStatsDo); }
public void RunTests() { HTCPilotStatsSvc statsSvc = new HTCPilotStatsSvc(); AcesHighPilotStats stats = statsSvc.GetPilotStatsMultiThreaded("99MecInf", TourType.MainArenaTour, 76, new ProxySettingsDTO()); HTCPilotScoreSvc scoreSvc = new HTCPilotScoreSvc(); AcesHighPilotScore score = scoreSvc.GetPilotScore("99MecInf", TourType.MainArenaTour, 76, new ProxySettingsDTO()); int i = 0; /* * TourNode tour = TourDefinitions.Instance.GetTourDetails(76, TourType.MainArenaTour); * * Sender httpSender = new Sender(new ProxySettingsDTO()); * StreamReader prototype = File.OpenText("individual_scores.http.txt"); * httpSender.RequestString = "gameid=" + "99MecInf" + "&tour=" + tour.FullyQualifiedTourIdentifier; * httpSender.URLEncodeRequestString(); * httpSender.Initialise(prototype, "http://www.hitechcreations.com/cgi-bin/105score/105score.pl"); * StreamReader response = httpSender.Send(); * * * string PilotVsBuffer = response.ReadToEnd(); * StringReader pilotVsStringReader = new StringReader(PilotVsBuffer); * * // Use the cool sgml reader to 'interpret' the HTML as XML :) very nice! * SgmlReader pilotVsSgmlReader = new SgmlReader(); * pilotVsSgmlReader.DocType = "HTML"; * pilotVsSgmlReader.InputStream = pilotVsStringReader; * statsXmlDoc.Load(pilotVsSgmlReader); * * statsXmlDoc.Save(Console.Out); * statsXmlDoc.Save(@"C:\response.xml"); */ }
public static void ConstructAcesHighPilotScoreInnerObjects(ref AcesHighPilotScore ps) { //////////////////////////////////////////////////////////////////////////////////// // Vs Enemies //////////////////////////////////////////////////////////////////////////////////// ps.VsEnemy = new AcesHighPilotScoreVsEnemy { Attack = new AcesHighPilotScoreVsEnemyAttack { HitPercentage = new AcesHighPilotScoreVsEnemyAttackHitPercentage(), KillPerHour = new AcesHighPilotScoreVsEnemyAttackKillPerHour(), KillPerSortie = new AcesHighPilotScoreVsEnemyAttackKillPerSortie(), KillToDeathPlus1 = new AcesHighPilotScoreVsEnemyAttackKillToDeathPlus1(), Points = new AcesHighPilotScoreVsEnemyAttackPoints() }, Fighter = new AcesHighPilotScoreVsEnemyFighter { HitPercentage = new AcesHighPilotScoreVsEnemyFighterHitPercentage(), KillPerHour = new AcesHighPilotScoreVsEnemyFighterKillPerHour(), KillPerSortie = new AcesHighPilotScoreVsEnemyFighterKillPerSortie(), KillToDeathPlus1 = new AcesHighPilotScoreVsEnemyFighterKillToDeathPlus1(), Points = new AcesHighPilotScoreVsEnemyFighterPoints() }, VehicleBoat = new AcesHighPilotScoreVsEnemyVehicleBoat { HitPercentage = new AcesHighPilotScoreVsEnemyVehicleBoatHitPercentage(), KillPerHour = new AcesHighPilotScoreVsEnemyVehicleBoatKillPerHour(), KillPerSortie = new AcesHighPilotScoreVsEnemyVehicleBoatKillPerSortie(), KillToDeathPlus1 = new AcesHighPilotScoreVsEnemyVehicleBoatKillToDeathPlus1(), Points = new AcesHighPilotScoreVsEnemyVehicleBoatPoints() } }; //////////////////////////////////////////////////////////////////////////////////// // Vs Objects //////////////////////////////////////////////////////////////////////////////////// ps.VsObjects = new AcesHighPilotScoreVsObjects { Attack = new AcesHighPilotScoreVsObjectsAttack { DamagePerDeathPlus1 = new AcesHighPilotScoreVsObjectsAttackDamagePerDeathPlus1(), DamagePerSortie = new AcesHighPilotScoreVsObjectsAttackDamagePerSortie(), FieldCaptures = new AcesHighPilotScoreVsObjectsAttackFieldCaptures(), HitPercentage = new AcesHighPilotScoreVsObjectsAttackHitPercentage(), Points = new AcesHighPilotScoreVsObjectsAttackPoints() }, Bomber = new AcesHighPilotScoreVsObjectsBomber { DamagePerDeathPlus1 = new AcesHighPilotScoreVsObjectsBomberDamagePerDeathPlus1(), DamagePerSortie = new AcesHighPilotScoreVsObjectsBomberDamagePerSortie(), FieldCaptures = new AcesHighPilotScoreVsObjectsBomberFieldCaptures(), HitPercentage = new AcesHighPilotScoreVsObjectsBomberHitPercentage(), Points = new AcesHighPilotScoreVsObjectsBomberPoints() }, VehicleBoat = new AcesHighPilotScoreVsObjectsVehicleBoat { DamagePerDeathPlus1 = new AcesHighPilotScoreVsObjectsVehicleBoatDamagePerDeathPlus1(), DamagePerSortie = new AcesHighPilotScoreVsObjectsVehicleBoatDamagePerSortie(), FieldCaptures = new AcesHighPilotScoreVsObjectsVehicleBoatFieldCaptures(), HitPercentage = new AcesHighPilotScoreVsObjectsVehicleBoatHitPercentage(), Points = new AcesHighPilotScoreVsObjectsVehicleBoatPoints() } }; //////////////////////////////////////////////////////////////////////////////////// // Overall / Raw Stats //////////////////////////////////////////////////////////////////////////////////// ps.Overall = new AcesHighPilotScoreOverall { Attack = new AcesHighPilotScoreOverallAttack(), Bomber = new AcesHighPilotScoreOverallBomber(), Fighter = new AcesHighPilotScoreOverallFighter(), VehicleBoat = new AcesHighPilotScoreOverallVehicleBoat(), Total = new AcesHighPilotScoreOverallTotal() }; }
public FighterScoresDO(AcesHighPilotScore score) { _score = score; }
public VehicleBoatScoresDO(AcesHighPilotScore score) { _score = score; }
public AttackScoresDO(AcesHighPilotScore score) { _score = score; }
public BomberStatsDO(AcesHighPilotScore score) { _score = score; }
/// <summary> /// </summary> /// <param name="squad"></param> /// <param name="tourNumber"></param> /// <returns></returns> public AcesHighPilotScore BuildSquadScoreObject(Squad squad, int tourNumber) { var squadScore = new AcesHighPilotScore(); Utility.ConstructAcesHighPilotScoreInnerObjects(ref squadScore); // count the pilots for this tour. var numPilots = squad.CountMembersForTour(tourNumber); foreach (var squadMember in squad.Members.Where(member => Registry.PilotStatsContains(member.PilotName))) { // If Pilot wasnt in this sqaud for this tour, dont count their data if (!squad.WasPilotInSquadForThisTour(tourNumber, squadMember)) { continue; } var pilotReg = Registry.GetPilotStats(squadMember.PilotName); foreach (var attackScore in pilotReg.AttackScoresList .Where(attackScore => attackScore.TourNumber == tourNumber)) { squadScore.GameId = squad.SquadName; squadScore.TourDetails = attackScore.TourIdentfier; squadScore.TourType = attackScore.TourType; squadScore.TourId = attackScore.TourNumber.ToString(); squadScore.VsEnemy.Attack.HitPercentage.Score += attackScore.VsEnemyHitPercentageScore / numPilots; squadScore.VsEnemy.Attack.KillPerHour.Score += attackScore.VsEnemyKillsPerHourScore / numPilots; squadScore.VsEnemy.Attack.KillPerSortie.Score += attackScore.VsEnemyKillsToSortieScore / numPilots; squadScore.VsEnemy.Attack.KillToDeathPlus1.Score += attackScore.VsEnemyKillsToDeathScore / numPilots; squadScore.VsObjects.Attack.DamagePerDeathPlus1.Score += attackScore.VsObjectsDamagePerDeathScore / numPilots; squadScore.VsObjects.Attack.DamagePerSortie.Score += attackScore.VsObjectsDamagePerSortieScore / numPilots; squadScore.VsObjects.Attack.FieldCaptures.Score += attackScore.VsObjectsFieldCapturesScore / numPilots; squadScore.VsObjects.Attack.HitPercentage.Score += attackScore.VsObjectsHitPercentageScore / numPilots; } foreach (var bomberScores in pilotReg.BomberScoresList .Where(bomberScores => bomberScores.TourNumber == tourNumber)) { squadScore.VsObjects.Bomber.DamagePerDeathPlus1.Score += bomberScores.VsObjectsDamagePerDeathScore / numPilots; squadScore.VsObjects.Bomber.DamagePerSortie.Score += bomberScores.VsObjectsDamagePerSortieScore / numPilots; squadScore.VsObjects.Bomber.FieldCaptures.Score += bomberScores.VsObjectsFieldCapturesScore / numPilots; squadScore.VsObjects.Bomber.HitPercentage.Score += bomberScores.VsObjectsHitPercentageScore / numPilots; } foreach (var fighterScores in pilotReg.FighterScoresList .Where(fighterScores => fighterScores.TourNumber == tourNumber)) { squadScore.VsEnemy.Fighter.HitPercentage.Score += fighterScores.VsEnemyHitPercentageScore / numPilots; squadScore.VsEnemy.Fighter.KillPerHour.Score += fighterScores.VsEnemyKillsPerHourScore / numPilots; squadScore.VsEnemy.Fighter.KillPerSortie.Score += fighterScores.VsEnemyKillsToSortieScore / numPilots; squadScore.VsEnemy.Fighter.KillToDeathPlus1.Score += fighterScores.VsEnemyKillsToDeathScore / numPilots; } foreach (var vehicleBoatScores in pilotReg.VehicleBoatScoresList .Where(vehicleBoatScores => vehicleBoatScores.TourNumber == tourNumber)) { squadScore.VsEnemy.VehicleBoat.HitPercentage.Score += vehicleBoatScores.VsEnemyHitPercentageScore / numPilots; squadScore.VsEnemy.VehicleBoat.KillPerHour.Score += vehicleBoatScores.VsEnemyKillsPerHourScore / numPilots; squadScore.VsEnemy.VehicleBoat.KillPerSortie.Score += vehicleBoatScores.VsEnemyKillsToSortieScore / numPilots; squadScore.VsEnemy.VehicleBoat.KillToDeathPlus1.Score += vehicleBoatScores.VsEnemyKillsToDeathScore / numPilots; squadScore.VsObjects.VehicleBoat.DamagePerDeathPlus1.Score += vehicleBoatScores.VsObjectsDamagePerDeathScore / numPilots; squadScore.VsObjects.VehicleBoat.DamagePerSortie.Score += vehicleBoatScores.VsObjectsDamagePerSortieScore / numPilots; squadScore.VsObjects.VehicleBoat.FieldCaptures.Score += vehicleBoatScores.VsObjectsFieldCapturesScore / numPilots; squadScore.VsObjects.VehicleBoat.HitPercentage.Score += vehicleBoatScores.VsObjectsHitPercentageScore / numPilots; } foreach (var stats in pilotReg.AttackStatsList.Cast <AttackStatsDO>() .Where(stats => stats.TourNumber == tourNumber.ToString())) { squadScore.Overall.Attack.Assists += stats.OverAllAssists; squadScore.Overall.Attack.Bailed += stats.OverAllBailed; squadScore.Overall.Attack.Captured += stats.OverAllCaptured; squadScore.Overall.Attack.Death += stats.OverAllDeath; squadScore.Overall.Attack.Disco += stats.OverAllDisco; squadScore.Overall.Attack.Ditched += stats.OverAllDitched; squadScore.Overall.Attack.Kills += stats.OverAllKills; squadScore.Overall.Attack.Landed += stats.OverAllLanded; squadScore.Overall.Attack.Sorties += stats.OverAllSorties; squadScore.Overall.Attack.Time += stats.OverAllTimeInSeconds; } foreach (var stats in pilotReg.BomberStatsList.Cast <BomberStatsDO>() .Where(stats => stats.TourNumber == tourNumber.ToString())) { squadScore.Overall.Bomber.Assists += stats.OverAllAssists; squadScore.Overall.Bomber.Bailed += stats.OverAllBailed; squadScore.Overall.Bomber.Captured += stats.OverAllCaptured; squadScore.Overall.Bomber.Death += stats.OverAllDeath; squadScore.Overall.Bomber.Disco += stats.OverAllDisco; squadScore.Overall.Bomber.Ditched += stats.OverAllDitched; squadScore.Overall.Bomber.Kills += stats.OverAllKills; squadScore.Overall.Bomber.Landed += stats.OverAllLanded; squadScore.Overall.Bomber.Sorties += stats.OverAllSorties; squadScore.Overall.Bomber.Time += stats.OverAllTimeInSeconds; } foreach (var stats in pilotReg.FighterStatsList.Cast <FighterStatsDO>() .Where(stats => stats.TourNumber == tourNumber.ToString())) { squadScore.Overall.Fighter.Assists += stats.OverAllAssists; squadScore.Overall.Fighter.Bailed += stats.OverAllBailed; squadScore.Overall.Fighter.Captured += stats.OverAllCaptured; squadScore.Overall.Fighter.Death += stats.OverAllDeath; squadScore.Overall.Fighter.Disco += stats.OverAllDisco; squadScore.Overall.Fighter.Ditched += stats.OverAllDitched; squadScore.Overall.Fighter.Kills += stats.OverAllKills; squadScore.Overall.Fighter.Landed += stats.OverAllLanded; squadScore.Overall.Fighter.Sorties += stats.OverAllSorties; squadScore.Overall.Fighter.Time += stats.OverAllTimeInSeconds; } foreach (var stats in pilotReg.VehicleBoatStatsList.Cast <VehicleBoatStatsDO>() .Where(stats => stats.TourNumber == tourNumber.ToString())) { squadScore.Overall.VehicleBoat.Assists += stats.OverAllAssists; squadScore.Overall.VehicleBoat.Bailed += stats.OverAllBailed; squadScore.Overall.VehicleBoat.Captured += stats.OverAllCaptured; squadScore.Overall.VehicleBoat.Death += stats.OverAllDeath; squadScore.Overall.VehicleBoat.Disco += stats.OverAllDisco; squadScore.Overall.VehicleBoat.Ditched += stats.OverAllDitched; squadScore.Overall.VehicleBoat.Kills += stats.OverAllKills; squadScore.Overall.VehicleBoat.Landed += stats.OverAllLanded; squadScore.Overall.VehicleBoat.Sorties += stats.OverAllSorties; squadScore.Overall.VehicleBoat.Time += stats.OverAllTimeInSeconds; } } squadScore.VsEnemy.Attack.HitPercentage.Score = decimal.Round( squadScore.VsEnemy.Attack.HitPercentage.Score, 2); squadScore.VsEnemy.Attack.KillPerHour.Score = decimal.Round(squadScore.VsEnemy.Attack.KillPerHour.Score, 2); squadScore.VsEnemy.Attack.KillPerSortie.Score = decimal.Round( squadScore.VsEnemy.Attack.KillPerSortie.Score, 2); squadScore.VsEnemy.Attack.KillToDeathPlus1.Score = decimal.Round(squadScore.VsEnemy.Attack.KillToDeathPlus1.Score, 2); squadScore.VsObjects.Attack.DamagePerDeathPlus1.Score = decimal.Round(squadScore.VsObjects.Attack.DamagePerDeathPlus1.Score, 2); squadScore.VsObjects.Attack.DamagePerSortie.Score = decimal.Round(squadScore.VsObjects.Attack.DamagePerSortie.Score, 2); squadScore.VsObjects.Attack.FieldCaptures.Score = decimal.Round(squadScore.VsObjects.Attack.FieldCaptures.Score, 2); squadScore.VsObjects.Attack.HitPercentage.Score = decimal.Round(squadScore.VsObjects.Attack.HitPercentage.Score, 2); squadScore.VsObjects.Bomber.DamagePerDeathPlus1.Score = decimal.Round(squadScore.VsObjects.Bomber.DamagePerDeathPlus1.Score, 2); squadScore.VsObjects.Bomber.DamagePerSortie.Score = decimal.Round(squadScore.VsObjects.Bomber.DamagePerSortie.Score, 2); squadScore.VsObjects.Bomber.FieldCaptures.Score = decimal.Round(squadScore.VsObjects.Bomber.FieldCaptures.Score, 2); squadScore.VsObjects.Bomber.HitPercentage.Score = decimal.Round(squadScore.VsObjects.Bomber.HitPercentage.Score, 2); squadScore.VsEnemy.Fighter.HitPercentage.Score = decimal.Round(squadScore.VsEnemy.Fighter.HitPercentage.Score, 2); squadScore.VsEnemy.Fighter.KillPerHour.Score = decimal.Round(squadScore.VsEnemy.Fighter.KillPerHour.Score, 2); squadScore.VsEnemy.Fighter.KillPerSortie.Score = decimal.Round(squadScore.VsEnemy.Fighter.KillPerSortie.Score, 2); squadScore.VsEnemy.Fighter.KillToDeathPlus1.Score = decimal.Round(squadScore.VsEnemy.Fighter.KillToDeathPlus1.Score, 2); squadScore.VsEnemy.VehicleBoat.HitPercentage.Score = decimal.Round(squadScore.VsEnemy.VehicleBoat.HitPercentage.Score, 2); squadScore.VsEnemy.VehicleBoat.KillPerHour.Score = decimal.Round(squadScore.VsEnemy.VehicleBoat.KillPerHour.Score, 2); squadScore.VsEnemy.VehicleBoat.KillPerSortie.Score = decimal.Round(squadScore.VsEnemy.VehicleBoat.KillPerSortie.Score, 2); squadScore.VsEnemy.VehicleBoat.KillToDeathPlus1.Score = decimal.Round(squadScore.VsEnemy.VehicleBoat.KillToDeathPlus1.Score, 2); squadScore.VsObjects.VehicleBoat.DamagePerDeathPlus1.Score = decimal.Round(squadScore.VsObjects.VehicleBoat.DamagePerDeathPlus1.Score, 2); squadScore.VsObjects.VehicleBoat.DamagePerSortie.Score = decimal.Round(squadScore.VsObjects.VehicleBoat.DamagePerSortie.Score, 2); squadScore.VsObjects.VehicleBoat.FieldCaptures.Score = decimal.Round(squadScore.VsObjects.VehicleBoat.FieldCaptures.Score, 2); squadScore.VsObjects.VehicleBoat.HitPercentage.Score = decimal.Round(squadScore.VsObjects.VehicleBoat.HitPercentage.Score, 2); if (squadScore.TourDetails == null) { squadScore.TourDetails = string.Format("{0} - [NO DATA]", tourNumber); } if (squadScore.TourId == null) { squadScore.TourId = tourNumber.ToString(); } if (squadScore.TourType == null) { squadScore.TourType = "[UNKNOWN]"; } return(squadScore); }