Simplify lasers
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user