예제 #1
0
 public CustomGroupings(MessageQueue message, string groupName)
 {
     InitializeComponent();
     _message         = message;
     _tDescription    = new TankDescriptions(_message);
     _cDescription    = new CountryDescriptions(_message);
     _typeDescription = new TankTypeDescription(_message);
     _customGrouping  = new CustomGrouping(_message);
     _ID = groupName.Replace(" ", "_");
     txtGroupName.Text = _customGrouping.Description(_ID);
     ListViewSettings();
 }
예제 #2
0
        public CustomGroupings(MessageQueue message)
        {
            InitializeComponent();
            _message         = message;
            _tDescription    = new TankDescriptions(_message);
            _cDescription    = new CountryDescriptions(_message);
            _typeDescription = new TankTypeDescription(_message);

            _ID = "";

            ListViewSettings();
        }
예제 #3
0
        public GraphSetup(MessageQueue message, string graphID)
        {
            InitializeComponent();

            _message = message;
            _ID = graphID;
            //textName.Text = graphName;
            //textName.Enabled = false;

            _tDescription = new TankDescriptions(_message);
            _cDescription = new CountryDescriptions(_message);
            _typeDescription = new TankTypeDescription(_message);
            _graphSettings = new GraphsSettings(_message);

            ListViewSettings();
            LoadSettings();
        }
예제 #4
0
        public GraphSetup(MessageQueue message, string graphID)
        {
            InitializeComponent();

            _message = message;
            _ID      = graphID;
            //textName.Text = graphName;
            //textName.Enabled = false;

            _tDescription    = new TankDescriptions(_message);
            _cDescription    = new CountryDescriptions(_message);
            _typeDescription = new TankTypeDescription(_message);
            _graphSettings   = new GraphsSettings(_message);

            ListViewSettings();
            LoadSettings();
        }
예제 #5
0
        public GraphSetup(MessageQueue message)
        {
            InitializeComponent();

            _message = message;

            _tDescription = new TankDescriptions(_message);
            _cDescription = new CountryDescriptions(_message);
            _typeDescription = new TankTypeDescription(_message);
            _graphSettings = new GraphsSettings(_message);

            helpProvider1.HelpNamespace = Path.Combine(WOTHelper.GetEXEPath(), "Help", "WoT_Stats.chm");

            helpProvider1.SetHelpNavigator(this, HelpNavigator.TopicId);
            helpProvider1.SetHelpKeyword(this, "520");

            ListViewSettings();
            LoadSettings();
        }
예제 #6
0
        public GraphSetup(MessageQueue message)
        {
            InitializeComponent();

            _message = message;

            _tDescription    = new TankDescriptions(_message);
            _cDescription    = new CountryDescriptions(_message);
            _typeDescription = new TankTypeDescription(_message);
            _graphSettings   = new GraphsSettings(_message);

            helpProvider1.HelpNamespace = Path.Combine(WOTHelper.GetEXEPath(), "Help", "WoT_Stats.chm");

            helpProvider1.SetHelpNavigator(this, HelpNavigator.TopicId);
            helpProvider1.SetHelpKeyword(this, "520");

            ListViewSettings();
            LoadSettings();
        }
