Show
Ignore:
Timestamp:
05/22/2012 01:00:56 PM (2 years ago)
Author:
andefodahl
Message:

Panel change fully implemented in a correct manner

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • traintris/gameboardview.py

    r185 r186  
    524524            self.screen.blit(self.font2.render("Range: "+ s3, 1, 
    525525                                               (0,0,0)), (2, 85)) 
     526                         
     527    def panelClick(self, xcoord, ycoord): 
     528        print "panel type: " + str(self.panelType) 
     529        # Set some defaults according to the characteristics of parts of the food web 
     530        if self.panelType == "herbPanel1": 
     531            offset = 6 
     532            max = 8 
     533            animalList = self.panelList.herbivoreList 
     534        elif self.panelType == "carnivore": 
     535            offset = 14 
     536            max = 8 
     537            animalList = self.panelList.carnivoreList 
     538        #Special processing when the panel is set to humans/omnivores 
     539        elif self.panelType == "omnivore": 
     540            if event.y > 0 and event.y < 58: 
     541                 if event.type == "plants": 
     542                     ev = CharacterSelectRequest("Human", 22) # human 
     543                     self.evManager.Post(ev)     
     544                 if event.x >= 745 or event.type == "omnivore": 
     545                     self.panelType = "mainPanel" 
     546                     self.objectTileSet = makeObjectTileSet(self.panelType) 
     547                     self.draw() 
     548                     self.panelDraw() 
     549                     pygame.display.update() 
     550            elif event.y >= 58 and event.y < 74: 
     551                     self.moreInfoPanel(self.panelType, (event.x-105)/80, 0) 
     552        else: 
     553            offset = 0 
     554            max = 6 
     555            animalList = self.panelList.plantList 
     556                      
     557         
     558        # Process any mouse input to the panels and call the appropriate event 
     559        if ycoord > 0 and ycoord < 58: 
     560            x = (xcoord - 105) / 80 
     561            print "x: " + str(x) 
     562            print "max: " + str(max) 
     563            print "offset " + str(offset) 
     564            #Back to main panel 
     565            if x == 8: 
     566                self.panelType = "mainPanel" 
     567                self.objectTileSet = makeObjectTileSet(self.panelType) 
     568                self.draw() 
     569                self.panelDraw() 
     570                pygame.display.update() 
     571            elif x >= 0 and x < max: 
     572                print "here" 
     573                ev = CharacterSelectRequest( animalList[x], offset + x) 
     574                self.evManager.Post(ev) 
     575            #more info                            
     576        elif ycoord >= 58 and ycoord < 74: 
     577            self.moreInfoPanel(self.panelType, (xcoord-105)/80, 0) 
     578        pygame.display.update() 
    526579 
    527580 
     
    605658                    self.draw() 
    606659                    self.panelDraw() 
    607  
    608             elif self.panelType == "carnivore":                 
    609                 if event.y > 0 and event.y < 58: 
    610                     #Back to main panel 
    611                     if x == 9: 
    612                         self.panelType = "mainPanel" 
    613                         self.objectTileSet = makeObjectTileSet(self.panelType) 
    614                         self.draw() 
    615                         self.panelDraw() 
    616                         pygame.display.update() 
    617                     else: 
    618                         x = (event.x - 105) / 80 
    619                         ev = CharacterSelectRequest( self.panelList.carnivoreList[x-1], 13 + x) 
    620                         self.evManager.Post(ev) 
    621                     #more info                            
    622                 elif event.y >= 58 and event.y < 74: 
    623                     self.moreInfoPanel(self.panelType, (event.x-105)/80, 0)                                              
    624  
    625             elif self.panelType == "plants": 
    626                 if event.y > 0 and event.y < 58: 
    627                     #Back to main panel 
    628                     if x == 9: 
    629                         self.panelType = "mainPanel" 
    630                         self.objectTileSet = makeObjectTileSet(self.panelType) 
    631                         self.draw() 
    632                         self.panelDraw() 
    633                         pygame.display.update() 
    634                     else: 
    635                         x = (event.x - 105) / 80 
    636                         ev = CharacterSelectRequest( self.panelList.plantList[x-1], x-1) 
    637                         self.evManager.Post(ev) 
    638                     #more info                            
    639                 elif event.y >= 58 and event.y < 74: 
    640                     self.moreInfoPanel(self.panelType, (event.x-105)/80, 0)                                              
    641  
    642             elif self.panelType == "herbPanel1": 
    643                 if event.y > 0 and event.y < 58: 
    644                     #Back to main panel 
    645                     if x == 9: 
    646                         self.panelType = "mainPanel" 
    647                         self.objectTileSet = makeObjectTileSet(self.panelType) 
    648                         self.draw() 
    649                         self.panelDraw() 
    650                         pygame.display.update() 
    651                     else: 
    652                         x = (event.x - 105) / 80 
    653                         ev = CharacterSelectRequest( self.panelList.herbivoreList[x-1], 5 + x) 
    654                         self.evManager.Post(ev) 
    655                     #more info                            
    656                 elif event.y >= 58 and event.y < 74: 
    657                     self.moreInfoPanel(self.panelType, (event.x-105)/80, 0)                                              
    658        
    659             elif self.panelType == "omnivore": 
    660                 if event.y > 0 and event.y < 58: 
    661                      if event.type == "plants": 
    662                          ev = CharacterSelectRequest("Human", 22) # human 
    663                          self.evManager.Post(ev)     
    664                      if event.x >= 745 or event.type == "omnivore": 
    665                          self.panelType = "mainPanel" 
    666                          self.objectTileSet = makeObjectTileSet(self.panelType) 
    667                          self.draw() 
    668                          self.panelDraw() 
    669                          pygame.display.update() 
    670                 elif event.y >= 58 and event.y < 74: 
    671                          self.moreInfoPanel(self.panelType, (event.x-105)/80, 0) 
    672             pygame.display.update() 
     660            # Handle any mouse clicks on the panel 
     661            self.panelClick(event.x, event.y)