Example #1
0
File: Battle.cs Project: zhxie/Ikas
 public RankedBattle(int number, DateTime startTime, double elapsedTime, Mode.Key mode, Rule.Key rule, Stage stage, List <RankedPlayer> myPlayers, List <RankedPlayer> otherPlayers, int levelAfter,
                     double estimatedRankPower, Rank.Key rankAfter, double myScore, double otherScore)
     : base(number, startTime, elapsedTime, Ikas.Class.Mode.Key.ranked_battle, mode, rule, stage, myPlayers.Cast <Player>().ToList(), otherPlayers.Cast <Player>().ToList(), levelAfter, myScore, otherScore)
 {
     EstimatedRankPower = estimatedRankPower;
     RankAfter          = rankAfter;
 }
Example #2
0
        private void ScheduleChanged()
        {
            // Fade out labels and images
            if (Depot.CurrentMode != Depot.Mode.salmon_run)
            {
                lbGrade.IsHitTestVisible = false;
                bdShiftStageBackground.IsHitTestVisible = false;
                ((Storyboard)FindResource("fade_out")).Begin(spJob);
                ((Storyboard)FindResource("fade_out")).Begin(lbMode);
            }
            ((Storyboard)FindResource("fade_out")).Begin(lbLevel);
            ((Storyboard)FindResource("fade_out")).Begin(bdStage1);
            ((Storyboard)FindResource("fade_out")).Begin(bdStage2);
            // Set schedule
            Mode.Key mode = Mode.Key.regular_battle;
            switch (Depot.CurrentMode)
            {
            case Depot.Mode.regular_battle:
            case Depot.Mode.salmon_run:
                mode = Mode.Key.regular_battle;
                break;

            case Depot.Mode.ranked_battle:
                mode = Mode.Key.ranked_battle;
                break;

            case Depot.Mode.league_battle:
                mode = Mode.Key.league_battle;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            scheduleWindow.SetSchedule(null, mode);
        }
Example #3
0
File: Battle.cs Project: zhxie/Ikas
 public LeagueBattle(int number, DateTime startTime, double elapsedTime, Mode.Key mode, Rule.Key rule, Stage stage, List <RankedPlayer> myPlayers, List <RankedPlayer> otherPlayers, int levelAfter,
                     int myEstimatedLeaguePower, int otherEstimatedLeaguePower, double leaguePoint, double maxLeaguePoint, double myScore, double otherScore)
     : base(number, startTime, elapsedTime, Ikas.Class.Mode.Key.league_battle, mode, rule, stage, myPlayers.Cast <Player>().ToList(), otherPlayers.Cast <Player>().ToList(), levelAfter, myScore, otherScore)
 {
     MyEstimatedLeaguePower    = myEstimatedLeaguePower;
     OtherEstimatedLeaguePower = otherEstimatedLeaguePower;
     LeaguePoint    = leaguePoint;
     MaxLeaguePoint = maxLeaguePoint;
 }
Example #4
0
File: Battle.cs Project: zhxie/Ikas
 public SplatfestBattle(int number, DateTime startTime, double elapsedTime, Mode.Key mode, Key splatfestMode, Rule.Key rule, Stage stage, List <Player> myPlayers, List <Player> otherPlayers, int levelAfter,
                        int myEstimatedSplatfestPower, int otherEstimatedSplatfestPower, double splatfestPower, double maxSplatfestPower, int contributionPoint, int totalContributionPoint, double myScore, double otherScore)
     : base(number, startTime, elapsedTime, Ikas.Class.Mode.Key.splatfest, mode, rule, stage, myPlayers, otherPlayers, levelAfter, myScore, otherScore)
 {
     SplatfestMode                = splatfestMode;
     MyEstimatedSplatfestPower    = myEstimatedSplatfestPower;
     OtherEstimatedSplatfestPower = otherEstimatedSplatfestPower;
     SplatfestPower               = splatfestPower;
     MaxSplatfestPower            = maxSplatfestPower;
     ContributionPoint            = contributionPoint;
     TotalContributionPoint       = totalContributionPoint;
 }
Example #5
0
        public List <ScheduledStage> GetNextStages(Mode.Key mode)
        {
            List <ScheduledStage> stages = new List <ScheduledStage>();

            foreach (ScheduledStage stage in NextStages)
            {
                if (stage.Mode == mode)
                {
                    stages.Add(stage);
                }
            }
            return(stages);
        }
Example #6
0
File: Battle.cs Project: zhxie/Ikas
 public Battle(int number, DateTime startTime, double elapsedTime, Mode.Key type, Mode.Key mode, Rule.Key rule, Stage stage, List <Player> myPlayers, List <Player> otherPlayers, int levelAfter, double myScore, double otherScore)
 {
     Number       = number;
     StartTime    = startTime;
     ElapsedTime  = elapsedTime;
     Type         = type;
     Mode         = mode;
     Rule         = rule;
     Stage        = stage;
     MyPlayers    = myPlayers;
     OtherPlayers = otherPlayers;
     LevelAfter   = levelAfter;
     MyScore      = myScore;
     OtherScore   = otherScore;
 }
Example #7
0
File: Stage.cs Project: zhxie/Ikas
 public ScheduledStage(Mode.Key mode, Rule.Key rule, Key key, string image) : base(key, image)
 {
     Mode = mode;
     Rule = rule;
 }
Example #8
0
File: Stage.cs Project: zhxie/Ikas
 public ScheduledStage(Mode.Key mode, Rule.Key rule) : base()
 {
     Mode = mode;
     Rule = rule;
 }
Example #9
0
        private void ScheduleUpdated()
        {
            if (Depot.CurrentMode != Depot.Mode.salmon_run)
            {
                ((Storyboard)FindResource("fade_in")).Begin(spBattle);
                lbLevel.IsHitTestVisible  = true;
                bdStage1.IsHitTestVisible = true;
                bdStage2.IsHitTestVisible = true;
            }
            Schedule schedule = Depot.Schedule;

            Mode.Key mode = Mode.Key.regular_battle;
            switch (Depot.CurrentMode)
            {
            case Depot.Mode.regular_battle:
            case Depot.Mode.salmon_run:
                mode = Mode.Key.regular_battle;
                break;

            case Depot.Mode.ranked_battle:
                mode = Mode.Key.ranked_battle;
                break;

            case Depot.Mode.league_battle:
                mode = Mode.Key.league_battle;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            List <ScheduledStage> scheduledStages = schedule.GetStages(mode);

            if (scheduledStages.Count > 0)
            {
                // Change UI
                if (Depot.CurrentMode != Depot.Mode.salmon_run)
                {
                    switch (mode)
                    {
                    case Mode.Key.regular_battle:
                        lbMode.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF" + Design.NeonGreen));
                        // tbStar.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF" + Design.NeonGreen));
                        break;

                    case Mode.Key.ranked_battle:
                        lbMode.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF" + Design.NeonOrange));
                        // tbStar.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF" + Design.NeonOrange));
                        break;

                    case Mode.Key.league_battle:
                        lbMode.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF" + Design.NeonRed));
                        // tbStar.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF" + Design.NeonRed));
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                    lbMode.Content = Translate(((Rule.ShortName)scheduledStages[0].Rule).ToString());
                    // Fade in label
                    ((Storyboard)FindResource("fade_in")).Begin(lbMode);
                }
                switch (scheduledStages[0].Rule)
                {
                case Rule.Key.turf_war:
                    if (Depot.Level > 0)
                    {
                        if (Depot.Level > 100)
                        {
                            tbLevel.Text = (Depot.Level - Depot.Level / 100 * 100).ToString();
                            tbStar.Text  = Translate("★", true);
                        }
                        else
                        {
                            tbLevel.Text = Depot.Level.ToString();
                            tbStar.Text  = "";
                        }
                    }
                    else
                    {
                        tbLevel.Text = Translate("--", true);
                        tbStar.Text  = "";
                    }
                    break;

                case Rule.Key.splat_zones:
                    if (Depot.SplatZonesRank > Rank.Key.s && Depot.SplatZonesRank < Rank.Key.x)
                    {
                        tbLevel.Text = Translate(Depot.SplatZonesRank.ToString());
                        tbStar.Text  = (Depot.SplatZonesRank - Rank.Key.s_plus_0).ToString();
                    }
                    else
                    {
                        tbLevel.Text = Translate(Depot.SplatZonesRank.ToString());
                        tbStar.Text  = "";
                    }
                    break;

                case Rule.Key.tower_control:
                    if (Depot.TowerControlRank > Rank.Key.s && Depot.TowerControlRank < Rank.Key.x)
                    {
                        tbLevel.Text = Translate(Depot.TowerControlRank.ToString());
                        tbStar.Text  = (Depot.TowerControlRank - Rank.Key.s_plus_0).ToString();
                    }
                    else
                    {
                        tbLevel.Text = Translate(Depot.TowerControlRank.ToString());
                        tbStar.Text  = "";
                    }
                    break;

                case Rule.Key.rainmaker:
                    if (Depot.RainmakerRank > Rank.Key.s && Depot.RainmakerRank < Rank.Key.x)
                    {
                        tbLevel.Text = Translate(Depot.RainmakerRank.ToString());
                        tbStar.Text  = (Depot.RainmakerRank - Rank.Key.s_plus_0).ToString();
                    }
                    else
                    {
                        tbLevel.Text = Translate(Depot.RainmakerRank.ToString());
                        tbStar.Text  = "";
                    }
                    break;

                case Rule.Key.clam_blitz:
                    if (Depot.ClamBlitzRank > Rank.Key.s && Depot.ClamBlitzRank < Rank.Key.x)
                    {
                        tbLevel.Text = Translate(Depot.ClamBlitzRank.ToString());
                        tbStar.Text  = (Depot.ClamBlitzRank - Rank.Key.s_plus_0).ToString();
                    }
                    else
                    {
                        tbLevel.Text = Translate(Depot.ClamBlitzRank.ToString());
                        tbStar.Text  = "";
                    }
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
                // Fade in label
                ((Storyboard)FindResource("fade_in")).Begin(lbLevel);
                // Update stages
                Stage  stage = scheduledStages[0];
                string image = FileFolderUrl.ApplicationData + stage.Image;
                try
                {
                    ImageBrush brush = new ImageBrush(new BitmapImage(new Uri(image)));
                    brush.Stretch       = Stretch.UniformToFill;
                    bdStage1.Background = brush;
                    ((Storyboard)FindResource("fade_in")).Begin(bdStage1);
                }
                catch
                {
                    // Download the image
                    Downloader downloader = new Downloader(FileFolderUrl.SplatNet + stage.Image, image, Downloader.SourceType.Schedule, Depot.Proxy);
                    DownloadHelper.AddDownloader(downloader, new DownloadCompletedEventHandler(() =>
                    {
                        ImageBrush brush    = new ImageBrush(new BitmapImage(new Uri(image)));
                        brush.Stretch       = Stretch.UniformToFill;
                        bdStage1.Background = brush;
                        ((Storyboard)FindResource("fade_in")).Begin(bdStage1);
                    }));
                }
                if (scheduledStages.Count > 1)
                {
                    Stage  stage2 = scheduledStages[1];
                    string image2 = FileFolderUrl.ApplicationData + stage2.Image;
                    try
                    {
                        ImageBrush brush = new ImageBrush(new BitmapImage(new Uri(image2)));
                        brush.Stretch       = Stretch.UniformToFill;
                        bdStage2.Background = brush;
                        ((Storyboard)FindResource("fade_in")).Begin(bdStage2);
                    }
                    catch
                    {
                        Downloader downloader = new Downloader(FileFolderUrl.SplatNet + stage2.Image, image2, Downloader.SourceType.Schedule, Depot.Proxy);
                        DownloadHelper.AddDownloader(downloader, new DownloadCompletedEventHandler(() =>
                        {
                            ImageBrush brush    = new ImageBrush(new BitmapImage(new Uri(image2)));
                            brush.Stretch       = Stretch.UniformToFill;
                            bdStage2.Background = brush;
                            ((Storyboard)FindResource("fade_in")).Begin(bdStage2);
                        }));
                    }
                }
            }
            // Change interval to mitigate server load
            if (schedule.Error == Base.ErrorType.no_error)
            {
                if ((schedule.EndTime - DateTime.UtcNow).TotalMinutes > 5)
                {
                    tmSchedule.Interval = new TimeSpan(0, 5, 0);
                }
                else if ((schedule.EndTime - DateTime.UtcNow).TotalMinutes > 1)
                {
                    tmSchedule.Interval = new TimeSpan(0, 1, 0);
                }
                else
                {
                    tmSchedule.Interval = new TimeSpan(0, 0, 15);
                }
            }
            else
            {
                tmSchedule.Interval = new TimeSpan(0, 0, 15);
            }
            // Set schedule
            scheduleWindow.SetSchedule(Depot.Schedule, mode);
        }
Example #10
0
File: Battle.cs Project: zhxie/Ikas
 public RankedXBattle(int number, DateTime startTime, double elapsedTime, Mode.Key mode, Rule.Key rule, Stage stage, List <RankedPlayer> myPlayers, List <RankedPlayer> otherPlayers, int levelAfter,
                      double estimatedXPower, double xPowerAfter, double myScore, double otherScore)
     : base(number, startTime, elapsedTime, mode, rule, stage, myPlayers.Cast <RankedPlayer>().ToList(), otherPlayers.Cast <RankedPlayer>().ToList(), levelAfter, estimatedXPower, Rank.Key.x, myScore, otherScore)
 {
     XPowerAfter = xPowerAfter;
 }
Example #11
0
File: Battle.cs Project: zhxie/Ikas
 public RegularBattle(int number, DateTime startTime, double elapsedTime, Mode.Key mode, Rule.Key rule, Stage stage, List <Player> myPlayers, List <Player> otherPlayers, int levelAfter,
                      double winMeter, double myScore, double otherScore)
     : base(number, startTime, elapsedTime, Class.Mode.Key.regular_battle, mode, rule, stage, myPlayers, otherPlayers, levelAfter, myScore, otherScore)
 {
     WinMeter = winMeter;
 }
Example #12
0
        public void SetSchedule(Schedule schedule, Mode.Key mode)
        {
            Schedule = schedule;
            Mode     = mode;
            // Fade in loading
            bdLoading.IsHitTestVisible = true;
            ((Storyboard)FindResource("fade_in")).Begin(bdLoading);
            // Fade out labels and images
            ((Storyboard)FindResource("fade_out")).Begin(imgMode);
            ((Storyboard)FindResource("fade_out")).Begin(lbMode);
            ((Storyboard)FindResource("fade_out")).Begin(lbRule);
            ((Storyboard)FindResource("fade_out")).Begin(lbTime);
            ((Storyboard)FindResource("fade_out")).Begin(stg1);
            ((Storyboard)FindResource("fade_out")).Begin(stg2);
            ((Storyboard)FindResource("fade_out")).Begin(tagNext);
            ((Storyboard)FindResource("fade_out")).Begin(lbNextRule);
            ((Storyboard)FindResource("fade_out")).Begin(lbNextTime);
            ((Storyboard)FindResource("fade_out")).Begin(stgNext1);
            ((Storyboard)FindResource("fade_out")).Begin(stgNext2);
            if (Schedule != null)
            {
                // Update current Schedule
                List <ScheduledStage> scheduledStages = Schedule.GetStages(Mode);
                if (scheduledStages.Count > 0)
                {
                    // Change UI
                    switch (Mode)
                    {
                    case Class.Mode.Key.regular_battle:
                        imgMode.Source     = (BitmapImage)FindResource("image_battle_regular");
                        tagNext.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF" + Design.NeonGreen));
                        break;

                    case Class.Mode.Key.ranked_battle:
                        imgMode.Source     = (BitmapImage)FindResource("image_battle_ranked");
                        tagNext.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF" + Design.NeonOrange));
                        break;

                    case Class.Mode.Key.league_battle:
                        imgMode.Source     = (BitmapImage)FindResource("image_battle_league");
                        tagNext.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF" + Design.NeonRed));
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                    lbMode.SetResourceReference(ContentProperty, scheduledStages[0].Mode.ToString());
                    lbRule.SetResourceReference(ContentProperty, scheduledStages[0].Rule.ToString());
                    DateTime startTime = Schedule.EndTime.AddHours(-2).ToLocalTime();
                    DateTime endTime   = Schedule.EndTime.ToLocalTime();
                    lbTime.Content = string.Format(Translate("{0}_-_{1}", true), startTime.ToString("HH:mm"), endTime.ToString("HH:mm"));
                    // Fade in labels
                    ((Storyboard)FindResource("fade_in")).Begin(imgMode);
                    ((Storyboard)FindResource("fade_in")).Begin(lbMode);
                    ((Storyboard)FindResource("fade_in")).Begin(lbRule);
                    ((Storyboard)FindResource("fade_in")).Begin(lbTime);
                    ((Storyboard)FindResource("fade_in")).Begin(tagNext);
                    // Update stages
                    Stage  stage = scheduledStages[0];
                    string image = FileFolderUrl.ApplicationData + stage.Image;
                    try
                    {
                        ImageBrush brush = new ImageBrush(new BitmapImage(new Uri(image)));
                        brush.Stretch   = Stretch.UniformToFill;
                        stg1.Background = brush;
                        stg1.SetResourceReference(StageControl.ContentProperty, stage.Id.ToString());
                        ((Storyboard)FindResource("fade_in")).Begin(stg1);
                    }
                    catch
                    {
                        // Download the image
                        Downloader downloader = new Downloader(FileFolderUrl.SplatNet + stage.Image, image, Downloader.SourceType.Schedule, Depot.Proxy);
                        DownloadHelper.AddDownloader(downloader, new DownloadCompletedEventHandler(() =>
                        {
                            ImageBrush brush = new ImageBrush(new BitmapImage(new Uri(image)));
                            brush.Stretch    = Stretch.UniformToFill;
                            stg1.Background  = brush;
                            stg1.SetResourceReference(StageControl.ContentProperty, stage.Id.ToString());
                            ((Storyboard)FindResource("fade_in")).Begin(stg1);
                        }));
                    }
                    if (scheduledStages.Count > 1)
                    {
                        Stage  stage2 = scheduledStages[1];
                        string image2 = FileFolderUrl.ApplicationData + stage2.Image;
                        try
                        {
                            ImageBrush brush = new ImageBrush(new BitmapImage(new Uri(image2)));
                            brush.Stretch   = Stretch.UniformToFill;
                            stg2.Background = brush;
                            stg2.SetResourceReference(StageControl.ContentProperty, stage2.Id.ToString());
                            ((Storyboard)FindResource("fade_in")).Begin(stg2);
                        }
                        catch
                        {
                            Downloader downloader = new Downloader(FileFolderUrl.SplatNet + stage2.Image, image2, Downloader.SourceType.Schedule, Depot.Proxy);
                            DownloadHelper.AddDownloader(downloader, new DownloadCompletedEventHandler(() =>
                            {
                                ImageBrush brush = new ImageBrush(new BitmapImage(new Uri(image2)));
                                brush.Stretch    = Stretch.UniformToFill;
                                stg2.Background  = brush;
                                stg2.SetResourceReference(StageControl.ContentProperty, stage2.Id.ToString());
                                ((Storyboard)FindResource("fade_in")).Begin(stg2);
                            }));
                        }
                    }
                }
                // Update next schedule
                List <ScheduledStage> nextScheduledStages = Schedule.GetNextStages(Mode);
                if (nextScheduledStages.Count > 0)
                {
                    // Change UI
                    lbNextRule.SetResourceReference(ContentProperty, nextScheduledStages[0].Rule.ToString());
                    TimeSpan dTime = Schedule.EndTime - DateTime.UtcNow;
                    if (dTime.Hours > 0)
                    {
                        lbNextTime.Content = string.Format(Translate("in_{0}_hour_{1}_min", true), dTime.Hours, dTime.Minutes);
                    }
                    else
                    {
                        lbNextTime.Content = string.Format(Translate("in_{0}_min", true), dTime.Minutes);
                    }
                    // Fade in labels
                    ((Storyboard)FindResource("fade_in")).Begin(lbNextRule);
                    ((Storyboard)FindResource("fade_in")).Begin(lbNextTime);
                    // Update Stages
                    Stage  stage = nextScheduledStages[0];
                    string image = FileFolderUrl.ApplicationData + stage.Image;
                    try
                    {
                        ImageBrush brush = new ImageBrush(new BitmapImage(new Uri(image)));
                        brush.Stretch       = Stretch.UniformToFill;
                        stgNext1.Background = brush;
                        stgNext1.SetResourceReference(StageControl.ContentProperty, stage.Id.ToString());
                        ((Storyboard)FindResource("fade_in")).Begin(stgNext1);
                    }
                    catch
                    {
                        // Download the image
                        Downloader downloader = new Downloader(FileFolderUrl.SplatNet + stage.Image, image, Downloader.SourceType.Schedule, Depot.Proxy);
                        DownloadHelper.AddDownloader(downloader, new DownloadCompletedEventHandler(() =>
                        {
                            ImageBrush brush    = new ImageBrush(new BitmapImage(new Uri(image)));
                            brush.Stretch       = Stretch.UniformToFill;
                            stgNext1.Background = brush;
                            stgNext1.SetResourceReference(StageControl.ContentProperty, stage.Id.ToString());
                            ((Storyboard)FindResource("fade_in")).Begin(stgNext1);
                        }));
                    }
                    if (nextScheduledStages.Count > 1)
                    {
                        Stage  stage2 = nextScheduledStages[1];
                        string image2 = FileFolderUrl.ApplicationData + stage2.Image;
                        try
                        {
                            ImageBrush brush = new ImageBrush(new BitmapImage(new Uri(image2)));
                            brush.Stretch       = Stretch.UniformToFill;
                            stgNext2.Background = brush;
                            stgNext2.SetResourceReference(StageControl.ContentProperty, stage2.Id.ToString());
                            ((Storyboard)FindResource("fade_in")).Begin(stgNext2);
                        }
                        catch
                        {
                            Downloader downloader = new Downloader(FileFolderUrl.SplatNet + stage2.Image, image2, Downloader.SourceType.Schedule, Depot.Proxy);
                            DownloadHelper.AddDownloader(downloader, new DownloadCompletedEventHandler(() =>
                            {
                                ImageBrush brush    = new ImageBrush(new BitmapImage(new Uri(image2)));
                                brush.Stretch       = Stretch.UniformToFill;
                                stgNext2.Background = brush;
                                stgNext2.SetResourceReference(StageControl.ContentProperty, stage2.Id.ToString());
                                ((Storyboard)FindResource("fade_in")).Begin(stgNext2);
                            }));
                        }
                    }
                }
                // Fade out loading
                ((Storyboard)FindResource("fade_out")).Begin(bdLoading);
                bdLoading.IsHitTestVisible = false;
            }
        }