Cleanup, add spark to bullet turret hit

This commit is contained in:
2022-02-13 17:51:15 +00:00
parent 40f1d987cb
commit 4f0f8cb4c2
7 changed files with 25 additions and 29 deletions
+2 -2
View File
@@ -11,11 +11,11 @@ import Dodge.Wall.Dust
import Dodge.Particle.Spark import Dodge.Particle.Spark
import Geometry import Geometry
import Color import Color
import LensHelp
import Control.Lens
damageWall :: DamageType -> Wall -> World -> World damageWall :: DamageType -> Wall -> World -> World
damageWall dt wl = case _wlStructure wl of damageWall dt wl = case _wlStructure wl of
MachinePart mcid -> machines . ix mcid . mcDamage %~ (dt :) MachinePart mcid -> wallEff dt wl . (machines . ix mcid . mcDamage .:~ dt)
BlockPart blid -> wallEff dt wl . (blocks . ix blid %~ damageBlockWith dt) BlockPart blid -> wallEff dt wl . (blocks . ix blid %~ damageBlockWith dt)
CreaturePart crid f -> f dt wl crid CreaturePart crid f -> f dt wl crid
_ -> wallEff dt wl _ -> wallEff dt wl
+1 -1
View File
@@ -5,7 +5,7 @@ import Geometry
import Control.Lens import Control.Lens
wlDustAt :: Wall -> Point2 -> World -> World wlDustAt :: Wall -> Point2 -> World -> World
wlDustAt wl p = smokeCloudAt dustcol 20 200 1 (addZ 20 p) wlDustAt wl = smokeCloudAt dustcol 20 200 1 . addZ 20
where where
dustcol = _wlColor wl & _4 .~ 1 dustcol = _wlColor wl & _4 .~ 1
+3 -4
View File
@@ -11,8 +11,9 @@ import Dodge.Data
import Dodge.Base import Dodge.Base
import Geometry.Data import Geometry.Data
import Picture import Picture
import LensHelp
import Control.Lens --import Control.Lens
import System.Random import System.Random
makeCloudAt makeCloudAt
@@ -23,9 +24,7 @@ makeCloudAt
-> Point3 -- start position -> Point3 -- start position
-> World -> World
-> World -> World
makeCloudAt drawFunc rad t alt p = clouds %~ (theCloud :) makeCloudAt drawFunc rad t alt p = clouds .:~ Cloud
where
theCloud = Cloud
{ _clPos = p { _clPos = p
, _clVel = V3 0 0 0 , _clVel = V3 0 0 0
, _clPict = drawFunc , _clPict = drawFunc
+2 -4
View File
@@ -34,9 +34,8 @@ makePoisonExplosionAt
-> World -> World
makePoisonExplosionAt p w makePoisonExplosionAt p w
= soundMultiFrom [Explosion 0,Explosion 1] p bangS Nothing = soundMultiFrom [Explosion 0,Explosion 1] p bangS Nothing
$ foldr (makeGasCloud p) w vels $ foldr (makeGasCloud p) w
where $ replicateM 25 (randInCirc 2) & evalState $ _randGen w
vels = replicateM 25 (randInCirc 2) & evalState $ _randGen w
-- just change the number after replicateM to get more or less clouds -- just change the number after replicateM to get more or less clouds
-- suggested change: use random positions, offset from p, rather than velocities -- suggested change: use random positions, offset from p, rather than velocities
-- so, p +.+ randomOffset -- so, p +.+ randomOffset
@@ -93,4 +92,3 @@ makeExplosionAt p w
newFs = zipWith5 mF fPs zs (fmap (3 *.*) fVs') sizes times newFs = zipWith5 mF fPs zs (fmap (3 *.*) fVs') sizes times
addFlames w' = foldr ($) w' newFs addFlames w' = foldr ($) w' newFs
pushAgainstWalls q = maybe q (uncurry (+.+)) $ reflectPointWalls p q $ wallsNearPoint q w pushAgainstWalls q = maybe q (uncurry (+.+)) $ reflectPointWalls p q $ wallsNearPoint q w
+1 -2
View File
@@ -1,8 +1,7 @@
{- Helper functions for particles. -} {- Helper functions for particles. -}
module Dodge.WorldEvent.HelperParticle module Dodge.WorldEvent.HelperParticle
( ptSimpleTime ( ptSimpleTime
) ) where
where
import Dodge.Data import Dodge.Data
{- A simple timer update for particles. -} {- A simple timer update for particles. -}