Add looping sound, add sound to terminals
This commit is contained in:
+18
-23
@@ -122,31 +122,26 @@ invSelPos w = splitgap + (foldl' (+) 0 . fst $ IM.split invsel (augmentedInvSize
|
||||
| otherwise = 1
|
||||
|
||||
updateTerminal :: World -> World
|
||||
updateTerminal w = case _hudElement $ _hud w of
|
||||
DisplayInventory dt@DisplayTerminal{} -> w & hud . hudElement %~ updateDisplayTerminal dt w
|
||||
_ -> w
|
||||
updateTerminal = checkTermDist . updateTerminalLine
|
||||
|
||||
updateDisplayTerminal :: SubInventory -> World -> HUDElement -> HUDElement
|
||||
updateDisplayTerminal sub w inv
|
||||
| closetest == Just True = inv & subInventory %~ tickDisplayTerminal
|
||||
| otherwise = DisplayInventory NoSubInventory
|
||||
where
|
||||
closetest = do
|
||||
btpos <- w ^? buttons . ix (_termID sub) . btPos
|
||||
return $ dist btpos (_crPos $ you w) < 40
|
||||
|
||||
tickDisplayTerminal :: SubInventory -> SubInventory
|
||||
tickDisplayTerminal dt = case dt of
|
||||
DisplayTerminal{} -> dt & termParams . termDisplayedLines .++~ maybeToList ml
|
||||
& termParams . termFutureLines .~ newtfl
|
||||
where
|
||||
tfl = _termFutureLines $ _termParams dt
|
||||
(ml,newtfl) = tickFutureLines tfl
|
||||
tickFutureLines ((0,sc):xs) = (Just sc,xs)
|
||||
tickFutureLines ((i,sc):xs) = (Nothing,(i-1,sc):xs)
|
||||
tickFutureLines [] = (Nothing,[])
|
||||
_ -> dt
|
||||
checkTermDist :: World -> World
|
||||
checkTermDist w = case w ^? hud . hudElement . subInventory . termID of
|
||||
Just btid -> fromMaybe (w & hud . hudElement .~ DisplayInventory NoSubInventory) $ do
|
||||
btpos <- w ^? buttons . ix btid . btPos
|
||||
if dist btpos (_crPos $ you w) < 40 then Just w else Nothing
|
||||
Nothing -> w
|
||||
|
||||
updateTerminalLine :: World -> World
|
||||
updateTerminalLine w = case w ^? hud . hudElement . subInventory . termParams . termFutureLines . ix 0 of
|
||||
Nothing -> w
|
||||
Just tl | _tlPause tl > 0 -> w
|
||||
& hud . hudElement . subInventory . termParams . termFutureLines . ix 0 . tlPause -~ 1
|
||||
Just (TerminalLineDisplay _ s c) -> w
|
||||
& hud . hudElement . subInventory . termParams . termFutureLines %~ tail
|
||||
& hud . hudElement . subInventory . termParams . termDisplayedLines .:~ (s,c)
|
||||
Just (TerminalLineEffect _ eff) -> w
|
||||
& hud . hudElement . subInventory . termParams . termFutureLines %~ tail
|
||||
& eff (_subInventory . _hudElement $ _hud w)
|
||||
|
||||
-- this looks ugly...
|
||||
updateCloseObjects :: World -> World
|
||||
|
||||
Reference in New Issue
Block a user