private bool SnakeIsAlien(Cell c, int idx)
    {
        if (c.Item is Snake.SnakeBody)
        {
            Snake.SnakeBody body = c.Item as Snake.SnakeBody;
            if (body.HostSnake.Idx != idx)
            {
                return(true);
            }
        }

        return(false);
    }
Example #2
0
    internal void Update()
    {
        if (!IsAlive)
        {
            return;
        }

        bool timeToMove = false;

        m_timeCurrent += Time.deltaTime;
        if (m_timeCurrent >= m_timeSpan)
        {
            m_timeCurrent = 0f;
            timeToMove    = true;
        }

        if (timeToMove)
        {
            FieldController.Cell cell = m_field.GetNextCell(Cell, Direction);
            if (cell == null)
            {
                IsAlive = false;
            }
            else if (cell.Item != null)
            {
                if (cell.Item is Snake.SnakeBody)
                {
                    Snake.SnakeBody body  = cell.Item as Snake.SnakeBody;
                    Snake           snake = body.HostSnake;
                    snake.Damage();

                    IsAlive = false;
                }
            }

            if (IsAlive)
            {
                Cell = cell;
            }
            else
            {
                Destroy();
            }
        }
    }