PinmikPanik/gamedata/objects/menu/optionmenu.py

39 lines
1.7 KiB
Python

import gamedata.objects.menu.menu as menu
import math
class OptionMenu(menu.Menu):
def __init__(self,x,y,game,w=100,h=100):
super().__init__(x,y,game,w,h) # initialise l'objet de base avec les bons arguments
# Les dicos des boutons
def fnRetour(self,game):
game.lib.savesettings(game.datadir,bgm=game.globals["bgmvolume"],sfx=game.globals["sfxvolume"],filename=game.settingsname)
game.scene = game.scenes.main
btnRetour= {"name":"Back","function": fnRetour}
# Initialisation de la grille du menu
self.grid = [
[btnRetour]
]
self.create(self.grid,self.rect)
self.depth = -1
# Getting the number of unlocks ( minus 1 because the base skin isn't really an "unlock" )
unlocks = game.lib.getunlocks(game.globals["highscore"])
currentunlocks = len(unlocks["normal"]+unlocks["specials"])-1
unlocks = game.lib.getunlocks(math.inf)
totalunlocks= len(unlocks["normal"]+unlocks["specials"])-1
text = f"Highscore : {self.game.globals['highscore']} Unlocks : {currentunlocks}/{totalunlocks}"
self.highscore = self.game.fontfile.render(text,False,[255,230,50])
self.highscoreblack= self.game.fontfile.render(text,False,[0,0,0])
def draw(self):
margin = 2
for x in range(-margin,margin+1):
for y in range(-margin,margin+1):
self.game.lib.drawcenter(self.game,self.highscoreblack,self.game.DISPLAY_WIDTH/2+x,self.game.DISPLAY_HEIGHT*0.85+y)
self.game.lib.drawcenter(self.game,self.highscore,self.game.DISPLAY_WIDTH/2,self.game.DISPLAY_HEIGHT*0.85)
self.game.window.blit(self.game.sprite_lib["gui/optionsbg.png"],[0,0])