Refactor, try to limit dependencies

This commit is contained in:
2022-07-28 00:59:56 +01:00
parent 8aa5c17ab9
commit 160560af5f
418 changed files with 15104 additions and 13342 deletions
+7 -9
View File
@@ -1,25 +1,23 @@
module Dodge.Laser.Update
where
import Dodge.Item.Weapon.LaserPath
import Dodge.WorldEvent.Damage
import Dodge.Data
import Geometry
module Dodge.Laser.Update where
import Control.Lens
import Data.Maybe
import Dodge.Data.World
import Dodge.Item.Weapon.LaserPath
import Dodge.WorldEvent.Damage
import Geometry
updateLaser :: World -> LaserStart -> (World, Laser)
updateLaser w pt =
( w'
, Laser {_laPoints = sp:ps , _laColor = _lpColor pt, _laType = _lpType pt}
, Laser{_laPoints = sp : ps, _laColor = _lpColor pt, _laType = _lpType pt}
)
where
w' = fromMaybe w $ do
dam <- pt ^? lpType . laserTypeDamage
return $ damThingHitWith (\p1 p2 p3 -> Damage LASERING dam p1 p2 p3 NoDamageEffect) sp xp thHit w
phasev = _lpPhaseV pt
sp = _lpPos pt
sp = _lpPos pt
dir = _lpDir pt
xp = sp +.+ 800 *.* unitVectorAtAngle dir
(thHit, ps) = reflectLaserAlong phasev sp xp w