示例#1
0
            public override void Enter()
            {
                base.Enter();
                if (Game.Instance.musicChannel1 != null)
                {
                    Game.Instance.musicChannel1.Stop(1f);
                    Game.Instance.musicChannel1 = null;
                }
                if (Game.Instance.ambienceChannel1 != null)
                {
                    Game.Instance.ambienceChannel1.Stop(1f);
                    Game.Instance.ambienceChannel1 = null;
                }
                if (Instance.GameState == GameState.Won)
                {
                    scoreScreenVictoryMusic = Program.Instance.SoundManager.GetStream(Client.Sound.Stream.ScoreScreenVictoryMusic1).Play(new Sound.PlayArgs
                    {
                        FadeInTime = 1f,
                        Looping    = true
                    });
                }
                else
                {
                    scoreScreenDefeatMusic = Program.Instance.SoundManager.GetStream(Client.Sound.Stream.ScoreScreenVictoryMusic1).Play(new Sound.PlayArgs
                    {
                        FadeInTime = 1f,
                        Looping    = true
                    });
                }
                Game.Instance.Pause();

                var ss = new Interface.ScoreScreenControl
                {
                    GameState              = Game.Instance.GameState,
                    Map                    = Game.Instance.Map,
                    GameTime               = Game.Instance.GameTime,
                    Statistics             = Game.Instance.Statistics,
                    AchievementsEarned     = Game.Instance.AchievementsEarned,
                    NPlaythroughs          = Program.Instance.Profile.GetNPlaythroughs(Game.Instance.LoadMapFilename) + 1,
                    SilverYield            = Game.Instance.SilverYield,
                    PreviousMaxSilverYield = Game.Instance.PreviousMaxSilverYield,
                    FirstTimeCompletedMap  = Game.Instance.GameState == GameState.Won && !Game.Instance.HasPreviouslyCompletedMap,
                    CurrentStages          = Game.Instance.CurrentStageInfos,
                    BestStages             = Game.Instance.BestStagesInfos,
                    SilverEnabled          = Program.Settings.SilverEnabled,
                    HideStats              = Program.Settings.HideStats,
                };

                if (Game.Instance.GameState == GameState.Lost)
                {
                    ss.LostGameReason = Game.Instance.LostReason;
                }

                var ep = Game.Instance.GoldYield;

                ss.EarnedGoldCoins = ep;

                Program.Instance.Interface.AddChild(ss);

                Game.Instance.MaximizeStages();

                if (Game.Instance.GameState == GameState.Won && !Game.Instance.HasPreviouslyCompletedMap &&
                    Program.Settings.DisplayMapRatingDialog == MapRatingDialogSetup.Required)
                {
                    Dialog.Show(new Interface.RatingBox());
                }
            }
            public override void Enter()
            {
                base.Enter();
                if (Game.Instance.musicChannel1 != null)
                {
                    Game.Instance.musicChannel1.Stop(1f);
                    Game.Instance.musicChannel1 = null;
                }
                if (Game.Instance.ambienceChannel1 != null)
                {
                    Game.Instance.ambienceChannel1.Stop(1f);
                    Game.Instance.ambienceChannel1 = null;
                }
                if (Instance.GameState == GameState.Won)
                {
                    scoreScreenVictoryMusic = Program.Instance.SoundManager.GetStream(Client.Sound.Stream.ScoreScreenVictoryMusic1).Play(new Sound.PlayArgs
                    { 
                        FadeInTime = 1f,
                        Looping = true 
                    });
                }
                else
                {
                    scoreScreenDefeatMusic = Program.Instance.SoundManager.GetStream(Client.Sound.Stream.ScoreScreenVictoryMusic1).Play(new Sound.PlayArgs
                    {
                        FadeInTime = 1f,
                        Looping = true 
                    });
                }
                Game.Instance.Pause();

                var ss = new Interface.ScoreScreenControl
                {
                    GameState = Game.Instance.GameState,
                    Map = Game.Instance.Map,
                    GameTime = Game.Instance.GameTime,
                    Statistics = Game.Instance.Statistics,
                    AchievementsEarned = Game.Instance.AchievementsEarned,
                    NPlaythroughs = Program.Instance.Profile.GetNPlaythroughs(Game.Instance.LoadMapFilename) + 1,
                    SilverYield = Game.Instance.SilverYield,
                    PreviousMaxSilverYield = Game.Instance.PreviousMaxSilverYield,
                    FirstTimeCompletedMap = Game.Instance.GameState == GameState.Won && !Game.Instance.HasPreviouslyCompletedMap,
                    CurrentStages = Game.Instance.CurrentStageInfos,
                    BestStages = Game.Instance.BestStagesInfos,
                    SilverEnabled = Program.Settings.SilverEnabled,
                    HideStats = Program.Settings.HideStats,
                };
                if (Game.Instance.GameState == GameState.Lost)
                    ss.LostGameReason = Game.Instance.LostReason;

                var ep = Game.Instance.GoldYield;
                ss.EarnedGoldCoins = ep;

                Program.Instance.Interface.AddChild(ss);

                Game.Instance.MaximizeStages();

                if (Game.Instance.GameState == GameState.Won && !Game.Instance.HasPreviouslyCompletedMap
                    && Program.Settings.DisplayMapRatingDialog == MapRatingDialogSetup.Required)
                {
                    Dialog.Show(new Interface.RatingBox());
                }
            }