Random sprite on hit now part of basepatch. Other events possible too.

This commit is contained in:
CaitSith2
2020-10-04 10:57:30 -07:00
parent 104f780873
commit 38ac943a9c
5 changed files with 103 additions and 44 deletions

43
Gui.py
View File

@@ -138,7 +138,10 @@ def guiMain(args=None):
sprite = None
def set_sprite(sprite_param):
nonlocal sprite
if sprite_param is None or not sprite_param.valid:
if isinstance(sprite_param, str):
sprite = sprite_param
spriteNameVar.set(sprite_param)
elif sprite_param is None or not sprite_param.valid:
sprite = None
spriteNameVar.set('(unchanged)')
else:
@@ -1409,7 +1412,31 @@ class SpriteSelector(object):
button = Button(frame, text="Default Link sprite", command=self.use_default_link_sprite)
button.pack(side=LEFT, padx=(0, 5))
button = Button(frame, text="Random sprite", command=self.use_random_sprite)
self.randomButtonText = StringVar()
button = Button(frame, textvariable=self.randomButtonText, command=self.use_random_sprite)
button.pack(side=LEFT, padx=(0, 5))
self.randomButtonText.set("Random")
self.randomOnEventText = StringVar()
self.randomOnHitVar = IntVar()
self.randomOnEnterVar = IntVar()
self.randomOnExitVar = IntVar()
self.randomOnSlashVar = IntVar()
self.randomOnItemVar = IntVar()
button = Checkbutton(frame, text="Hit", command=self.update_random_button, variable=self.randomOnHitVar)
button.pack(side=LEFT, padx=(0, 5))
button = Checkbutton(frame, text="Enter", command=self.update_random_button, variable=self.randomOnEnterVar)
button.pack(side=LEFT, padx=(0, 5))
button = Checkbutton(frame, text="Exit", command=self.update_random_button, variable=self.randomOnExitVar)
button.pack(side=LEFT, padx=(0, 5))
button = Checkbutton(frame, text="Slash", command=self.update_random_button, variable=self.randomOnSlashVar)
button.pack(side=LEFT, padx=(0, 5))
button = Checkbutton(frame, text="Item", command=self.update_random_button, variable=self.randomOnItemVar)
button.pack(side=LEFT, padx=(0, 5))
if adjuster:
@@ -1574,8 +1601,18 @@ class SpriteSelector(object):
self.callback(Sprite.default_link_sprite())
self.window.destroy()
def update_random_button(self):
randomon = "-hit" if self.randomOnHitVar.get() else ""
randomon += "-enter" if self.randomOnEnterVar.get() else ""
randomon += "-exit" if self.randomOnExitVar.get() else ""
randomon += "-slash" if self.randomOnSlashVar.get() else ""
randomon += "-item" if self.randomOnItemVar.get() else ""
self.randomOnEventText.set(f"randomon{randomon}" if randomon else None)
self.randomButtonText.set("Random On Event" if randomon else "Random")
def use_random_sprite(self):
self.callback(random.choice(self.all_sprites) if self.all_sprites else None)
randomon = self.randomOnEventText.get()
self.callback(randomon if randomon else (random.choice(self.all_sprites) if self.all_sprites else None))
self.window.destroy()
def select_sprite(self, spritename):