示例#1
0
    protected override void Awake()
    {
        base.Awake();

        m_TerrainManager = TerrainManager.Instance;
        m_PlayerArrows   = PlayerArrows.Instance;
        m_HumanPlayer    = BattleRoyaleManager.Instance.GetHumanPlayer();
    }
示例#2
0
        //Player Callbacks.
        protected virtual void OnPlayerShootArrow(object sender, EventArgs e)
        {
            var arrow = new Arrow(Player.ArrowPosition);

            arrow.OnStateChangeDead += OnArrowStateChangedDead;

            PlayerArrows.Add(arrow);
        }
示例#3
0
    protected override void Awake()
    {
        base.Awake();

        m_PlayerArrows = PlayerArrows.Instance;
        m_HumanPlayer  = BattleRoyaleManager.Instance.GetHumanPlayer();
        m_ArrowIndex   = m_PlayerArrows.Register(transform, m_ArrowColor, PlayerArrows.EArrowType.BRUSH);
    }
示例#4
0
        protected virtual void UpdatePlaying(GameTime gt)
        {
            //Handle the Pause...
            var prev = InputHandler.Instance.PreviousKeyboardState;
            var curr = InputHandler.Instance.CurrentKeyboardState;

            if (prev.IsKeyDown(Keys.Space) && curr.IsKeyUp(Keys.Space))
            {
                CurrentState = State.Paused;
                return;
            }


            //Enemies.
            for (int i = Enemies.Count - 1; i >= 0; --i)
            {
                var enemy = Enemies[i];
                if (enemy.CurrentState == GameObject.State.Dead)
                {
                    Enemies.RemoveAt(i);
                    continue;
                }

                enemy.Update(gt);
            }

            //Arrows.
            for (int i = PlayerArrows.Count - 1; i >= 0; --i)
            {
                var arrow = PlayerArrows[i];
                if (arrow.CurrentState == GameObject.State.Dead)
                {
                    PlayerArrows.RemoveAt(i);
                    continue;
                }

                arrow.Update(gt);
            }

            //Player.
            Player.Update(gt);


            //Check collisions.
            //Enemies -> Arrows
            foreach (var enemy in Enemies)
            {
                foreach (var arrow in PlayerArrows)
                {
                    if (enemy.CheckCollisionArrow(arrow))
                    {
                        enemy.Kill();
                    }
                }
            }

            //Enemies -> Player
            foreach (var enemy in Enemies)
            {
                if (enemy.CheckCollisionPlayer(Player))
                {
                    enemy.Kill();
                    Player.Hit();
                }
            }

            CheckGameOver();
            CheckVictory();
        }