class GFU: def __init__(self, ctx): self.player = Player(ctx.message.author.id) self.ctx = None self.image = None self.msg = None self.print_handler = None def __str__(self): return str(self.player) async def set_ctx(self, ctx, image, msg, print_handler): self.ctx = ctx self.image = image self.msg = msg self.print_handler = print_handler await self.welcome_screen() async def welcome_screen(self): val = await self.print_handler.handle_screen( self.ctx, self.msg, self.image, GameControlSettings.WELCOME_SCREEN) if val == 0: await self.character_selection() elif val == 1: await self.print_handler.cleanup(self.ctx, self.image, self.msg) return return async def character_selection(self): selected = 0 val = 0 while val in [0, 1, 3, 4]: val = await self.print_handler.handle_screen( self.ctx, self.msg, self.image, GameControlSettings.CHARACTER_SELECTION, self.player.get_characters(), selected) if val == 0: if self.player.player_has_character(): selected -= 1 if selected < 0: selected = len(self.player.get_characters()) - 1 elif val == 1: if self.player.player_has_character(): selected += 1 if selected == len(self.player.characters): selected = 0 elif val == 2: self.player.set_current_character( list(self.player.get_characters())[selected]) await self.main_menu() elif val == 3: self.player.create_character( self.ctx.message.author.display_name) selected = len(self.player.get_characters()) - 1 elif val == 4: self.player.set_current_character( list(self.player.get_characters())[selected]) selected -= 1 return async def main_menu(self): selected = 0 val = 0 while val in [0, 1]: val = await self.print_handler.handle_screen( self.ctx, self.msg, self.image, GameControlSettings.MAIN_MENU, GameControlSettings.MAIN_MENU.value[12], selected) if val == 0: selected -= 1 if selected < 0: selected = len(GameControlSettings.MAIN_MENU.value[12]) - 1 elif val == 1: selected += 1 if selected == len(GameControlSettings.MAIN_MENU.value[12]): selected = 0 elif val == 2: if selected == 0: pass elif selected == 1: pass elif val == 3: await self.character_selection() elif val == 4: # show stats pass elif val == 5: # map pass def get_player(self): return self.player