예제 #7
0
        private string TierEfficiency(WOTStats stats, WOTStats prevStats)
        {
            TankTypeDescription tankTypes = new TankTypeDescription(_message);
            string html = @"<table class=o width=100%>
                                    <thead>
                                    </thead>
                                    <tbody>
                                    <tr>
                                        <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_TIER", "DE", "Tier") + @"</strong></th>
                                        <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_TANKCOUNT", "DE", "Tank Count") + @"</strong></th>
                                        <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_BATTLES", "DE", "Battles") + @"</strong></th>
                                        <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_DELTA", "DE", "Delta") + @"</strong></th>
                                        <th align=center><strong>" + Translations.TranslationGet("STR_WN7_Caption", "DE", "WN7") + @"</strong></th>
                                        <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_DELTA", "DE", "Delta") + @"</strong></th>
                                    </tr>";

            for (int i = 1; i <= 10; i++)
            {

                double frags = (from x in stats.tanks
                                where x.Tier == i
                                select x.Data.Frags).Sum();
                double victories = (from x in stats.tanks
                                    where x.Tier == i
                                    select x.Data.Victories).Sum();
                double victoriesPercentage = (from x in stats.tanks
                                              where x.Tier == i
                                              select x.Data.VictoryPercentage).Sum();
                double damage = (from x in stats.tanks
                                 where x.Tier == i
                                 select x.Data.DamageDealt).Sum();
                double damageAssistedRadio = (from x in stats.tanks
                                 where x.Tier == i
                                  select x.Data.DamageAssistedRadio).Sum();
                double damageAssistedTrack = (from x in stats.tanks
                                 where x.Tier == i
                                 select x.Data.DamageAssistedTracks).Sum();
                double spotted = (from x in stats.tanks
                                  where x.Tier == i
                                  select x.Data.Spotted).Sum();
                double defence = (from x in stats.tanks
                                  where x.Tier == i
                                  select x.Data.DefencePoints).Sum();
                double capture = (from x in stats.tanks
                                  where x.Tier == i
                                  select x.Data.CapturePoints).Sum();
                double battles = (from x in stats.tanks
                                  where x.Tier == i
                                  select x.Data.BattlesCount).Sum();

                double tanksPerTier = stats.tanks.Where(x => x.Tier == i).Count();

                RatingStructure ratingStructs = new RatingStructure();
                ratingStructs.countryID = 0;
                ratingStructs.tankID = 0;
                ratingStructs.tier = stats.AverageTier;
                ratingStructs.globalTier = ratingStructs.tier;

                ratingStructs.singleTank = false;

                ratingStructs.battlesCount = Convert.ToInt32(battles);
                ratingStructs.battlesCount8_8 = 0;
                ratingStructs.capturePoints = capture;
                ratingStructs.defencePoints = defence;

                ratingStructs.damageAssistedRadio = damageAssistedRadio;
                ratingStructs.damageAssistedTracks = damageAssistedTrack;
                ratingStructs.damageDealt = damage;
                ratingStructs.frags = frags;
                ratingStructs.spotted = spotted;

                ratingStructs.wins=victories;
                ratingStructs.gWinRate = ratingStructs.winRate;

                double efficiency = WOTStatistics.Core.Ratings.GetRatingWN7(ratingStructs).Value;

                //double efficiency = -64323; //ScriptWrapper.GetEFFValue(battles, damage, i, frags, spotted, capture, defence, victoriesPercentage, true, stats.AverageTier, stats.AverageDefencePoints, stats.BattlesCount, damageAssistedRadio, damageAssistedTrack);

                double prevFrags = (from x in prevStats.tanks
                                    where x.Tier == i
                                    select x.Data.Frags).Sum();
                double prevVictories = (from x in prevStats.tanks
                                        where x.Tier == i
                                        select x.Data.Victories).Sum();
                double prevVictoriesPercentage = (from x in prevStats.tanks
                                                  where x.Tier == i
                                                  select x.Data.VictoryPercentage).Sum();
                double prevDamage = (from x in prevStats.tanks
                                     where x.Tier == i
                                     select x.Data.DamageDealt).Sum();
                double prevDamageAssistedRadio = (from x in prevStats.tanks
                                     where x.Tier == i
                                     select x.Data.DamageAssistedRadio).Sum();
                double prevDamageAssistedTrack = (from x in prevStats.tanks
                                     where x.Tier == i
                                     select x.Data.DamageAssistedTracks).Sum();
                double prevSpotted = (from x in prevStats.tanks
                                      where x.Tier == i
                                      select x.Data.Spotted).Sum();
                double prevDefence = (from x in prevStats.tanks
                                      where x.Tier == i
                                      select x.Data.DefencePoints).Sum();
                double prevCapture = (from x in prevStats.tanks
                                      where x.Tier == i
                                      select x.Data.CapturePoints).Sum();
                double prevBattles = (from x in prevStats.tanks
                                      where x.Tier == i
                                      select x.Data.BattlesCount).Sum();
                //double prevEfficiency = -6343; //ScriptWrapper.GetEFFValue(prevBattles, prevDamage, i, prevFrags, prevSpotted, prevCapture, prevDefence, prevVictoriesPercentage, true, stats.AverageTier, stats.AverageDefencePoints, stats.BattlesCount, prevDamageAssistedRadio, prevDamageAssistedTrack);
                //double prevEfficiency = ScriptWrapper.GetEFFValue(prevBattles, prevDamage, i, prevFrags, prevSpotted, prevCapture, prevDefence, (prevVictories / prevBattles) * 100, true, stats.AverageTier, stats.AverageDefencePoints, stats.BattlesCount);

                ratingStructs.countryID = 0;
                ratingStructs.tankID = 0;
                ratingStructs.tier = stats.AverageTier;
                ratingStructs.globalTier = ratingStructs.tier;

                ratingStructs.singleTank = false;

                ratingStructs.battlesCount = Convert.ToInt32(prevBattles);
                ratingStructs.battlesCount8_8 = 0;
                ratingStructs.capturePoints = prevCapture;
                ratingStructs.defencePoints = prevDefence;

                ratingStructs.damageAssistedRadio = prevDamageAssistedRadio;
                ratingStructs.damageAssistedTracks = prevDamageAssistedTrack;
                ratingStructs.damageDealt = prevDamage;
                ratingStructs.frags = prevFrags;
                ratingStructs.spotted = prevSpotted;

                ratingStructs.wins=prevVictories;
                ratingStructs.gWinRate = ratingStructs.winRate;

                double prevEfficiency = WOTStatistics.Core.Ratings.GetRatingWN7(ratingStructs).Value;

                //var answer = stats.tanks.Where(x => x.Tier == i).Select(x => new { tankid = x.CountryID + "_" + x.TankID, Tier = x.Tier, TotalEff = x.Data.BattlesCount * x.Efficiency }).Sum(y => y.TotalEff) / stats.tanks.Where(x => x.Tier == i).Sum(y => y.Data.BattlesCount);
                //var answer = stats.tanks.Where(x => x.Tier == i).Select(x => new { tankid = x.CountryID + "_" + x.TankID, Tier = x.Tier, TotalEff = x.Data.BattlesCount * x.Efficiency }).Sum(y => y.TotalEff);
                //var answer = stats.tanks.Where(x => x.Tier == i).Select(x => new { tankid = x.CountryID + "_" + x.TankID, Tier = x.Tier, TotalEff = x.Data.BattlesCount * x.Efficiency });
                //var answer = stats.tanks.Where(x => x.Tier == i).Select(x => new { tankid = x.CountryID + "_" + x.TankID, Tier = x.Tier, Battles = x.Data.BattlesCount, Eff = x.Efficiency });

                //<td class='td-1' align=right width=auto>" + WOTHelper.FormatNumberToString((stats.tanks.Where(x => x.Tier == i).Sum(y => y.Efficiency) / stats.tanks.Where(x => x.Tier == i).Count()), 2) + @"</td>

                //<td class='td-1' align=right width=auto>" + GetDelta((delta.tanks.Where(x => x.Tier == i).Sum(y => y.Efficiency) / delta.tanks.Where(x => x.Tier == i).Count()), "", 2) + @"</td>

                html += @"<tr>
                             <td class='td-1' align=center width=auto>" + GetRoman(i) + @"</td>
                             <td class='td-1' align=center width=auto>" + WOTHelper.FormatNumberToString(tanksPerTier, 0) + @"</td>
                             <td class='td-1' align=center width=auto>" + WOTHelper.FormatNumberToString(battles, 0) + @"</td>
                             <td class='td-1' align=center width=auto>" + GetDelta(battles - prevBattles, "", 0) + @"</td>
                             <td class='td-1' align=right width=auto>" + WOTHelper.FormatNumberToString(efficiency, 2) + @"</td>

                            <td class='td-1' align=right width=auto>" + GetDelta(efficiency - prevEfficiency, "", 2) + @"</td>
                          </tr>";
            }
            //
            html += @"</tbody>
                                </table>";
            return html;
        }
