Add doors and an open command
Add a Door entity and an Open command, which necessitated supporting the direction prompt. Currently nothing actually puts doors on the map, which puts a slight damper on actually testing this out.
This commit is contained in:
		
							parent
							
								
									7770ed0548
								
							
						
					
					
						commit
						4db3a68efe
					
				
					 13 changed files with 151 additions and 29 deletions
				
			
		|  | @ -135,6 +135,7 @@ data Direction where | |||
|   UpRight   :: Direction | ||||
|   DownLeft  :: Direction | ||||
|   DownRight :: Direction | ||||
|   Here      :: Direction | ||||
|   deriving stock (Show, Eq, Generic) | ||||
| 
 | ||||
| instance Arbitrary Direction where | ||||
|  | @ -150,6 +151,7 @@ opposite UpLeft    = DownRight | |||
| opposite UpRight   = DownLeft | ||||
| opposite DownLeft  = UpRight | ||||
| opposite DownRight = UpLeft | ||||
| opposite Here      = Here | ||||
| 
 | ||||
| move :: Direction -> Position -> Position | ||||
| move Up        = y -~ 1 | ||||
|  | @ -160,6 +162,7 @@ move UpLeft    = move Up . move Left | |||
| move UpRight   = move Up . move Right | ||||
| move DownLeft  = move Down . move Left | ||||
| move DownRight = move Down . move Right | ||||
| move Here      = id | ||||
| 
 | ||||
| asPosition :: Direction -> Position | ||||
| asPosition dir = move dir mempty | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue