Skip to content

Commit

Permalink
0.9.4 LET'S GOOOO
Browse files Browse the repository at this point in the history
  • Loading branch information
errantSquam authored Jul 23, 2022
1 parent 8e0ac63 commit 5bc23c6
Show file tree
Hide file tree
Showing 2 changed files with 102 additions and 71 deletions.
45 changes: 35 additions & 10 deletions fe12dataReader.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,8 @@ def getSettings(self):
"Absolute Bases": self.absoluteBases,
"Absolute Growths": self.absoluteGrowths,

"Max Dancer Count": self.maxDancerCount
"Max Dancer Count": self.maxDancerCount,
"Max Freelancer Count": self.maxFreelanceCount
}

return settingsDict
Expand Down Expand Up @@ -181,9 +182,9 @@ def randomize(self, input_path, output_path, seed = None):

self.randomizeScript(input_path+"\\m", seed, output_path + '\\m')

self.status = "Randomization success!"
self.status = " Randomization success! \n Please drag the data folder from the output back into \n your unpacked directory and re-pack your ROM. \n\n (Make a copy for backup, just in case.)"

self.writeLog(seed)
self.writeLog(seed, output_path)


return "helyea"
Expand Down Expand Up @@ -555,7 +556,6 @@ def randomizeDispos(self, input_path, seed, output_path):
#generate dict of characters and their respective randomized classes
#write this to log as well

#TO DO: MODIFY CLASS SLOTS

mapList = "202 203 204 205 206 207 208 103 106 110 113 116 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 019 020 021 022 024".split()
mapList = ["bmap"+ i for i in mapList]
Expand Down Expand Up @@ -599,11 +599,16 @@ def randomizeDispos(self, input_path, seed, output_path):

#Check weapon rank of new class...

self.logDict[cName]["Inventory"] = {}
if "Inventory" in self.logDict[cName] and cName != "Cecil":
self.logDict[cName]["Inventory2"] = {}

else:
self.logDict[cName]["Inventory"] = {}



for i in range(4):

wPointer = [17, 21, 25, 29][i]
oldWep = input[pointer+wPointer]
maxWepRank = max(self.logDict[cName]["Weapon Ranks"].values())
Expand Down Expand Up @@ -719,8 +724,10 @@ def randomizeDispos(self, input_path, seed, output_path):
195 - A lv2
'''


self.logDict[cName]["Inventory"][i] = self.itemDict[str(input[pointer+wPointer])]
if "Inventory2" in self.logDict[cName]:
self.logDict[cName]["Inventory2"][i] = self.itemDict[str(input[pointer+wPointer])]
else:
self.logDict[cName]["Inventory"][i] = self.itemDict[str(input[pointer+wPointer])]



Expand Down Expand Up @@ -791,7 +798,7 @@ def randomizeScript(self, input_directory, seed, output_directory):
os.remove(output_directory+"\\001.decmp")
'''

def writeLog(self, seed):
def writeLog(self, seed, output_path):
logData = "Seed: " + str(seed)

for setting in self.getSettings():
Expand All @@ -801,6 +808,13 @@ def writeLog(self, seed):
else:
logData += "\n" + setting + ": " + str(self.getSettings()[setting])

if self.randomBases or self.randomGrowths:
logData+="\n\nAll bases/growths shown below are BEFORE class bonuses."
logData+="\nYou may find a list of class bonuses here:"
logData+="\nhttps://serenesforest.net/light-and-shadow/classes/base-stats/"
logData+="\nhttps://serenesforest.net/light-and-shadow/classes/growth-rates/player/"


if self.randomCharacters:
logData += "\n\nRecruitments:"

Expand Down Expand Up @@ -840,8 +854,10 @@ def writeLog(self, seed):

for character in self.logDict:
logData+= "\n\n" + character

for value in self.logDict[character]:
toWrite = self.logDict[character][value]

if type(toWrite) == list:
logData+="\n" + value + ": "
stats = "HP STR MAG SKL SPD LCK DEF RES".split()
Expand All @@ -850,8 +866,15 @@ def writeLog(self, seed):
if value == "Growths":
logData += "%"
logData+= " "

else:
logData+="\n" + value + ": " + str(self.logDict[character][value])
name = value
if "Inventory2" in self.logDict[character] and value == "Inventory":
name = "Prologue Inventory"
if value == "Inventory2":
name = "Inventory"

logData+="\n" + name + ": " + str(self.logDict[character][value])

logData += "\n\nClass Slots:"
for chapter in self.chapterLogDict:
Expand All @@ -878,7 +901,9 @@ def writeLog(self, seed):
for oldName in nameReplacements:
logData = nameReplacements[oldName].join(logData.split(oldName))

log = open(self.directory+"\\randomizerLog.txt", "w")
log = open(self.directory+"\\randomizerLogRecent.txt", "w")
log = open(output_path.split("\\output")[0]+"\\randomizerLog.txt", "w")

log.write(logData)
log.close()

Expand Down
128 changes: 67 additions & 61 deletions raddomizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ def exportSettings(self):


def displayAbout(self):
newWin = aboutWindow(self.raddomizer.font)
newWin = aboutWindow(self.raddomizer.font, self.raddomizer.directory)
self.windows.append(newWin)
newWin.show()

Expand All @@ -71,7 +71,6 @@ def closeEvent(self, ev):
ev.accept()



class Raddomizer(QWidget):
def __init__(self, parent = None):

Expand Down Expand Up @@ -139,7 +138,7 @@ def initWindows(self):
#X = center, Y = 0, columnspan = 5, rowspan = 2


#self.miniWindow("Test", ("#392918","#392918","#100808", "#FFDCDC"), (20, 10), (30, 20))
#self.miniGroup("Test", ("#392918","#392918","#100808", "#FFDCDC"), (20, 10), (30, 20))


info = infoWindow(self.directory, self.font)
Expand All @@ -150,7 +149,7 @@ def initWindows(self):

#Gen window:
#X = 0, Y = 1, columnspan = 2, rowspan = 2
genWin = self.miniWindow("General", ("#392918","#392918","#100808", "#FFDCDC"), info, (0,10), (20,20))
genWin = self.miniGroup("General", ("#392918","#392918","#100808", "#FFDCDC"), info, (0,10), (20,20))

spacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
genWin.grid.addItem(spacer, 0, 0)
Expand All @@ -175,7 +174,7 @@ def initWindows(self):

#Advanced:
#X = center, Y = 2, columnspan = 5, rowspan = 3
advancedWin = self.miniWindow("Advanced", ("#182039","#2d637b","#081018", "#ffffff"),info, (0,30), (50,30))
advancedWin = self.miniGroup("Advanced", ("#182039","#2d637b","#081018", "#ffffff"),info, (0,30), (50,30))



Expand Down Expand Up @@ -247,7 +246,9 @@ def initRandomizer(self):
error = errorWindow(self.font, self.directory, '''
<div style = "text-align:center">
&nbsp;&nbsp;Make sure your input directory&nbsp;&nbsp;<br>
&nbsp;&nbsp;contains an unpacked FE12 ROM.&nbsp;&nbsp;
&nbsp;&nbsp;contains an <b><i>unpacked</i></b> FE12 ROM folder.&nbsp;&nbsp;
<br><br>
&nbsp;&nbsp;Please click "Help" for more information.&nbsp;&nbsp;
</div>
''')
self.windows.append(error)
Expand Down Expand Up @@ -377,14 +378,14 @@ def addSlider(self, widget, info, position = (0,0), spanpos = (1,1)):
return minGrowthSlider


def miniWindow(self, title, colors, info, position = (0,0), spanpos = (1,1)):
def miniGroup(self, title, colors, info, position = (0,0), spanpos = (1,1)):
col = position[0]
row = position[1]

colspan = spanpos[0]
rowspan = spanpos[1]

rect = miniWindow(colors[0], colors[1], colors[2], colors[3], self.font, info)
rect = miniGroup(colors[0], colors[1], colors[2], colors[3], self.font, info)
label = windowLabel(title, "#182039","#2d637b","#081018", self.font)


Expand Down Expand Up @@ -465,6 +466,8 @@ def paintEvent(self, ev):
painter.setBrush(gradient)
painter.drawRect(self.rect())


#Windows
class romInfoWindow(QWidget):
def __init__(self, font, directory, parent = None):
super(romInfoWindow, self).__init__(parent)
Expand Down Expand Up @@ -566,7 +569,7 @@ def __init__(self, font, directory, errorText, parent = None):

self.grid.addWidget(text1, 0, 0, 3, 5, Qt.AlignCenter)

self.grid.addWidget(text2, 42, 0, 5, 5, Qt.AlignCenter)
self.grid.addWidget(text2, 43, 0, 5, 5, Qt.AlignCenter)

self.grid.addWidget(errorImage, 3, 0, 40,5)

Expand Down Expand Up @@ -782,7 +785,39 @@ def paintEvent(self, ev):
painter.setBrush(gradient)
painter.drawRect(self.rect())

class directoryWindow(QWidget):
def __init__(self, info, parent = None):
super(directoryWindow, self).__init__(parent)
self.grid = QGridLayout()
self.setLayout(self.grid)
self.setAttribute(Qt.WA_Hover)
self.infoConnection = info



dColor = QColor("#182039")
dColor.setAlphaF(0.70)


self.setAutoFillBackground(True)

palette = self.palette()
palette.setColor(self.backgroundRole(), dColor)
self.setPalette(palette)

def event(self, event):
if event.type() == QEvent.HoverEnter:
self.infoConnection.changeText("The input directory should contain \nan unpacked FE12 ROM.")
pass
elif event.type() == QEvent.HoverLeave:
#print("leave")
#Halt signal
self.infoConnection.changeDefault()

pass
return super().event(event)

#Widgets/Groups
class randomizeButton(QPushButton):
def __init__(self, font, parent = None):
super(randomizeButton, self).__init__(parent)
Expand Down Expand Up @@ -827,42 +862,6 @@ def paintEvent(self, ev):

painter.fillPath(text, Qt.white)



class directoryWindow(QWidget):
def __init__(self, info, parent = None):
super(directoryWindow, self).__init__(parent)
self.grid = QGridLayout()
self.setLayout(self.grid)
self.setAttribute(Qt.WA_Hover)
self.infoConnection = info



dColor = QColor("#182039")
dColor.setAlphaF(0.70)


self.setAutoFillBackground(True)

palette = self.palette()
palette.setColor(self.backgroundRole(), dColor)
self.setPalette(palette)

def event(self, event):
if event.type() == QEvent.HoverEnter:
self.infoConnection.changeText("The input directory should contain \nan unpacked FE12 ROM.")
pass
elif event.type() == QEvent.HoverLeave:
#print("leave")
#Halt signal
self.infoConnection.changeDefault()

pass
return super().event(event)



class windowLabel(QWidget):
def __init__(self, title, baseColor, embossColor, shadowColor, font, parent = None):
super(windowLabel, self).__init__(parent)
Expand Down Expand Up @@ -914,7 +913,6 @@ def paintEvent(self, ev):
Qt.RoundCap, Qt.RoundJoin))
painter.drawPath(rectPath)


class intInputLabel(QWidget):
def __init__(self, text, font, info, parent = None):
super(intInputLabel, self).__init__(parent)
Expand Down Expand Up @@ -970,7 +968,6 @@ def event(self, event):
pass
return super().event(event)


class seedLabel(QWidget):
def __init__(self, font, info, parent = None):
super(seedLabel, self).__init__(parent)
Expand Down Expand Up @@ -1025,11 +1022,9 @@ def event(self, event):
pass
return super().event(event)



class miniWindow(QWidget):
class miniGroup(QWidget):
def __init__(self, baseColor, embossColor, shadowColor, strokeColor, font, info, parent = None):
super(miniWindow, self).__init__(parent)
super(miniGroup, self).__init__(parent)

self.setAttribute(Qt.WA_Hover)
self.infoConnection = info
Expand Down Expand Up @@ -1130,7 +1125,7 @@ def __init__(self, text, font, info, minSize = 25, parent = None):
"Growths":"Randomizes growth rates of \nall playable characters.",
"Bases": "Randomizes bases of all \nplayable characters.",
"Classes":"Randomizes classes of all \nplayable characters (except Kris).",
"Portraits":"Randomizes portraits and names \nof all playable characters (except Kris).",
"Portraits":"Randomizes identities (e.g. Marth -> Radd) \nof all playable characters (except Kris).",
"Absolute Bases": "Ignores whether bases add \nup to the original base stat total.",
"Absolute Growths": "Ignores whether growths add \nup to the original base stat total.",
"Enable Manaketes": "Adds non-divine Manaketes \ninto the class pool.",
Expand Down Expand Up @@ -1395,11 +1390,14 @@ def event(self, event):
return super().event(event)

class aboutWindow(QWidget):
def __init__(self, font, parent = None):
def __init__(self, font, directory, parent = None):
super(aboutWindow, self).__init__(parent)
self.grid = QGridLayout()
self.setLayout(self.grid)

self.setWindowTitle("About")
self.setWindowIcon(QIcon(directory+"\\randomizer_assets\\infocircle.svg"))

self.font = font

palette = QPalette()
Expand All @@ -1418,19 +1416,27 @@ def __init__(self, font, parent = None):
<br>
<i style = "font-size:30px">Special Thanks</i>
</div>
<div style = "font-size: 20px">
<li><a href = https://feuniverse.us/t/fe12-nightmare-modules/9525
<ul style = "display:-moz-inline-stack; display: inline-block;
zoom:1; *display:inline;">
<li> &nbsp;Testers: Xylon73, Gammer, Harb1ng3r</li>
<li> &nbsp;GUI feedback: <a href = https://virize.carrd.co/
style = "color: #f7f3b9;">Virize</a></li>
<li>&nbsp;<a href = https://feuniverse.us/t/fe12-nightmare-modules/9525
style = "color: #f7f3b9;">FE12 Nightmare Modules</a></li>
<li><a href = https://feuniverse.us/t/fe12-growth-cyphers/6380
<li>&nbsp;<a href = https://feuniverse.us/t/fe12-growth-cyphers/6380
style = "color: #f7f3b9;">FE12 Growth Cyphers</a></li>
<li><a href = https://github.com/magical/nlzss/blob/master/lzss3.py
style = "color: #f7f3b9;"> Nintendo LZ compression</a></li>
<li>Icons by svgrepo.com</li>
<li>&nbsp;<a href = https://github.com/magical/nlzss/blob/master/lzss3.py
style = "color: #f7f3b9;">Nintendo LZ compression</a></li>
<li>&nbsp;Icons by <a href = https://www.svgrepo.com
style = "color: #f7f3b9;">svgrepo.com</a></li>
</ul>
</div>
<br>
<br>
<i style = "font-size:17px">Current version: v0.9.2</i>
<div style = "text-align: center">
<i style = "font-size:17px">Current version: v0.9.4</i>
</div>
''')


Expand Down

0 comments on commit 5bc23c6

Please sign in to comment.