fix(gs/xanthous): Don't gen dupe tutorial messages
Don't generate tutorial messages on levels other than the first. Change-Id: I7681377461b92f5d5015931b0088bef9d358d2e4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3804 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
This commit is contained in:
		
							parent
							
								
									580e37ff64
								
							
						
					
					
						commit
						eeafd0fa0e
					
				
					 2 changed files with 13 additions and 7 deletions
				
			
		| 
						 | 
					@ -568,12 +568,14 @@ showPanel panel = do
 | 
				
			||||||
genLevel
 | 
					genLevel
 | 
				
			||||||
  :: Word -- ^ Level number, starting at 0
 | 
					  :: Word -- ^ Level number, starting at 0
 | 
				
			||||||
  -> AppM Level
 | 
					  -> AppM Level
 | 
				
			||||||
genLevel _num = do
 | 
					genLevel num = do
 | 
				
			||||||
  let dims = Dimensions 80 80
 | 
					  let dims = Dimensions 80 80
 | 
				
			||||||
  generator <- choose $ CaveAutomata :| [Dungeon]
 | 
					  generator <- choose $ CaveAutomata :| [Dungeon]
 | 
				
			||||||
  level <- case generator of
 | 
					  let
 | 
				
			||||||
    CaveAutomata -> generateLevel SCaveAutomata CaveAutomata.defaultParams dims
 | 
					    doGen = case generator of
 | 
				
			||||||
    Dungeon -> generateLevel SDungeon Dungeon.defaultParams dims
 | 
					      CaveAutomata -> generateLevel SCaveAutomata CaveAutomata.defaultParams
 | 
				
			||||||
 | 
					      Dungeon -> generateLevel SDungeon Dungeon.defaultParams
 | 
				
			||||||
 | 
					  level <- doGen dims num
 | 
				
			||||||
  pure $!! level
 | 
					  pure $!! level
 | 
				
			||||||
 | 
					
 | 
				
			||||||
levelToGameLevel :: Level -> GameLevel
 | 
					levelToGameLevel :: Level -> GameLevel
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -85,7 +85,7 @@ parseGeneratorInput = Opt.subparser
 | 
				
			||||||
    generatorCommand sgen name desc parseParams =
 | 
					    generatorCommand sgen name desc parseParams =
 | 
				
			||||||
      Opt.command name
 | 
					      Opt.command name
 | 
				
			||||||
        (Opt.info
 | 
					        (Opt.info
 | 
				
			||||||
          (GeneratorInput <$> pure sgen <*> parseParams)
 | 
					          (GeneratorInput sgen <$> parseParams)
 | 
				
			||||||
          (Opt.progDesc desc)
 | 
					          (Opt.progDesc desc)
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -132,8 +132,9 @@ generateLevel
 | 
				
			||||||
  => SGenerator gen
 | 
					  => SGenerator gen
 | 
				
			||||||
  -> Params gen
 | 
					  -> Params gen
 | 
				
			||||||
  -> Dimensions
 | 
					  -> Dimensions
 | 
				
			||||||
 | 
					  -> Word -- ^ Level number, starting at 0
 | 
				
			||||||
  -> m Level
 | 
					  -> m Level
 | 
				
			||||||
generateLevel gen ps dims = do
 | 
					generateLevel gen ps dims num = do
 | 
				
			||||||
  rand <- mkStdGen <$> getRandom
 | 
					  rand <- mkStdGen <$> getRandom
 | 
				
			||||||
  let cells = generate gen ps dims rand
 | 
					  let cells = generate gen ps dims rand
 | 
				
			||||||
      _levelWalls = cellsToWalls cells
 | 
					      _levelWalls = cellsToWalls cells
 | 
				
			||||||
| 
						 | 
					@ -146,7 +147,10 @@ generateLevel gen ps dims = do
 | 
				
			||||||
  let upStaircase = _EntityMap # [(_levelCharacterPosition, UpStaircase)]
 | 
					  let upStaircase = _EntityMap # [(_levelCharacterPosition, UpStaircase)]
 | 
				
			||||||
  downStaircase <- placeDownStaircase cells
 | 
					  downStaircase <- placeDownStaircase cells
 | 
				
			||||||
  let _levelStaircases = upStaircase <> downStaircase
 | 
					  let _levelStaircases = upStaircase <> downStaircase
 | 
				
			||||||
  _levelTutorialMessage <- tutorialMessage cells _levelCharacterPosition
 | 
					  _levelTutorialMessage <-
 | 
				
			||||||
 | 
					    if num == 0
 | 
				
			||||||
 | 
					    then tutorialMessage cells _levelCharacterPosition
 | 
				
			||||||
 | 
					    else pure mempty
 | 
				
			||||||
  pure Level {..}
 | 
					  pure Level {..}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
levelToEntityMap :: Level -> EntityMap SomeEntity
 | 
					levelToEntityMap :: Level -> EntityMap SomeEntity
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue