Work on more complicated terminals
This commit is contained in:
@@ -1,9 +1,13 @@
|
||||
module Dodge.Placement.Instance.Analyser where
|
||||
module Dodge.Placement.Instance.Analyser
|
||||
( analyser'
|
||||
, testYouHave
|
||||
, testYourHealth
|
||||
) where
|
||||
import Dodge.LevelGen.Data
|
||||
--import Dodge.PlacementSpot
|
||||
import Dodge.Data
|
||||
import Dodge.Base.You
|
||||
import Dodge.Default
|
||||
--import Dodge.Default
|
||||
--import Dodge.Tree
|
||||
--import Dodge.RoomLink
|
||||
--import Dodge.Room.Door
|
||||
@@ -14,7 +18,7 @@ import Dodge.Default
|
||||
--import Dodge.Room.Foreground
|
||||
--import Dodge.Room.RoadBlock
|
||||
import Dodge.Placement.Instance
|
||||
import Dodge.Placement.Shift
|
||||
--import Dodge.Placement.Shift
|
||||
import Dodge.SoundLogic
|
||||
--import Dodge.Default.Room
|
||||
--import Dodge.Item.Weapon.BulletGuns
|
||||
@@ -24,8 +28,8 @@ import Dodge.SoundLogic
|
||||
import Geometry
|
||||
--import Padding
|
||||
import Color
|
||||
import Shape
|
||||
import ShapePicture
|
||||
--import Shape
|
||||
--import ShapePicture
|
||||
import LensHelp
|
||||
--import Dodge.RandomHelp
|
||||
|
||||
@@ -67,6 +71,8 @@ analyser' starts sucs fails afters upf pslight psmc = extTrigLitPos pslight $ \t
|
||||
++ map simpleline afters
|
||||
, _termMaxLines = 7
|
||||
, _termTitle = "ANALYSER"
|
||||
, _termSel = Nothing
|
||||
, _termOptions = []
|
||||
}
|
||||
)
|
||||
(\mc -> upf mc . (triggers . ix (fromJust $ _plMID tp) .~ const (_sensToggle $ _mcSensor mc))
|
||||
@@ -79,41 +85,6 @@ analyser' starts sucs fails afters upf pslight psmc = extTrigLitPos pslight $ \t
|
||||
_ -> (fails,red)
|
||||
updatebuttonname = plType . putButton . btText .~ "ANALYSER"
|
||||
|
||||
analyser
|
||||
:: [String] -- | initial text
|
||||
-> String -- | succeed text
|
||||
-> String -- | fail text
|
||||
-> [String] -- | after text
|
||||
-> (Machine -> World -> World)
|
||||
-> PlacementSpot
|
||||
-> PlacementSpot
|
||||
-> Placement
|
||||
analyser starts sucs fails afters upf pslight psmc = extTrigLitPos pslight $ \tp ->
|
||||
Just $ psPtCont psmc
|
||||
(PutMachine aquamarine (reverse $ square 10) defaultMachine
|
||||
{ _mcDraw = const . noPic . colorSH aquamarine . upperPrismPoly 25 $ square 10
|
||||
, _mcUpdate = \mc -> (triggers . ix (fromJust $ _plMID tp) .~ const (_sensToggle $ _mcSensor mc))
|
||||
. upf mc
|
||||
, _mcSensor = SensorCloseToggle NotClose False
|
||||
}
|
||||
) $ \anmc -> Just
|
||||
$ plSpot .~ shiftRelativeToPS (V2 20 0) (_plSpot anmc)
|
||||
$ updatebuttontext $ putTerminal $ const $ TerminalParams
|
||||
{ _termDisplayedLines = []
|
||||
, _termFutureLines = map simpleline starts
|
||||
++ [testline' (fromJust $ _plMID anmc)]
|
||||
++ map simpleline afters
|
||||
, _termMaxLines = 7
|
||||
, _termTitle = "ANALYSER"
|
||||
}
|
||||
where
|
||||
simpleline str = TerminalLineDisplay {_tlPause = 0, _tlString = const (str,white)}
|
||||
testline' mcid = TerminalLineDisplay 0 (testline mcid)
|
||||
testline mcid w = case w ^? machines . ix mcid . mcSensor . sensToggle of
|
||||
Just True -> (sucs,green)
|
||||
_ -> (fails,red)
|
||||
updatebuttontext = plType . putButton . btText .~ "ANALYSER"
|
||||
|
||||
analyserTest :: (World -> Bool) -> Machine -> World -> World
|
||||
analyserTest t mc w = case
|
||||
(_sensCloseToggle sens
|
||||
|
||||
Reference in New Issue
Block a user