From a830c20a53dcd40676e85cb7f12a1127797433ee Mon Sep 17 00:00:00 2001 From: "Mike A. Trethewey" Date: Tue, 11 Feb 2020 00:50:07 -0800 Subject: [PATCH] Pretty Enemizer options --- gui/bottom.py | 10 +-- gui/loadcliargs.py | 10 +-- gui/randomize/enemizer.py | 128 +++++++++++++++++++++++++------------- 3 files changed, 94 insertions(+), 54 deletions(-) diff --git a/gui/bottom.py b/gui/bottom.py index 2d16bd1d..87dc6ead 100644 --- a/gui/bottom.py +++ b/gui/bottom.py @@ -69,11 +69,11 @@ def bottom_frame(self,parent,args=None): guiargs.shuffleganon = bool(parent.entrandoWindow.entrandoWidgets["shuffleganon"].storageVar.get()) guiargs.hints = bool(parent.gameOptionsWindow.hintsVar.get()) guiargs.enemizercli = parent.enemizerWindow.enemizerCLIpathVar.get() - guiargs.shufflebosses = parent.enemizerWindow.enemizerBossVar.get() - guiargs.shuffleenemies = parent.enemizerWindow.enemyShuffleVar.get() - guiargs.enemy_health = parent.enemizerWindow.enemizerHealthVar.get() - guiargs.enemy_damage = parent.enemizerWindow.enemizerDamageVar.get() - guiargs.shufflepots = bool(parent.enemizerWindow.potShuffleVar.get()) + guiargs.shufflebosses = parent.enemizerWindow.enemizerWidgets["bossshuffle"].storageVar.get() + guiargs.shuffleenemies = parent.enemizerWindow.enemizerWidgets["enemyshuffle"].storageVar.get() + guiargs.enemy_health = parent.enemizerWindow.enemizerWidgets["enemyhealth"].storageVar.get() + guiargs.enemy_damage = parent.enemizerWindow.enemizerWidgets["enemydamage"].storageVar.get() + guiargs.shufflepots = bool(parent.enemizerWindow.enemizerWidgets["potshuffle"].storageVar.get()) guiargs.custom = bool(parent.generationSetupWindow.customVar.get()) guiargs.customitemarray = [int(parent.customContent.bowVar.get()), int(parent.customContent.silverarrowVar.get()), int(parent.customContent.boomerangVar.get()), int(parent.customContent.magicboomerangVar.get()), int(parent.customContent.hookshotVar.get()), int(parent.customContent.mushroomVar.get()), int(parent.customContent.magicpowderVar.get()), int(parent.customContent.firerodVar.get()), int(parent.customContent.icerodVar.get()), int(parent.customContent.bombosVar.get()), int(parent.customContent.etherVar.get()), int(parent.customContent.quakeVar.get()), int(parent.customContent.lampVar.get()), int(parent.customContent.hammerVar.get()), int(parent.customContent.shovelVar.get()), int(parent.customContent.fluteVar.get()), int(parent.customContent.bugnetVar.get()), diff --git a/gui/loadcliargs.py b/gui/loadcliargs.py index 28aa5662..a8c4b42b 100644 --- a/gui/loadcliargs.py +++ b/gui/loadcliargs.py @@ -41,11 +41,11 @@ def loadcliargs(gui,args): gui.entrandoWindow.entrandoWidgets["shuffleganon"].storageVar.set(args.shuffleganon) gui.gameOptionsWindow.hintsVar.set(args.hints) gui.enemizerWindow.enemizerCLIpathVar.set(args.enemizercli) - gui.enemizerWindow.potShuffleVar.set(args.shufflepots) - gui.enemizerWindow.enemyShuffleVar.set(args.shuffleenemies) - gui.enemizerWindow.enemizerBossVar.set(args.shufflebosses) - gui.enemizerWindow.enemizerDamageVar.set(args.enemy_damage) - gui.enemizerWindow.enemizerHealthVar.set(args.enemy_health) + gui.enemizerWindow.enemizerWidgets["potshuffle"].storageVar.set(args.shufflepots) + gui.enemizerWindow.enemizerWidgets["enemyshuffle"].storageVar.set(args.shuffleenemies) + gui.enemizerWindow.enemizerWidgets["bossshuffle"].storageVar.set(args.shufflebosses) + gui.enemizerWindow.enemizerWidgets["enemydamage"].storageVar.set(args.enemy_damage) + gui.enemizerWindow.enemizerWidgets["enemyhealth"].storageVar.set(args.enemy_health) gui.gameOptionsWindow.owPalettesVar.set(args.ow_palettes) gui.gameOptionsWindow.uwPalettesVar.set(args.uw_palettes) # if args.sprite is not None: diff --git a/gui/randomize/enemizer.py b/gui/randomize/enemizer.py index dfab0537..d7ae0524 100644 --- a/gui/randomize/enemizer.py +++ b/gui/randomize/enemizer.py @@ -1,19 +1,27 @@ import os -from tkinter import ttk, filedialog, IntVar, StringVar, Button, Checkbutton, Entry, Frame, Label, LabelFrame, OptionMenu, E, W, LEFT, RIGHT, X +from tkinter import ttk, filedialog, IntVar, StringVar, Button, Checkbutton, Entry, Frame, Label, LabelFrame, OptionMenu, N, E, W, LEFT, RIGHT, X +import gui.widgets as widgets def enemizer_page(parent,working_dirs): + # Enemizer 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 options + self.enemizerWidgets = {} + + # Pot Shuffle + key = "potshuffle" + self.enemizerWidgets[key] = widgets.make_widget( + self, + "checkbox", + self, + "Pot Shuffle", + None + ) + self.enemizerWidgets[key].pack(anchor=W) ## 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(value=working_dirs["enemizer.cli"]) @@ -29,50 +37,82 @@ def enemizer_page(parent,working_dirs): working_dirs["enemizer.cli"] = path enemizerCLIbrowseButton = Button(enemizerPathFrame, text='...', command=EnemizerSelectPath) enemizerCLIbrowseButton.pack(side=LEFT) + enemizerPathFrame.pack(fill=X, expand=True) - ## Pot Shuffle - self.potShuffleVar = IntVar() - potShuffleButton = Checkbutton(self, text="Pot shuffle", variable=self.potShuffleVar) - potShuffleButton.grid(row=0, column=3) + leftEnemizerFrame = Frame(self) + rightEnemizerFrame = Frame(self) + leftEnemizerFrame.pack(side=LEFT, anchor=N) + rightEnemizerFrame.pack(side=RIGHT, anchor=N) ## 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) + key = "enemyshuffle" + self.enemizerWidgets[key] = widgets.make_widget( + self, + "selectbox", + leftEnemizerFrame, + "Enemy Shuffle", + None, + {"label": {"side": LEFT}, "selectbox": {"side": RIGHT}}, + { + "Vanilla": "none", + "Shuffled": "shuffled", + "Chaos": "chaos" + } + ) + self.enemizerWidgets[key].pack(anchor=W) ## 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) + key = "bossshuffle" + self.enemizerWidgets[key] = widgets.make_widget( + self, + "selectbox", + leftEnemizerFrame, + "Boss Shuffle", + None, + {"label": {"side": LEFT}, "selectbox": {"side": RIGHT}}, + { + "Vanilla": "none", + "Basic": "basic", + "Normal": "normal", + "Chaos": "chaos" + } + ) + self.enemizerWidgets[key].pack(anchor=W) ## 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) + key = "enemydamage" + self.enemizerWidgets[key] = widgets.make_widget( + self, + "selectbox", + rightEnemizerFrame, + "Enemy Damage", + None, + {"label": {"side": LEFT}, "selectbox": {"side": RIGHT}}, + { + "Vanilla": "default", + "Shuffled": "shuffled", + "Chaos": "chaos" + } + ) + self.enemizerWidgets[key].pack(anchor=E) ## 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) + key = "enemyhealth" + self.enemizerWidgets[key] = widgets.make_widget( + self, + "selectbox", + rightEnemizerFrame, + "Enemy Health", + None, + {"label": {"side": LEFT}, "selectbox": {"side": RIGHT}}, + { + "Vanilla": "default", + "Easy": "easy", + "Normal": "normal", + "Hard": "hard", + "Expert": "expert" + } + ) + self.enemizerWidgets[key].pack(anchor=E) return self,working_dirs