Sort Enemizer
Coming back to implement working dirs
This commit is contained in:
88
Gui.py
88
Gui.py
@@ -14,6 +14,7 @@ from AdjusterMain import adjust
|
|||||||
from DungeonRandomizer import parse_arguments
|
from DungeonRandomizer import parse_arguments
|
||||||
from gui.randomize.item import item_page
|
from gui.randomize.item import item_page
|
||||||
from gui.randomize.entrando import entrando_page
|
from gui.randomize.entrando import entrando_page
|
||||||
|
from gui.randomize.enemizer import enemizer_page
|
||||||
from GuiUtils import ToolTips, set_icon, BackgroundTaskProgress
|
from GuiUtils import ToolTips, set_icon, BackgroundTaskProgress
|
||||||
from Main import main, __version__ as ESVersion
|
from Main import main, __version__ as ESVersion
|
||||||
from Rom import Sprite
|
from Rom import Sprite
|
||||||
@@ -79,7 +80,7 @@ def guiMain(args=None):
|
|||||||
randomizerNotebook.add(entrandoWindow, text="Entrances")
|
randomizerNotebook.add(entrandoWindow, text="Entrances")
|
||||||
|
|
||||||
# Enemizer
|
# Enemizer
|
||||||
enemizerWindow = ttk.Frame(randomizerNotebook)
|
enemizerWindow = enemizer_page(randomizerNotebook)
|
||||||
randomizerNotebook.add(enemizerWindow, text="Enemizer")
|
randomizerNotebook.add(enemizerWindow, text="Enemizer")
|
||||||
|
|
||||||
# Dungeon Shuffle
|
# Dungeon Shuffle
|
||||||
@@ -252,66 +253,6 @@ def guiMain(args=None):
|
|||||||
doorShuffleLabel = Label(doorShuffleFrame, text='Door shuffle algorithm')
|
doorShuffleLabel = Label(doorShuffleFrame, text='Door shuffle algorithm')
|
||||||
doorShuffleLabel.pack(side=LEFT)
|
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)
|
bottomFrame = Frame(randomizerWindow, pady=5)
|
||||||
|
|
||||||
worldLabel = Label(sortWindow, text='Worlds')
|
worldLabel = Label(sortWindow, text='Worlds')
|
||||||
@@ -366,12 +307,12 @@ def guiMain(args=None):
|
|||||||
guiargs.uw_palettes = uwPalettesVar.get()
|
guiargs.uw_palettes = uwPalettesVar.get()
|
||||||
guiargs.shuffleganon = bool(entrandoWindow.shuffleGanonVar.get())
|
guiargs.shuffleganon = bool(entrandoWindow.shuffleGanonVar.get())
|
||||||
guiargs.hints = bool(hintsVar.get())
|
guiargs.hints = bool(hintsVar.get())
|
||||||
guiargs.enemizercli = enemizerCLIpathVar.get()
|
guiargs.enemizercli = enemizerWindow.enemizerCLIpathVar.get()
|
||||||
guiargs.shufflebosses = enemizerBossVar.get()
|
guiargs.shufflebosses = enemizerWindow.enemizerBossVar.get()
|
||||||
guiargs.shuffleenemies = enemyShuffleVar.get()
|
guiargs.shuffleenemies = enemizerWindow.enemyShuffleVar.get()
|
||||||
guiargs.enemy_health = enemizerHealthVar.get()
|
guiargs.enemy_health = enemizerWindow.enemizerHealthVar.get()
|
||||||
guiargs.enemy_damage = enemizerDamageVar.get()
|
guiargs.enemy_damage = enemizerWindow.enemizerDamageVar.get()
|
||||||
guiargs.shufflepots = bool(potShuffleVar.get())
|
guiargs.shufflepots = bool(enemizerWindow.potShuffleVar.get())
|
||||||
guiargs.custom = bool(customVar.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()),
|
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()),
|
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)
|
rightHalfFrame.pack(side=RIGHT)
|
||||||
topFrame.pack(side=TOP)
|
topFrame.pack(side=TOP)
|
||||||
bottomFrame.pack(side=BOTTOM)
|
bottomFrame.pack(side=BOTTOM)
|
||||||
enemizerFrame.pack(side=BOTTOM, fill=BOTH)
|
|
||||||
|
|
||||||
# Adjuster Controls
|
# Adjuster Controls
|
||||||
|
|
||||||
@@ -1173,12 +1113,12 @@ def guiMain(args=None):
|
|||||||
romVar.set(args.rom)
|
romVar.set(args.rom)
|
||||||
entrandoWindow.shuffleGanonVar.set(args.shuffleganon)
|
entrandoWindow.shuffleGanonVar.set(args.shuffleganon)
|
||||||
hintsVar.set(args.hints)
|
hintsVar.set(args.hints)
|
||||||
enemizerCLIpathVar.set(args.enemizercli)
|
enemizerWindow.enemizerCLIpathVar.set(args.enemizercli)
|
||||||
potShuffleVar.set(args.shufflepots)
|
enemizerWindow.potShuffleVar.set(args.shufflepots)
|
||||||
enemyShuffleVar.set(args.shuffleenemies)
|
enemizerWindow.enemyShuffleVar.set(args.shuffleenemies)
|
||||||
enemizerBossVar.set(args.shufflebosses)
|
enemizerWindow.enemizerBossVar.set(args.shufflebosses)
|
||||||
enemizerDamageVar.set(args.enemy_damage)
|
enemizerWindow.enemizerDamageVar.set(args.enemy_damage)
|
||||||
enemizerHealthVar.set(args.enemy_health)
|
enemizerWindow.enemizerHealthVar.set(args.enemy_health)
|
||||||
owPalettesVar.set(args.ow_palettes)
|
owPalettesVar.set(args.ow_palettes)
|
||||||
uwPalettesVar.set(args.uw_palettes)
|
uwPalettesVar.set(args.uw_palettes)
|
||||||
if args.sprite is not None:
|
if args.sprite is not None:
|
||||||
|
|||||||
79
gui/randomize/enemizer.py
Normal file
79
gui/randomize/enemizer.py
Normal file
@@ -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
|
||||||
Reference in New Issue
Block a user