# -*- coding: utf-8 -*- import pygame import api.Image as Image from api.Game import CGame from api.GameState import CGameState from api.Button import CButton from api.Sprite import CSprite from api.MultiLabel import CMultiLabel from api.Points import CPoints import HallState from gettext import gettext as _ from assets.data import area2game2_data class CArea2Game2(CGameState): def __init__(self): CGameState.__init__(self) self.time = 0 self.mWheelList = [] self.mWheelUsed = [] self.mCurrentWheel = 0 self.mCurrentState = 0 self.mMaxWheels = 8 self.mBad = 0 self.mGood = 0 self.mQuestionShowed = False self.mQuestionAnswered = False self.mBackground = None self.mButtonBackA2G2 = None self.mBackground = Image.loadImage('assets/images/a2g2/a2game2.png', False) CGame().setBackground(self.mBackground) self.list_questions = [] for i in area2game2_data.ITEMS.keys(): t = area2game2_data.ITEMS[i] q = (unicode(t[0], 'UTF-8'), t[1]) self.list_questions.append(q) 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) self.mWheel = CSprite() self.mWheel.loadImage('assets/images/a2g2/rueda.png', False) self.mWheel.setXY(407, 50) CGame().addChild(self.mWheel) for i in range(8): w = CSprite() w.loadImage('assets/images/a2g2/rueda%s.png' % str(i), True) w.setXY(407, 50) self.mWheelList.append(w) self.mWheelUsed.append(w) CGame().addChild(self.mWheelList[0]) self.mButtonStop = CButton() self.mButtonStop.set_bgColor((0x99, 0x99, 0x66)) self.mButtonStop.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonStop.set_center((120, 40)) self.mButtonStop.set_size((200, 40)) self.mButtonStop.set_text(_('Stop')) CGame().addChild(self.mButtonStop) self.mLabelQuestion = CMultiLabel() #self.mLabelQuestion.set_bgColor((0x99, 0x50, 0x99)) #self.mLabelQuestion.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 13) self.mLabelQuestion.set_center((600, 500)) self.mLabelQuestion.set_size((600, 90)) self.mButtonTrue = CButton() self.mButtonTrue.set_bgColor((0x99, 0x99, 0x66)) self.mButtonTrue.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonTrue.set_center((460, 600)) self.mButtonTrue.set_size((200, 40)) self.mButtonTrue.set_text(_('Si')) self.mButtonFalse = CButton() self.mButtonFalse.set_bgColor((0x99, 0x99, 0x66)) self.mButtonFalse.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonFalse.set_center((740, 600)) self.mButtonFalse.set_size((200, 40)) self.mButtonFalse.set_text(_('No')) self.mPoints = CPoints() self.mPoints.setXY(200, 10) CGame().addChild(self.mPoints) self.flag = False def update(self): 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(): hs = HallState.CHallState() CGame().setState(hs) return if self.mCurrentState == 0: self.time = self.time + 1 if self.time > 5: self.time = 0 if not self.flag: CGame().removeChild(self.mWheelList[self.mCurrentWheel]) else: self.flag = False self.mCurrentWheel = self.mCurrentWheel + 1 if self.mCurrentWheel > self.mMaxWheels - 1: self.mCurrentWheel = 0 if len(self.mWheelList) > 0: CGame().addChild(self.mWheelList[self.mCurrentWheel]) if self.mMaxWheels == 1: self.mCurrentState = 1 elif self.mMaxWheels == 0: self.mCurrentState = 3 elif self.mButtonStop.clicked(): self.mCurrentState = 1 elif self.mCurrentState == 1: if self.mQuestionShowed == False: self.mTupleQuestion = self.list_questions[self.mCurrentWheel] self.mLabelQuestion.set_text(self.mTupleQuestion[0]) CGame().addChild(self.mLabelQuestion) CGame().addChild(self.mButtonTrue) CGame().addChild(self.mButtonFalse) CGame().removeChild(self.mButtonStop) self.mQuestionShowed = True elif (self.mQuestionAnswered == False): if self.mButtonTrue.clicked(): CGame().removeChild(self.mLabelQuestion) CGame().removeChild(self.mButtonTrue) CGame().removeChild(self.mButtonFalse) if self.mTupleQuestion[1] == True: self.mGood = self.mGood + 1 self.mPoints.set_goods(self.mGood) else: self.mBad = self.mBad + 1 self.mPoints.set_bads(self.mBad) self.mQuestionAnswered = True self.time = 0 elif self.mButtonFalse.clicked(): CGame().removeChild(self.mLabelQuestion) CGame().removeChild(self.mButtonTrue) CGame().removeChild(self.mButtonFalse) if self.mTupleQuestion[1] == False: self.mGood = self.mGood + 1 self.mPoints.set_goods(self.mGood) else: self.mBad = self.mBad + 1 self.mPoints.set_bads(self.mBad) self.mQuestionAnswered = True self.time = 0 elif self.mQuestionAnswered == True: #if self.time > 10: self.mWheelList.remove(self.mWheelList[self.mCurrentWheel]) self.mMaxWheels = self.mMaxWheels - 1 self.flag = True if self.mMaxWheels > 0: CGame().addChild(self.mButtonStop) self.mQuestionShowed = False self.time = 0 self.mCurrentState = 0 self.mQuestionAnswered = False elif self.mCurrentState == 3: pass def destroy(self): CGameState.destroy(self) CGame().removeChild(self.mButtonBack) CGame().removeChild(self.mButtonStop) for i in range(8): CGame().removeChild(self.mWheelUsed[i]) self.mWheelUsed[i] = None CGame().removeChild(self.mWheel) CGame().removeChild(self.mPoints) CGame().removeChild(self.mLabelQuestion) CGame().removeChild(self.mButtonTrue) CGame().removeChild(self.mButtonFalse) self.mButtonBackA2G2 = None self.mBackground = None self.mPoints = None self.mButtonTrue = None self.mButtonFalse = None