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') + '.'
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())
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)
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) + '!'
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) + '.'
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())
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) + '.'
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('=================')
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) + '!'