Refactor crPos to be a V3
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
module Dodge.Machine.Update (updateMachine) where
|
||||
|
||||
import Linear
|
||||
import Control.Monad
|
||||
import Data.List (partition)
|
||||
import Data.Maybe
|
||||
@@ -61,7 +62,7 @@ updateTurret rotSpeed mc w =
|
||||
| elecDam < 10 = updateFiringStatus . doTurn
|
||||
| otherwise = id
|
||||
mcid = _mcID mc
|
||||
ypos = _crPos $ you w
|
||||
ypos = you w ^. crPos . _xy
|
||||
mcpos = _mcPos mc
|
||||
seesYou = hasLOSIndirect mcpos ypos w
|
||||
(elecDams, dams) = partition isElectrical $ _mcDamage mc
|
||||
@@ -122,7 +123,7 @@ mcPlaySound mc w = case _mcType mc of
|
||||
w
|
||||
_ -> w
|
||||
where
|
||||
d = max 0 (dist (_crPos $ you w) (_mcPos mc) - 100)
|
||||
d = max 0 (dist ( you w ^. crPos . _xy) (_mcPos mc) - 100)
|
||||
mid = _mcID mc
|
||||
|
||||
mcApplyDamage :: [Damage] -> Machine -> World -> World
|
||||
@@ -156,9 +157,9 @@ mcNoItemsTest mc ps w
|
||||
falsetog = mc ^? mcType . _McProxSensor . proxToggle . _Just == Just False
|
||||
notog =
|
||||
null (mc ^? mcType . _McProxSensor . proxToggle . _Just)
|
||||
&& pointInPoly (cr ^. crPos) qs
|
||||
&& pointInPoly (cr ^. crPos . _xy) qs
|
||||
t =
|
||||
((cr ^. crInv == mempty) || not (pointInPoly (cr ^. crPos) qs))
|
||||
((cr ^. crInv == mempty) || not (pointInPoly (cr ^. crPos . _xy) qs))
|
||||
&& not (any ((`pointInPoly` qs) . _flItPos) (w ^. cWorld . lWorld . floorItems))
|
||||
cr = w ^?! cWorld . lWorld . creatures . ix 0
|
||||
mcsenslens = cWorld . lWorld . machines . ix (_mcID mc) . mcType . _McProxSensor
|
||||
@@ -170,7 +171,7 @@ mcNoItemsTest mc ps w
|
||||
mcProximitySensorUpdate ::
|
||||
Machine -> ProximitySensor -> ProximityRequirement -> World -> World
|
||||
mcProximitySensorUpdate mc sens pr w
|
||||
| truetog || dist (_crPos ycr) (_mcPos mc) > 40 = w
|
||||
| truetog || dist (ycr ^. crPos . _xy) (_mcPos mc) > 40 = w
|
||||
| mcProxTest w pr =
|
||||
w
|
||||
& mcsenslens . proxToggle ?~ True
|
||||
|
||||
Reference in New Issue
Block a user