## @file highscore.py
#  @author Vaibhav Chadha
#  @brief implements the highscore interface
#  @date 11/09/2018
import pygame, sys, Interface

## @brief A Class that will contain useful functions in order for the creation of highscore page
class HighScore():
  
  ## @brief A method to display text
  #  @details This function will print the text on the interface
  #  @param text The text to be printed
  #  @param fontStyle The font Style of the text to be displayed
  #  @param fontSize The size of the text written
  #  @param color The color of the text
  #  @param coord The coordinate at which the text should start displaying
  #  @param surface The background (surface) the text should be printed on
  def text(text,fontStyle,fontSize,color,coord,surface):
    font = pygame.font.SysFont(fontStyle,fontSize)
    text = font.render(text,True,color)
    surface.blit(text,coord)

  ## @brief A method to create a button
  #  @details This method will make a box on the interface
  #  @param surface The background (surface) the box should be made on
  #  @param color The color of the button to be made
  #  @param Rect The coordinate of the button with the length and width
  #  @param width The width of the sides of button
  def button(Surface, color,Rect,width):
    pygame.draw.rect(Surface, color,Rect,width)

  ## @brief Finds the highest score from the file
  #  @details This writes the input from the file in an array and find the max number from it
  def findHighscore():
    infile = open("highscore.txt","r")
    mylist = []
    for line in infile:
      a = line.strip()
      mylist.append(a)
    return max(mylist)
## @brief Makes the highscore interface
#  @details This will output the final interface using the class above
#           which can be seen by executing this function.
def main():
    pygame.init()
    red = [255,0,0]
    while True:
      mousepos = pygame.mouse.get_pos() #checking mouse position
      mouseclick = pygame.mouse.get_pressed()#checking mouse pressed
      highscore = pygame.display.set_mode((300, 150))
      #highscore.fill([213, 219, 219])
      pygame.display.set_caption("Highscore")

      HighScore.text('Highest Score: ' + str(HighScore.findHighscore()),"comicsansms", 30,[0, 0, 200],(10,20),highscore)

      HighScore.button(highscore,[0,0,0], [90,70,120,26], 0)
      HighScore.text('Main Menu',"times", 25,red,(90,70),highscore)
      if (90 <= mousepos[0] <= 90+120 and 70 <= mousepos[1] <= 70+27 ):
          if mouseclick[0] == 1:
            Interface.main()            

      HighScore.button(highscore,[0,0,0], [125,105,45,27], 0)
      HighScore.text('Quit',"times", 25,red,(125,105),highscore)
      if (125 <= mousepos[0] <= 125+45 and 105 <= mousepos[1] <= 105+27 ):
            if mouseclick[0] == 1:
              pygame.quit()
              sys.exit()
              
      pygame.display.update()