예제 #8
0
        private string TankTypeStats(WOTStats stats, WOTStats prevStats, WOTStatsDelta delta)
        {
            using (TankTypeDescription tankTypes = new TankTypeDescription(_message))
            {
                string html = @"<table class=o width=100%>
                                                <thead>
                                                </thead>
                                                <tbody>
                                                <tr>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_VEHICLECLASS", "DE", "Vehicle Class") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_BATTLES", "DE", "Battles") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_DELTA", "DE", "Delta") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_CONT_VICTORIES", "DE", "Victories") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_DELTA", "DE", "Delta") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_CONT_DEFEATS", "DE", "Defeats") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_DELTA", "DE", "Delta") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_CONT_DRAWS", "DE", "Draws") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_DELTA", "DE", "Delta") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_LASTPLAY", "DE", "Last Played") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_CONT_KILLS", "DE", "Kills") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_DELTA", "DE", "Delta") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_CONT_DMGCAUSED", "DE", "Damage Dealt") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_DELTA", "DE", "Delta") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_CONT_DMGASSRADIO", "DE", "Damage Assisted Radio") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_DELTA", "DE", "Delta") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_CONT_DMGASSTRACK", "DE", "Damage Assisted Track") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_DELTA", "DE", "Delta") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_CONT_DMGREC", "DE", "Damage Received") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_DELTA", "DE", "Delta") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("STR_WN7_Caption", "DE", "WN7") + @"</strong></th>
                                                    <th align=center><strong>" + Translations.TranslationGet("HTML_HEAD_DELTA", "DE", "Delta") + @"</strong></th>
                                                </tr>";
                foreach (KeyValuePair<string, string> tankType in tankTypes)
                {
                    double tier = 0;
                    for (int i = 1; i <= 10; i++)
                    {
                        double var = (from x in stats.tanks
                                      where x.Tier == i && x.TankClass == tankType.Key
                                      select x.Data.BattlesCount).Sum() * i;
                        tier += var;
                    }
                    double frags = (from x in stats.tanks
                                    where x.TankClass == tankType.Key
                                    select x.Data.Frags).Sum();
                    double victories = (from x in stats.tanks
                                        where x.TankClass == tankType.Key
                                        select x.Data.Victories).Sum();
                    double defeats = (from x in stats.tanks
                                      where x.TankClass == tankType.Key
                                      select x.Data.Defeats).Sum();
                    double draws = (from x in stats.tanks
                                    where x.TankClass == tankType.Key
                                    select x.Data.Draws).Sum();
                    double damage = (from x in stats.tanks
                                     where x.TankClass == tankType.Key
                                     select x.Data.DamageDealt).Sum();
                    double damageAssistedRadio = (from x in stats.tanks
                                     where x.TankClass == tankType.Key
                                    select x.Data.DamageAssistedRadio).Sum();
                    double damageAssistedTrack = (from x in stats.tanks
                                     where x.TankClass == tankType.Key
                                     select x.Data.DamageAssistedTracks).Sum();
                    double damageReceived = (from x in stats.tanks
                                             where x.TankClass == tankType.Key
                                             select x.Data.DamageReceived).Sum();
                    double spotted = (from x in stats.tanks
                                      where x.TankClass == tankType.Key
                                      select x.Data.Spotted).Sum();
                    double defence = (from x in stats.tanks
                                      where x.TankClass == tankType.Key
                                      select x.Data.DefencePoints).Sum();
                    double capture = (from x in stats.tanks
                                      where x.TankClass == tankType.Key
                                      select x.Data.CapturePoints).Sum();
                    double battles = (from x in stats.tanks
                                      where x.TankClass == tankType.Key
                                      select x.Data.BattlesCount).Sum();
                    //double efficiency = (frags * (350.0 - (Math.Round(tier / battles, 2)) * 20.0) + damage * (0.2 + 1.5 / (Math.Round(tier / battles, 2))) + 200.0 * spotted + 150.0 * defence + 150.0 * capture) / battles;
                    //double efficiency = ((damage / battles) * (10 / (Math.Round(tier / battles, 2) + 2)) * (0.23 + 2 * Math.Round(tier / battles, 2) / 100)) + ((frags / battles) * 250) + ((spotted / battles) * 150) + ((Math.Log((capture / battles) + 1, 1.732)) * 150) + ((defence / battles) * 150);

                    RatingStructure ratingStructs = new RatingStructure();
                    ratingStructs.countryID =0;
                    ratingStructs.tankID = 0;
                    ratingStructs.tier = tier;
                    ratingStructs.globalTier = tier;

                    ratingStructs.singleTank = false;

                    ratingStructs.battlesCount = Convert.ToInt32(battles);
                    ratingStructs.battlesCount8_8 = 0;
                    ratingStructs.capturePoints = capture;
                    ratingStructs.defencePoints = defence;

                    ratingStructs.damageAssistedRadio = damageAssistedRadio;
                    ratingStructs.damageAssistedTracks = damageAssistedTrack;
                    ratingStructs.damageDealt = damage;
                    ratingStructs.frags = frags;
                    ratingStructs.spotted = spotted;

                    ratingStructs.wins=victories;
                    ratingStructs.gWinRate = ratingStructs.winRate;

                    double efficiency = WOTStatistics.Core.Ratings.GetRatingWN7(ratingStructs).Value;

                        //ScriptWrapper.GetEFFValue(battles, damage, Math.Round(tier / battles, 2), frags, spotted, capture, defence, (victories / battles) * 100, true, stats.AverageTier, stats.AverageDefencePoints, stats.BattlesCount, damageAssistedRadio, damageAssistedTrack);
                    //double delTier = 0;
                    //for (int i = 1; i <= 10; i++)
                    //{
                    //double delVar = (from x in delta.tanks
                    //                 where x.Tier == i && x.TankClass == tankType.Key
                    //                 select x.Data.BattlesCount).Sum() * i;
                    //delTier += delVar;
                    //}
                    //double delFrags = (from x in delta.tanks
                    //                   where x.TankClass == tankType.Key
                    //                   select x.Data.Frags).Sum();
                    //double delDamage = (from x in delta.tanks
                    //                    where x.TankClass == tankType.Key
                    //                    select x.Data.DamageDealt).Sum();
                    //double delSpotted = (from x in delta.tanks
                    //                     where x.TankClass == tankType.Key
                    //                     select x.Data.Spotted).Sum();
                    //double delDefence = (from x in delta.tanks
                    //                     where x.TankClass == tankType.Key
                    //                     select x.Data.DefencePoints).Sum();
                    //double delCapture = (from x in delta.tanks
                    //                     where x.TankClass == tankType.Key
                    //                     select x.Data.CapturePoints).Sum();
                    //double delBattles = (from x in delta.tanks
                    //                     where x.TankClass == tankType.Key
                    //                     select x.Data.BattlesCount).Sum();

                    double prevTier = 0;
                    for (int i = 1; i <= 10; i++)
                    {
                        double prevVar = (from x in prevStats.tanks
                                          where x.Tier == i && x.TankClass == tankType.Key
                                          select x.Data.BattlesCount).Sum() * i;
                        prevTier += prevVar;
                    }
                    double prevFrags = (from x in prevStats.tanks
                                        where x.TankClass == tankType.Key
                                        select x.Data.Frags).Sum();
                    double prevVictories = (from x in prevStats.tanks
                                            where x.TankClass == tankType.Key
                                            select x.Data.Victories).Sum();
                    double prevDefeats = (from x in prevStats.tanks
                                          where x.TankClass == tankType.Key
                                          select x.Data.Defeats).Sum();
                    double prevDraws = (from x in prevStats.tanks
                                        where x.TankClass == tankType.Key
                                        select x.Data.Draws).Sum();
                    double prevDamage = (from x in prevStats.tanks
                                         where x.TankClass == tankType.Key
                                         select x.Data.DamageDealt).Sum();
                    double prevDamageAssistedRadio = (from x in prevStats.tanks
                                         where x.TankClass == tankType.Key
                                         select x.Data.DamageAssistedRadio).Sum();
                    double prevDamageAssistedTrack = (from x in prevStats.tanks
                                         where x.TankClass == tankType.Key
                                         select x.Data.DamageAssistedTracks).Sum();
                    double prevDamageReceived = (from x in prevStats.tanks
                                                 where x.TankClass == tankType.Key
                                                 select x.Data.DamageReceived).Sum();
                    double prevSpotted = (from x in prevStats.tanks
                                          where x.TankClass == tankType.Key
                                          select x.Data.Spotted).Sum();
                    double prevDefence = (from x in prevStats.tanks
                                          where x.TankClass == tankType.Key
                                          select x.Data.DefencePoints).Sum();
                    double prevCapture = (from x in prevStats.tanks
                                          where x.TankClass == tankType.Key
                                          select x.Data.CapturePoints).Sum();
                    double prevBattles = (from x in prevStats.tanks
                                          where x.TankClass == tankType.Key
                                          select x.Data.BattlesCount).Sum();
                    // double delEfficiency = ((frags - delFrags) * (350.0 - (Math.Round((tier - delTier) / (battles - delBattles), 2)) * 20.0) + (damage - delDamage) * (0.2 + 1.5 / (Math.Round((tier - delTier) / (battles - delBattles), 2))) + 200.0 * (spotted - delSpotted) + 150.0 * (defence - delDefence) + 150.0 * (capture - delCapture)) / (battles - delBattles);
                    //double delEfficiency = ((prevDamage / prevBattles) * (10 / (Math.Round(prevTier / prevBattles, 2) + 2)) * (0.23 + 2 * Math.Round(prevTier / prevBattles, 2) / 100)) + ((prevFrags / prevBattles) * 250) + ((prevSpotted / prevBattles) * 150) + ((Math.Log((prevCapture / prevBattles) + 1, 1.732)) * 150) + ((prevDefence / prevBattles) * 150);
                    //EffCalcProperties f = new EffCalcProperties(DateTime.Now) { battles = 1, winRate = 50 };

                    ratingStructs.countryID = 0;
                    ratingStructs.tankID = 0;
                    ratingStructs.tier = prevTier;
                    ratingStructs.globalTier = prevTier;

                    ratingStructs.singleTank = false;

                    ratingStructs.battlesCount = Convert.ToInt32(prevBattles);
                    ratingStructs.battlesCount8_8 = 0;
                    ratingStructs.capturePoints = prevCapture;
                    ratingStructs.defencePoints = prevDefence;

                    ratingStructs.damageAssistedRadio = prevDamageAssistedRadio;
                    ratingStructs.damageAssistedTracks = prevDamageAssistedTrack;
                    ratingStructs.damageDealt = prevDamage;
                    ratingStructs.frags = prevFrags;
                    ratingStructs.spotted = prevSpotted;

                    ratingStructs.wins= prevVictories;
                    ratingStructs.gWinRate = ratingStructs.winRate;

                    double prevEfficiency = WOTStatistics.Core.Ratings.GetRatingWN7(ratingStructs).Value;

                    //double prevEfficiency = -356; //ScriptWrapper.GetEFFValue(prevBattles, prevDamage, Math.Round(prevTier / prevBattles, 2), prevFrags, prevSpotted, prevCapture, prevDefence, (prevVictories / prevBattles) * 100, true, prevStats.AverageTier, prevStats.AverageDefencePoints, stats.BattlesCount, prevDamageAssistedRadio, prevDamageAssistedTrack);
                    html += @"
                                                    <tr>
                                                        <td class='td-1'  align=leff>" + tankType.Value + @"</td>
                                                        <td class='td-1'  align=right>" + WOTHelper.FormatNumberToString(battles, 0) + @"</td>
                                                        <td class='td-1'  align=right>" + GetDelta(battles - prevBattles, "", 0) + @"</td>
                                                        <td class='td-1'  align=right>" + WOTHelper.FormatNumberToString(victories, 0) + @"</td>
                                                        <td class='td-1'  align=right>" + WOTHelper.FormatNumberToString(victories - prevVictories, 0) + @" <span style='white-space: nowrap;'>(" + GetDelta(Math.Round((victories / battles * 100) - (prevVictories / prevBattles * 100), 2), "%", 2) + ")</span>" + @"</td>
                                                        <td class='td-1'  align=right>" + WOTHelper.FormatNumberToString(defeats, 0) + @"</td>
                                                        <td class='td-1'  align=right>" + WOTHelper.FormatNumberToString(defeats - prevDefeats, 0) + @" <span style='white-space: nowrap;'>(" + GetDelta(Math.Round((defeats / battles * 100) - (prevDefeats / prevBattles * 100), 2), "%", 2, true) + ")</span>" + @"</td>
                                                        <td class='td-1'  align=right>" + WOTHelper.FormatNumberToString(draws, 0) + @"</td>
                                                        <td class='td-1'  align=right>" + WOTHelper.FormatNumberToString(draws - prevDraws, 0) + @" <span style='white-space: nowrap;'>(" + GetDelta(Math.Round((draws / battles * 100) - (prevDraws / prevBattles * 100), 2), "%", 2, true) + ")</span>" + "</td>";
                    try
                    {
                        html += @"<td class='td-1'  align=right>" + stats.tanks.Where(x => x.TankClass == tankType.Key).Max(y => y.Updated_Friendly).ToString(UserSettings.DateFormat + (UserSettings.TimeStamp ? " " + UserSettings.TimeFormat : "")) + "</td>";
                    }
                    catch
                    {
                        html += @"<td class='td-1'  align=right> </td>";
                    }
                    html += @" <td class='td-1'  align=right>" + WOTHelper.FormatNumberToString(frags, 0) + @"</td>
                                        <td class='td-1'  align=right>" + GetDelta(Math.Round(frags - prevFrags, 2), "", 0) + @"</td>
                                        <td class='td-1'  align=right>" + WOTHelper.FormatNumberToString(damage, 0) + @"</td>
                                        <td class='td-1'  align=right>" + GetDelta(Math.Round(damage - prevDamage, 2), "", 0) + @"</td>
                                        <td class='td-1'  align=right>" + WOTHelper.FormatNumberToString(damageAssistedRadio, 0) + @"</td>
                                        <td class='td-1'  align=right>" + GetDelta(Math.Round(damageAssistedRadio - prevDamageAssistedTrack, 2), "", 0) + @"</td>
                                        <td class='td-1'  align=right>" + WOTHelper.FormatNumberToString(damageAssistedRadio, 0) + @"</td>
                                        <td class='td-1'  align=right>" + GetDelta(Math.Round(damageAssistedTrack - prevDamageAssistedTrack, 2), "", 0) + @"</td>
                                        <td class='td-1'  align=right>" + WOTHelper.FormatNumberToString(damageReceived, 0) + @"</td>
                                        <td class='td-1'  align=right>" + GetDelta(Math.Round(damageReceived - prevDamageReceived, 2), "", 0) + @"</td>
                                        <td class='td-1'  align=right>" + WOTHelper.FormatNumberToString(Math.Round(efficiency, 2), 2) + @"</td>
                                        <td class='td-1'  align=right>" + GetDelta(Math.Round(efficiency, 2) - Math.Round(prevEfficiency, 2), "", 2) + @"</td>
                                    </tr>";
                }
                html += @"</tbody>
                                            </table>";
                return html;
            }
        }
