class Manager:

    ##Screen
    width, height = 950, 600
    size = width, height
    
    screen  = pygame.display.set_mode(size)
    pygame.display.set_caption("StepFight")        
    
    #InputManager
    inputManager = InputManager()
    character = Character()
    
    #Initial state
    state = StateItemsBoard(screen, inputManager, character)
     
    #Main Loop
    def _run(self):
        self.gameOn = True
        
        while self.gameOn:
            
            #Inputs
            self.inputManager.update()
            
            #Updates
            self._update()
                
            #Renders, put in the screen
            self._render()
            
            fpsClock.tick(30)
        
    
    #Update
    def _update(self):
        #state updates
        new_state = self.state._update()
        if (new_state == Consts.STATE_CONTINUE):
            return
        
        elif (new_state == Consts.STATE_ITEMS_BOARD):
            self.state.destroy()
            self.state = StateItemsBoard(self.screen,self.inputManager,self.character)
        
        elif (new_state == Consts.STATE_FIGHT):
            self.state.destroy()
            self.state = StateFight(self.screen,self.inputManager,self.character)
            
    #Render
    def _render(self):
        #state renders
        self.state._render()
        
        #updates the display
        pygame.display.update()
 def _update(self):
     #state updates
     new_state = self.state._update()
     if (new_state == Consts.STATE_CONTINUE):
         return
     
     elif (new_state == Consts.STATE_ITEMS_BOARD):
         self.state.destroy()
         self.state = StateItemsBoard(self.screen,self.inputManager,self.character)
     
     elif (new_state == Consts.STATE_FIGHT):
         self.state.destroy()
         self.state = StateFight(self.screen,self.inputManager,self.character)