Refactor, try to limit dependencies
This commit is contained in:
+10
-8
@@ -1,8 +1,9 @@
|
||||
module Dodge.Magnet where
|
||||
import Dodge.Data
|
||||
import Geometry
|
||||
|
||||
import Control.Lens
|
||||
import Dodge.Data.Bullet
|
||||
import Dodge.Data.Magnet
|
||||
import Geometry
|
||||
|
||||
dampField :: Magnet -> Bullet -> Bullet
|
||||
dampField mg pt = case pt of
|
||||
@@ -21,11 +22,12 @@ curveAroundField minrad maxrad mg pt = case pt of
|
||||
thedist = dist btpos mgpos
|
||||
mgpos = _mgPos mg
|
||||
btpos = _buPos pt
|
||||
rotateToCircle vel
|
||||
| (isLHS mgpos btpos (btpos +.+ vel) && isRHS mgpos btpos (mgpos +.+ vNormal vel) )
|
||||
|| (isRHS mgpos btpos (btpos +.+ vel) && isLHS mgpos btpos (mgpos +.+ vNormal vel) )
|
||||
= rotateV rot vel
|
||||
rotateToCircle vel
|
||||
| (isLHS mgpos btpos (btpos +.+ vel) && isRHS mgpos btpos (mgpos +.+ vNormal vel))
|
||||
|| (isRHS mgpos btpos (btpos +.+ vel) && isLHS mgpos btpos (mgpos +.+ vNormal vel)) =
|
||||
rotateV rot vel
|
||||
| otherwise = rotateV (negate rot) vel
|
||||
rot | thedist < minrad = 0.5
|
||||
| otherwise = 0.5 * ((maxrad - thedist) / (maxrad - minrad) ) ** 2
|
||||
rot
|
||||
| thedist < minrad = 0.5
|
||||
| otherwise = 0.5 * ((maxrad - thedist) / (maxrad - minrad)) ** 2
|
||||
_ -> pt
|
||||
|
||||
Reference in New Issue
Block a user