예제 #9
0
        private string TankInfo(Tank tank)
        {
            string html = @"  <Table class='b-gray-text' width=100%>
                                <Thead>
                                    <tr>
                                        <td width=10%>" + TankImageLarge(tank.CountryID, tank.TankID, tank.Tank_Description) + @"</td>" +
                                        "<th width=80% align=center valign=middle><font size=" + (UserSettings.HTMLHeaderFont + 2) + @"px>(" + GetRoman(tank.Tier) + ") " + tank.Tank_Description + @"</font></th>
                                        <td class='" + CountryFlagFill(tank.CountryID) + @"' width=10%>" + MasterBadgeImage(tank.Special.MarkOfMastery) + @"</td>
                                    </tr>
                                </Thead>
                                <Tbody>
                                <Tbody>
                                </Table>

                               <Table class='b-gray-text' width=100%>
                                <Thead>
                                    <tr>
                                        <th width = 50% align=Center></th>
                                        <th width = 50% align=center></th>
                                    </tr>
                                </Thead>
                                <Tbody>
                                  <tr>
                                        <td  class='td-1' valign=top>
                                            <table width=100%>
                                                <thead>
                                                </thead>
                                                <tbody>
                                                    <tr>
                                                        <td  class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_HEAD_BATTLES", "DE", "Battles") + @"</strong>
                                                        </td>
                                                        <td  class='td-1' align=center>
                                                            " + WOTHelper.FormatNumberToString(tank.Data.BattlesCount, 0) + @"
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td  class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_CONT_VICTORIES", "DE", "Victories") + @"</strong>
                                                        </td>
                                                        <td  class='td-1' align=center>
                                                            " + WOTHelper.FormatNumberToString(tank.Data.Victories, 0) + " (" + WOTHelper.FormatNumberToString(Math.Round(tank.Data.VictoryPercentage, 2), 2) + @"%)
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td  class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_CONT_DEFEATS", "DE", "Defeats") + @"</strong>
                                                        </td>
                                                        <td  class='td-1' align=center>
                                                            " + WOTHelper.FormatNumberToString(tank.Data.Defeats, 0) + " (" + WOTHelper.FormatNumberToString(Math.Round(tank.Data.LossesPercentage, 2), 2) + @"%)
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td  class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_CONT_DRAWS", "DE", "Draws") + @"</strong>
                                                        </td>
                                                        <td  class='td-1' align=center>
                                                            " + WOTHelper.FormatNumberToString(tank.Data.Draws, 0) + " (" + WOTHelper.FormatNumberToString(Math.Round(tank.Data.DrawsPercentage, 2), 2) + @"%)
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td  class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_SURVIVED", "DE", "Survived") + @"</strong>
                                                        </td>
                                                        <td  class='td-1' align=center>
                                                            " + WOTHelper.FormatNumberToString(tank.Data.Survived, 0) + " (" + WOTHelper.FormatNumberToString(Math.Round((double)tank.Data.SurvivedPercentage, 2), 2) + @"%)
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td  class='td-1' colspan=2>
                                                            <table class='b-gray-text' width=100%>
                                                                <thead/>
                                                                    <tr>
                                                                        <td  class='td-1' align=center>" + Translations.TranslationGet("HTML_SHOTS", "DE", "Shots") + @"</td>
                                                                        <td  class='td-1' align=center>" + Translations.TranslationGet("HTML_HITS", "DE", "Hits") + @"</td>
                                                                        <td  class='td-1' align=center>" + Translations.TranslationGet("HTML_CONT_HITRATIO", "DE", "Accuracy") + @"</td>
                                                                        <td  class='td-1' align=center>" + Translations.TranslationGet("HTML_MAXKILLS", "DE", "Max Kills") + @"</td>
                                                                        <td  class='td-1' align=center>" + Translations.TranslationGet("HTML_COMP_KILLPERBATTLE", "DE", "Kills/Battles") + @"</td>
                                                                        <td  class='td-1' align=center>" + Translations.TranslationGet("HTML_COMP_KILLPERDEATH", "DE", "Kills/Deaths") + @"</td>
                                                                    </tr>
                                                                <tbody>
                                                                    <tr>
                                                                        <td  class='td-1' align=center>" + WOTHelper.FormatNumberToString(tank.Data.Shots, 0) + @"</td>
                                                                        <td  class='td-1' align=center>" + WOTHelper.FormatNumberToString(tank.Data.Hits, 0) + @"</td>
                                                                        <td  class='td-1' align=center>" + WOTHelper.FormatNumberToString(Math.Round(tank.Data.Accuracy, 2), 2) + @" %</td>
                                                                        <td class='td-1' align=Center>" + WOTHelper.FormatNumberToString(tank.Data.MaxFrags, 0) + @"</td>
                                                                        <td align=Center> " + WOTHelper.FormatNumberToString(((double)tank.Data.Frags / (double)tank.Data.BattlesCount), 2) + @"
                                                                        <td align=Center> " + WOTHelper.FormatNumberToString(((double)tank.Data.Frags / ((double)tank.Data.BattlesCount - (double)tank.Data.Survived)), 2) + @"
                                                                    </tr>
                                                                </tbody>
                                                            </table>
                                                        </td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                        </td>
                                        <td  class='td-1' valign=top>
                                            <table class='b-gray-text' width=100%>
                                                <thead>
                                                </thead>
                                                <tbody>
                                                   <tr>
                                                        <td  class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_CONT_EFFICIENCY", "DE", "Efficiency") + @"</strong>
                                                        </td>
                                                        <td class='td-1' align=center>
                                                            <strong>" + "" + EfficiencyDescription(tank.RatingEff) + " - " + WOTHelper.FormatNumberToString(Math.Round(tank.RatingEff, 2), 2) + @"</strong>
                                                        </td>
                                                    </tr>
                                                   <tr>
                                                        <td  class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("STR_BR_Caption", "DE", "Battle Rating") + @"</strong>
                                                        </td>
                                                        <td class='td-1' align=center>
                                                            <strong>" + "" + EfficiencyDescription(tank.RatingBR) + " - " + WOTHelper.FormatNumberToString(Math.Round(tank.RatingBR, 2), 2) + @"</strong>
                                                        </td>
                                                    </tr>
                                                   <tr>
                                                        <td  class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("STR_WN7_Caption", "DE", "WN7") + @"</strong>
                                                        </td>
                                                        <td class='td-1' align=center>
                                                            <strong>" + "" + WN7ColorScaleDescription(tank.RatingWN7) + " - " + WOTHelper.FormatNumberToString(Math.Round(tank.RatingWN7, 5), 2) + @"</strong>
                                                        </td>
                                                    </tr>
                                                   <tr>
                                                        <td  class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("STR_WN8_Caption", "DE", "WN8") + @"</strong>
                                                        </td>
                                                        <td class='td-1' align=center>
                                                            <strong>" + "" + WN8ColorScaleDescription(tank.RatingWN8) + " - " + WOTHelper.FormatNumberToString(Math.Round(tank.RatingWN8, 2), 2) + @"</strong>
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_CONT_KILLS", "DE", "Kills") + @"</strong>
                                                        </td>
                                                        <td class='td-1' align=center>
                                                            " + WOTHelper.FormatNumberToString(tank.Data.Frags, 0) + @"
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_CONT_DMGCAUSED", "DE", "Damage Caused") + @"</strong>
                                                        </td>
                                                        <td class='td-1' align=center>
                                                            " + WOTHelper.FormatNumberToString(tank.Data.DamageDealt, 0) + @"
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_CONT_CAPPOINTS", "DE", "Capture Points") + @"</strong>
                                                        </td>
                                                        <td class='td-1' align=center>
                                                            " + WOTHelper.FormatNumberToString(tank.Data.CapturePoints, 0) + @"
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_CONT_DEFPOINTS", "DE", "Defense Points") + @"</strong>
                                                        </td>
                                                        <td class='td-1' align=center>
                                                            " + WOTHelper.FormatNumberToString(tank.Data.DefencePoints, 0) + @"
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_CONT_DETECTED", "DE", "Detected") + @"</strong>
                                                        </td>
                                                        <td class='td-1' align=center>
                                                            " + WOTHelper.FormatNumberToString(tank.Data.Spotted, 0) + @"
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_BATTLETIME", "DE", "Battle Time") + @"</strong>
                                                        </td>
                                                        <td class='td-1' align=center>
                                                            " + FormatBattleTime(tank.Data.BattleLifeTime_Friendly) + @"
                                                        </td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                        </td>
                                  </tr>
                                  <tr>
                                        <td class='td-1' valign=top>
                                            <table class='b-gray-text' width=100%>
                                                <thead>
                                                </thead>
                                                <tbody>
                                                    <tr>
                                                        <td class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_EXPER", "DE", "Experience") + @"</strong>
                                                        </td>
                                                        <td class='td-1' align=center>
                                                            " + WOTHelper.FormatNumberToString(tank.Data.Xp, 0) + @"
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_COMP_MAXEXP", "DE", "Maximum Experience") + @"</strong>
                                                        </td>
                                                        <td class='td-1' align=center>
                                                            " + WOTHelper.FormatNumberToString(tank.Data.MaxXp, 0) + @"
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_COMP_AVGEXP", "DE", "Average Experience") + @"</strong>
                                                        </td>
                                                        <td class='td-1' align=center>
                                                            " + WOTHelper.FormatNumberToString((tank.Data.Xp / (tank.Data.BattlesCount == 0 ? 1 : tank.Data.BattlesCount)), 2) + @"
                                                        </td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                        </td>
                                        <td class='td-1' valign=top>
                                            <table class='b-gray-text' width=100%>
                                                <thead>
                                                </thead>
                                                <tbody>
                                                   <tr>
                                                        <td class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_CONT_DMGREC", "DE", "Damage Received") + @"</strong>
                                                        </td>
                                                        <td class='td-1' align=center>
                                                            " + WOTHelper.FormatNumberToString(tank.Data.DamageReceived, 0) + @"
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_CONT_DMGRATIO", "DE", "Damage Ratio") + @"</strong>
                                                        </td>
                                                        <td class='td-1' align=center>
                                                            " + WOTHelper.FormatNumberToString(tank.Data.DamageRatio, 2) + @"
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td class='td-1' align=center>
                                                            <strong>" + Translations.TranslationGet("HTML_COMP_AVGDAM", "DE", "Average Damage") + @"</strong>
                                                        </td>
                                                        <td class='td-1' align=center>
                                                            " + WOTHelper.FormatNumberToString(Math.Round(tank.Data.AverageDamageDealt, 2), 2) + @"
                                                        </td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                        </td>
                                  </tr>
                                <Tbody>
                                </Table>

                                 <Table class='b-gray-text' width=100%>
                                <Thead>
                                    <tr>
                                        <th width = 5% align=center colspan=5>" + Translations.TranslationGet("HTML_TANKINFO_KILLBCLASS", "DE", "Kills By Class (Combined Battle Modes)") + @"</th>
                                    </tr>
                                    <tr>
                                       <td class='td-1' align=center>" + Translations.TranslationGet("HTML_HEAD_VEHICLECLASS", "DE", "Vehicle Class") + @"</td>
                                       <td class='td-1' align=center>" + Translations.TranslationGet("HTML_CONT_KILLS", "DE", "Kills") + @"</td>
                                   </tr>
                                </Thead>
                                <Tbody>";
            using (TankTypeDescription tankTypes = new TankTypeDescription(_message))
            {
                foreach (KeyValuePair<string, string> tankType in tankTypes)
                {
                    html += @"<tr>
                                                                <td><strong> " + tankType.Value + @"<strong>
                                                                <td class='td-1' align=center>" + tank.FragList.Where(a => a.TankClass == tankType.Key).Sum(y => y.frags) + @"<td>
                                                              </tr>";
                }
            }

            html += @"<Tbody>
                                </Table>

                                <Table class='b-gray-text' width=100%>
                                <Thead>
                                    <tr>
                                        <th align=center colspan=10>" + Translations.TranslationGet("HTML_TANKINFO_KILLS", "DE", "Kills (Combined Battle Modes)") + @"</th>
                                    </tr>
                                </Thead>
                                <Tbody> ";
            int x = 0;
            foreach (FragCount item in tank.FragList.OrderByDescending(y => y.Tier))
            {
                if (x == 0)
                {
                    html += "<tr>";
                }

                html += String.Format(@"<td class='" + CountryFlag(item.CountryID) + @" td-armory-icon'>
                                                                        <div class='wrapper'>
                                                                            <span class='level'><a class='b-gray-text'>" + GetRoman(item.Tier) + @"</a></span>
                                                                            <a>" + TankImage(item.CountryID, item.TankID, item.Tank_Description) + @"</a>
                                                                        </div>
                                                                    </td>
                                                                    <td valign=left>{0} : <strong>{1}</strong></td>", item.Tank_Description, item.frags);
                x++;

                if (x == 5)
                {
                    html += "</tr>";
                    x = 0;
                }
            }

            html += @"<Tbody>
                                </Table>";

            return html;
        }