working on sorting machine room
							parent
							
								
									42567278d3
								
							
						
					
					
						commit
						cfc5785995
					
				| 
						 | 
				
			
			@ -150,7 +150,7 @@ enum RoomName {
 | 
			
		|||
	Room1,
 | 
			
		||||
	/// Duplicate of starting room so I can change things around a little.
 | 
			
		||||
	_Room2,
 | 
			
		||||
	SortingPuzzle,
 | 
			
		||||
	SortingRoom,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl Default for RoomName {
 | 
			
		||||
| 
						 | 
				
			
			@ -166,6 +166,11 @@ struct StateRoom1 {
 | 
			
		|||
	read_note: bool,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[derive (Clone, Default)]
 | 
			
		||||
struct StateSortingRoom {
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Commands that the game will ask the runtime to execute.
 | 
			
		||||
 | 
			
		||||
#[derive (PartialEq)]
 | 
			
		||||
| 
						 | 
				
			
			@ -211,11 +216,12 @@ pub struct State {
 | 
			
		|||
	intro_state: IntroState,
 | 
			
		||||
	current_room: RoomName,
 | 
			
		||||
	room_1: StateRoom1,
 | 
			
		||||
	room_sorting: StateSortingRoom,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl State {
 | 
			
		||||
	pub fn cheat (&mut self) {
 | 
			
		||||
		self.current_room = RoomName::SortingPuzzle;
 | 
			
		||||
		self.current_room = RoomName::SortingRoom;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/// Send a line of player input (e.g. "look table") into the game and return
 | 
			
		||||
| 
						 | 
				
			
			@ -268,11 +274,37 @@ impl State {
 | 
			
		|||
			],
 | 
			
		||||
			PlayerAction::RoomSpecific (x) => match self.current_room {
 | 
			
		||||
				Room1 => self.room_1 (x),
 | 
			
		||||
				SortingRoom => self.sorting_room (x),
 | 
			
		||||
				_ => just (line_response ("ERR: Invalid current room")),
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	fn sorting_room (&mut self, action: PlayerActionRoomSpecific) -> Vec <Response> 
 | 
			
		||||
	{
 | 
			
		||||
		use PlayerActionRoomSpecific::*;
 | 
			
		||||
		
 | 
			
		||||
		match action {
 | 
			
		||||
			Hint => {
 | 
			
		||||
				just (line_response ("The books are out of order"))
 | 
			
		||||
			},
 | 
			
		||||
			Wait => {
 | 
			
		||||
				just (line_response ("You wait. Nothing is moving. The room smells like 5 books."))
 | 
			
		||||
			},
 | 
			
		||||
			LookAround => {
 | 
			
		||||
				vec! [
 | 
			
		||||
					line_response ("You see a small bookshelf with 5 books on it, and a MACHINE. It looks like the MACHINE is able to grab books and swap them around with a robotic arm. The bookshelf is behind a pane of reinforced glass, but a control panel near you has buttons labelled LEFT, RIGHT, and SWAP."),
 | 
			
		||||
				]
 | 
			
		||||
			},
 | 
			
		||||
			Look (item_name) => {
 | 
			
		||||
				just (undetected_item ())
 | 
			
		||||
			},
 | 
			
		||||
			Use (item_name) => {
 | 
			
		||||
				just (undetected_item ())
 | 
			
		||||
			},
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	fn room_1 (&mut self, action: PlayerActionRoomSpecific) -> Vec <Response> {
 | 
			
		||||
		use PlayerActionRoomSpecific::*;
 | 
			
		||||
		
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue