Esempio n. 1
0
	def do_unequip( self, s ):
		item = self.player.getEquippedItemByName(s)
		if item == None:
			print "You don't have anything by that name equipped"
		else:
			self.player.unequipItem(item)
			print yellow(s) + " unequipped and put into your " + magenta('Inventory') + '.'
Esempio n. 2
0
	def do_look(self, s):
		cur_room = self.map.getRooms()[self.player.getPos()]
		dir = s.lower()
		if s == '':
			print format_string(self.parser.parseDescription(cur_room.description))
		elif dir == 'north' or dir == 'n' or dir == 'forward' or dir == 'f':
			if cur_room.isAltDescActive('north'):
				print format_string(self.parser.parseDescription(cur_room.getAltDesc('north')))
			else:
				print format_string(self.parser.parseDescription(cur_room.north_desc))
			#print magenta(cur_room.north_desc)
		elif dir == 'south' or dir == 's' or dir == 'back' or dir == 'b':
			if cur_room.isAltDescActive('south'):
				print format_string(self.parser.parseDescription(cur_room.getAltDesc('south')))
			else:
				print format_string(self.parser.parseDescription(cur_room.south_desc))
		elif dir == 'east' or dir == 'e' or dir == 'right' or dir == 'r':
			if cur_room.isAltDescActive('east'):
				print format_string(self.parser.parseDescription(cur_room.getAltDesc('east')))
			else:
				print format_string(self.parser.parseDescription(cur_room.east_desc))
			#print magenta(cur_room.east_desc)
		elif dir == 'west' or dir == 'w' or dir == 'left' or dir == 'l':
			if cur_room.isAltDescActive('west'):
				print format_string(self.parser.parseDescription(cur_room.getAltDesc('west')))
			else:
				print format_string(self.parser.parseDescription(cur_room.west_desc))
		else:
			return
		if len(cur_room.getDroppedItems()) > 0:
			print "=== Dropped Items ==="
			for i in cur_room.getDroppedItems():
				print yellow(i.getName())
Esempio n. 3
0
	def do_equip( self, s ):
		item = self.player.getInventoryItemByName(s)
		if item == None:
			print "You can't equip an item you don't have!"
		else:
			if not item.getEquippable():
				print "You can't equip that item!"
			else:
				print yellow(s) + ' equipped!'
				self.player.equipItem(item)
Esempio n. 4
0
	def do_use( self, s ):
		#global GLOBAL_TIME
		#global TURBULENCE_START_TIME
		#global TURBULENCE_STOP_TIME
		
		if 'on' not in s:
			print self.parser.parseDescription("USE syntax: use <i><item1> on <i><item2>")
			return
		string1 = s.split('on')[0].strip()
		string2 = s.split('on')[1].strip()
		#if len(s.split()) < 3:
		#	print self.parser.parseDescription("USE syntax: use <i><item1> on <i><item2>")
		#	return
		cur_room = self.map.getRooms()[self.player.getPos()]
		room_items = cur_room.getItems()
		#string1 = s.split()[0]
		#string2 = s.split()[2]
		playeritem = self.player.getInventoryItemByName(string1)
		roomitem = cur_room.getItemByName(string2)
		## For the case where the player doens't actually have the first item
		## e.g. use latch on door
		if playeritem is None:
			playeritem = cur_room.getItemByName(string1)
		if playeritem is None:
			print "There's no " + yellow(string1) + " that could be found to use."
		elif roomitem is None:
			print "There's no " + yellow(string2) + " that could be found to use."
		elif string.lower(playeritem.getName()) in roomitem.getUnlockItems():
			cur_room.modifyDirectionalBoundary(roomitem.getDirectionToChange())
			print 'You used ' + yellow(string1) + ' on ' + yellow(string2) + '.'
			### Check for lockbox opening and start the countdown to Turbulence
		#	if string.lower(string2) == 'lockbox':
		#		TURBULENCE_START_TIME = GLOBAL_TIME + 2
		#		TURBULENCE_STOP_TIME = GLOBAL_TIME + 7
			if roomitem.getUnlockText() != '':
				print self.parser.parseDescription(roomitem.getUnlockText())
			else:
				if cur_room.getDirectionByName(roomitem.getDirectionToChange()):
					print 'The ' + cyan(roomitem.getDirectionToChange()) + cyan('ern') + ' passage has opened!'
				else:
					print 'The ' + cyan(roomitem.getDirectionToChange()) + cyan('ern') + ' passage has closed!'
			## Check for droppable items - if present, drop them
			if len(roomitem.getDroppableItems()) > 0:
				for item in roomitem.getDroppableItems():
					cur_room.addToDroppedItems(item)
					#roomitem.getDroppableItems().remove(item)
					print yellow(roomitem.getName()) + ' dropped ' + yellow(item.getName()) + '!'
				## Clear out droppable items so they can't drop again
				del roomitem.getDroppableItems()[:]
			## Check both items that were used to see if any alternate descriptions should be used
			if playeritem.getAltDescDirection() is not None:
				cur_room.setAltDescBool(playeritem.getAltDescDirection(), True)	
			if roomitem.getAltDescDirection() is not None:
				cur_room.setAltDescBool(roomitem.getAltDescDirection(), True)
		else:
			print "You can't use " + yellow(string1) + ' on ' + yellow(string2) + '!'
