Separate out concrete part of world
This commit is contained in:
+5
-5
@@ -25,7 +25,7 @@ updateBullet w bu = case _buState bu of
|
||||
_ -> mvBullet 1 w bu
|
||||
|
||||
useAmmoParams :: Item -> Creature -> World -> World
|
||||
useAmmoParams it cr w = w & instantBullets .:~ (_amBullet bultype
|
||||
useAmmoParams it cr w = w & cWorld . instantBullets .:~ (_amBullet bultype
|
||||
& buPos .~ sp
|
||||
& buTrajectory %~ settrajectory
|
||||
& buVel %~ (rotateV dir . (muzvel *.*))
|
||||
@@ -60,7 +60,7 @@ mvBullet x w bt'
|
||||
partspawn <- bulletSpawn bt'
|
||||
return $ partspawn p w'
|
||||
hitstream = thingsHit p (p +.+ vel) w
|
||||
bt = foldr (\mg b -> doMagnetBuBu (_mgField mg) mg b) bt' (_magnets w)
|
||||
bt = foldr (\mg b -> doMagnetBuBu (_mgField mg) mg b) bt' (_magnets (_cWorld w))
|
||||
& buState .~ NormalBulletState
|
||||
dodrag = case _buTrajectory bt of
|
||||
BasicBulletTrajectory -> buVel .*.*~ drag
|
||||
@@ -84,7 +84,7 @@ bulletSpawn :: Bullet -> Maybe (Point2 -> World -> World)
|
||||
bulletSpawn bu = case _buSpawn bu of
|
||||
BulSpark -> Nothing
|
||||
BulBall IncBall -> Just incBallAt
|
||||
BulBall ConcBall -> Just $ \p -> shockwaves .:~ concBall p
|
||||
BulBall ConcBall -> Just $ \p -> cWorld . shockwaves .:~ concBall p
|
||||
BulBall TeslaBall -> Just makeStaticBall
|
||||
|
||||
hitEffFromBul :: Float -> Bullet
|
||||
@@ -112,8 +112,8 @@ setFromToDams bu p = map f (_buDamages bu)
|
||||
|
||||
damageThingHit :: Bullet -> (Point2,Either Creature Wall) -> World -> World
|
||||
damageThingHit bu (p,crwl) = case crwl of
|
||||
Left cr -> creatures . ix (_crID cr) . crState . csDamage .++~ dams
|
||||
Right wl -> wallDamages %~ IM.insertWith (++) (_wlID wl) dams
|
||||
Left cr -> cWorld . creatures . ix (_crID cr) . crState . csDamage .++~ dams
|
||||
Right wl -> cWorld . wallDamages %~ IM.insertWith (++) (_wlID wl) dams
|
||||
where
|
||||
dams = setFromToDams bu p
|
||||
|
||||
|
||||
Reference in New Issue
Block a user