Changeset 186


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

Panel change fully implemented in a correct manner

File:
1 edited

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)                                           
Note: See TracChangeset for help on using the changeset viewer.