module Model.Cloud ( Cloud , initCloud , playerPointsCollision , playerPointCollision ) where import List import Model.Point (..) import Model.Player (..) import Model.Config (..) import Utils.Geometry (distance) type alias Cloud = { points : Config -> List Point , spawn : Float , lastSpawn : Float } initCloud : Cloud initCloud = let spawn = 600 in { points config = case config of White -> [] Black -> [] , spawn = spawn , lastSpawn = -spawn } playerPointsCollision : Float -> Player -> List Point -> Bool playerPointsCollision time player points = let collision = playerPointCollision time player in List.length (List.filter collision points) > 0 playerPointCollision : Float -> Player -> Point -> Bool playerPointCollision time player point = let pointPos = pointMove point time in (distance pointPos player.pos) < pointSize + playerSize