def select_party_member_to_sell_interpreter(keyEvent): if keyEvent.key in NUMBER_KEYS: num = int(pygame.key.name(keyEvent.key)) - 1 if 0 <= num and num < person.get_party().len(): global chosenPerson, playerGoods chosenPerson = person.get_party().get_member(num) window_sell_person_chosen() elif keyEvent.key == K_BACKSPACE: shop_mode(doneShoppingLitany=litany)
def window_shop(): global chosenPerson if person.get_party().len() == 1: chosenPerson = universal.state.player window_shop_person_chosen() else: say_title('Please select a character to go shopping.') universal.say(person.get_party().display()) set_commands(['(#) Select a character.', '<==Back']) set_command_interpreter(select_character_to_buy_interpreter)
def choose_character_to_carry_item(): if len(person.get_party()) == 1: universal.say([universal.state.player.name, 'is now carrying', chosenGood.name]) universal.state.player.take_item(chosenGood) set_goods() acknowledge(window_shop_person_chosen, ()) else: universal.say(['Who should carry', chosenGood.name + "?"]) universal.say(person.get_party().display()) set_commands(['(#) Select party member']) set_command_interpreter(choose_character_to_carry_item_interpreter)
def window_sell(): say_title('Sell') global chosenPerson if person.get_party().len() == 1: chosenPerson = universal.state.player window_sell_person_chosen() else: say_title('Select a party member whose inventory you would like to look at.') universal.say(person.get_party().display()) set_commands(['(#) Select party member', '<==Back']) set_command_interpreter(select_party_member_to_sell_interpreter)
def choose_character_to_equip_item(): if len(person.get_party()) == 1: universal.say([universal.state.player.name, 'has equipped', chosenGood.name + "."]) universal.state.player.equip(chosenGood) acknowledge(window_shop_person_chosen, ()) else: say_title(['Who should equip', chosenGood.name + "?"]) universal.say(person.get_party().display()) if len(person.get_party()) < 10: set_commands(['(#) Select party member']) else: set_commands(['(#) Select party member:_', '(Enter)Done']) set_command_interpreter(choose_character_to_equip_item_interpreter)
def select_character_to_buy_interpreter(keyEvent): global chosenPerson if keyEvent.key in NUMBER_KEYS: num = int(pygame.key.name(keyEvent.key)) - 1 if 0 <= num and num < person.get_party().len(): chosenPerson = person.get_party().get_member(num) window_shop_person_chosen() elif keyEvent.key == K_BACKSPACE: if len(playerGoods) >= 10 and partialNum != '': partialNum = partialNum[:-1] elif person.get_party().len() == 1: shop_mode(doneShoppingLitany=litany) else: window_shop()
def window_sell_interpreter(keyEvent): global partialNum if keyEvent.key in NUMBER_KEYS: if len(playerGoods) < 10: num = int(pygame.key.name(keyEvent.key)) - 1 if 0 <= num and num < len(playerGoods): global chosenGood chosenGood = chosenPerson.get_item(num) confirm_sell() else: partialNum += pygame.key.name(keyEvent.key) set_commands(['(#) Select item to sell:' + str(partialNum) + '_', '<==Back']) elif keyEvent.key == K_BACKSPACE: if len(playerGoods) >= 10 and partialNum != '': partialNum = partialNum[:-1] elif person.get_party().len() == 1: shop_mode(doneShoppingLitany=litany) else: window_sell() elif keyEvent.key == K_RETURN: try: chosenGood = chosenPerson.get_item(int(partialNum)-1) except IndexError: return else: confirm_sell()
def choose_character_to_carry_item_interpreter(keyEvent): if keyEvent.key in NUMBER_KEYS: num = int(pygame.key.name(keyEvent.key)) - 1 if 0 <= num and num < len(universal.state.party): personWhoBoughtGood = chosenPerson chosenPerson = person.get_party().get_member(num) chosenPerson.take_item(chosenGood) universal.say([chosenPerson.name, 'has taken', chosenGood.name + "."]) chosenPerson = personWhoBoughtGood acknowledge(window_shop_person_chosen, ())
def select_character_interpreter(keyEvent): party = person.get_party() global previousMode if keyEvent.key == K_BACKSPACE: if previousMode is None: previousMode = town_mode previousMode() elif keyEvent.key in NUMBER_KEYS: num = int(pygame.key.name(keyEvent.key)) per = party.members[num-1] per.character_sheet(previousMode)
def choose_character_to_equip_item_interpreter(keyEvent): global chosenPerson, partialNum if keyEvent.key in NUMBER_KEYS: num = int(pygame.key.name(keyEvent.key)) - 1 if len(person.get_party()) < 10: if 0 <= num and num < len(person.get_party()): personWhoBoughtGood = chosenPerson chosenPerson = person.get_party().get_member(num) personWhoBoughtGood.drop_item(chosenGood) chosenPerson.take_item(chosenGood) chosenPerson.equip(chosenGood) universal.say([chosenPerson.name, 'has equipped', chosenGood.name + '.']) chosenPerson = personWhoBoughtGood acknowledge(window_shop_person_chosen, ()) else: partialNum += pygame.key.name(keyEvent.key) elif keyEvent.key == K_BACKSPACE and len(person.get_party()) < 10: partialNum = partialNum[:-1] elif keyEvent.key == K_RETURN and len(person.get_party()) < 10: try: num = int(partialNum) except ValueError: return partialNum = '' personWhoBoughtGood = chosenPerson chosenPerson = person.get_party().get_member(num) chosenPerson.equip(chosenGood) universal.say([chosenPerson.name, 'has equipped', chosenGood.name + '.']) chosenPerson = personWhoBoughtGood acknowledge(window_shop_person_chosen, ())
def talk(previousModeIn): party = person.get_party() talkableCharacters = [c for cName, c in universal.state.location.characters.iteritems() if c and not party.inParty(c)] if talkableCharacters: print(talkableCharacters) universal.say('Who would you like to speak to?\n') universal.say('\n'.join([j + name for j, name in zip( [str(i) + '. ' for i in range(1, len(talkableCharacters)+1)], [c.printedName for c in talkableCharacters])])) universal.set_commands(['(#) Select person', '<==Back']) global previousMode previousMode = previousModeIn universal.set_command_interpreter(talk_interpreter)
def confirm_buy_interpreter(keyEvent): if keyEvent.key == K_RETURN: if chosenPerson.coins >= chosenGood.price: chosenPerson.coins -= chosenGood.price shopkeeper.inventory.remove(chosenGood) chosenPerson.take_item(chosenGood) say_title([chosenPerson.name + "'s", 'Matrons: ', str(chosenPerson.coins)]) if chosenGood.is_equippable(): if len(person.get_party()) == 1: universal.say(['\nShould', chosenPerson.printedName, 'equip it?']) else: universal.say('\nShould someone equip it?') set_commands(['(Y)es', '(N)o']) set_command_interpreter(equip_interpreter) else: choose_character_to_carry_item() else: universal.say([chosenPerson.name, "doesn't have enough money!"]) acknowledge(window_shop_person_chosen, ()) set_goods() elif keyEvent.key == K_BACKSPACE: window_shop_person_chosen()
def talk_interpreter(keyEvent): global previousMode if keyEvent.key == K_BACKSPACE: if previousMode is None: previousMode = town_mode previousMode() elif keyEvent.key in NUMBER_KEYS: chosenNum = int(pygame.key.name(keyEvent.key)) - 1 talkableCharacters = [c for cName, c in universal.state.location.characters.iteritems() if c and c not in person.get_party().members] if 0 <= chosenNum and chosenNum < len(talkableCharacters): conversation.converse_with(talkableCharacters[chosenNum], town_mode)