functions/MiniGameSnake/functions/snack.ps1

param($var, $canvas, $sound)


if ($null -NE $var.snakeSnack) {
    $sound.Once("snake_snack")
    $var.snakeSnack = $null
    $var.snakeLength += 1
    $var.snackedSnakeSnacks += 1
}

### Spawn a new snack for the snake.
while ($null -EQ $var.snakeSnack) {

    $cage = $canvas.Bounds.Get('cage') 

    $proposedPosition = $cage.RandomPos()

    # Snacks can only spawn on fields which are not occupied by the snake
    if (-NOT $var.collisionMap.ContainsKey($proposedPosition)) {
        $var.snakeSnack = $proposedPosition
        $canvas.ForeGround.onceColor($var.difficulty.color.snakeSnack)
        $canvas.Draw($var.snakeSnack, $characters.Snake.Snack)
    }
}