def calc_player_dmg(self, character, monster): weapon = character.worn_equipment[0] if character.worn_equipment[0] is None: dmg = 2 else: dmg = weapon.get_equipment_type().base_damage(weapon.get_equipment_level()) return dmg def fight_monster(self, zone_level): monster = Monsters.get_monster(zone_level) character = self.player.get_current_character() character_life = character.max_life monster_life = monster.value[2] finished = False while not finished: print(self.calc_player_dmg(character, monster)) finished = True p = Player("058859595") p.create_character("jos") p.set_current_character("jos") e = Equipment(100) e.equipment_type = EquipmentType.Two_handed_axe p.get_current_character().equip_item(e) f = Fight(p, None) f.fight_monster(85)
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