Exemplo n.º 1
0
class Taishou(easy_pygame.GameObject):
    def __init__(self, screen, pos, chengchi, db):
        """ pos=屏幕位置 name=城池名称 db=DB数据"""
        easy_pygame.GameObject.__init__(self)

        self.screen = screen
        self.pos = pos
        self.db = db
        self.chengchi = chengchi
        self.size = (800, 560)
        self.taishou = self.db.info_chengchi[chengchi]['太守']
        self.sf = pygame.Surface(self.size)
        wj_list = db.shili[db.info_chengchi[chengchi]['势力']][chengchi]
        self.wjlist = WujiangList(self.sf, (250, 10),
                                  db.get_wujiang(wj_list),
                                  size=(550, 500),
                                  radio=True)
        self.wjlist.set_checked(self.taishou)
        self.img = self.db.info_wujiang[self.taishou]['大身像']
        self.info = easy_pygame.Label(self.sf, (10, 260),
                                      size=(240, 300),
                                      alpha=200,
                                      touch=True)
        self.update()

    def update(self):
        self.img = self.db.info_wujiang[self.taishou]['大身像']

        ts = self.db.info_wujiang[self.taishou]
        cc = self.db.info_chengchi[self.chengchi]
        self.info.clear()
        self.info.set_font(('../wqy-zenhei.ttc', 18))
        self.info.add(self.chengchi, (255, 255, 0))
        self.info.add('太守:')
        self.info.add(self.taishou, (255, 255, 0))
        self.info.endl(3)

        zz = cc['农业资源'] * (ts['智力'] - 50) / 50.0
        zz = int(zz)
        zs = cc['农业资源'] + zz
        self.info.add('农业资源:' + str(zs))
        if zz >= 0:
            self.info.add(' (+' + str(zz) + ')', (255, 0, 0))
        else:
            self.info.add(' (' + str(zz) + ')', (255, 255, 0))
        self.info.endl(3)

        zz = cc['商业资源'] * (ts['智力'] - 50) / 50.0
        zz = int(zz)
        zs = cc['商业资源'] + zz
        self.info.add('商业资源:' + str(zs))
        if zz >= 0:
            self.info.add(' (+' + str(zz) + ')', (255, 0, 0))
        else:
            self.info.add(' (' + str(zz) + ')', (255, 255, 0))
        self.info.endl(3)

        self.info.add('城池防御: 15%')
        self.info.add('+' + str(ts['武力'] / 10) + '%', (255, 0, 0))
        self.info.endl(3)

    def Show(self):
        self.sf.blit(self.img, (10, 10))
        self.wjlist.Show()
        self.info.Show()
        self.screen.blit(self.sf, self.pos)

    def Event(self, event):

        if self.info.Event(event):
            return True
        if self.wjlist.Event(event):
            wj = self.wjlist.get_checked()
            if wj != self.taishou:
                self.taishou = wj
                self.update()
            return True