예제 #1
0
    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)
예제 #2
0
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