# -*- coding: utf-8 -*- import pygame from api.GameState import CGameState from api.Label import CLabel from api.Game import CGame from api.Sprite2 import CSprite from api.Globe import Globe from api.Button import CButton from api.PartidasMan import Partida from api.Mouse import CMouse import api.Math as CMath from SelectCharacterState import CSelectCharacterState from SelectAreaState import CSelectAreaState import MenuState import api.Image as Image from gettext import gettext as _ OVER_COLOR = (255, 0, 0) NORMAL_COLOR = (255, 125, 50) class CSelectPartidaState(CGameState): def init(self): CGameState.__init__(self) self.mBackground = Image.loadImage('assets/images/selectArea/background.jpg', False) CGame().setBackground(self.mBackground) self.PARTIDA1_RECT = [(114, 254), (385, 625)] self.PARTIDA2_RECT = [(464, 254), (735, 625)] self.PARTIDA3_RECT = [(815, 254), (1086, 625)] self.mOverEnabled = True self.mToDel = None self.mFlag = 60 self.misEmptyP1 = True self.misEmptyP2 = True self.misEmptyP3 = True self.mP1_Stars = [] self.mP2_Stars = [] self.mP3_Stars = [] self.mBsetted = False self.mNsetted = True self.mBackImageN = Image.loadImage('assets/images/back.png') self.mBackImageB = Image.loadImage('assets/images/back_big.png') self.mButtonBack = CSprite() self.mButtonBack.setRegistrationPointOffset(22, 22) self.mButtonBack.setXY(1170, 30) self.mButtonBack.setImage(self.mBackImageN) CGame().addChild(self.mButtonBack) delete = Image.loadImage('assets/images/selectPartida/delete.png') self.mDeletePartida1 = CSprite() self.mDeletePartida1.setXY(350, 240) self.mDeletePartida1.setImage(delete) self.mDeletePartida2 = CSprite() self.mDeletePartida2.setXY(700, 240) self.mDeletePartida2.setImage(delete) self.mDeletePartida3 = CSprite() self.mDeletePartida3.setXY(1050, 240) self.mDeletePartida3.setImage(delete) recuadro = Image.loadImage('assets/images/selectPartida/recuadro.png') self.mPartida1 = CSprite() self.mPartida1.setXY(114, 254) self.mPartida1.setImage(recuadro) CGame().addChild(self.mPartida1) border = Image.loadImage('assets/images/selectPartida/recuadro-interno2.png') self.mBorderPartida1 = CSprite() self.mBorderPartida1.setXY(100, 240) self.mBorderPartida1.setImage(border) self.mPartida2 = CSprite() self.mPartida2.setXY(464, 254) self.mPartida2.setImage(recuadro) CGame().addChild(self.mPartida2) self.mBorderPartida2 = CSprite() self.mBorderPartida2.setXY(450, 240) self.mBorderPartida2.setImage(border) self.mPartida3 = CSprite() self.mPartida3.setXY(815, 254) self.mPartida3.setImage(recuadro) CGame().addChild(self.mPartida3) self.mBorderPartida3 = CSprite() self.mBorderPartida3.setXY(800, 240) self.mBorderPartida3.setImage(border) mes = _('Selecciona una partida') self.mMessage = CLabel() self.mMessage.bgColor = NORMAL_COLOR self.mMessage.fgColor = (0xFF, 0xFF, 0xFF) self.mMessage.set_font('DejaVuSans.ttf', 28) self.mMessage.set_center((600, 150)) self.mMessage.set_size((400, 40)) self.mMessage.set_text(unicode(mes, 'UTF-8')) CGame().addChild(self.mMessage) mes = unicode(_('Partida %s'), 'UTF-8') self.mLabel1 = CLabel() #self.mLabel1.bgColor = (255, 125, 50) self.mLabel1.bgColor = (218, 224, 152) self.mLabel1.fgColor = (0xFF, 0xFF, 0xFF) self.mLabel1.set_font('DejaVuSans.ttf', 28) self.mLabel1.set_center((250, 300)) self.mLabel1.set_size((150, 40)) self.mLabel1.set_text(mes % 1) #CGame().addChild(self.mLabel1) self.mLabel2 = CLabel() self.mLabel2.bgColor = (218, 224, 152) self.mLabel2.fgColor = (0xFF, 0xFF, 0xFF) self.mLabel2.set_font('DejaVuSans.ttf', 28) self.mLabel2.set_center((600, 300)) self.mLabel2.set_size((150, 40)) self.mLabel2.set_text(mes % 2) #CGame().addChild(self.mLabel2) self.mLabel3 = CLabel() self.mLabel3.bgColor = (218, 224, 152) self.mLabel3.fgColor = (0xFF, 0xFF, 0xFF) self.mLabel3.set_font('DejaVuSans.ttf', 28) self.mLabel3.set_center((950, 300)) self.mLabel3.set_size((150, 40)) self.mLabel3.set_text(mes % 3) #CGame().addChild(self.mLabel3) juan = Image.loadImage('assets/images/selectPartida/T-juan.png') elisa = Image.loadImage('assets/images/selectPartida/T-elisa.png') star1 = Image.loadImage('assets/images/hall/star1.png') star2 = Image.loadImage('assets/images/hall/star2.png') mes = unicode(_('Partida vacía'), 'UTF-8') self.mEmpty1 = CLabel() self.mEmpty1.bgColor = (218, 224, 152) self.mEmpty1.fgColor = (0xFF, 0xFF, 0xFF) self.mEmpty1.set_font('DejaVuSans.ttf', 28) self.mEmpty1.set_center((250, 450)) self.mEmpty1.set_size((200, 40)) self.mEmpty1.set_text(mes) #CGame().addChild(self.mEmpty1) self.mEmpty2 = CLabel() self.mEmpty2.bgColor = (218, 224, 152) self.mEmpty2.fgColor = (0xFF, 0xFF, 0xFF) self.mEmpty2.set_font('DejaVuSans.ttf', 28) self.mEmpty2.set_center((600, 450)) self.mEmpty2.set_size((200, 40)) self.mEmpty2.set_text(mes) #CGame().addChild(self.mEmpty2) self.mEmpty3 = CLabel() self.mEmpty3.bgColor = (218, 224, 152) self.mEmpty3.fgColor = (0xFF, 0xFF, 0xFF) self.mEmpty3.set_font('DejaVuSans.ttf', 28) self.mEmpty3.set_center((950, 450)) self.mEmpty3.set_size((200, 40)) self.mEmpty3.set_text(mes) #CGame().addChild(self.mEmpty3) self.mChar1 = CSprite() self.mChar1.setXY(200, 310) self.mChar2 = CSprite() self.mChar2.setXY(550, 310) self.mChar3 = CSprite() self.mChar3.setXY(900, 310) ########################################################## par = CGame().getPartida(1) if (par == None) or par.isEmpty(): CGame().addChild(self.mEmpty1) else: self.misEmptyP1 = False CGame().addChild(self.mLabel1) CGame().addChild(self.mDeletePartida1, 1) if par.getCharacter() == 'Juan': self.mChar1.setImage(juan) else: self.mChar1.setImage(elisa) CGame().addChild(self.mChar1) #gets the area 1 levels a1 = par.getArea(1) for i in range(6): s = CSprite() if a1[i] == 0: s.setImage(star1) else: s.setImage(star2) s.setXY(150 + 30 * i, 510) self.mP1_Stars.append(s) CGame().addChild(s) #gets the area 2 levels a2 = par.getArea(2) for i in range(6): s = CSprite() if a2[i] == 0: s.setImage(star1) else: s.setImage(star2) s.setXY(150 + 30 * i, 540) self.mP1_Stars.append(s) CGame().addChild(s) #gets the area 3 levels a3 = par.getArea(3) for i in range(6): s = CSprite() if a3[i] == 0: s.setImage(star1) else: s.setImage(star2) s.setXY(150 + 30 * i, 570) self.mP1_Stars.append(s) CGame().addChild(s) ########################################################## par = CGame().getPartida(2) if (par == None) or par.isEmpty(): CGame().addChild(self.mEmpty2) else: self.misEmptyP2 = False CGame().addChild(self.mLabel2) CGame().addChild(self.mDeletePartida2, 1) if par.getCharacter() == 'Juan': self.mChar2.setImage(juan) else: self.mChar2.setImage(elisa) CGame().addChild(self.mChar2) #gets the area 1 levels a1 = par.getArea(1) for i in range(6): s = CSprite() if a1[i] == 0: s.setImage(star1) else: s.setImage(star2) s.setXY(500 + 30 * i, 510) self.mP2_Stars.append(s) CGame().addChild(s) #gets the area 2 levels a2 = par.getArea(2) for i in range(6): s = CSprite() if a2[i] == 0: s.setImage(star1) else: s.setImage(star2) s.setXY(500 + 30 * i, 540) self.mP2_Stars.append(s) CGame().addChild(s) #gets the area 3 levels a3 = par.getArea(3) for i in range(6): s = CSprite() if a3[i] == 0: s.setImage(star1) else: s.setImage(star2) s.setXY(500 + 30 * i, 570) self.mP2_Stars.append(s) CGame().addChild(s) ########################################################## par = CGame().getPartida(3) if (par == None) or par.isEmpty(): CGame().addChild(self.mEmpty3) else: self.misEmptyP3 = False CGame().addChild(self.mLabel3) CGame().addChild(self.mDeletePartida3, 1) if par.getCharacter() == 'Juan': self.mChar3.setImage(juan) else: self.mChar3.setImage(elisa) CGame().addChild(self.mChar3) #gets the area 1 levels a1 = par.getArea(1) for i in range(6): s = CSprite() if a1[i] == 0: s.setImage(star1) else: s.setImage(star2) s.setXY(850 + 30 * i, 510) self.mP3_Stars.append(s) CGame().addChild(s) #gets the area 2 levels a2 = par.getArea(2) for i in range(6): s = CSprite() if a2[i] == 0: s.setImage(star1) else: s.setImage(star2) s.setXY(850 + 30 * i, 540) self.mP3_Stars.append(s) CGame().addChild(s) #gets the area 3 levels a3 = par.getArea(3) for i in range(6): s = CSprite() if a3[i] == 0: s.setImage(star1) else: s.setImage(star2) s.setXY(850 + 30 * i, 570) self.mP3_Stars.append(s) CGame().addChild(s) alphasurface = pygame.Surface((1200,900)) alphasurface.convert() alphasurface.fill((100,100,100)) alphasurface.set_alpha(200) self.mAlpha = CSprite() self.mAlpha.setXY(0, 0) self.mAlpha.setImage(alphasurface) msg = _('¿Estás seguro que deseas\neliminar la partida?') self.mDialog = Globe((350, 130), text=unicode(msg, 'UTF-8'), pico=None) self.mDialog.set_center((600, 300)) self.mButtonTrue = CButton() self.mButtonTrue.set_bgColor(NORMAL_COLOR) self.mButtonTrue.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 28) self.mButtonTrue.set_center((460, 400)) self.mButtonTrue.set_size((200, 40)) self.mButtonTrue.set_text(_('Aceptar')) self.mButtonFalse = CButton() self.mButtonFalse.set_bgColor(NORMAL_COLOR) self.mButtonFalse.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 28) self.mButtonFalse.set_center((740, 400)) self.mButtonFalse.set_size((200, 40)) self.mButtonFalse.set_text(_('Cancelar')) def addDialog(self): CGame().addChild(self.mAlpha, 1) self.mOverEnabled = False CGame().addChild(self.mDialog, 2) CGame().addChild(self.mButtonTrue, 2) CGame().addChild(self.mButtonFalse, 2) def update(self): #print "menu update" CGameState.update(self) if self.mButtonBack.mouseOver(): if not(self.mBsetted): self.mBsetted = True self.mNsetted = False self.mButtonBack.setRegistrationPointOffset(27, 27) self.mButtonBack.setImage(self.mBackImageB) else: if not(self.mNsetted): self.mBsetted = False self.mNSetted = True self.mButtonBack.setRegistrationPointOffset(22, 22) self.mButtonBack.setImage(self.mBackImageN) if self.mButtonBack.clicked(): ms = MenuState.CMenuState() CGame().setState(ms) return if self.mDeletePartida1.clicked(): self.mToDel = 1 self.addDialog() return if self.mDeletePartida2.clicked(): self.mToDel = 2 self.addDialog() return if self.mDeletePartida3.clicked(): self.mToDel = 3 self.addDialog() return if self.mOverEnabled: self.mFlag = self.mFlag - 1 if self.mFlag < 0: self.mFlag = 0 if self.mFlag == 0: if self.mPartida1.clicked(): #print "partida 1" if self.misEmptyP1: ch = CSelectCharacterState() else: ch = CSelectAreaState() CGame().setState(ch) CGame().setCurrentPartida(1) #ch.setPartida(1) return elif self.mPartida2.clicked(): #print "partida 2" if self.misEmptyP2: ch = CSelectCharacterState() else: ch = CSelectAreaState() CGame().setState(ch) CGame().setCurrentPartida(2) #ch.setPartida(2) return elif self.mPartida3.clicked(): #print "partida 3" if self.misEmptyP3: ch = CSelectCharacterState() else: ch = CSelectAreaState() CGame().setState(ch) CGame().setCurrentPartida(3) #ch.setPartida(3) return x = CMouse().getX() y = CMouse().getY() if (CMath.pointInsideRectangle(x,y,self.PARTIDA1_RECT)): CGame().addChild(self.mBorderPartida1) else: CGame().removeChild(self.mBorderPartida1) if (CMath.pointInsideRectangle(x,y,self.PARTIDA2_RECT)): CGame().addChild(self.mBorderPartida2) else: CGame().removeChild(self.mBorderPartida2) if (CMath.pointInsideRectangle(x,y,self.PARTIDA3_RECT)): CGame().addChild(self.mBorderPartida3) else: CGame().removeChild(self.mBorderPartida3) else: self.mFlag = self.mFlag + 1 if self.mButtonTrue.mouseOver(): self.mButtonTrue.set_bgColor(OVER_COLOR) else: self.mButtonTrue.set_bgColor(NORMAL_COLOR) if self.mButtonFalse.mouseOver(): self.mButtonFalse.set_bgColor(OVER_COLOR) else: self.mButtonFalse.set_bgColor(NORMAL_COLOR) if self.mButtonTrue.clicked(): CGame().removeChild(self.mAlpha) self.mOverEnabled = True CGame().removeChild(self.mDialog) CGame().removeChild(self.mButtonTrue) CGame().removeChild(self.mButtonFalse) self.mButtonTrue.set_bgColor(NORMAL_COLOR) p = Partida() CGame().setPartida(self.mToDel, p) if self.mToDel == 1: CGame().removeChild(self.mChar1) CGame().removeChild(self.mLabel1) CGame().removeChild(self.mDeletePartida1) self.misEmptyP1 = True for e in self.mP1_Stars: CGame().removeChild(e) CGame().addChild(self.mEmpty1) elif self.mToDel == 2: CGame().removeChild(self.mChar2) CGame().removeChild(self.mLabel2) CGame().removeChild(self.mDeletePartida2) self.misEmptyP2 = True for e in self.mP2_Stars: CGame().removeChild(e) CGame().addChild(self.mEmpty2) elif self.mToDel == 3: CGame().removeChild(self.mChar3) CGame().removeChild(self.mLabel3) CGame().removeChild(self.mDeletePartida3) self.misEmptyP3 = True for e in self.mP3_Stars: CGame().removeChild(e) CGame().addChild(self.mEmpty3) self.mFlag = 60 return if self.mButtonFalse.clicked(): CGame().removeChild(self.mAlpha) self.mOverEnabled = True CGame().removeChild(self.mDialog) CGame().removeChild(self.mButtonTrue) CGame().removeChild(self.mButtonFalse) self.mButtonFalse.set_bgColor(NORMAL_COLOR) self.mFlag = 40 return def destroy(self): CGameState.destroy(self) CGame().removeChild(self.mButtonBack ) self.mButtonBack = None CGame().removeChild(self.mMessage) self.mMessage = None CGame().removeChild(self.mPartida1) self.mPartida1 = None CGame().removeChild(self.mBorderPartida1) self.mBorderPartida1 = None CGame().removeChild(self.mLabel1) self.mLabel1 = None CGame().removeChild(self.mChar1) self.mChar1 = None CGame().removeChild(self.mEmpty1) CGame().removeChild(self.mPartida2) self.mPartida2 = None CGame().removeChild(self.mBorderPartida2) self.mBorderPartida2 = None CGame().removeChild(self.mLabel2) self.mLabel2 = None CGame().removeChild(self.mChar2) self.mChar2 = None CGame().removeChild(self.mEmpty2) CGame().removeChild(self.mPartida3) self.mPartida3 = None CGame().removeChild(self.mBorderPartida3) self.mBorderPartida3 = None CGame().removeChild(self.mLabel3) self.mLabel3 = None CGame().removeChild(self.mChar3) self.mChar3 = None CGame().removeChild(self.mEmpty3) for e in self.mP1_Stars: CGame().removeChild(e) for e in self.mP2_Stars: CGame().removeChild(e) for e in self.mP3_Stars: CGame().removeChild(e) CGame().removeChild(self.mDeletePartida1) CGame().removeChild(self.mDeletePartida2) CGame().removeChild(self.mDeletePartida3) self.mBackground = None