def enter(self, state): self.clear() if state.party.is_empty(): self.add_message("\nWhat party!") self.add_option("\n(CONTINUE)", "cC", action.change_screen("main"), pos= -1, center=True) else: self.add_message("\nPick the party member to save to disk and remove from the party.") for i in range(len(state.party.chars)): self.add_key_event(chr(ord("1") + i), remove_member(i)) self.add_option("\n(CANCEL)", "cC", action.change_screen("main"), pos= -1, center=True) self.set_cancel_screen("main")
def newenter(self, state): if state.party.is_full(): action.change_screen("roster_full")(state) return self.clear() self.list = self.make_char_list() self.start_disp=0 self.num_disp=10 self.num_sel=0 self.set_cancel_screen("main") self.add_key_event( (pygame.K_DOWN, 0), self.down ) self.add_key_event( (pygame.K_UP, 0), self.up ) self.add_key_event( (pygame.K_RETURN, 0), self.select )
def execute(state): if char.is_party: char_loader = app.get_char_loader() # FIXME: check if char exists, do with loop, return when full ret = state.party.add(char_loader.load_char_by_name(char.name1)) ret = state.party.add(char_loader.load_char_by_name(char.name2)) ret = state.party.add(char_loader.load_char_by_name(char.name3)) ret = state.party.add(char_loader.load_char_by_name(char.name4)) ret = state.party.add(char_loader.load_char_by_name(char.name5)) ret = state.party.add(char_loader.load_char_by_name(char.name6)) else: ret = state.party.add(char) if ret: screens = [None, "already_in_party", "no_room"] action.change_screen(screens[ret])(state) return state.ui.char_view.redraw(state) action.change_screen("main")
def message_screen(msg, action, target, option, keys): import bt.game.action as btaction if action is None: action = btaction.change_screen(target) screen = Screen() screen.add_message(msg) screen.set_cancel_action(action) screen.add_option(option, keys, action, pos= -1, center=True) return screen
def set_cancel_screen(self, name): self.set_cancel_action(action.change_screen(name))
def execute(state): char = state.party.remove(number) # FIXME: char must be saved also state.ui.char_view.redraw(state) action.change_screen("main")
import bt.game.action as action from bt.game.handler import (MultiScreenHandler, Screen, continue_screen) from bt.game.movement import Direction from bt.game.app import app class GuildHandler(MultiScreenHandler): pass guild = GuildHandler("inside/guild.png", location="The guild") # The main screen screen = Screen() screen.add_message("Thou art in the Guild of Adventurers.\n ") screen.add_option('Add member', 'aA', action.change_screen("add_member")) screen.add_option('Remove member', 'rR', action.change_screen("remove_member")) screen.add_option('Create a member', 'cC', action.change_screen("create_member")) screen.add_option('Delete a member', 'dD', action.change_screen("delete_member")) screen.add_option('Save party', 'sS', action.change_screen("save_party")) screen.add_option('Leave game', 'lL', action.change_screen("leave_game")) screen.add_option('Enter the city', 'eE', # action.enter_city(pos=[2, 3], newdir=Direction.NORTH)) action.enter_city(pos=[25, 15], newdir=Direction.NORTH)) guild.add_screen("main", screen) del screen # The leave Game screen screen = Screen() screen.set_cancel_screen("main") screen.add_message("Leave game?\n ")
import pygame import bt.game.action as action from bt.game.handler import MultiScreenHandler, Screen class TavernHandler(MultiScreenHandler): pass tavern = TavernHandler("inside/pub.png", location="Tavern") pub = tavern tavern_greeting_screen = Screen() tavern_greeting_screen.add_message("Hail, travelers! Step to the bar and I'll draw you a tankard.") tavern_greeting_screen.add_message("\nYou can:\n") tavern_greeting_screen.add_option('Order a drink', 'oO', action.change_screen("order")) tavern_greeting_screen.add_option('Talk to barkeep', 'tT', action.change_screen("talk")) tavern_greeting_screen.add_message("\n\n\n") tavern_greeting_screen.add_option('(EXIT)', 'eE', action.exit_building(), pos= -1, center=True) tavern_order_screen = Screen() tavern_order_screen.add_message("Seat thyself, %(charname)s. We've got...\n") tavern_order_screen.add_option("Ale", "aA", action.message("Not bad!!")) tavern_order_screen.add_option("Beer", "bB", action.message("Not bad!!")) tavern_order_screen.add_option("Mead", "mM", action.message("Not bad!!")) tavern_order_screen.add_option("Foul spirits", "fF", action.message("You don't feel too well.")) tavern_order_screen.add_option("Ginger Ale", "gG", action.message("The girls in the tavern are not impressed.")) tavern_order_screen.add_option("Wine", "wW", action.message("The barkeep says, \"Go down to the cellar and pick out a bottle.\"")) tavern_order_screen.add_message("\n\nWhat'll it be?") tavern_order_screen.add_option('(CANCEL)', 'cC', action.change_screen("greeting"), pos= -1, center=True) tavern_talk_screen = Screen() tavern_talk_screen.add_message("\"Talk ain't cheap,\" the barkeep says.")
import bt.game.action as action from bt.game.handler import MultiScreenHandler, Screen, continue_screen from bt.game.movement import Direction class ReviewHandler(MultiScreenHandler): pass review = ReviewHandler("inside/review.png", location="Review board") screen = Screen() screen.add_message("Wouldst thou like to be reviewed for:\n ") screen.add_option("Advancement", "aA", action.change_screen("advancement")) screen.add_option("Spell Acquiring", "sS", action.change_screen("spell_acquiring")) screen.add_option("Class Change", "cC", action.change_screen("class_change")) screen.add_option("(EXIT)", "eE", action.turn_back(), pos=-1, center=True) review.add_screen("main", screen) def not_implemented(): return continue_screen("\nNot implemented yet.", target="main") review.add_screen("advancement", not_implemented()) review.add_screen("spell_acquiring", not_implemented()) review.add_screen("class_change", not_implemented()) # The review Board is closed for the evening. The guild # leaders will meet with you in the morning.