Initial Upload
This commit is contained in:
0
.gitignore
vendored
Normal file → Executable file
0
.gitignore
vendored
Normal file → Executable file
113
components/mainWindow.py
Executable file
113
components/mainWindow.py
Executable file
@@ -0,0 +1,113 @@
|
|||||||
|
from PyQt6.QtWidgets import (
|
||||||
|
QWidget,
|
||||||
|
QPushButton,
|
||||||
|
QVBoxLayout,
|
||||||
|
QHBoxLayout,
|
||||||
|
)
|
||||||
|
|
||||||
|
from data.collectibles import collectibles
|
||||||
|
|
||||||
|
class MainWindow(QWidget):
|
||||||
|
collectibles = {}
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
# Set the window title
|
||||||
|
self.setWindowTitle('Y-Tracker')
|
||||||
|
self.collectibles = collectibles
|
||||||
|
|
||||||
|
# Create & Edit Layout
|
||||||
|
layout = QVBoxLayout()
|
||||||
|
self.setLayout(layout)
|
||||||
|
|
||||||
|
vLayout = QVBoxLayout()
|
||||||
|
hLayout = QHBoxLayout()
|
||||||
|
|
||||||
|
layout.addLayout(hLayout)
|
||||||
|
layout.addLayout(vLayout)
|
||||||
|
|
||||||
|
self.layout_dict = {}
|
||||||
|
self.label_dict = {}
|
||||||
|
self.button_dict = {}
|
||||||
|
|
||||||
|
# Build the Inputs
|
||||||
|
for type in self.collectibles:
|
||||||
|
|
||||||
|
if self.collectibles[type]['meta']['orient'] == 'horizontal':
|
||||||
|
self.layout_dict[type] = QHBoxLayout()
|
||||||
|
vLayout.addLayout(self.layout_dict[type])
|
||||||
|
|
||||||
|
else:
|
||||||
|
self.layout_dict[type] = QVBoxLayout()
|
||||||
|
hLayout.addLayout(self.layout_dict[type])
|
||||||
|
|
||||||
|
self.button_dict[type] = {}
|
||||||
|
|
||||||
|
for item in self.collectibles[type]:
|
||||||
|
|
||||||
|
if item != 'meta':
|
||||||
|
self.button_dict[type][item] = QPushButton()
|
||||||
|
self.button_dict[type][item].setObjectName(f'{type}-{item}')
|
||||||
|
|
||||||
|
if self.collectibles[type]['meta']['type'] == 'bool':
|
||||||
|
self.button_dict[type][item].setText(self.collectibles[type][item]['name'])
|
||||||
|
|
||||||
|
if self.collectibles[type][item]['value'] == False:
|
||||||
|
self.button_dict[type][item].setStyleSheet("""
|
||||||
|
QPushButton#""" + self.button_dict[type][item].objectName() + """ {
|
||||||
|
color: #88FFFFFF
|
||||||
|
}
|
||||||
|
""")
|
||||||
|
|
||||||
|
else:
|
||||||
|
self.button_dict[type][item].setStyleSheet("""
|
||||||
|
QPushButton#""" + self.button_dict[type][item].objectName() + """ {
|
||||||
|
color: #FFFFFFFF
|
||||||
|
}
|
||||||
|
""")
|
||||||
|
|
||||||
|
self.button_dict[type][item].clicked.connect(lambda state, x=[type, item]: boolButtonSelect(self, x[0], x[1]))
|
||||||
|
|
||||||
|
elif self.collectibles[type]['meta']['type'] == 'int':
|
||||||
|
self.button_dict[type][item].setText(f'{self.collectibles[type][item]["name"]}: {self.collectibles[type][item]["value"]}')
|
||||||
|
self.button_dict[type][item].clicked.connect(lambda state, x=[type, item]: intButtonSelect(self, x[0], x[1]))
|
||||||
|
|
||||||
|
elif self.collectibles[type]['meta']['type'] == 'list':
|
||||||
|
self.button_dict[type][item].setText(self.collectibles[type]['meta']['list'][self.collectibles[type][item]['value']])
|
||||||
|
self.button_dict[type][item].clicked.connect(lambda state, x=[type, item]: listButtonSelect(self, x[0], x[1]))
|
||||||
|
|
||||||
|
self.layout_dict[type].addWidget(self.button_dict[type][item])
|
||||||
|
|
||||||
|
# Add Events
|
||||||
|
def boolButtonSelect(self, type, item):
|
||||||
|
if self.collectibles[type][item]['value']:
|
||||||
|
self.collectibles[type][item]['value'] = False
|
||||||
|
self.button_dict[type][item].setStyleSheet("""
|
||||||
|
QPushButton#""" + self.button_dict[type][item].objectName() + """ {
|
||||||
|
color: #88FFFFFF
|
||||||
|
}
|
||||||
|
""")
|
||||||
|
else:
|
||||||
|
self.collectibles[type][item]['value'] = True
|
||||||
|
self.button_dict[type][item].setStyleSheet("""
|
||||||
|
QPushButton#""" + self.button_dict[type][item].objectName() + """ {
|
||||||
|
color: #FFFFFFFF
|
||||||
|
}
|
||||||
|
""")
|
||||||
|
|
||||||
|
def intButtonSelect(self, type, item):
|
||||||
|
self.collectibles[type][item]['value'] = self.collectibles[type][item]['value'] + 1
|
||||||
|
self.button_dict[type][item].setText(f'{self.collectibles[type][item]["name"]}: {self.collectibles[type][item]["value"]}')
|
||||||
|
|
||||||
|
def listButtonSelect(self, type, item):
|
||||||
|
self.collectibles[type][item]['value'] = self.collectibles[type][item]['value'] + 1
|
||||||
|
try:
|
||||||
|
self.button_dict[type][item].setText(self.collectibles[type]['meta']['list'][self.collectibles[type][item]['value']])
|
||||||
|
except:
|
||||||
|
self.collectibles[type][item]['value'] = 0
|
||||||
|
self.button_dict[type][item].setText(self.collectibles[type]['meta']['list'][self.collectibles[type][item]['value']])
|
||||||
|
|
||||||
|
# show the window
|
||||||
|
self.show()
|
||||||
|
|
367
data/collectibles.py
Executable file
367
data/collectibles.py
Executable file
@@ -0,0 +1,367 @@
|
|||||||
|
|
||||||
|
collectibles = {
|
||||||
|
'kongs': {
|
||||||
|
'meta': {
|
||||||
|
'orient': 'vertical',
|
||||||
|
'type': 'bool',
|
||||||
|
},
|
||||||
|
'donkey': {
|
||||||
|
'name': 'Donkey',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'diddy': {
|
||||||
|
'name': 'Diddy',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'lanky': {
|
||||||
|
'name': 'Lanky',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'tiny': {
|
||||||
|
'name': 'Tiny',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'chunky': {
|
||||||
|
'name': 'Chunky',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'guns': {
|
||||||
|
'meta': {
|
||||||
|
'orient': 'vertical',
|
||||||
|
'type': 'bool',
|
||||||
|
},
|
||||||
|
'coconut-gun': {
|
||||||
|
'name': 'Coconut Gun',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'peanut-popgun': {
|
||||||
|
'name': 'Peanut Popguns',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'grape-shooter': {
|
||||||
|
'name': 'Grape Shooter',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'feather-bow': {
|
||||||
|
'name': 'Feather Bow',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'pineapple-launcher': {
|
||||||
|
'name': 'Pineapple Launcher',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'instruments': {
|
||||||
|
'meta': {
|
||||||
|
'orient': 'vertical',
|
||||||
|
'type': 'bool',
|
||||||
|
},
|
||||||
|
'bongos': {
|
||||||
|
'name': 'Bongos',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'guitar': {
|
||||||
|
'name': 'Guitar',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'trombone': {
|
||||||
|
'name': 'Trombone',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'saxaphone': {
|
||||||
|
'name': 'Saxaphone',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'triangle': {
|
||||||
|
'name': 'Triangle',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'moves': {
|
||||||
|
'meta': {
|
||||||
|
'orient': 'vertical',
|
||||||
|
'type': 'bool',
|
||||||
|
},
|
||||||
|
'gorilla-grab': {
|
||||||
|
'name': 'Gorilla Grab',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'chimpy-charge': {
|
||||||
|
'name': 'Chimpy Charge',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'orangstand': {
|
||||||
|
'name': 'Orangstand',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'ponytail-twirl': {
|
||||||
|
'name': 'Ponytail Twirl',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'primate-punch': {
|
||||||
|
'name': 'Primate Punch',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'barrels': {
|
||||||
|
'meta': {
|
||||||
|
'orient': 'vertical',
|
||||||
|
'type': 'bool',
|
||||||
|
},
|
||||||
|
'strong-kong': {
|
||||||
|
'name': 'Strong Kong',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'rocketbarrel-boost': {
|
||||||
|
'name': 'Rocketbarrel Boost',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'orangstand-sprint': {
|
||||||
|
'name': 'Orangstand Sprint',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'mini-monkey': {
|
||||||
|
'name': 'Mini Monkey',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'hunky-chunky': {
|
||||||
|
'name': 'Hunky Chunky',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'pads': {
|
||||||
|
'meta': {
|
||||||
|
'orient': 'vertical',
|
||||||
|
'type': 'bool',
|
||||||
|
},
|
||||||
|
'baboon-blast': {
|
||||||
|
'name': 'Baboon Blast',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'simian-spring': {
|
||||||
|
'name': 'Simian Spring',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'baboon-balloon': {
|
||||||
|
'name': 'Baboon Balloon',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'monkeyport': {
|
||||||
|
'name': 'Monkeyport',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'gorilla-gone': {
|
||||||
|
'name': 'Gorilla Gone',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'shared_int': {
|
||||||
|
'meta': {
|
||||||
|
'orient': 'vertical',
|
||||||
|
'type': 'int',
|
||||||
|
},
|
||||||
|
'slam': {
|
||||||
|
'name': 'Slam',
|
||||||
|
'value': 1,
|
||||||
|
},
|
||||||
|
'ammo-belt': {
|
||||||
|
'name': 'Ammo Belt',
|
||||||
|
'value': 1,
|
||||||
|
},
|
||||||
|
'instrument-upgrade': {
|
||||||
|
'name': 'Instrument Upgrade',
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'pearl': {
|
||||||
|
'name': 'Pearl',
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'shared_bool': {
|
||||||
|
'meta': {
|
||||||
|
'orient': 'vertical',
|
||||||
|
'type': 'bool',
|
||||||
|
},
|
||||||
|
'camera': {
|
||||||
|
'name': 'Camera',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'shockwave': {
|
||||||
|
'name': 'Shockwave',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'sniper-scope': {
|
||||||
|
'name': 'Sniper Scope',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'homing-ammo': {
|
||||||
|
'name': 'Homing Ammo',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'bean': {
|
||||||
|
'name': 'Bean',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'level_costs': {
|
||||||
|
'meta': {
|
||||||
|
'orient': 'horizontal',
|
||||||
|
'type': 'int',
|
||||||
|
},
|
||||||
|
'jungle-japes': {
|
||||||
|
'name': 'Jungle Japes',
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'angry-aztec': {
|
||||||
|
'name': 'Angry Aztec',
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'frantic-factory': {
|
||||||
|
'name': 'Frantic Factory',
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'gloomy-galleon': {
|
||||||
|
'name': 'Gloomy Galleon',
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'fungi-forest': {
|
||||||
|
'name': 'Fungi Forest',
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'crystal-caves': {
|
||||||
|
'name': 'Crystal Caves',
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'creepy-castle': {
|
||||||
|
'name': 'Creepy Castle',
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'hideout-helm': {
|
||||||
|
'name': 'Hideout Helm',
|
||||||
|
'value': 60,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'level_order': {
|
||||||
|
'meta': {
|
||||||
|
'orient': 'horizontal',
|
||||||
|
'type': 'list',
|
||||||
|
'list': [
|
||||||
|
'Jungle Japes',
|
||||||
|
'Angry Aztec',
|
||||||
|
'Frantic Factory',
|
||||||
|
'Gloomy Galleon',
|
||||||
|
'Fungi Forest',
|
||||||
|
'Crystal Caves',
|
||||||
|
'Creepy Castle',
|
||||||
|
'Hideout Helm',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
'jungle-japes': {
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'angry-aztec': {
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'frantic-factory': {
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'gloomy-galleon': {
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'fungi-forest': {
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'crystal-caves': {
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'creepy-castle': {
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'hideout-helm': {
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'keys': {
|
||||||
|
'meta': {
|
||||||
|
'orient': 'horizontal',
|
||||||
|
'type': 'bool',
|
||||||
|
},
|
||||||
|
'key-1': {
|
||||||
|
'name': 'Key 1',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'key-2': {
|
||||||
|
'name': 'Key 2',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'key-3': {
|
||||||
|
'name': 'Key 3',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'key-4': {
|
||||||
|
'name': 'Key 4',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'key-5': {
|
||||||
|
'name': 'Key 5',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'key-6': {
|
||||||
|
'name': 'Key 6',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'key-7': {
|
||||||
|
'name': 'Key 7',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'key-8': {
|
||||||
|
'name': 'Key 8',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'collectibles': {
|
||||||
|
'meta': {
|
||||||
|
'orient': 'vertical',
|
||||||
|
'type': 'int',
|
||||||
|
},
|
||||||
|
'golden-banana': {
|
||||||
|
'name': 'Golden Banana',
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'banana-fairy': {
|
||||||
|
'name': 'Banana Fairy',
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'banana-medal': {
|
||||||
|
'name': 'Banana Medal',
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
'battle-crown': {
|
||||||
|
'name': 'Battle Crown',
|
||||||
|
'value': 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'shopkeepers': {
|
||||||
|
'meta': {
|
||||||
|
'orient': 'vertical',
|
||||||
|
'type': 'bool',
|
||||||
|
},
|
||||||
|
'cranky': {
|
||||||
|
'name': 'Cranky',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'funky': {
|
||||||
|
'name': 'Funky',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'candy': {
|
||||||
|
'name': 'Candy',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
'snide': {
|
||||||
|
'name': 'Snide',
|
||||||
|
'value': False,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
Reference in New Issue
Block a user