Add to .gitignore Add to default CLI args Add to each page that needs it * Rom Adjuster * Seed * Generation attempts * Enemizer CLI path * Base ROM * Multiworld worlds * Multiworld names
143 lines
5.8 KiB
Python
143 lines
5.8 KiB
Python
from tkinter import ttk, filedialog, messagebox, IntVar, StringVar, Button, Checkbutton, Entry, Frame, Label, OptionMenu, E, W, LEFT, RIGHT, X, BOTTOM
|
|
from AdjusterMain import adjust
|
|
from argparse import Namespace
|
|
from classes.SpriteSelector import SpriteSelector
|
|
import logging
|
|
|
|
def adjust_page(top,parent,working_dirs):
|
|
self = ttk.Frame(parent)
|
|
|
|
# Disable BGM
|
|
self.disableMusicVar2 = IntVar()
|
|
disableMusicCheckbutton2 = Checkbutton(self, text="Disable music", variable=self.disableMusicVar2)
|
|
disableMusicCheckbutton2.pack(anchor=W)
|
|
|
|
# L/R Quickswap
|
|
self.quickSwapVar2 = IntVar()
|
|
quickSwapCheckbutton2 = Checkbutton(self, text="L/R Quickswapping", variable=self.quickSwapVar2)
|
|
quickSwapCheckbutton2.pack(anchor=W)
|
|
|
|
selectOptionsFrame = Frame(self)
|
|
leftAdjustFrame = Frame(selectOptionsFrame)
|
|
rightAdjustFrame = Frame(selectOptionsFrame)
|
|
bottomAdjustFrame = Frame(self)
|
|
selectOptionsFrame.pack(fill=X, expand=True)
|
|
leftAdjustFrame.pack(side=LEFT)
|
|
rightAdjustFrame.pack(side=RIGHT)
|
|
bottomAdjustFrame.pack(fill=X, expand=True)
|
|
|
|
# Heart Color
|
|
heartcolorFrame2 = Frame(leftAdjustFrame)
|
|
heartcolorLabel2 = Label(heartcolorFrame2, text='Heart color')
|
|
heartcolorLabel2.pack(side=LEFT)
|
|
self.heartcolorVar2 = StringVar()
|
|
self.heartcolorVar2.set('red')
|
|
heartcolorOptionMenu2 = OptionMenu(heartcolorFrame2, self.heartcolorVar2, 'red', 'blue', 'green', 'yellow', 'random')
|
|
heartcolorOptionMenu2.pack(side=RIGHT)
|
|
heartcolorFrame2.pack(anchor=E)
|
|
|
|
# Heart Beep Speed
|
|
heartbeepFrame2 = Frame(leftAdjustFrame)
|
|
heartbeepLabel2 = Label(heartbeepFrame2, text='Heart Beep sound rate')
|
|
heartbeepLabel2.pack(side=LEFT)
|
|
self.heartbeepVar2 = StringVar()
|
|
self.heartbeepVar2.set('normal')
|
|
heartbeepOptionMenu2 = OptionMenu(heartbeepFrame2, self.heartbeepVar2, 'double', 'normal', 'half', 'quarter', 'off')
|
|
heartbeepOptionMenu2.pack(side=RIGHT)
|
|
heartbeepFrame2.pack(anchor=E)
|
|
|
|
# Sprite Selection
|
|
self.spriteNameVar2 = StringVar()
|
|
spriteDialogFrame2 = Frame(leftAdjustFrame)
|
|
baseSpriteLabel2 = Label(spriteDialogFrame2, text='Sprite:')
|
|
self.spriteNameVar2.set('(unchanged)')
|
|
spriteEntry2 = Label(spriteDialogFrame2, textvariable=self.spriteNameVar2)
|
|
|
|
def set_sprite(sprite_param):
|
|
if sprite_param is None or not sprite_param.valid:
|
|
sprite = None
|
|
self.spriteNameVar2.set('(unchanged)')
|
|
else:
|
|
sprite = sprite_param
|
|
self.spriteNameVar2.set(sprite.name)
|
|
|
|
def SpriteSelectAdjuster():
|
|
SpriteSelector(parent, set_sprite, adjuster=True)
|
|
|
|
spriteSelectButton2 = Button(spriteDialogFrame2, text='...', command=SpriteSelectAdjuster)
|
|
|
|
baseSpriteLabel2.pack(side=LEFT)
|
|
spriteEntry2.pack(side=LEFT)
|
|
spriteSelectButton2.pack(side=LEFT)
|
|
spriteDialogFrame2.pack(anchor=E)
|
|
|
|
# Menu Speed
|
|
fastMenuFrame2 = Frame(rightAdjustFrame)
|
|
fastMenuLabel2 = Label(fastMenuFrame2, text='Menu speed')
|
|
fastMenuLabel2.pack(side=LEFT)
|
|
self.fastMenuVar2 = StringVar()
|
|
self.fastMenuVar2.set("normal")
|
|
fastMenuOptionMenu2 = OptionMenu(fastMenuFrame2, self.fastMenuVar2, 'normal', 'instant', 'double', 'triple', 'quadruple', 'half')
|
|
fastMenuOptionMenu2.pack(side=RIGHT)
|
|
fastMenuFrame2.pack(anchor=E)
|
|
|
|
owPalettesFrame2 = Frame(rightAdjustFrame)
|
|
owPalettesLabel2 = Label(owPalettesFrame2, text='Overworld palettes')
|
|
owPalettesLabel2.pack(side=LEFT)
|
|
self.owPalettesVar2 = StringVar()
|
|
self.owPalettesVar2.set("default")
|
|
owPalettesOptionMenu2 = OptionMenu(owPalettesFrame2, self.owPalettesVar2, 'default', 'random', 'blackout')
|
|
owPalettesOptionMenu2.pack(side=RIGHT)
|
|
owPalettesFrame2.pack(anchor=E)
|
|
|
|
uwPalettesFrame2 = Frame(rightAdjustFrame)
|
|
uwPalettesLabel2 = Label(uwPalettesFrame2, text='Dungeon palettes')
|
|
uwPalettesLabel2.pack(side=LEFT)
|
|
self.uwPalettesVar2 = StringVar()
|
|
self.uwPalettesVar2.set("default")
|
|
uwPalettesOptionMenu2 = OptionMenu(uwPalettesFrame2, self.uwPalettesVar2, 'default', 'random', 'blackout')
|
|
uwPalettesOptionMenu2.pack(side=RIGHT)
|
|
uwPalettesFrame2.pack(anchor=E)
|
|
|
|
adjustRomFrame = Frame(bottomAdjustFrame)
|
|
adjustRomLabel = Label(adjustRomFrame, text='Rom to adjust: ')
|
|
self.romVar2 = StringVar(value=working_dirs["adjust.rom"])
|
|
romEntry2 = Entry(adjustRomFrame, textvariable=self.romVar2)
|
|
|
|
def RomSelect2():
|
|
rom = filedialog.askopenfilename(filetypes=[("Rom Files", (".sfc", ".smc")), ("All Files", "*")])
|
|
if rom:
|
|
working_dirs["adjust.rom"] = rom
|
|
self.romVar2.set(rom)
|
|
romSelectButton2 = Button(adjustRomFrame, text='Select Rom', command=RomSelect2)
|
|
|
|
adjustRomLabel.pack(side=LEFT)
|
|
romEntry2.pack(side=LEFT, fill=X, expand=True)
|
|
romSelectButton2.pack(side=LEFT)
|
|
adjustRomFrame.pack(fill=X, expand=True)
|
|
|
|
def adjustRom():
|
|
guiargs = Namespace()
|
|
guiargs.heartbeep = self.heartbeepVar2.get()
|
|
guiargs.heartcolor = self.heartcolorVar2.get()
|
|
guiargs.fastmenu = self.fastMenuVar2.get()
|
|
guiargs.ow_palettes = self.owPalettesVar2.get()
|
|
guiargs.uw_palettes = self.uwPalettesVar2.get()
|
|
guiargs.quickswap = bool(self.quickSwapVar2.get())
|
|
guiargs.disablemusic = bool(self.disableMusicVar2.get())
|
|
guiargs.rom = self.romVar2.get()
|
|
guiargs.baserom = top.generationSetupWindow.romVar.get()
|
|
# guiargs.sprite = sprite
|
|
try:
|
|
adjust(args=guiargs)
|
|
except Exception as e:
|
|
logging.exception(e)
|
|
messagebox.showerror(title="Error while creating seed", message=str(e))
|
|
else:
|
|
messagebox.showinfo(title="Success", message="Rom patched successfully")
|
|
|
|
adjustButton = Button(bottomAdjustFrame, text='Adjust Rom', command=adjustRom)
|
|
adjustButton.pack(side=BOTTOM, padx=(5, 0))
|
|
|
|
return self,working_dirs
|