Separate and reify laser beams
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
module Dodge.Laser.Update
|
||||
where
|
||||
import Dodge.Item.Weapon.LaserPath
|
||||
import Dodge.WorldEvent.Damage
|
||||
import Dodge.Data
|
||||
import Geometry
|
||||
|
||||
updateLaser :: World -> LaserStart -> (World, Laser)
|
||||
updateLaser w pt =
|
||||
( damThingHitWith (\p1 p2 p3 -> Damage LASERING dam p1 p2 p3 NoDamageEffect) sp xp thHit w
|
||||
, Laser {_laPoints = sp:ps , _laColor = _lpColor pt}
|
||||
)
|
||||
where
|
||||
phasev = _lpPhaseV pt
|
||||
sp = _lpPos pt
|
||||
dir = _lpDir pt
|
||||
dam = _lpDamage pt
|
||||
xp = sp +.+ 800 *.* unitVectorAtAngle dir
|
||||
(thHit, ps) = reflectLaserAlong phasev sp xp w
|
||||
|
||||
Reference in New Issue
Block a user