예제 #1
0
                public new void Exit(IemStateManager.StateManager sm)
                {
                    EmbankStateManager gsm = (EmbankStateManager)sm;

                    IemUI.UpdateGameStatusBanner("", gsm.eg);
                    IemUI.UpdateGameBanner("", gsm.eg);

                    // set the player status
                    PlayerDying -= gsm.eg.PlayerDied;
                    // log the score
                    PlayerDying -= gsm.eg.ScorePlayerKill;

                    // any damage is fatal
                    EntitiesTakingDamage -= gsm.eg.SuddenDeath;
                    // player can't be wounded in sudden death
                    EntitiesBeingWounded -= gsm.eg.SuddenDeathWounded;

                    suddenDeathTimer?.Destroy();
                    updatesTimer?.Destroy();
                }
예제 #2
0
                //private DateTime startTime = DateTime.UtcNow;
                //TimeSpan breakDuration = TimeSpan.FromSeconds(15);

                public new void Enter(IemStateManager.StateManager sm)
                {
                    EmbankStateManager gsm = (EmbankStateManager)sm;

                    // change the player status
                    PlayerDying += gsm.eg.PlayerDied;
                    //log the score
                    PlayerDying += gsm.eg.ScorePlayerKill;

                    // any damage is fatal
                    EntitiesTakingDamage += gsm.eg.SuddenDeath;
                    // player can't be wounded in sudden death
                    EntitiesBeingWounded += gsm.eg.SuddenDeathWounded;

                    foreach (IemGameBase.IemTeam iemTeam in gsm.eg.Teams.Values)
                    {
                        foreach (IemGameBase.IemPlayer iemPlayer in iemTeam.Players.Values)
                        {
                            BasePlayer player = IemUtils.FindPlayerByID(iemPlayer.PlayerId);

                            IemUI.ShowGameTimer(player, gsm.eg.PartitionWait, "Sudden Death: ");
                        }
                    }


                    suddenDeathTimer = me.timer.Once(
                        gsm.eg.SuddenDeathPhaseWait, () =>
                    {
                        gsm.ChangeState(EmbankStateManager.GameComplete.Instance);
                    });
                    //}

                    IemUI.UpdateGameBanner("Sudden Death - all hits are fatal!!!", gsm.eg);


                    countdown    = gsm.eg.SuddenDeathPhaseWait;
                    updatesTimer = me.timer.Every(1f, () =>
                    {
                        gsm.Update();
                    });
                }