From 20bc14ba1244efaee014c55acec628de61aa8a45 Mon Sep 17 00:00:00 2001 From: "Mike A. Trethewey" Date: Mon, 17 Feb 2020 00:45:37 -0800 Subject: [PATCH] JSONify Enemizer options Fix set_sprite when cancelling custom sprite file selector --- gui/adjust/overview.py | 2 +- gui/randomize/enemizer.py | 112 ++++-------------- gui/randomize/gameoptions.py | 2 +- .../gui/randomize/enemizer/checkboxes.json | 8 ++ .../randomize/enemizer/leftEnemizerFrame.json | 41 +++++++ .../enemizer/rightEnemizerFrame.json | 42 +++++++ 6 files changed, 113 insertions(+), 94 deletions(-) create mode 100644 resources/app/gui/randomize/enemizer/checkboxes.json create mode 100644 resources/app/gui/randomize/enemizer/leftEnemizerFrame.json create mode 100644 resources/app/gui/randomize/enemizer/rightEnemizerFrame.json diff --git a/gui/adjust/overview.py b/gui/adjust/overview.py index 2265f681..7f4918ed 100644 --- a/gui/adjust/overview.py +++ b/gui/adjust/overview.py @@ -94,7 +94,7 @@ def adjust_page(top, parent, settings): spriteEntry2 = Label(spriteDialogFrame2, textvariable=self.spriteNameVar2) self.sprite = None - def set_sprite(sprite_param, random_sprite): + def set_sprite(sprite_param, random_sprite=False): if sprite_param is None or not sprite_param.valid: self.sprite = None self.spriteNameVar2.set('(unchanged)') diff --git a/gui/randomize/enemizer.py b/gui/randomize/enemizer.py index e6e20d20..9292a773 100644 --- a/gui/randomize/enemizer.py +++ b/gui/randomize/enemizer.py @@ -1,6 +1,8 @@ import os 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 +import json +import os def enemizer_page(parent,settings): # Enemizer @@ -9,19 +11,12 @@ def enemizer_page(parent,settings): # Enemizer options self.widgets = {} - myDict = { - ## Pot Shuffle - "potshuffle": { - "type": "checkbox", - "label": { - "text": "Pot Shuffle" - } - } - } - dictWidgets = widgets.make_widgets_from_dict(self, myDict, self) - for key in dictWidgets: - self.widgets[key] = dictWidgets[key] - self.widgets[key].pack(anchor=W) + with open(os.path.join("resources","app","gui","randomize","enemizer","checkboxes.json")) as checkboxes: + myDict = json.load(checkboxes) + dictWidgets = widgets.make_widgets_from_dict(self, myDict, self) + for key in dictWidgets: + self.widgets[key] = dictWidgets[key] + self.widgets[key].pack(anchor=W) ## Enemizer CLI Path enemizerPathFrame = Frame(self) @@ -47,85 +42,18 @@ def enemizer_page(parent,settings): leftEnemizerFrame.pack(side=LEFT, anchor=N) rightEnemizerFrame.pack(side=RIGHT, anchor=N) - myDict = { - ## Randomize Enemies - "enemyshuffle": { - "type": "selectbox", - "label": { - "text": "Enemy Shuffle" - }, - "packAttrs": { - "label": { "side": LEFT }, - "selectbox": { "side": RIGHT } - }, - "options": { - "Vanilla": "none", - "Shuffled": "shuffled", - "Chaos": "chaos" - } - }, - ## Randomize Bosses - "bossshuffle": { - "type": "selectbox", - "label": { - "text": "Boss Shuffle" - }, - "packAttrs": { - "label": { "side": LEFT }, - "selectbox": { "side": RIGHT } - }, - "options": { - "Vanilla": "none", - "Basic": "basic", - "Shuffled": "shuffled", - "Chaos": "chaos" - } - } - } - dictWidgets = widgets.make_widgets_from_dict(self, myDict, leftEnemizerFrame) - for key in dictWidgets: - self.widgets[key] = dictWidgets[key] - self.widgets[key].pack(anchor=E) + with open(os.path.join("resources","app","gui","randomize","enemizer","leftEnemizerFrame.json")) as leftEnemizerFrameItems: + myDict = json.load(leftEnemizerFrameItems) + dictWidgets = widgets.make_widgets_from_dict(self, myDict, leftEnemizerFrame) + for key in dictWidgets: + self.widgets[key] = dictWidgets[key] + self.widgets[key].pack(anchor=E) - myDict = { - ## Enemy Damage - "enemydamage": { - "type": "selectbox", - "label": { - "text": "Enemy Damage" - }, - "packAttrs": { - "label": { "side": LEFT }, - "selectbox": { "side": RIGHT } - }, - "options": { - "Vanilla": "default", - "Shuffled": "shuffled", - "Chaos": "chaos" - } - }, - ## Enemy Health - "enemyhealth": { - "type": "selectbox", - "label": { - "text": "Enemy Health" - }, - "packAttrs": { - "label": { "side": LEFT }, - "selectbox": { "side": RIGHT } - }, - "options": { - "Vanilla": "default", - "Easy": "easy", - "Normal": "normal", - "Hard": "hard", - "Expert": "expert" - } - } - } - dictWidgets = widgets.make_widgets_from_dict(self, myDict, rightEnemizerFrame) - for key in dictWidgets: - self.widgets[key] = dictWidgets[key] - self.widgets[key].pack(anchor=E) + with open(os.path.join("resources","app","gui","randomize","enemizer","rightEnemizerFrame.json")) as rightEnemizerFrameItems: + myDict = json.load(rightEnemizerFrameItems) + dictWidgets = widgets.make_widgets_from_dict(self, myDict, rightEnemizerFrame) + for key in dictWidgets: + self.widgets[key] = dictWidgets[key] + self.widgets[key].pack(anchor=E) return self,settings diff --git a/gui/randomize/gameoptions.py b/gui/randomize/gameoptions.py index 1785f38d..5f12f8be 100644 --- a/gui/randomize/gameoptions.py +++ b/gui/randomize/gameoptions.py @@ -176,7 +176,7 @@ def gameoptions_page(top, parent): return self -def set_sprite(sprite_param, random_sprite, spriteSetter=None, spriteNameVar=None, randomSpriteVar=None): +def set_sprite(sprite_param, random_sprite=False, spriteSetter=None, spriteNameVar=None, randomSpriteVar=None): if sprite_param is None or not sprite_param.valid: if spriteSetter: spriteSetter(None) diff --git a/resources/app/gui/randomize/enemizer/checkboxes.json b/resources/app/gui/randomize/enemizer/checkboxes.json new file mode 100644 index 00000000..6f01079b --- /dev/null +++ b/resources/app/gui/randomize/enemizer/checkboxes.json @@ -0,0 +1,8 @@ +{ + "potshuffle": { + "type": "checkbox", + "label": { + "text": "Pot Shuffle" + } + } +} diff --git a/resources/app/gui/randomize/enemizer/leftEnemizerFrame.json b/resources/app/gui/randomize/enemizer/leftEnemizerFrame.json new file mode 100644 index 00000000..bf5fab87 --- /dev/null +++ b/resources/app/gui/randomize/enemizer/leftEnemizerFrame.json @@ -0,0 +1,41 @@ +{ + "enemyshuffle": { + "type": "selectbox", + "label": { + "text": "Enemy Shuffle" + }, + "packAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "Vanilla": "none", + "Shuffled": "shuffled", + "Chaos": "chaos" + } + }, + "bossshuffle": { + "type": "selectbox", + "label": { + "text": "Boss Shuffle" + }, + "packAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "Vanilla": "none", + "Basic": "basic", + "Shuffled": "shuffled", + "Chaos": "chaos" + } + } +} diff --git a/resources/app/gui/randomize/enemizer/rightEnemizerFrame.json b/resources/app/gui/randomize/enemizer/rightEnemizerFrame.json new file mode 100644 index 00000000..5f559dc1 --- /dev/null +++ b/resources/app/gui/randomize/enemizer/rightEnemizerFrame.json @@ -0,0 +1,42 @@ +{ + "enemydamage": { + "type": "selectbox", + "label": { + "text": "Enemy Damage" + }, + "packAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "Vanilla": "default", + "Shuffled": "shuffled", + "Chaos": "chaos" + } + }, + "enemyhealth": { + "type": "selectbox", + "label": { + "text": "Enemy Health" + }, + "packAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "Vanilla": "default", + "Easy": "easy", + "Normal": "normal", + "Hard": "hard", + "Expert": "expert" + } + } +}