Esempio n. 1
0
    def inventory_update(self, text=None, add=True):
        self.canvas.unbind("<Motion>")
        self.canvas.unbind("<Button-1>")
        for button in self.inventory_buttons:
            self.canvas.delete(self.inventory_buttons[button].text_item)
            self.canvas.delete(self.inventory_buttons[button].rect_item)
            if self.inventory_buttons[button] in self.update_items:
                del self.update_items[self.update_items.index(self.inventory_buttons[button])]

        if text is not None:
            if add is True:
                if text[0] not in self.inventory:
                    self.inventory[text[0]] = text[1]
                elif text[0] in self.inventory:
                    self.inventory[text[0]] += 1
            else:
                if text[0] in self.inventory:
                    if self.inventory[text[0]] > 0:
                        self.inventory[text[0]] -= 1
                        if self.inventory[text[0]] <= 0:
                            del self.inventory[text[0]]

        self.inventory_buttons = {}
        item_space = 35
        for item in self.inventory:
            self.inventory_buttons[item] = Canvas_Objects.Button(
                self.canvas, x=945, y=35 + item_space, length=285, height=25, font=("Times New Roman", 15, "normal"),
                text=f"{item} x{self.inventory[item]}",
                command=lambda event, item_=item: self.item_options(item_, event)
            )
            item_space += 35
            self.update_items += [self.inventory_buttons[item]]
        self.update_all()
Esempio n. 2
0
 def main_sequence(self):
     self.clear_all()
     self.buttons["save_game_button"] = Canvas_Objects.Button(self.canvas, x=927, y=615, length=130, height=35,
                                                              text="Save Game",
                                                              command=lambda event: self.save_load())
     self.main_user_input = MainSequence(
         self, self.canvas, 10, 10, self.text_inputs['username_text_input'].text, self.buttons
     )
     self.text_boxes["time_text_box"].update(y=625)
     self.buttons["load_game_button"].update(y=655)
     self.buttons["quit_button"].update(y=655)
Esempio n. 3
0
    def __init__(self, app, canvas, x, y, username, buttons):
        self.app = app
        self.canvas = canvas
        self.x = x
        self.y = y
        self.username = username
        self.buttons = buttons
        self.inventory = {
            "Health Potion": 10,
            "Mana Potion": 10
        }
        self.level = 1
        self.player = Character(self, "Player", self.level)
        self.player_health_bar_meter = 352
        self.in_fight = False
        self.update_items = [
            self.buttons["load_game_button"],
            self.buttons["save_game_button"],
            self.buttons["quit_button"]
        ]

        self.boss_name = ['Goblin', 'Wolf', 'Slime', 'Skeleton', 'Zombie'][random.randint(0, 4)]

        self.text_box = Canvas_Objects.TextBox(
            canvas, x=x, y=y, length=900, height=600,
            text=f"Hello, {self.username}, and welcome to 'In Memoriam!'\n"
                 "Awakening in an isolated region, you notice the only way available passage is\n"
                 f"blocked by an extremely tough looking {self.boss_name}.\n"
                 "At your current state, you don't appear to be fully prepared to win against him\n"
                 "should a fight arise.\n"
                 "To fix that, you can run into random encounters by typing 'fight', which rewards\n"
                 "you with experience points.\n"
                 "With enough experience points, you can level up and increase your stats;\n"
                 "including your strength, health, mana, and agility!\n"
                 f"When you feel as though you're strong enough, you can fight the {self.boss_name}\n"
                 "by typing 'fight boss'.\n"
                 "Good luck, and have fun!")
        self.text_input = Canvas_Objects.TextInput(canvas, x=x, y=y + 605, length=900, height=35,
                                                   command=lambda event: self.check_typed())

        self.inventory_text_box = Canvas_Objects.TextBox(self.canvas, x=925, y=10, length=355, height=600,
                                                         text="               Inventory\n\n")

        self.inventory_buttons = {}
        item_space = 35
        for item in self.inventory:
            self.inventory_buttons[item] = Canvas_Objects.Button(
                self.canvas, x=945, y=35 + item_space, length=285, height=25, font=("Times New Roman", 15, "normal"),
                text=f"{item} x{self.inventory[item]}",
                command=lambda event, item_=item: self.item_options(item_, event)
            )
            item_space += 35
            self.update_items += [self.inventory_buttons[item]]

        self.health_bar_text_box = Canvas_Objects.TextBox(self.canvas, x=10, y=655, length=445, height=35,
                                                          text="Health:")
        self.health_bar_line = self.health_bar_text_box.make_line(93, 673, 445, 673, fill="red", width=20)

        self.mana_bar_text_box = Canvas_Objects.TextBox(self.canvas, x=465, y=655, length=445, height=35,
                                                        text="Mana:")
        self.mana_bar_line = self.mana_bar_text_box.make_line(535, 673, 900, 673, fill="blue", width=20)
        self.player_mana_bar_meter = 365

        self.exp_bar_text_box = Canvas_Objects.TextBox(
            self.canvas, x=10, y=695, length=1270, height=20, font=("Times New Roman", 10, "normal"),
            text=f"Level: {self.level}"
        )
        self.experience = 0

        self.exp_bar_line = self.exp_bar_text_box.make_line(60, 705, 1265, 705, fill="gray", width=10)
        self.filling_exp_bar_line = self.exp_bar_text_box.make_line(60, 705, 60, 705, fill="yellow", width=10)