示例#1
0
        private void PlotUnitKills(PlotModel m)
        {
            if (EmpiresUnitKills == null)
            {
                return;
            }

            AddXDatesAxis(m);

            LinearAxis citiesY = new LinearAxis();

            citiesY.Title    = Labels.KilledUnits;
            citiesY.Key      = "units_kills";
            citiesY.Position = AxisPosition.Right;
            m.Axes.Add(citiesY);

            long   lastKills  = -1;
            double killsValue = 0;

            foreach (var empire in EmpiresUnitKills.OrderBy(x => x.Key.UnitsKillsRank))
            {
                lastKills  = -1;
                killsValue = 0;
                OxyPlot.Series.StairStepSeries s = new OxyPlot.Series.StairStepSeries();
                s.XAxisKey = "x";
                s.YAxisKey = "units_kills";
                s.VerticalStrokeThickness = 0.2;
                s.MarkerType = MarkerType.None;
                s.Title      = string.Format("{0} ({1})", empire.Key.PlayerName, empire.Key.AlianceName);

                foreach (var hr in empire.Value.OrderBy(x => x.CreateDT.Value))
                {
                    if (DiffKillsScore)
                    {
                        if (lastKills < 0)
                        {
                            //pierwszy wynik, zaczynam od zera
                            lastKills  = hr.Score;
                            killsValue = 0;
                        }
                        else
                        {
                            killsValue = hr.Score - lastKills;
                            lastKills  = hr.Score;
                        }
                    }
                    else
                    {
                        killsValue = hr.Score;
                    }

                    s.Points.Add(DateTimeAxis.CreateDataPoint(hr.CreateDT.Value, killsValue));
                }

                m.Series.Add(s);
            }
        }
示例#2
0
        private void PlotUnitKillsBar(PlotModel m)
        {
            if (EmpiresUnitKills == null)
            {
                return;
            }

            LinearAxis yAxis = new LinearAxis();

            yAxis.Title = Labels.KilledUnits;

            if (DiffKillsScore)
            {
                yAxis.Title += " " + Labels.Difference1;
            }

            yAxis.Key                = "units_kills";
            yAxis.Position           = AxisPosition.Left;
            yAxis.MajorGridlineStyle = LineStyle.Solid;
            yAxis.MinorGridlineStyle = LineStyle.Dot;
            m.Axes.Add(yAxis);

            //daty
            var categories = new CategoryAxis();

            categories.Title    = Labels.Date;
            categories.Position = AxisPosition.Bottom;
            categories.GapWidth = 0.1;
            m.Axes.Add(categories);

            long   lastKills  = -1;
            double killsValue = 0;

            foreach (var empire in EmpiresUnitKills.OrderBy(x => x.Key.UnitsKillsRank))
            {
                lastKills  = -1;
                killsValue = 0;
                OxyPlot.Series.ColumnSeries cs = new OxyPlot.Series.ColumnSeries();
                cs.LabelFormatString = "{0}";
                cs.Title             = string.Format("{0} ({1})", empire.Key.PlayerName, empire.Key.AlianceName);
                int categoryIx = -1;

                foreach (var hr in empire.Value.OrderBy(x => x.CreateDT.Value))
                {
                    if (DiffKillsScore)
                    {
                        if (lastKills < 0)
                        {
                            //pierwszy wynik, zaczynam od zera
                            lastKills  = hr.Score;
                            killsValue = 0;
                        }
                        else
                        {
                            killsValue = hr.Score - lastKills;
                            lastKills  = hr.Score;
                        }
                    }
                    else
                    {
                        killsValue = hr.Score;
                    }

                    var serverTime = hr.CreateDT.Value.AddHours(ServerTimeDiffH);

                    if (FromDate.HasValue && serverTime >= FromDate)
                    {
                        string catName = string.Format("{0} h:{1}", serverTime.ToString("yy.MM.dd"), serverTime.ToString("HH"));
                        categoryIx = categories.Labels.IndexOf(catName);

                        if (categoryIx < 0)
                        {
                            categories.Labels.Add(catName);
                            categoryIx = categories.Labels.IndexOf(catName);
                        }

                        cs.Items.Add(new OxyPlot.Series.ColumnItem(killsValue, categoryIx));
                    }
                }

                m.Series.Add(cs);
            }
        }