Refactor wall zoning, remove streaming
This commit is contained in:
@@ -4,6 +4,7 @@ module Dodge.WorldEvent.Shockwave
|
||||
, drawShockwave
|
||||
, mvShockwave
|
||||
) where
|
||||
import Dodge.Zoning.Wall
|
||||
import Dodge.Data
|
||||
import Dodge.Wall.Damage
|
||||
import Dodge.Base
|
||||
@@ -12,7 +13,7 @@ import Geometry
|
||||
import Picture
|
||||
import LensHelp
|
||||
|
||||
--import Data.Foldable
|
||||
import Data.Foldable
|
||||
import qualified IntMapHelp as IM
|
||||
import qualified Streaming.Prelude as S
|
||||
-- currently very effective against walls
|
||||
@@ -63,13 +64,11 @@ mvShockwave is w pt
|
||||
tFraction = fromIntegral t / fromIntegral (_ptMaxTime pt)
|
||||
rad = r - (3/4) * r * tFraction
|
||||
doDams w' = over creatures (IM.map damCr)
|
||||
. runIdentity
|
||||
$ S.fold_
|
||||
$ foldl'
|
||||
(flip $ damageWall (Damage EXPLOSIVE 10000 p p p NoDamageEffect))
|
||||
w'
|
||||
id
|
||||
hitBlocks
|
||||
hitBlocks = S.map snd . overlapCircWalls p rad $ wlsInsideCirc p rad w
|
||||
hitBlocks = map snd . overlapCircWalls p rad $ wlsNearCirc p rad w
|
||||
-- this is not expansive enough
|
||||
damCr cr
|
||||
| _crID cr `elem` is || dist (_crPos cr) p >= rad + _crRad cr = cr
|
||||
|
||||
Reference in New Issue
Block a user