Esempio n. 5
0
	def do_examine( self, s ):
		cur_room = self.map.getRooms()[self.player.getPos()]
		for item in cur_room.getItems() + cur_room.getDroppedItems():
			if string.lower(item.getName()) == string.lower(s):
				print self.parser.parseDescription(item.getExamineText())
				return
		print "You don't see anything that looks like a " + yellow(s) + '.'
Esempio n. 6
0
	def do_look(self, s):
		cur_room = self.map.getRooms()[self.player.getPos()]
		dir = s.lower()
		if s == '':
			print format_string(self.parser.parseDescription(cur_room.description))
		elif dir == 'north' or dir == 'n' or dir == 'forward' or dir == 'f':
			if cur_room.isAltDescActive('north'):
				print format_string(self.parser.parseDescription(cur_room.getAltDesc('north')))
			else:
				print format_string(self.parser.parseDescription(cur_room.north_desc))
			#print magenta(cur_room.north_desc)
		elif dir == 'south' or dir == 's' or dir == 'back' or dir == 'b':
			if cur_room.isAltDescActive('south'):
				print format_string(self.parser.parseDescription(cur_room.getAltDesc('south')))
			else:
				print format_string(self.parser.parseDescription(cur_room.south_desc))
		elif dir == 'east' or dir == 'e' or dir == 'right' or dir == 'r':
			if cur_room.isAltDescActive('east'):
				print format_string(self.parser.parseDescription(cur_room.getAltDesc('east')))
			else:
				print format_string(self.parser.parseDescription(cur_room.east_desc))
			#print magenta(cur_room.east_desc)
		elif dir == 'west' or dir == 'w' or dir == 'left' or dir == 'l':
			if cur_room.isAltDescActive('west'):
				print format_string(self.parser.parseDescription(cur_room.getAltDesc('west')))
			else:
				print format_string(self.parser.parseDescription(cur_room.west_desc))
		else:
			return
		## Print any items that have been dropped in this room
		if len(cur_room.getDroppedItems()) > 0:
			print "=== Dropped Items ==="
			for i in cur_room.getDroppedItems():
				print yellow(i.getName())
		## Print enemies
		#enemies = self.map.getEnemiesAtPos(self.player.getPos())
		enemy_bank = self.map.getEnemies()
		if len(cur_room.getEnemies()) > 0:
			print red("=== Enemies ===")
			for e_id in cur_room.getEnemies():
				if enemy_bank[e_id].getHP() > 0:
					print enemy_bank[e_id].getName()
				else:
					print enemy_bank[e_id].getName() + '   ' + red_bg('*DEFEATED*')
				print '  HP: ' + str(enemy_bank[e_id].getHP())
				print '  MP: ' + str(enemy_bank[e_id].getMP())
Esempio n. 7
0
	def do_take( self, s ):
		cur_room = self.map.getRooms()[self.player.getPos()]
		for item in cur_room.getItems() + cur_room.getDroppedItems():
			if string.lower(item.getName()) == string.lower(s):
				if 'take' in item.getKeywords():
					print yellow(item.getName()) + ' added to your' + magenta(' inventory')
					self.player.addToInventory(item)
					# Either remove the item from the list of room items, or list of dropped room items
					try: cur_room.getItems().remove(item)
					except ValueError: cur_room.getDroppedItems().remove(item)
					## Check both items that were used to see if any alternate descriptions should be used
					if item.getAltDescDirection() is not None:
						cur_room.setAltDescBool(item.getAltDescDirection(), True)	
					return		
				else:
					print red("You can't take that.")
					return		
		print "You don't see anything that looks like a " + yellow(s) + '.' 
Esempio n. 8
0
	def do_inventory( self, s ):
		inv = self.player.getInventory()
		print magenta('=== INVENTORY ===')
		for item in inv:
			print yellow(item.getName())
			print yellow(' - ' + item.getExamineText().replace('<i>',''))
		print magenta('=================')
		print magenta('=== EQUIPPED  ===')
		for item in  self.player.getEquipped():
			print yellow(item.getName())
			print yellow(' - ' + item.getExamineText().replace('<i>',''))
		print magenta('=================')
Esempio n. 9
0
	def do_open( self, s ):
		cur_room = self.map.getRooms()[self.player.getPos()]
		open_item = s.strip()
		roomitem = cur_room.getItemByName(open_item)
		if roomitem == None:
			print yellow(open_item) + ' could not be found!'
			return
		else:
			if 'open' in roomitem.getKeywords():
				cur_room.modifyDirectionalBoundary(roomitem.getDirectionToChange())
				print 'You opened ' + yellow(open_item) + '.'
				if roomitem.getUnlockText() != '':
					print self.parser.parseDescription(roomitem.getUnlockText())
				#if cur_room.getDirectionByName(roomitem.getDirectionToChange()):
				#	print 'The ' + cyan(roomitem.getDirectionToChange()) + cyan('ern') + ' passage has opened!'
				#else:
				#	print 'The ' + cyan(roomitem.getDirectionToChange()) + cyan('ern') + ' passage has closed!'
			else:
				print "You can't open " + yellow(open_item) + '!'