Custom item pool feature

This is the starting point for the new custom item pool feature that will let users specify the item pool. It is functional, perhaps due for some minor tweaking and definitely needs more testing. The command line side is bad, just two parameters that hopefully don't do anything under any circumstance if the user tries to use them (don't really intend to support a command line version of this feature); maybe there's a better way to let the command line ER work in general without having any opportunity to activate this feature. The GUI should probably show the user the sum of the current item pool out of 153 so the user knows how to size the item pool more easily, but that's a todo.
This commit is contained in:
AmazingAmpharos
2018-01-21 20:43:44 -06:00
committed by GitHub
parent 9af585f1aa
commit 564495648d
6 changed files with 738 additions and 9 deletions

583
Gui.py
View File

@@ -25,8 +25,10 @@ def guiMain(args=None):
notebook = ttk.Notebook(mainWindow)
randomizerWindow = ttk.Frame(notebook)
adjustWindow = ttk.Frame(notebook)
customWindow = ttk.Frame(notebook)
notebook.add(randomizerWindow, text='Randomize')
notebook.add(adjustWindow, text='Adjust')
notebook.add(customWindow, text='Custom')
notebook.pack()
# Shared Controls
@@ -68,6 +70,8 @@ def guiMain(args=None):
disableMusicCheckbutton = Checkbutton(checkBoxFrame, text="Disable game music", variable=disableMusicVar)
shuffleGanonVar = IntVar()
shuffleGanonCheckbutton = Checkbutton(checkBoxFrame, text="Include Ganon's Tower and Pyramid Hole in shuffle pool", variable=shuffleGanonVar)
customVar = IntVar()
customCheckbutton = Checkbutton(checkBoxFrame, text="Use custom item pool", variable=customVar)
createSpoilerCheckbutton.pack(expand=True, anchor=W)
suppressRomCheckbutton.pack(expand=True, anchor=W)
@@ -77,6 +81,7 @@ def guiMain(args=None):
beatableOnlyCheckbutton.pack(expand=True, anchor=W)
disableMusicCheckbutton.pack(expand=True, anchor=W)
shuffleGanonCheckbutton.pack(expand=True, anchor=W)
customCheckbutton.pack(expand=True, anchor=W)
fileDialogFrame = Frame(rightHalfFrame)
@@ -252,6 +257,16 @@ def guiMain(args=None):
guiargs.quickswap = bool(quickSwapVar.get())
guiargs.disablemusic = bool(disableMusicVar.get())
guiargs.shuffleganon = bool(shuffleGanonVar.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()),
int(bookVar.get()), int(bottleVar.get()), int(somariaVar.get()), int(byrnaVar.get()), int(capeVar.get()), int(mirrorVar.get()), int(bootsVar.get()), int(powergloveVar.get()), int(titansmittVar.get()),
int(proggloveVar.get()), int(flippersVar.get()), int(pearlVar.get()), int(heartpieceVar.get()), int(fullheartVar.get()), int(sancheartVar.get()), int(sword1Var.get()), int(sword2Var.get()),
int(sword3Var.get()), int(sword4Var.get()), int(progswordVar.get()), int(shield1Var.get()), int(shield2Var.get()), int(shield3Var.get()), int(progshieldVar.get()), int(bluemailVar.get()),
int(redmailVar.get()), int(progmailVar.get()), int(halfmagicVar.get()), int(quartermagicVar.get()), int(bcap5Var.get()), int(bcap10Var.get()), int(acap5Var.get()), int(acap10Var.get()),
int(arrow1Var.get()), int(arrow10Var.get()), int(bomb1Var.get()), int(bomb3Var.get()), int(rupee1Var.get()), int(rupee5Var.get()), int(rupee20Var.get()), int(rupee50Var.get()), int(rupee100Var.get()),
int(rupee300Var.get()), int(rupoorVar.get()), int(blueclockVar.get()), int(greenclockVar.get()), int(redclockVar.get()), int(triforcepieceVar.get()), int(triforcecountVar.get()),
int(triforceVar.get()), int(rupoorcostVar.get())]
guiargs.rom = romVar.get()
guiargs.jsonout = None
guiargs.sprite = sprite
@@ -372,6 +387,574 @@ def guiMain(args=None):
topFrame2.pack(side=TOP, pady=30)
bottomFrame2.pack(side=BOTTOM, pady=(180, 0))
# Custom Controls
topFrame3 = Frame(customWindow)
def validation(P):
if str.isdigit(P) or P == "":
return True
else:
return False
vcmd=(topFrame3.register(validation), '%P')
itemList1 = Frame(topFrame3)
itemList2 = Frame(topFrame3)
itemList3 = Frame(topFrame3)
itemList4 = Frame(topFrame3)
itemList5 = Frame(topFrame3)
bowFrame = Frame(itemList1)
bowLabel = Label(bowFrame, text='Bow')
bowVar = StringVar(value='1')
bowEntry = Entry(bowFrame, textvariable=bowVar, width=3, validate='all', vcmd=vcmd)
bowFrame.pack()
bowLabel.pack(anchor=W, side=LEFT, padx=(0,53))
bowEntry.pack(anchor=E)
silverarrowFrame = Frame(itemList1)
silverarrowLabel = Label(silverarrowFrame, text='Silver Arrow')
silverarrowVar = StringVar(value='1')
silverarrowEntry = Entry(silverarrowFrame, textvariable=silverarrowVar, width=3, validate='all', vcmd=vcmd)
silverarrowFrame.pack()
silverarrowLabel.pack(anchor=W, side=LEFT, padx=(0,13))
silverarrowEntry.pack(anchor=E)
boomerangFrame = Frame(itemList1)
boomerangLabel = Label(boomerangFrame, text='Boomerang')
boomerangVar = StringVar(value='1')
boomerangEntry = Entry(boomerangFrame, textvariable=boomerangVar, width=3, validate='all', vcmd=vcmd)
boomerangFrame.pack()
boomerangLabel.pack(anchor=W, side=LEFT, padx=(0,14))
boomerangEntry.pack(anchor=E)
magicboomerangFrame = Frame(itemList1)
magicboomerangLabel = Label(magicboomerangFrame, text='M.Boomerang')
magicboomerangVar = StringVar(value='1')
magicboomerangEntry = Entry(magicboomerangFrame, textvariable=magicboomerangVar, width=3, validate='all', vcmd=vcmd)
magicboomerangFrame.pack()
magicboomerangLabel.pack(anchor=W, side=LEFT)
magicboomerangEntry.pack(anchor=E)
hookshotFrame = Frame(itemList1)
hookshotLabel = Label(hookshotFrame, text='Hookshot')
hookshotVar = StringVar(value='1')
hookshotEntry = Entry(hookshotFrame, textvariable=hookshotVar, width=3, validate='all', vcmd=vcmd)
hookshotFrame.pack()
hookshotLabel.pack(anchor=W, side=LEFT, padx=(0,24))
hookshotEntry.pack(anchor=E)
mushroomFrame = Frame(itemList1)
mushroomLabel = Label(mushroomFrame, text='Mushroom')
mushroomVar = StringVar(value='1')
mushroomEntry = Entry(mushroomFrame, textvariable=mushroomVar, width=3, validate='all', vcmd=vcmd)
mushroomFrame.pack()
mushroomLabel.pack(anchor=W, side=LEFT, padx=(0,17))
mushroomEntry.pack(anchor=E)
magicpowderFrame = Frame(itemList1)
magicpowderLabel = Label(magicpowderFrame, text='Magic Powder')
magicpowderVar = StringVar(value='1')
magicpowderEntry = Entry(magicpowderFrame, textvariable=magicpowderVar, width=3, validate='all', vcmd=vcmd)
magicpowderFrame.pack()
magicpowderLabel.pack(anchor=W, side=LEFT)
magicpowderEntry.pack(anchor=E)
firerodFrame = Frame(itemList1)
firerodLabel = Label(firerodFrame, text='Fire Rod')
firerodVar = StringVar(value='1')
firerodEntry = Entry(firerodFrame, textvariable=firerodVar, width=3, validate='all', vcmd=vcmd)
firerodFrame.pack()
firerodLabel.pack(anchor=W, side=LEFT, padx=(0,33))
firerodEntry.pack(anchor=E)
icerodFrame = Frame(itemList1)
icerodLabel = Label(icerodFrame, text='Ice Rod')
icerodVar = StringVar(value='1')
icerodEntry = Entry(icerodFrame, textvariable=icerodVar, width=3, validate='all', vcmd=vcmd)
icerodFrame.pack()
icerodLabel.pack(anchor=W, side=LEFT, padx=(0,37))
icerodEntry.pack(anchor=E)
bombosFrame = Frame(itemList1)
bombosLabel = Label(bombosFrame, text='Bombos')
bombosVar = StringVar(value='1')
bombosEntry = Entry(bombosFrame, textvariable=bombosVar, width=3, validate='all', vcmd=vcmd)
bombosFrame.pack()
bombosLabel.pack(anchor=W, side=LEFT, padx=(0,32))
bombosEntry.pack(anchor=E)
etherFrame = Frame(itemList1)
etherLabel = Label(etherFrame, text='Ether')
etherVar = StringVar(value='1')
etherEntry = Entry(etherFrame, textvariable=etherVar, width=3, validate='all', vcmd=vcmd)
etherFrame.pack()
etherLabel.pack(anchor=W, side=LEFT, padx=(0,49))
etherEntry.pack(anchor=E)
quakeFrame = Frame(itemList1)
quakeLabel = Label(quakeFrame, text='Quake')
quakeVar = StringVar(value='1')
quakeEntry = Entry(quakeFrame, textvariable=quakeVar, width=3, validate='all', vcmd=vcmd)
quakeFrame.pack()
quakeLabel.pack(anchor=W, side=LEFT, padx=(0,42))
quakeEntry.pack(anchor=E)
lampFrame = Frame(itemList1)
lampLabel = Label(lampFrame, text='Lamp')
lampVar = StringVar(value='1')
lampEntry = Entry(lampFrame, textvariable=lampVar, width=3, validate='all', vcmd=vcmd)
lampFrame.pack()
lampLabel.pack(anchor=W, side=LEFT, padx=(0,46))
lampEntry.pack(anchor=E)
hammerFrame = Frame(itemList1)
hammerLabel = Label(hammerFrame, text='Hammer')
hammerVar = StringVar(value='1')
hammerEntry = Entry(hammerFrame, textvariable=hammerVar, width=3, validate='all', vcmd=vcmd)
hammerFrame.pack()
hammerLabel.pack(anchor=W, side=LEFT, padx=(0,29))
hammerEntry.pack(anchor=E)
shovelFrame = Frame(itemList1)
shovelLabel = Label(shovelFrame, text='Shovel')
shovelVar = StringVar(value='1')
shovelEntry = Entry(shovelFrame, textvariable=shovelVar, width=3, validate='all', vcmd=vcmd)
shovelFrame.pack()
shovelLabel.pack(anchor=W, side=LEFT, padx=(0,41))
shovelEntry.pack(anchor=E)
fluteFrame = Frame(itemList1)
fluteLabel = Label(fluteFrame, text='Flute')
fluteVar = StringVar(value='1')
fluteEntry = Entry(fluteFrame, textvariable=fluteVar, width=3, validate='all', vcmd=vcmd)
fluteFrame.pack()
fluteLabel.pack(anchor=W, side=LEFT, padx=(0,50))
fluteEntry.pack(anchor=E)
bugnetFrame = Frame(itemList2)
bugnetLabel = Label(bugnetFrame, text='Bug Net')
bugnetVar = StringVar(value='1')
bugnetEntry = Entry(bugnetFrame, textvariable=bugnetVar, width=3, validate='all', vcmd=vcmd)
bugnetFrame.pack()
bugnetLabel.pack(anchor=W, side=LEFT, padx=(0,41))
bugnetEntry.pack(anchor=E)
bookFrame = Frame(itemList2)
bookLabel = Label(bookFrame, text='Book')
bookVar = StringVar(value='1')
bookEntry = Entry(bookFrame, textvariable=bookVar, width=3, validate='all', vcmd=vcmd)
bookFrame.pack()
bookLabel.pack(anchor=W, side=LEFT, padx=(0,57))
bookEntry.pack(anchor=E)
bottleFrame = Frame(itemList2)
bottleLabel = Label(bottleFrame, text='Bottle')
bottleVar = StringVar(value='4')
bottleEntry = Entry(bottleFrame, textvariable=bottleVar, width=3, validate='all', vcmd=vcmd)
bottleFrame.pack()
bottleLabel.pack(anchor=W, side=LEFT, padx=(0,53))
bottleEntry.pack(anchor=E)
somariaFrame = Frame(itemList2)
somariaLabel = Label(somariaFrame, text='C.Somaria')
somariaVar = StringVar(value='1')
somariaEntry = Entry(somariaFrame, textvariable=somariaVar, width=3, validate='all', vcmd=vcmd)
somariaFrame.pack()
somariaLabel.pack(anchor=W, side=LEFT, padx=(0,30))
somariaEntry.pack(anchor=E)
byrnaFrame = Frame(itemList2)
byrnaLabel = Label(byrnaFrame, text='C.Byrna')
byrnaVar = StringVar(value='1')
byrnaEntry = Entry(byrnaFrame, textvariable=byrnaVar, width=3, validate='all', vcmd=vcmd)
byrnaFrame.pack()
byrnaLabel.pack(anchor=W, side=LEFT, padx=(0,43))
byrnaEntry.pack(anchor=E)
capeFrame = Frame(itemList2)
capeLabel = Label(capeFrame, text='Magic Cape')
capeVar = StringVar(value='1')
capeEntry = Entry(capeFrame, textvariable=capeVar, width=3, validate='all', vcmd=vcmd)
capeFrame.pack()
capeLabel.pack(anchor=W, side=LEFT, padx=(0,21))
capeEntry.pack(anchor=E)
mirrorFrame = Frame(itemList2)
mirrorLabel = Label(mirrorFrame, text='Magic Mirror')
mirrorVar = StringVar(value='1')
mirrorEntry = Entry(mirrorFrame, textvariable=mirrorVar, width=3, validate='all', vcmd=vcmd)
mirrorFrame.pack()
mirrorLabel.pack(anchor=W, side=LEFT, padx=(0,15))
mirrorEntry.pack(anchor=E)
bootsFrame = Frame(itemList2)
bootsLabel = Label(bootsFrame, text='Pegasus Boots')
bootsVar = StringVar(value='1')
bootsEntry = Entry(bootsFrame, textvariable=bootsVar, width=3, validate='all', vcmd=vcmd)
bootsFrame.pack()
bootsLabel.pack(anchor=W, side=LEFT, padx=(0,8))
bootsEntry.pack(anchor=E)
powergloveFrame = Frame(itemList2)
powergloveLabel = Label(powergloveFrame, text='Power Glove')
powergloveVar = StringVar(value='0')
powergloveEntry = Entry(powergloveFrame, textvariable=powergloveVar, width=3, validate='all', vcmd=vcmd)
powergloveFrame.pack()
powergloveLabel.pack(anchor=W, side=LEFT, padx=(0,18))
powergloveEntry.pack(anchor=E)
titansmittFrame = Frame(itemList2)
titansmittLabel = Label(titansmittFrame, text='Titan\'s Mitt')
titansmittVar = StringVar(value='0')
titansmittEntry = Entry(titansmittFrame, textvariable=titansmittVar, width=3, validate='all', vcmd=vcmd)
titansmittFrame.pack()
titansmittLabel.pack(anchor=W, side=LEFT, padx=(0,24))
titansmittEntry.pack(anchor=E)
proggloveFrame = Frame(itemList2)
proggloveLabel = Label(proggloveFrame, text='Prog.Glove')
proggloveVar = StringVar(value='2')
proggloveEntry = Entry(proggloveFrame, textvariable=proggloveVar, width=3, validate='all', vcmd=vcmd)
proggloveFrame.pack()
proggloveLabel.pack(anchor=W, side=LEFT, padx=(0,26))
proggloveEntry.pack(anchor=E)
flippersFrame = Frame(itemList2)
flippersLabel = Label(flippersFrame, text='Flippers')
flippersVar = StringVar(value='1')
flippersEntry = Entry(flippersFrame, textvariable=flippersVar, width=3, validate='all', vcmd=vcmd)
flippersFrame.pack()
flippersLabel.pack(anchor=W, side=LEFT, padx=(0,43))
flippersEntry.pack(anchor=E)
pearlFrame = Frame(itemList2)
pearlLabel = Label(pearlFrame, text='Moon Pearl')
pearlVar = StringVar(value='1')
pearlEntry = Entry(pearlFrame, textvariable=pearlVar, width=3, validate='all', vcmd=vcmd)
pearlFrame.pack()
pearlLabel.pack(anchor=W, side=LEFT, padx=(0,23))
pearlEntry.pack(anchor=E)
heartpieceFrame = Frame(itemList2)
heartpieceLabel = Label(heartpieceFrame, text='Piece of Heart')
heartpieceVar = StringVar(value='24')
heartpieceEntry = Entry(heartpieceFrame, textvariable=heartpieceVar, width=3, validate='all', vcmd=vcmd)
heartpieceFrame.pack()
heartpieceLabel.pack(anchor=W, side=LEFT, padx=(0,10))
heartpieceEntry.pack(anchor=E)
fullheartFrame = Frame(itemList2)
fullheartLabel = Label(fullheartFrame, text='Heart Container')
fullheartVar = StringVar(value='10')
fullheartEntry = Entry(fullheartFrame, textvariable=fullheartVar, width=3, validate='all', vcmd=vcmd)
fullheartFrame.pack()
fullheartLabel.pack(anchor=W, side=LEFT)
fullheartEntry.pack(anchor=E)
sancheartFrame = Frame(itemList2)
sancheartLabel = Label(sancheartFrame, text='Sanctuary Heart')
sancheartVar = StringVar(value='1')
sancheartEntry = Entry(sancheartFrame, textvariable=sancheartVar, width=3, validate='all', vcmd=vcmd)
sancheartFrame.pack()
sancheartLabel.pack(anchor=W, side=LEFT)
sancheartEntry.pack(anchor=E)
sword1Frame = Frame(itemList3)
sword1Label = Label(sword1Frame, text='Sword 1')
sword1Var = StringVar(value='0')
sword1Entry = Entry(sword1Frame, textvariable=sword1Var, width=3, validate='all', vcmd=vcmd)
sword1Frame.pack()
sword1Label.pack(anchor=W, side=LEFT, padx=(0,34))
sword1Entry.pack(anchor=E)
sword2Frame = Frame(itemList3)
sword2Label = Label(sword2Frame, text='Sword 2')
sword2Var = StringVar(value='0')
sword2Entry = Entry(sword2Frame, textvariable=sword2Var, width=3, validate='all', vcmd=vcmd)
sword2Frame.pack()
sword2Label.pack(anchor=W, side=LEFT, padx=(0,34))
sword2Entry.pack(anchor=E)
sword3Frame = Frame(itemList3)
sword3Label = Label(sword3Frame, text='Sword 3')
sword3Var = StringVar(value='0')
sword3Entry = Entry(sword3Frame, textvariable=sword3Var, width=3, validate='all', vcmd=vcmd)
sword3Frame.pack()
sword3Label.pack(anchor=W, side=LEFT, padx=(0,34))
sword3Entry.pack(anchor=E)
sword4Frame = Frame(itemList3)
sword4Label = Label(sword4Frame, text='Sword 4')
sword4Var = StringVar(value='0')
sword4Entry = Entry(sword4Frame, textvariable=sword4Var, width=3, validate='all', vcmd=vcmd)
sword4Frame.pack()
sword4Label.pack(anchor=W, side=LEFT, padx=(0,34))
sword4Entry.pack(anchor=E)
progswordFrame = Frame(itemList3)
progswordLabel = Label(progswordFrame, text='Prog.Sword')
progswordVar = StringVar(value='4')
progswordEntry = Entry(progswordFrame, textvariable=progswordVar, width=3, validate='all', vcmd=vcmd)
progswordFrame.pack()
progswordLabel.pack(anchor=W, side=LEFT, padx=(0,15))
progswordEntry.pack(anchor=E)
shield1Frame = Frame(itemList3)
shield1Label = Label(shield1Frame, text='Shield 1')
shield1Var = StringVar(value='0')
shield1Entry = Entry(shield1Frame, textvariable=shield1Var, width=3, validate='all', vcmd=vcmd)
shield1Frame.pack()
shield1Label.pack(anchor=W, side=LEFT, padx=(0,35))
shield1Entry.pack(anchor=E)
shield2Frame = Frame(itemList3)
shield2Label = Label(shield2Frame, text='Shield 2')
shield2Var = StringVar(value='0')
shield2Entry = Entry(shield2Frame, textvariable=shield2Var, width=3, validate='all', vcmd=vcmd)
shield2Frame.pack()
shield2Label.pack(anchor=W, side=LEFT, padx=(0,35))
shield2Entry.pack(anchor=E)
shield3Frame = Frame(itemList3)
shield3Label = Label(shield3Frame, text='Shield 3')
shield3Var = StringVar(value='0')
shield3Entry = Entry(shield3Frame, textvariable=shield3Var, width=3, validate='all', vcmd=vcmd)
shield3Frame.pack()
shield3Label.pack(anchor=W, side=LEFT, padx=(0,35))
shield3Entry.pack(anchor=E)
progshieldFrame = Frame(itemList3)
progshieldLabel = Label(progshieldFrame, text='Prog.Shield')
progshieldVar = StringVar(value='3')
progshieldEntry = Entry(progshieldFrame, textvariable=progshieldVar, width=3, validate='all', vcmd=vcmd)
progshieldFrame.pack()
progshieldLabel.pack(anchor=W, side=LEFT, padx=(0,16))
progshieldEntry.pack(anchor=E)
bluemailFrame = Frame(itemList3)
bluemailLabel = Label(bluemailFrame, text='Blue Mail')
bluemailVar = StringVar(value='0')
bluemailEntry = Entry(bluemailFrame, textvariable=bluemailVar, width=3, validate='all', vcmd=vcmd)
bluemailFrame.pack()
bluemailLabel.pack(anchor=W, side=LEFT, padx=(0,27))
bluemailEntry.pack(anchor=E)
redmailFrame = Frame(itemList3)
redmailLabel = Label(redmailFrame, text='Red Mail')
redmailVar = StringVar(value='0')
redmailEntry = Entry(redmailFrame, textvariable=redmailVar, width=3, validate='all', vcmd=vcmd)
redmailFrame.pack()
redmailLabel.pack(anchor=W, side=LEFT, padx=(0,30))
redmailEntry.pack(anchor=E)
progmailFrame = Frame(itemList3)
progmailLabel = Label(progmailFrame, text='Prog.Mail')
progmailVar = StringVar(value='2')
progmailEntry = Entry(progmailFrame, textvariable=progmailVar, width=3, validate='all', vcmd=vcmd)
progmailFrame.pack()
progmailLabel.pack(anchor=W, side=LEFT, padx=(0,25))
progmailEntry.pack(anchor=E)
halfmagicFrame = Frame(itemList3)
halfmagicLabel = Label(halfmagicFrame, text='Half Magic')
halfmagicVar = StringVar(value='1')
halfmagicEntry = Entry(halfmagicFrame, textvariable=halfmagicVar, width=3, validate='all', vcmd=vcmd)
halfmagicFrame.pack()
halfmagicLabel.pack(anchor=W, side=LEFT, padx=(0,18))
halfmagicEntry.pack(anchor=E)
quartermagicFrame = Frame(itemList3)
quartermagicLabel = Label(quartermagicFrame, text='Quarter Magic')
quartermagicVar = StringVar(value='0')
quartermagicEntry = Entry(quartermagicFrame, textvariable=quartermagicVar, width=3, validate='all', vcmd=vcmd)
quartermagicFrame.pack()
quartermagicLabel.pack(anchor=W, side=LEFT)
quartermagicEntry.pack(anchor=E)
bcap5Frame = Frame(itemList3)
bcap5Label = Label(bcap5Frame, text='Bomb C.+5')
bcap5Var = StringVar(value='6')
bcap5Entry = Entry(bcap5Frame, textvariable=bcap5Var, width=3, validate='all', vcmd=vcmd)
bcap5Frame.pack()
bcap5Label.pack(anchor=W, side=LEFT, padx=(0,16))
bcap5Entry.pack(anchor=E)
bcap10Frame = Frame(itemList3)
bcap10Label = Label(bcap10Frame, text='Bomb C.+10')
bcap10Var = StringVar(value='1')
bcap10Entry = Entry(bcap10Frame, textvariable=bcap10Var, width=3, validate='all', vcmd=vcmd)
bcap10Frame.pack()
bcap10Label.pack(anchor=W, side=LEFT, padx=(0,10))
bcap10Entry.pack(anchor=E)
acap5Frame = Frame(itemList4)
acap5Label = Label(acap5Frame, text='Arrow C.+5')
acap5Var = StringVar(value='6')
acap5Entry = Entry(acap5Frame, textvariable=acap5Var, width=3, validate='all', vcmd=vcmd)
acap5Frame.pack()
acap5Label.pack(anchor=W, side=LEFT, padx=(0,7))
acap5Entry.pack(anchor=E)
acap10Frame = Frame(itemList4)
acap10Label = Label(acap10Frame, text='Arrow C.+10')
acap10Var = StringVar(value='1')
acap10Entry = Entry(acap10Frame, textvariable=acap10Var, width=3, validate='all', vcmd=vcmd)
acap10Frame.pack()
acap10Label.pack(anchor=W, side=LEFT, padx=(0,1))
acap10Entry.pack(anchor=E)
arrow1Frame = Frame(itemList4)
arrow1Label = Label(arrow1Frame, text='Arrow (1)')
arrow1Var = StringVar(value='1')
arrow1Entry = Entry(arrow1Frame, textvariable=arrow1Var, width=3, validate='all', vcmd=vcmd)
arrow1Frame.pack()
arrow1Label.pack(anchor=W, side=LEFT, padx=(0,18))
arrow1Entry.pack(anchor=E)
arrow10Frame = Frame(itemList4)
arrow10Label = Label(arrow10Frame, text='Arrows (10)')
arrow10Var = StringVar(value='5')
arrow10Entry = Entry(arrow10Frame, textvariable=arrow10Var, width=3, validate='all', vcmd=vcmd)
arrow10Frame.pack()
arrow10Label.pack(anchor=W, side=LEFT, padx=(0,7))
arrow10Entry.pack(anchor=E)
bomb1Frame = Frame(itemList4)
bomb1Label = Label(bomb1Frame, text='Bomb (1)')
bomb1Var = StringVar(value='0')
bomb1Entry = Entry(bomb1Frame, textvariable=bomb1Var, width=3, validate='all', vcmd=vcmd)
bomb1Frame.pack()
bomb1Label.pack(anchor=W, side=LEFT, padx=(0,18))
bomb1Entry.pack(anchor=E)
bomb3Frame = Frame(itemList4)
bomb3Label = Label(bomb3Frame, text='Bombs (3)')
bomb3Var = StringVar(value='10')
bomb3Entry = Entry(bomb3Frame, textvariable=bomb3Var, width=3, validate='all', vcmd=vcmd)
bomb3Frame.pack()
bomb3Label.pack(anchor=W, side=LEFT, padx=(0,13))
bomb3Entry.pack(anchor=E)
rupee1Frame = Frame(itemList4)
rupee1Label = Label(rupee1Frame, text='Rupee (1)')
rupee1Var = StringVar(value='2')
rupee1Entry = Entry(rupee1Frame, textvariable=rupee1Var, width=3, validate='all', vcmd=vcmd)
rupee1Frame.pack()
rupee1Label.pack(anchor=W, side=LEFT, padx=(0,17))
rupee1Entry.pack(anchor=E)
rupee5Frame = Frame(itemList4)
rupee5Label = Label(rupee5Frame, text='Rupees (5)')
rupee5Var = StringVar(value='4')
rupee5Entry = Entry(rupee5Frame, textvariable=rupee5Var, width=3, validate='all', vcmd=vcmd)
rupee5Frame.pack()
rupee5Label.pack(anchor=W, side=LEFT, padx=(0,12))
rupee5Entry.pack(anchor=E)
rupee20Frame = Frame(itemList4)
rupee20Label = Label(rupee20Frame, text='Rupees (20)')
rupee20Var = StringVar(value='28')
rupee20Entry = Entry(rupee20Frame, textvariable=rupee20Var, width=3, validate='all', vcmd=vcmd)
rupee20Frame.pack()
rupee20Label.pack(anchor=W, side=LEFT, padx=(0,6))
rupee20Entry.pack(anchor=E)
rupee50Frame = Frame(itemList4)
rupee50Label = Label(rupee50Frame, text='Rupees (50)')
rupee50Var = StringVar(value='7')
rupee50Entry = Entry(rupee50Frame, textvariable=rupee50Var, width=3, validate='all', vcmd=vcmd)
rupee50Frame.pack()
rupee50Label.pack(anchor=W, side=LEFT, padx=(0,6))
rupee50Entry.pack(anchor=E)
rupee100Frame = Frame(itemList4)
rupee100Label = Label(rupee100Frame, text='Rupees (100)')
rupee100Var = StringVar(value='1')
rupee100Entry = Entry(rupee100Frame, textvariable=rupee100Var, width=3, validate='all', vcmd=vcmd)
rupee100Frame.pack()
rupee100Label.pack(anchor=W, side=LEFT, padx=(0,0))
rupee100Entry.pack(anchor=E)
rupee300Frame = Frame(itemList4)
rupee300Label = Label(rupee300Frame, text='Rupees (300)')
rupee300Var = StringVar(value='5')
rupee300Entry = Entry(rupee300Frame, textvariable=rupee300Var, width=3, validate='all', vcmd=vcmd)
rupee300Frame.pack()
rupee300Label.pack(anchor=W, side=LEFT, padx=(0,0))
rupee300Entry.pack(anchor=E)
rupoorFrame = Frame(itemList4)
rupoorLabel = Label(rupoorFrame, text='Rupoor')
rupoorVar = StringVar(value='0')
rupoorEntry = Entry(rupoorFrame, textvariable=rupoorVar, width=3, validate='all', vcmd=vcmd)
rupoorFrame.pack()
rupoorLabel.pack(anchor=W, side=LEFT, padx=(0,28))
rupoorEntry.pack(anchor=E)
blueclockFrame = Frame(itemList4)
blueclockLabel = Label(blueclockFrame, text='Blue Clock')
blueclockVar = StringVar(value='0')
blueclockEntry = Entry(blueclockFrame, textvariable=blueclockVar, width=3, validate='all', vcmd=vcmd)
blueclockFrame.pack()
blueclockLabel.pack(anchor=W, side=LEFT, padx=(0,11))
blueclockEntry.pack(anchor=E)
greenclockFrame = Frame(itemList4)
greenclockLabel = Label(greenclockFrame, text='Green Clock')
greenclockVar = StringVar(value='0')
greenclockEntry = Entry(greenclockFrame, textvariable=greenclockVar, width=3, validate='all', vcmd=vcmd)
greenclockFrame.pack()
greenclockLabel.pack(anchor=W, side=LEFT, padx=(0,3))
greenclockEntry.pack(anchor=E)
redclockFrame = Frame(itemList4)
redclockLabel = Label(redclockFrame, text='Red Clock')
redclockVar = StringVar(value='0')
redclockEntry = Entry(redclockFrame, textvariable=redclockVar, width=3, validate='all', vcmd=vcmd)
redclockFrame.pack()
redclockLabel.pack(anchor=W, side=LEFT, padx=(0,14))
redclockEntry.pack(anchor=E)
triforcepieceFrame = Frame(itemList5)
triforcepieceLabel = Label(triforcepieceFrame, text='Triforce Piece')
triforcepieceVar = StringVar(value='0')
triforcepieceEntry = Entry(triforcepieceFrame, textvariable=triforcepieceVar, width=3, validate='all', vcmd=vcmd)
triforcepieceFrame.pack()
triforcepieceLabel.pack(anchor=W, side=LEFT, padx=(0,55))
triforcepieceEntry.pack(anchor=E)
triforcecountFrame = Frame(itemList5)
triforcecountLabel = Label(triforcecountFrame, text='Triforce Pieces Required')
triforcecountVar = StringVar(value='0')
triforcecountEntry = Entry(triforcecountFrame, textvariable=triforcecountVar, width=3, validate='all', vcmd=vcmd)
triforcecountFrame.pack()
triforcecountLabel.pack(anchor=W, side=LEFT, padx=(0,0))
triforcecountEntry.pack(anchor=E)
triforceFrame = Frame(itemList5)
triforceLabel = Label(triforceFrame, text='Triforce (win game)')
triforceVar = StringVar(value='0')
triforceEntry = Entry(triforceFrame, textvariable=triforceVar, width=3, validate='all', vcmd=vcmd)
triforceFrame.pack()
triforceLabel.pack(anchor=W, side=LEFT, padx=(0,23))
triforceEntry.pack(anchor=E)
rupoorcostFrame = Frame(itemList5)
rupoorcostLabel = Label(rupoorcostFrame, text='Rupoor Cost')
rupoorcostVar = StringVar(value='10')
rupoorcostEntry = Entry(rupoorcostFrame, textvariable=rupoorcostVar, width=6, validate='all', vcmd=vcmd)
rupoorcostFrame.pack()
rupoorcostLabel.pack(anchor=W, side=LEFT, padx=(0,43))
rupoorcostEntry.pack(anchor=E)
itemList1.pack(side=LEFT, padx=(0,0))
itemList2.pack(side=LEFT, padx=(0,0))
itemList3.pack(side=LEFT, padx=(0,0))
itemList4.pack(side=LEFT, padx=(0,0))
itemList5.pack(side=LEFT, padx=(0,0))
topFrame3.pack(side=TOP)
if args is not None:
# load values from commandline args
createSpoilerVar.set(int(args.create_spoiler))