Add analysing machine
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user