Beispiel #1
0
    public ITileInfo DoMove(Vector2 direction)
    {
        ITileInfo tileInfo = m_World.GetTileInfo(m_Position + direction);

        if (tileInfo.GetState() == TileState.BorderRight)
        {
            if (m_World.gameManager.bPaneCleared || m_World.IsInTuto())
            {
                Debug.Log("Loading Next Pane");
                m_World.NextCache();
                m_Position.x = 0;
                m_World.SetObject(this, m_Position);
                m_World.gameManager.SwitchPane();
                return(tileInfo);
            }
            else
            {
                return(tileInfo);
            }
        }
        else if (tileInfo.GetState() == TileState.Occupied || tileInfo.GetState() == TileState.Ennemy)
        {
            return(tileInfo);
        }
        else if (tileInfo.GetState() == TileState.Border)
        {
            return(tileInfo);
        }
        TileState tileState = m_World.MoveObject(m_Position, direction);

        m_Position += direction;
        return(tileInfo);
    }
Beispiel #2
0
    private void Move(Vector2 dir)
    {
        if (bInputDetectionActive)
        {
            bool valid           = (gameManager.musicHandler.ValidateBeat() && gameManager.bBeatInput == false);
            bool obstruction     = false;
            bool enemy           = false;
            bool successfulInput = false;

            if (gameManager.currentGamePhase == "move")
            {
                if (valid)
                {
                    ITileInfo tileInfo = m_player.DoMove(dir);
                    switch (tileInfo.GetState())
                    {
                    case TileState.Occupied:
                        obstruction = true;
                        break;

                    case TileState.Ennemy:
                        enemy = true;
                        break;
                    }
                    if (!obstruction)
                    {
                        successfulInput = true;
                        if (enemy)
                        {
                            if (!tileInfo.GetWorldObject().GetComponent <DV_EnemyAnimation>().bWokenUp)
                            {
                                gameManager.BeginDanceSequence(tileInfo);
                            }
                        }
                    }
                    else
                    {
                        gameManager.discoController.OnFailBeat();
                    }
                }
                else
                {
                    gameManager.discoController.OnFailBeat();
                }
            }
            else
            {
                string moveDirection;
                if (dir.x == 0f)
                {
                    if (dir.y > 0f)
                    {
                        moveDirection = "Up";
                    }
                    else
                    {
                        moveDirection = "Down";
                    }
                }
                else
                {
                    if (dir.x > 0f)
                    {
                        moveDirection = "Right";
                    }
                    else
                    {
                        moveDirection = "Left";
                    }
                }

                successfulInput = valid && gameManager.danceSequence.CheckStepValidityAgainstInput(moveDirection, danceStepIndex);
                if (successfulInput)
                {
                    gameManager.danceSequence.ValidateStep(danceStepIndex);
                    danceStepIndex++;
                    if (danceStepIndex >= 4)
                    {
                        gameManager.SucceedDanceSequence();
                    }
                }
                else
                {
                    gameManager.danceSequence.ResetDanceSequence();
                    danceStepIndex = 0;
                    gameManager.discoController.OnFailBeat();
                }
            }

            if (successfulInput)
            {
                anim.AnimationStep();
            }
            else
            {
                gameManager.MissBeatDamage();
            }

            gameManager.ValidateBeat(successfulInput);
        }
    }