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); }
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(); } } }