Ejemplo n.º 1
0
    IEnumerator FeverTime()
    {
        while (true)
        {
            if (!m_isPause)
            {
                if (m_is_FeverTime_On)                         // 피버타임이 켜졌을 때
                {
                    if (m_Elapsed_FeverTime > 0.0f)            // 피버타임 시간이 남았다면
                    {
                        m_Elapsed_FeverTime -= Time.deltaTime; // 시간 감소.
                    }
                    else // 피버타임 시간이 다 됐다면
                    {
                        SlowDown_Start(); // 감속 시작.
                    }
                }

                else // 피버타임이 꺼졌을 때
                {
                    if (m_Curr_FeverTime_Point >= m_FeverTime_Max_Point) // 포인트가 충분히 모였다면
                    {
                        m_is_FeverTime_On = true;                                     // 피버타임 시작.
                        MapScroll.GetInstance().Change_Speed(FEVER_TIME_SPEED.FEVER); // 맵 스크롤 속도 5배 상승.
                        MapScroll.GetInstance().Map_Change_Fever();                   // 맵을 피버타임 모드로 변경.
                        Enemy_All_Kill();                                             // 맵에 존재하는 적 객체를 전부 처치한다.
                        Player.GetInstance().Invincibility_Change();                  // 무적 활성화.
                        Player.GetInstance().Attack_Off();                            // 공격 중지.
                    }
                }
            }
            yield return(null);
        }
    }
Ejemplo n.º 2
0
    void Awake()
    {
        m_Instance = this;

        Set_Speed(MapScroll.GetInstance().Get_Lane_Speed());

        m_DistanceChecker_Coroutine = Distance_Check();

        StartCoroutine(m_DistanceChecker_Coroutine);
    }
Ejemplo n.º 3
0
    IEnumerator SlowDown()
    {
        while (true)
        {
            if (m_SlowDown_Time >= 1.0f)
            {
                m_is_FeverTime_On = false;                                       // 피버타임 종료.

                Player.GetInstance().Invincibility_Change();                     // 무적 비활성화.
                MapScroll.GetInstance().Change_Speed(FEVER_TIME_SPEED.NORMAL);   // 맵스크롤 속도 초기화.
                MapScroll.GetInstance().Map_Change_Normal();                     // 맵을 노말 모드로 변경.
                m_Elapsed_FeverTime    = m_FeverTime_Duration;                   // 시간 초기화.
                m_Curr_FeverTime_Point = 0;                                      // 포인트 초기화.
                m_SlowDown_Time        = 0.0f;                                   // 감속 시간 초기화.
                Distance_Checker.GetInstance().Reset_Distance_For_Fever_Point(); // 피버타임용 거리 측정기 초기화.
                Player.GetInstance().Attack_On();                                // 공격 재시작.

                StopCoroutine(m_SlowDown);                                       // 감속 종료
                StartCoroutine(m_FeverTime);                                     // 피버타임 검사 재시작.
            }

            else if (m_SlowDown_Time >= 0.75f)
            {
                MapScroll.GetInstance().Change_Speed(FEVER_TIME_SPEED.SLOWDOWN_X2); // 이동속도 초기화.
            }

            else if (m_SlowDown_Time >= 0.5f)
            {
                MapScroll.GetInstance().Change_Speed(FEVER_TIME_SPEED.SLOWDOWN_X3); // 이동속도 초기화.
            }

            else if (m_SlowDown_Time >= 0.25f)
            {
                MapScroll.GetInstance().Change_Speed(FEVER_TIME_SPEED.SLOWDOWN_X4); // 이동속도 초기화.
                m_Fade_Object.GetComponent <Fade_Manager>().Fade_In();              // 페이드 인 실행.
            }

            m_SlowDown_Time += Time.deltaTime;

            yield return(null);
        }
    }
Ejemplo n.º 4
0
    // =================================


    protected virtual void Move()
    {
        transform.Translate(new Vector3(-m_Move_Speed * MapScroll.GetInstance().Get_Main_Speed() * Time.deltaTime, 0.0f, 0.0f));
        m_Animations.Play(m_Animations.GetClip("O_AND_I_Floating").name);
    }