Add analysing machine

This commit is contained in:
2022-03-21 09:14:32 +00:00
parent 13e8ea85d2
commit 51cc04799d
7 changed files with 102 additions and 15 deletions
+54
View File
@@ -0,0 +1,54 @@
module Dodge.Placement.Instance.Analyser where
import Dodge.LevelGen.Data
import Dodge.PlacementSpot
import Dodge.Data
import Dodge.Base.You
import Dodge.Default
import Dodge.Tree
import Dodge.RoomLink
import Dodge.Room.Door
import Dodge.Room.Corridor
import Dodge.Room.Link
import Dodge.Room.Ngon
--import Dodge.Room.Procedural
import Dodge.Room.Foreground
--import Dodge.Room.RoadBlock
import Dodge.Placement.Instance
import Dodge.Default.Room
--import Dodge.Item.Weapon.BulletGuns
--import Dodge.Item.Weapon.Utility
--import Dodge.LevelGen.Data
--import Geometry.Data
import Geometry
--import Padding
import Color
import Shape
import ShapePicture
import LensHelp
import Dodge.RandomHelp
import qualified Data.Set as S
import Data.Maybe
import Data.Tree
import Control.Monad.State
import System.Random
analyser :: PlacementSpot
-> PlacementSpot
-> (Machine -> World -> World)
-> Placement
analyser pslight psmc upf = extTrigLitPos pslight $ \tp ->
Just $ spNoID psmc
$ PutMachine aquamarine (reverse $ square 10) defaultMachine
{ _mcDraw = const $ noPic $ colorSH aquamarine (upperPrismPoly 25 (square 10))
, _mcUpdate = \mc -> (triggers . ix (fromJust $ _plMID tp) .~ const (_mcSensorToggle mc))
. upf mc
}
testYourHealth :: Int -> Machine -> World -> World
testYourHealth hp mc w
| _crHP ycr >= hp && dist (_crPos ycr) (_mcPos mc) < 40
= w & machines . ix (_mcID mc) . mcSensorToggle .~ True
| otherwise = w
where
ycr = you w