IEnumerator OnCardTimer() { while (m_isCoroutineStop) { yield return(new WaitForSeconds(0.2f)); continue; } while (m_leftCardTime > 0) { yield return(new WaitForSeconds(1f)); m_leftCardTime--; GameManager.GameMgr.TimeEvent.Invoke(m_leftCardTime); } if (GameManager.GameMgr.CardTimeState != null) { GameManager.GameMgr.CardTimeState.Invoke(m_cardTimeState); } if (++m_cardTimeState != Defines.CardTimeState.Count) { Debug.Log(m_cardTimeState); StartCardTime(m_cardTimeState); } else { m_cardTimeState = Defines.CardTimeState.SelectingCard; } }
public void CardTimeListener(Defines.CardTimeState state) { switch (state) { case Defines.CardTimeState.SelectingCard: m_drawedCardSlot.ThrowAwayAllDrawedCards(); m_enrolledCardSlot.UseEnrolledCard(0); break; case Defines.CardTimeState.FirstCard: GameManager.MarkPoint.RemoveMarkPoint(); m_enrolledCardSlot.UseEnrolledCard(1); break; case Defines.CardTimeState.SecondCard: GameManager.MarkPoint.RemoveMarkPoint(); m_enrolledCardSlot.UseEnrolledCard(2); break; case Defines.CardTimeState.ThirdCard: GameManager.MarkPoint.RemoveMarkPoint(); DrawAllCard(); GameManager.TimeCardSystem.StartCardTime(Defines.CardTimeState.SelectingCard); break; } }
public void ChkBehaviorTurn(Defines.CardTimeState state) { if (state == Defines.CardTimeState.ThirdCard) { return; } // 남은 턴 수가 '0' 이면 행동 if (m_nextBehaviorTurn != 0) { m_nextBehaviorTurn--; return; } Vector3 dir = Managers.Object.Player.position - transform.position; m_controller.RotateCharacter(dir); Behavior(); m_nextBehaviorTurn = m_defaultBehaviorTurn; }
public void StartCardTime(Defines.CardTimeState state) { m_leftCardTime = m_FixedcardTime[(int)state]; m_timeCoroutine = StartCoroutine(OnCardTimer()); }