def main(): """Main game function.""" try: data = load_data() data = update.update(data) except: # print(sys.exc_info()) data_constructor.build_data() data = load_data() data["want_to_play"] = True data["start"] = time.time() actions = {"quit": quit, "look": check_status, "shop": buy_menu.menu, "yard": placement.menu, "collect money": collect_money, "check food": placement.check_food, "help": print_help} banner() data["prefix"] = "{.BLUE}[Welcome!]{.ENDC}".format( printer.PColors, printer.PColors) check_status(data) data["prefix"] = "[Main Menu]" while data["want_to_play"] is True: data["prefix"] = "{.MAIN}[Main Menu]{.ENDC}".format( printer.PColors, printer.PColors) printer.prompt(data["prefix"], actions.keys()) inp = input("{0} Choose an action! ".format(data["prefix"])) # pdb.set_trace() if inp in actions: actions[inp](data) continue else: printer.invalid(data["prefix"])
def menu(data): """Display item shop menu.""" data["prefix"] = "[Item Shop]" printer.shop( data["prefix"], "you have {0} silver fish and {1} gold fish to spend" .format(data["s_fish"], data["g_fish"])) list_items(data) data["want_to_buy"] = True actions = {"buy": buy_item, "examine": ex_item, "check wallet": wallet, "list items": list_items, "leave shop": exit_buy} while data["want_to_buy"]: printer.prompt("{.SHOP}{}{.ENDC}".format( printer.PColors, data["prefix"], printer.PColors), actions.keys()) inp = input("{.SHOP}{}{.ENDC} What do you want to do? ".format( printer.PColors, data["prefix"], printer.PColors)) if inp in actions: actions[inp](data) continue else: printer.invalid(data["prefix"])
def menu(data): """Display yard menu.""" data["prefix"] = "[The Yard]".format(printer.PColors, printer.PColors) # printer.p(data["prefix"], "You have {0} spaces open in your yard" # .format(compute_space(data))) list_yard_items(data) data["placing"] = True actions = {"list owned items": list_owned_items, "examine yard": list_yard_items, "cats": cats, "place toy": place, "place food": food, "leave yard": exit} while data["placing"]: # FIXME: with printer.prompt here and printer.invalid on unknown # input, the options are doubled up after an unknown input printer.prompt(data["prefix"], actions.keys()) inp = input("{.YARD}{}{.ENDC} What do you want to do? ".format( printer.PColors, data["prefix"], printer.PColors)) if inp in actions: actions[inp](data) continue else: printer.invalid(data["prefix"])