From 479da54dc1e7c378e67dddd271577a11e5154244 Mon Sep 17 00:00:00 2001 From: "Mike A. Trethewey" Date: Sat, 8 Feb 2020 11:44:24 -0800 Subject: [PATCH] Sort Enemizer Coming back to implement working dirs --- Gui.py | 88 +++++++-------------------------------- gui/randomize/enemizer.py | 79 +++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 74 deletions(-) create mode 100644 gui/randomize/enemizer.py diff --git a/Gui.py b/Gui.py index b769c4cc..b2d5583e 100755 --- a/Gui.py +++ b/Gui.py @@ -14,6 +14,7 @@ from AdjusterMain import adjust from DungeonRandomizer import parse_arguments from gui.randomize.item import item_page from gui.randomize.entrando import entrando_page +from gui.randomize.enemizer import enemizer_page from GuiUtils import ToolTips, set_icon, BackgroundTaskProgress from Main import main, __version__ as ESVersion from Rom import Sprite @@ -79,7 +80,7 @@ def guiMain(args=None): randomizerNotebook.add(entrandoWindow, text="Entrances") # Enemizer - enemizerWindow = ttk.Frame(randomizerNotebook) + enemizerWindow = enemizer_page(randomizerNotebook) randomizerNotebook.add(enemizerWindow, text="Enemizer") # Dungeon Shuffle @@ -252,66 +253,6 @@ def guiMain(args=None): doorShuffleLabel = Label(doorShuffleFrame, text='Door shuffle algorithm') doorShuffleLabel.pack(side=LEFT) - enemizerFrame = LabelFrame(sortWindow, text="Enemizer", padx=5, pady=2) - enemizerFrame.columnconfigure(0, weight=1) - enemizerFrame.columnconfigure(1, weight=1) - enemizerFrame.columnconfigure(2, weight=1) - enemizerFrame.columnconfigure(3, weight=1) - - enemizerPathFrame = Frame(enemizerFrame) - enemizerPathFrame.grid(row=0, column=0, columnspan=3, sticky=W+E, padx=3) - enemizerCLIlabel = Label(enemizerPathFrame, text="EnemizerCLI path: ") - enemizerCLIlabel.pack(side=LEFT) - enemizerCLIpathVar = StringVar(value="EnemizerCLI/EnemizerCLI.Core") - enemizerCLIpathEntry = Entry(enemizerPathFrame, textvariable=enemizerCLIpathVar) - enemizerCLIpathEntry.pack(side=LEFT, expand=True, fill=X) - def EnemizerSelectPath(): - path = filedialog.askopenfilename(filetypes=[("EnemizerCLI executable", "*EnemizerCLI*")]) - if path: - enemizerCLIpathVar.set(path) - enemizerCLIbrowseButton = Button(enemizerPathFrame, text='...', command=EnemizerSelectPath) - enemizerCLIbrowseButton.pack(side=LEFT) - - potShuffleVar = IntVar() - potShuffleButton = Checkbutton(enemizerFrame, text="Pot shuffle", variable=potShuffleVar) - potShuffleButton.grid(row=0, column=3) - - enemizerEnemyFrame = Frame(enemizerFrame) - enemizerEnemyFrame.grid(row=1, column=0, pady=5) - enemizerEnemyLabel = Label(enemizerEnemyFrame, text='Enemy shuffle') - enemizerEnemyLabel.pack(side=LEFT) - enemyShuffleVar = StringVar() - enemyShuffleVar.set('none') - enemizerEnemyOption = OptionMenu(enemizerEnemyFrame, enemyShuffleVar, 'none', 'shuffled', 'chaos') - enemizerEnemyOption.pack(side=LEFT) - - enemizerBossFrame = Frame(enemizerFrame) - enemizerBossFrame.grid(row=1, column=1) - enemizerBossLabel = Label(enemizerBossFrame, text='Boss shuffle') - enemizerBossLabel.pack(side=LEFT) - enemizerBossVar = StringVar() - enemizerBossVar.set('none') - enemizerBossOption = OptionMenu(enemizerBossFrame, enemizerBossVar, 'none', 'basic', 'normal', 'chaos') - enemizerBossOption.pack(side=LEFT) - - enemizerDamageFrame = Frame(enemizerFrame) - enemizerDamageFrame.grid(row=1, column=2) - enemizerDamageLabel = Label(enemizerDamageFrame, text='Enemy damage') - enemizerDamageLabel.pack(side=LEFT) - enemizerDamageVar = StringVar() - enemizerDamageVar.set('default') - enemizerDamageOption = OptionMenu(enemizerDamageFrame, enemizerDamageVar, 'default', 'shuffled', 'chaos') - enemizerDamageOption.pack(side=LEFT) - - enemizerHealthFrame = Frame(enemizerFrame) - enemizerHealthFrame.grid(row=1, column=3) - enemizerHealthLabel = Label(enemizerHealthFrame, text='Enemy health') - enemizerHealthLabel.pack(side=LEFT) - enemizerHealthVar = StringVar() - enemizerHealthVar.set('default') - enemizerHealthOption = OptionMenu(enemizerHealthFrame, enemizerHealthVar, 'default', 'easy', 'normal', 'hard', 'expert') - enemizerHealthOption.pack(side=LEFT) - bottomFrame = Frame(randomizerWindow, pady=5) worldLabel = Label(sortWindow, text='Worlds') @@ -366,12 +307,12 @@ def guiMain(args=None): guiargs.uw_palettes = uwPalettesVar.get() guiargs.shuffleganon = bool(entrandoWindow.shuffleGanonVar.get()) guiargs.hints = bool(hintsVar.get()) - guiargs.enemizercli = enemizerCLIpathVar.get() - guiargs.shufflebosses = enemizerBossVar.get() - guiargs.shuffleenemies = enemyShuffleVar.get() - guiargs.enemy_health = enemizerHealthVar.get() - guiargs.enemy_damage = enemizerDamageVar.get() - guiargs.shufflepots = bool(potShuffleVar.get()) + guiargs.enemizercli = enemizerWindow.enemizerCLIpathVar.get() + guiargs.shufflebosses = enemizerWindow.enemizerBossVar.get() + guiargs.shuffleenemies = enemizerWindow.enemyShuffleVar.get() + guiargs.enemy_health = enemizerWindow.enemizerHealthVar.get() + guiargs.enemy_damage = enemizerWindow.enemizerDamageVar.get() + guiargs.shufflepots = bool(enemizerWindow.potShuffleVar.get()) guiargs.custom = bool(customVar.get()) guiargs.customitemarray = [int(bowVar.get()), int(silverarrowVar.get()), int(boomerangVar.get()), int(magicboomerangVar.get()), int(hookshotVar.get()), int(mushroomVar.get()), int(magicpowderVar.get()), int(firerodVar.get()), int(icerodVar.get()), int(bombosVar.get()), int(etherVar.get()), int(quakeVar.get()), int(lampVar.get()), int(hammerVar.get()), int(shovelVar.get()), int(fluteVar.get()), int(bugnetVar.get()), @@ -423,7 +364,6 @@ def guiMain(args=None): rightHalfFrame.pack(side=RIGHT) topFrame.pack(side=TOP) bottomFrame.pack(side=BOTTOM) - enemizerFrame.pack(side=BOTTOM, fill=BOTH) # Adjuster Controls @@ -1173,12 +1113,12 @@ def guiMain(args=None): romVar.set(args.rom) entrandoWindow.shuffleGanonVar.set(args.shuffleganon) hintsVar.set(args.hints) - enemizerCLIpathVar.set(args.enemizercli) - potShuffleVar.set(args.shufflepots) - enemyShuffleVar.set(args.shuffleenemies) - enemizerBossVar.set(args.shufflebosses) - enemizerDamageVar.set(args.enemy_damage) - enemizerHealthVar.set(args.enemy_health) + enemizerWindow.enemizerCLIpathVar.set(args.enemizercli) + enemizerWindow.potShuffleVar.set(args.shufflepots) + enemizerWindow.enemyShuffleVar.set(args.shuffleenemies) + enemizerWindow.enemizerBossVar.set(args.shufflebosses) + enemizerWindow.enemizerDamageVar.set(args.enemy_damage) + enemizerWindow.enemizerHealthVar.set(args.enemy_health) owPalettesVar.set(args.ow_palettes) uwPalettesVar.set(args.uw_palettes) if args.sprite is not None: diff --git a/gui/randomize/enemizer.py b/gui/randomize/enemizer.py new file mode 100644 index 00000000..9b0e7340 --- /dev/null +++ b/gui/randomize/enemizer.py @@ -0,0 +1,79 @@ +import os +from tkinter import ttk, filedialog, IntVar, StringVar, Button, Checkbutton, Entry, Frame, Label, LabelFrame, OptionMenu, E, W, LEFT, RIGHT, X + +def enemizer_page(parent):#,working_dirs): + self = ttk.Frame(parent) + + # Enemizer + enemizerFrame = LabelFrame(self, text="Enemizer") + enemizerFrame.columnconfigure(0, weight=1) + enemizerFrame.columnconfigure(1, weight=1) + enemizerFrame.columnconfigure(2, weight=1) + enemizerFrame.columnconfigure(3, weight=1) + + ## Enemizer CLI Path + enemizerPathFrame = Frame(self) + enemizerPathFrame.grid(row=0, column=0, columnspan=3, sticky=W+E) + enemizerCLIlabel = Label(enemizerPathFrame, text="EnemizerCLI path: ") + enemizerCLIlabel.pack(side=LEFT) + self.enemizerCLIpathVar = StringVar() + def saveEnemizerPath(caller,_,mode): + pass + #working_dirs["enemizer.cli"] = self.enemizerCLIpathVar.get() + self.enemizerCLIpathVar.trace_add("write",saveEnemizerPath) + enemizerCLIpathEntry = Entry(enemizerPathFrame, textvariable=self.enemizerCLIpathVar) + enemizerCLIpathEntry.pack(side=LEFT, fill=X, expand=True) + def EnemizerSelectPath(): + path = filedialog.askopenfilename(filetypes=[("EnemizerCLI executable", "*EnemizerCLI*")], initialdir=os.path.join(".")) + if path: + self.enemizerCLIpathVar.set(path) + #working_dirs["enemizer.cli"] = path + enemizerCLIbrowseButton = Button(enemizerPathFrame, text='...', command=EnemizerSelectPath) + enemizerCLIbrowseButton.pack(side=LEFT) + + ## Pot Shuffle + self.potShuffleVar = IntVar() + potShuffleButton = Checkbutton(self, text="Pot shuffle", variable=self.potShuffleVar) + potShuffleButton.grid(row=0, column=3) + + ## Randomize Enemies + enemizerEnemyFrame = Frame(self) + enemizerEnemyFrame.grid(row=1, column=0) + enemizerEnemyLabel = Label(enemizerEnemyFrame, text='Enemy shuffle') + enemizerEnemyLabel.pack(side=LEFT) + self.enemyShuffleVar = StringVar() + self.enemyShuffleVar.set('none') + enemizerEnemyOption = OptionMenu(enemizerEnemyFrame, self.enemyShuffleVar, 'none', 'shuffled', 'chaos') + enemizerEnemyOption.pack(side=LEFT) + + ## Randomize Bosses + enemizerBossFrame = Frame(self) + enemizerBossFrame.grid(row=1, column=1) + enemizerBossLabel = Label(enemizerBossFrame, text='Boss shuffle') + enemizerBossLabel.pack(side=LEFT) + self.enemizerBossVar = StringVar() + self.enemizerBossVar.set('none') + enemizerBossOption = OptionMenu(enemizerBossFrame, self.enemizerBossVar, 'none', 'basic', 'normal', 'chaos') + enemizerBossOption.pack(side=LEFT) + + ## Enemy Damage + enemizerDamageFrame = Frame(self) + enemizerDamageFrame.grid(row=1, column=2) + enemizerDamageLabel = Label(enemizerDamageFrame, text='Enemy damage') + enemizerDamageLabel.pack(side=LEFT) + self.enemizerDamageVar = StringVar() + self.enemizerDamageVar.set('default') + enemizerDamageOption = OptionMenu(enemizerDamageFrame, self.enemizerDamageVar, 'default', 'shuffled', 'chaos') + enemizerDamageOption.pack(side=LEFT) + + ## Enemy Health + enemizerHealthFrame = Frame(self) + enemizerHealthFrame.grid(row=1, column=3) + enemizerHealthLabel = Label(enemizerHealthFrame, text='Enemy health') + enemizerHealthLabel.pack(side=LEFT) + self.enemizerHealthVar = StringVar() + self.enemizerHealthVar.set('default') + enemizerHealthOption = OptionMenu(enemizerHealthFrame, self.enemizerHealthVar, 'default', 'easy', 'normal', 'hard', 'expert') + enemizerHealthOption.pack(side=LEFT) + + return self#,working_dirs