Simplify lasers

This commit is contained in:
2025-01-07 01:36:23 +00:00
parent 4a9c1cd6b3
commit b3cf10bd26
15 changed files with 227 additions and 227 deletions
-12
View File
@@ -1,12 +0,0 @@
module Dodge.Laser.Draw where
import Dodge.Data.Laser
import Picture
drawLaser :: Laser -> Picture
drawLaser pt =
setLayer BloomNoZWrite $
setDepth 19.5 . color (brightX 10 1 col) $ thickLine 3 ps
where
col = _lzColor pt
ps = _lzPoints pt
+21 -8
View File
@@ -1,22 +1,28 @@
module Dodge.Laser.Update
( updateLaser
) where
module Dodge.Laser.Update (
updateLaser,
) where
import Dodge.Item.Location
import Control.Lens
--import Data.Maybe
import Dodge.Data.World
import Dodge.Item.Location
import Dodge.Item.Weapon.LaserPath
import Dodge.WorldEvent.Damage
import Geometry
import Picture.Base
updateLaser :: World -> LaserStart -> (World, Laser)
updateLaser :: World -> LaserStart -> (World, Picture)
updateLaser w pt =
( case _lpType pt of
DamageLaser dam -> damThingHitWith
(\p1 p2 p3 -> Damage LASERING dam p1 p2 p3 NoDamageEffect) sp xp thHit w
DamageLaser dam ->
damThingHitWith
(\p1 p2 p3 -> Damage LASERING dam p1 p2 p3 NoDamageEffect)
sp
xp
thHit
w
TargetingLaser itid -> w & pointerToItemID itid . itTargeting . itTgPos ?~ last ps
, Laser{_lzPoints = sp : ps, _lzColor = _lpColor pt, _lzType = _lpType pt}
, drawLaser (_lpColor pt) (sp : ps)
)
where
phasev = _lpPhaseV pt
@@ -24,3 +30,10 @@ updateLaser w pt =
dir = _lpDir pt
xp = sp +.+ 800 *.* unitVectorAtAngle dir
(thHit, ps) = reflectLaserAlong phasev sp xp w
drawLaser :: Color -> [Point2] -> Picture
drawLaser col =
setLayer BloomNoZWrite
. setDepth 19.5
. color (brightX 10 1 col)
. thickLine 3