Add staircases, and moving between levels
Currently we just pick randomly between the cave and dungeon level generators. There's a lot of bugs here, but it's *sorta* working, so I'm leaving it as is.
This commit is contained in:
		
							parent
							
								
									6b0bab0e85
								
							
						
					
					
						commit
						0f79a06733
					
				
					 12 changed files with 125 additions and 17 deletions
				
			
		|  | @ -4,6 +4,7 @@ module Xanthous.Generators.LevelContents | |||
|   , randomItems | ||||
|   , randomCreatures | ||||
|   , randomDoors | ||||
|   , placeDownStaircase | ||||
|   , tutorialMessage | ||||
|   ) where | ||||
| -------------------------------------------------------------------------------- | ||||
|  | @ -23,7 +24,7 @@ import           Xanthous.Entities.Item (Item) | |||
| import qualified Xanthous.Entities.Creature as Creature | ||||
| import           Xanthous.Entities.Creature (Creature) | ||||
| import           Xanthous.Entities.Environment | ||||
|                  (GroundMessage(..), Door(..), unlockedDoor) | ||||
|                  (GroundMessage(..), Door(..), unlockedDoor, Staircase(..)) | ||||
| import           Xanthous.Messages (message_) | ||||
| import           Xanthous.Util.Graphics (circle) | ||||
| -------------------------------------------------------------------------------- | ||||
|  | @ -34,6 +35,11 @@ chooseCharacterPosition = randomPosition | |||
| randomItems :: MonadRandom m => Cells -> m (EntityMap Item) | ||||
| randomItems = randomEntities Item.newWithType (0.0004, 0.001) | ||||
| 
 | ||||
| placeDownStaircase :: MonadRandom m => Cells -> m (EntityMap Staircase) | ||||
| placeDownStaircase cells = do | ||||
|   pos <- randomPosition cells | ||||
|   pure $ _EntityMap # [(pos, DownStaircase)] | ||||
| 
 | ||||
| randomDoors :: MonadRandom m => Cells -> m (EntityMap Door) | ||||
| randomDoors cells = do | ||||
|   doorRatio <- getRandomR subsetRange | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue