aboutsummaryrefslogtreecommitdiff
path: root/src/Cloud.elm
blob: 99a4949036d921e1bbe4ebb78b891e3ec2a88b6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
module Cloud where

import Point (..)
import Player (..)
import Config (..)
import Geometry (distance)

type Cloud =
  { points : Config -> [Point]
  , spawn : Float
  , lastSpawn : Float
  }

initCloud : Cloud
initCloud =
  let spawn = 100
  in  { points config =
          case config of
            White -> []
            Black -> []
      , spawn = spawn
      , lastSpawn = -spawn
      }

playerPointsCollision : Float -> Player -> [Point] -> Bool
playerPointsCollision time player points =
  let collision = playerPointCollision time player
  in  length (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