コード例 #1
0
        public override void OnEnter()
        {
            UpdatePauseScreenIcons();
            m_inputDelay = 0.5f;
            if (SoundManager.IsMusicPlaying)
            {
                SoundManager.PauseMusic();
            }
            SoundManager.PlaySound("Pause_Toggle");
            var levelScreen = (ScreenManager as RCScreenManager).GetLevelScreen();

            foreach (var current in m_infoObjList)
            {
                current.Reset();
                current.Visible = false;
            }
            var player       = (ScreenManager as RCScreenManager).Player;
            var pauseInfoObj = m_infoObjList[0];

            pauseInfoObj.Visible = true;
            pauseInfoObj.AddItem("Class: ", ClassType.ToString(Game.PlayerStats.Class, Game.PlayerStats.IsFemale));
            pauseInfoObj.AddItem("Strength: ", player.Damage.ToString());
            pauseInfoObj.AddItem("Magic: ", player.TotalMagicDamage.ToString());
            pauseInfoObj.AddItem("Armor: ", player.TotalArmor.ToString());
            pauseInfoObj.ResizePlate();
            pauseInfoObj.X = player.X - Camera.TopLeftCorner.X;
            pauseInfoObj.Y = player.Bounds.Bottom - Camera.TopLeftCorner.Y + pauseInfoObj.Height / 2f - 20f;
            if (!Game.PlayerStats.TutorialComplete)
            {
                pauseInfoObj.SetName("?????");
            }
            else
            {
                pauseInfoObj.SetName(Game.PlayerStats.PlayerName);
            }
            pauseInfoObj.SetNamePosition(new Vector2(pauseInfoObj.X, player.Bounds.Top - Camera.TopLeftCorner.Y - 40f));
            pauseInfoObj.Visible = player.Visible;
            var num = m_infoObjList.Count - 1;

            for (var i = num;
                 i < levelScreen.CurrentRoom.EnemyList.Count + levelScreen.CurrentRoom.TempEnemyList.Count;
                 i++)
            {
                m_infoObjList.Add(new PauseInfoObj
                {
                    Visible = false
                });
            }
            for (var j = 1; j < levelScreen.CurrentRoom.EnemyList.Count + 1; j++)
            {
                var enemyObj = levelScreen.CurrentRoom.EnemyList[j - 1];
                if (!enemyObj.NonKillable && !enemyObj.IsKilled && enemyObj.Visible)
                {
                    var pauseInfoObj2 = m_infoObjList[j];
                    pauseInfoObj2.Visible = true;
                    if (!LevelEV.CREATE_RETAIL_VERSION)
                    {
                        pauseInfoObj2.AddItem("Level: ", enemyObj.Level.ToString());
                    }
                    else
                    {
                        pauseInfoObj2.AddItem("Level: ", ((int)(enemyObj.Level * 2.75f)).ToString());
                    }
                    pauseInfoObj2.AddItem("Strength: ", enemyObj.Damage.ToString());
                    pauseInfoObj2.AddItem("Health: ", enemyObj.CurrentHealth + "/" + enemyObj.MaxHealth);
                    pauseInfoObj2.ResizePlate();
                    pauseInfoObj2.X = enemyObj.X - Camera.TopLeftCorner.X;
                    pauseInfoObj2.Y = enemyObj.Bounds.Bottom - Camera.TopLeftCorner.Y + pauseInfoObj2.Height / 2f - 20f;
                    pauseInfoObj2.SetName(enemyObj.Name);
                    pauseInfoObj2.SetNamePosition(new Vector2(pauseInfoObj2.X,
                                                              enemyObj.Bounds.Top - Camera.TopLeftCorner.Y - 40f));
                }
            }
            var count = levelScreen.CurrentRoom.EnemyList.Count;

            for (var k = 0; k < levelScreen.CurrentRoom.TempEnemyList.Count; k++)
            {
                var enemyObj2 = levelScreen.CurrentRoom.TempEnemyList[k];
                if (!enemyObj2.NonKillable && !enemyObj2.IsKilled)
                {
                    var pauseInfoObj3 = m_infoObjList[k + 1 + count];
                    pauseInfoObj3.Visible = true;
                    if (!LevelEV.CREATE_RETAIL_VERSION)
                    {
                        pauseInfoObj3.AddItem("Level: ", enemyObj2.Level.ToString());
                    }
                    else
                    {
                        pauseInfoObj3.AddItem("Level: ", ((int)(enemyObj2.Level * 2.75f)).ToString());
                    }
                    pauseInfoObj3.AddItem("Strength: ", enemyObj2.Damage.ToString());
                    pauseInfoObj3.AddItem("Health: ", enemyObj2.CurrentHealth + "/" + enemyObj2.MaxHealth);
                    pauseInfoObj3.ResizePlate();
                    pauseInfoObj3.X = enemyObj2.X - Camera.TopLeftCorner.X;
                    pauseInfoObj3.Y = enemyObj2.Bounds.Bottom - Camera.TopLeftCorner.Y + pauseInfoObj3.Height / 2f - 20f;
                    pauseInfoObj3.SetName(enemyObj2.Name);
                    pauseInfoObj3.SetNamePosition(new Vector2(pauseInfoObj3.X,
                                                              enemyObj2.Bounds.Top - Camera.TopLeftCorner.Y - 40f));
                }
            }
            base.OnEnter();
        }