Ejemplo n.º 1
0
        public IEnumerator ExitMarble(int marbleIndex, LudoGame game)
        {
            if (IsInPlay(marbleIndex))
            {
                LudoMarble marble = m_Marbles[marbleIndex];
                for (int i = 0; i < m_HomeSlots.Length; i++)
                {
                    if (m_HomeSlots[i].m_Marble == null)
                    {
                        m_HomeSlots[i].m_Marble = marble;
                        int      playSlotIndex = game.Board.GetSlotIndex(m_PlayerIndex, marbleIndex);
                        LudoSlot slot          = game.Board.GetSlot(playSlotIndex);
                        slot.m_Marble = null;
                        yield return(StartCoroutine(marble.Move(m_HomeSlots[i])));

                        break;
                    }
                }
            }
            else
            {
                yield break;
            }
        }
Ejemplo n.º 2
0
        public IEnumerator EnterMarble(int marbleIndex, LudoGame game)
        {
            if (!IsInPlay(marbleIndex))
            {
                LudoMarble marble = m_Marbles[marbleIndex];
                for (int i = 0; i < m_HomeSlots.Length; i++)
                {
                    if (m_HomeSlots[i].m_Marble == marble)
                    {
                        m_HomeSlots[i].m_Marble = null;
                        PlayerSlots playerSlots = game.Board.GetPlayerSlots(this);
                        LudoSlot    slot        = game.Board.GetSlot(playerSlots.m_StartSlot);
                        slot.m_Marble = marble;
                        yield return(StartCoroutine(marble.Move(slot)));

                        break;
                    }
                }
            }
            else
            {
                yield break;
            }
        }