def doResultDialog(self): self.startInteraction() curTrack, curLevel = GardenGlobals.getTreeTrackAndLevel(self.typeIndex) species = GardenGlobals.getTreeTypeIndex(curTrack, curLevel) treeName = GardenGlobals.PlantAttributes[species]['name'] stringToShow = TTLocalizer.getResultPlantedSomethingSentence(treeName) self.resultDialog = TTDialog.TTDialog(style=TTDialog.Acknowledge, text=stringToShow, command=self.resultsCallback)
def doResultDialog(self): self.startInteraction() flowerName = GardenGlobals.getFlowerVarietyName(self.species, self.variety) stringToShow = TTLocalizer.getResultPlantedSomethingSentence(flowerName) self.resultDialog = TTDialog.TTDialog( style=TTDialog.Acknowledge, text=stringToShow, command=self.resultsCallback )
def getCardName(value): if value == Unknown: return TTLocalizer.PlayingCardUnknown else: rank = value % MaxRank suit = value / MaxRank return TTLocalizer.getPlayingCardName(suit, rank)
def __showData(self): av = self.avatar online = 1 if base.cr.isFriend(self.avId): online = base.cr.isFriendOnline(self.avId) if online: shardName = base.cr.getShardName(av.defaultShard) hoodName = base.cr.hoodMgr.getFullnameFromId(av.lastHood) if ZoneUtil.isWelcomeValley(av.lastHood): shardName = '%s (%s)' % (TTLocalizer.WelcomeValley[-1], shardName) if self.playerInfo: guiButton = loader.loadModel('phase_3/models/gui/quit_button') self.gotoAvatarButton = DirectButton(parent=self, relief=None, image=(guiButton.find('**/QuitBtn_UP'), guiButton.find('**/QuitBtn_DN'), guiButton.find('**/QuitBtn_RLVR')), image_scale=1.1, text=TTLocalizer.AvatarShowPlayer, text_scale=0.07, text_pos=(0.0, -0.02), textMayChange=0, pos=(0.44, 0, 0.41), command=self.__showAvatar) text = TTLocalizer.AvatarDetailPanelOnlinePlayer % {'district': shardName, 'location': hoodName, 'player': self.playerInfo.playerName} else: text = TTLocalizer.AvatarDetailPanelOnline % {'district': shardName, 'location': hoodName} else: text = TTLocalizer.AvatarDetailPanelOffline % {'last_seen': TTLocalizer.getLastSeenString(self.avatar.getLastSeen())} self.dataText['text'] = text self.__updateTrackInfo() self.__updateTrophyInfo() self.__updateLaffInfo() return
def __handleFlowerPlantingDone(self, willPlant = 0, recipeStr = '', special = -1): self.ignore(self.plantingGuiDoneEvent) self.ignore('stoppedAsleep') self.plantingGui.destroy() self.plantingGui = None base.localAvatar.showGardeningGui() base.localAvatar.removeShovelRelatedDoId(self.doId) successPlanting = False if willPlant: recipeKey = GardenGlobals.getRecipeKey(recipeStr, special) if recipeKey >= 0: species, variety = GardenGlobals.getSpeciesVarietyGivenRecipe(recipeKey) if species >= 0 and variety >= 0: self.sendUpdate('plantFlower', [species, variety]) successPlanting = True else: self.notify.debug('%s %d is not a valid recipe' % (recipeStr, special)) burntBeans = len(recipeStr) self.sendUpdate('plantNothing', [burntBeans]) if successPlanting: flowerName = GardenGlobals.getFlowerVarietyName(species, variety) stringToShow = TTLocalizer.getResultPlantedSomethingSentence(flowerName) elif willPlant: self.resultDialog = TTDialog.TTDialog(style=TTDialog.Acknowledge, text=TTLocalizer.ResultPlantedNothing, command=self.popupFlowerPlantingGuiAgain) else: self.finishInteraction()
def __init__(self, doneEvent, petSeed, petNameIndex): zoneId = ZoneUtil.getCanonicalSafeZoneId(base.localAvatar.getZoneId()) name, dna, traitSeed = PetUtil.getPetInfoFromSeed(petSeed, zoneId) name = TTLocalizer.getPetName(petNameIndex) cost = PetUtil.getPetCostFromSeed(petSeed, zoneId) model = loader.loadModel('phase_4/models/gui/AdoptPet') modelPos = (0, 0, -0.3) modelScale = 0.055 DirectFrame.__init__(self, relief=None, state='normal', geom=model, geom_color=ToontownGlobals.GlobalDialogColor, geom_scale=modelScale, frameSize=(-1, 1, -1, 1), pos=modelPos, text=TTLocalizer.PetshopAdoptConfirm % (name, cost), text_wordwrap=12, text_scale=0.05, text_pos=(0, 0.55), text_fg=text0Color) self.initialiseoptions(PetshopGUI.AdoptPetDlg) self.petView = self.attachNewNode('petView') self.petView.setPos(-0.13, 0, 0.8) self.petModel = Pet.Pet(forGui=1) self.petModel.setDNA(dna) self.petModel.fitAndCenterHead(0.395, forGui=1) self.petModel.reparentTo(self.petView) self.petModel.setH(130) self.petModel.setScale(0.125) self.petModel.enterNeutralHappy() self.moneyDisplay = DirectLabel(parent=self, relief=None, text=str(base.localAvatar.getTotalMoney()), text_scale=0.075, text_fg=(0.95, 0.95, 0, 1), text_shadow=(0, 0, 0, 1), text_pos=(0.225, 0.33), text_font=ToontownGlobals.getSignFont()) self.accept(localAvatar.uniqueName('moneyChange'), self.__moneyChange) self.accept(localAvatar.uniqueName('bankMoneyChange'), self.__moneyChange) okImageList = (model.find('**/CheckButtonUp'), model.find('**/CheckButtonDown'), model.find('**/CheckButtonRollover')) cancelImageList = (model.find('**/CancelButtonUp'), model.find('**/CancelButtonDown'), model.find('**/CancelRollover')) cancelIcon = model.find('**/CancelIcon') checkIcon = model.find('**/CheckIcon') self.cancelButton = DirectButton(parent=self, relief=None, image=cancelImageList, geom=cancelIcon, scale=modelScale, text=('', TTLocalizer.PetshopGoBack), text_pos=(-5.8, 4.4), text_scale=0.7, pressEffect=False, command=lambda : messenger.send(doneEvent, [0])) self.okButton = DirectButton(parent=self, relief=None, image=okImageList, geom=checkIcon, scale=modelScale, text=('', TTLocalizer.PetshopAdopt), text_pos=(5.8, 4.4), text_scale=0.7, pressEffect=False, command=lambda : messenger.send(doneEvent, [1])) model.removeNode() return
def getPetInfoFromSeed(seed, safezoneId): S = random.getstate() random.seed(seed) dnaArray = PetDNA.getRandomPetDNA(safezoneId) gender = PetDNA.getGender(dnaArray) nameString = TTLocalizer.getRandomPetName(gender=gender, seed=seed) traitSeed = PythonUtil.randUint31() random.setstate(S) return (nameString, dnaArray, traitSeed)
def display(self, pTrackTitle = 'Track Title', pPeriodTitle = 'Period Title', pLeaderList = []): self.titleTextNode.setText(pPeriodTitle) self.trackNameNode.setText(pTrackTitle) self.updateCount += 1 for i in xrange(10): if i >= len(pLeaderList): self.nameTextNodes[i].setText('-') self.timeTextNodes[i].setText('-') else: self.nameTextNodes[i].setText(pLeaderList[i][0][:22]) self.timeTextNodes[i].setText(TTLocalizer.convertSecondsToDate(pLeaderList[i][1]))
def getPlantItWithString(special): retval = '' recipeKey = getRecipeKeyUsingSpecial(special) if not recipeKey == -1: beanTuple = [] beanStr = Recipes[recipeKey]['beans'] for letter in beanStr: index = BeanColorLetters.index(letter) beanTuple.append(index) beanText = TTLocalizer.getRecipeBeanText(beanTuple) retval += TTLocalizer.PlantItWith % beanText return retval
def __handleItemPlantingDone(self, willPlant=0, recipeStr='', selectedSpecial=-1): self.ignore(self.plantingGuiDoneEvent) self.ignore('stoppedAsleep') self.plantingGui.destroy() self.plantingGui = None base.localAvatar.showGardeningGui() base.localAvatar.removeShovelRelatedDoId(self.doId) gardenSpecials = base.localAvatar.getGardenSpecials() special = -1 if selectedSpecial >= 0: special = gardenSpecials[selectedSpecial][0] successPlanting = False successToonStatue = False if willPlant: recipeKey = GardenGlobals.getRecipeKey(recipeStr, special) if recipeKey >= 0: species, variety = GardenGlobals.getSpeciesVarietyGivenRecipe( recipeKey) if species >= 0 and variety >= 0: if GardenGlobals.PlantAttributes[species][ 'plantType'] == GardenGlobals.STATUARY_TYPE: successPlanting = True if species >= 205 and species <= 208: successToonStatue = True else: self.sendUpdate('plantStatuary', [species]) else: self.notify.debug('%s %d is not a valid recipe' % (recipeStr, special)) burntBeans = len(recipeStr) self.sendUpdate('plantNothing', [burntBeans]) if successPlanting: itemName = GardenGlobals.PlantAttributes[species]['name'] stringToShow = TTLocalizer.getResultPlantedSomethingSentence( itemName) elif willPlant: self.resultDialog = TTDialog.TTDialog( style=TTDialog.Acknowledge, text=TTLocalizer.ResultPlantedNothing, command=self.popupItemPlantingGuiAgain) else: self.finishInteraction() if successToonStatue: self.popupToonStatueSelectionGui(species) return
def __handleFlowerPlantingDone(self, willPlant=0, recipeStr="", special=-1): assert self.notify.debugStateCall(self) self.ignore(self.plantingGuiDoneEvent) self.ignore('stoppedAsleep') # Ask the AI to complete the sale #self.sendUpdate("completeFlowerSale", [sell]) self.plantingGui.destroy() self.plantingGui = None base.localAvatar.showGardeningGui() base.localAvatar.removeShovelRelatedDoId(self.doId) successPlanting = False if willPlant: recipeKey = GardenGlobals.getRecipeKey(recipeStr, special) if recipeKey >= 0: species, variety = GardenGlobals.getSpeciesVarietyGivenRecipe( recipeKey) if species >= 0 and variety >= 0: self.sendUpdate('plantFlower', [species, variety]) successPlanting = True else: self.notify.debug("%s %d is not a valid recipe" % (recipeStr, special)) burntBeans = len(recipeStr) self.sendUpdate('plantNothing', [burntBeans]) if successPlanting: flowerName = GardenGlobals.getFlowerVarietyName(species, variety) stringToShow = TTLocalizer.getResultPlantedSomethingSentence( flowerName) # the dialog will now come up after the planting movie # self.resultDialog = TTDialog.TTDialog( # style = TTDialog.Acknowledge, # text = stringToShow, # command = self.resultsCallback # ) elif willPlant: self.resultDialog = TTDialog.TTDialog( style=TTDialog.Acknowledge, text=TTLocalizer.ResultPlantedNothing, command=self.popupFlowerPlantingGuiAgain) else: #base.cr.playGame.getPlace().detectedGardenPlotDone() self.finishInteraction()
def updateInvitation(self, hostsName, partyInfo): self.partyInfo = partyInfo hostsName = TTLocalizer.GetPossesive(hostsName) if GMUtils.testGMIdentity(hostsName): hostsName = self.__handleGMName(hostsName) self.whosePartyLabel["text"] = TTLocalizer.PartyPlannerInvitationWhoseSentence % \ hostsName if self.partyInfo.isPrivate: publicPrivateText = TTLocalizer.PartyPlannerPrivate.lower() else: publicPrivateText = TTLocalizer.PartyPlannerPublic.lower() activities = self.getActivitiesFormattedCorrectly() if self.noFriends: self.activityTextLabel[ "text"] = TTLocalizer.PartyPlannerInvitationThemeWhatSentenceNoFriends % ( publicPrivateText, activities, ) else: self.activityTextLabel[ "text"] = TTLocalizer.PartyPlannerInvitationThemeWhatSentence % ( publicPrivateText, activities, ) if self.noFriends: self.whenTextLabel[ "text"] = TTLocalizer.PartyPlannerInvitationWhenSentenceNoFriends % ( PartyUtils.formatDate(self.partyInfo.startTime.year, self.partyInfo.startTime.month, self.partyInfo.startTime.day), PartyUtils.formatTime(self.partyInfo.startTime.hour, self.partyInfo.startTime.minute), ) else: self.whenTextLabel[ "text"] = TTLocalizer.PartyPlannerInvitationWhenSentence % ( PartyUtils.formatDate(self.partyInfo.startTime.year, self.partyInfo.startTime.month, self.partyInfo.startTime.day), PartyUtils.formatTime(self.partyInfo.startTime.hour, self.partyInfo.startTime.minute), ) self.changeTheme(partyInfo.inviteTheme)
def _DistributedHouse__setupNamePlateCustom(self): self.notify.debug('__setupNamePlateCustom') if self.namePlate: self.namePlate.removeNode() del self.namePlate self.namePlate = None nameText = TextNode('nameText') nameText.setCardAsMargin(0.10000000000000001, 0.10000000000000001, 0.10000000000000001, 0.10000000000000001) nameText.setCardDecal(True) nameText.setCardColor(1.0, 1.0, 1.0, 0.0) r = self.randomGenerator.random() g = self.randomGenerator.random() b = self.randomGenerator.random() nameText.setTextColor(r, g, b, 1) nameText.setAlign(nameText.ACenter) nameText.setFont(ToontownGlobals.getBuildingNametagFont()) nameText.setShadowColor(0, 0, 0, 1) nameText.setBin('fixed') if TTLocalizer.BuildingNametagShadow: nameText.setShadow(*TTLocalizer.BuildingNametagShadow) nameText.setWordwrap(16.0) xScale = 1.0 numLines = 0 if self.name == '': return None else: houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(self.name) nameText.setText(houseName) self.nameText = nameText textHeight = nameText.getHeight() - 2 textWidth = nameText.getWidth() xScale = 1.0 if textWidth > 16: xScale = 16.0 / textWidth sign_origin = self.house.find('**/sign_origin') pos = sign_origin.getPos() sign_origin.setPosHpr(pos[0], pos[1], pos[2] + 0.14999999999999999 * textHeight, 90, 0, 0) self.namePlate = sign_origin.attachNewNode(self.nameText) self.namePlate.setDepthWrite(0) self.namePlate.setPos(0, -0.050000000000000003, 0) self.namePlate.setScale(xScale) return nameText
def __setupNametag(self): if self.nametag: self.clearNametag() if self.name == '': houseName = '' else: houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(self.name) self.nametag = NametagGroup() self.nametag.setFont(ToontownGlobals.getBuildingNametagFont()) if TTLocalizer.BuildingNametagShadow: self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow) self.nametag.setContents(Nametag.CName) self.nametag.setColorCode(NametagGroup.CCToonBuilding) self.nametag.setActive(0) self.nametag.setAvatar(self.house) self.nametag.setObjectCode(self.doId) self.nametag.setName(houseName) self.nametag.manage(base.marginManager)
def _DistributedHouse__setupFloorMat(self, changeColor = True): if self.floorMat: self.floorMat.removeNode() del self.floorMat self.floorMat = None mat = self.house.find('**/mat') if changeColor: mat.setColor(0.40000000000000002, 0.35699999999999998, 0.25900000000000001, 1.0) color = HouseGlobals.houseColors[self.housePosInd] matText = TextNode('matText') matText.setTextColor(color[0], color[1], color[2], 1) matText.setAlign(matText.ACenter) matText.setFont(ToontownGlobals.getBuildingNametagFont()) matText.setShadowColor(0, 0, 0, 1) matText.setBin('fixed') if TTLocalizer.BuildingNametagShadow: matText.setShadow(*TTLocalizer.BuildingNametagShadow) matText.setWordwrap(10.0) xScale = 1.0 numLines = 0 if self.name == '': return None else: houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(self.name) matText.setText(houseName) self.matText = matText textHeight = matText.getHeight() - 2 textWidth = matText.getWidth() xScale = 1.0 if textWidth > 8: xScale = 8.0 / textWidth mat_origin = self.house.find('**/mat_origin') pos = mat_origin.getPos() mat_origin.setPosHpr(pos[0] - 0.14999999999999999 * textHeight, pos[1], pos[2], 90, -90, 0) self.floorMat = mat_origin.attachNewNode(self.matText) self.floorMat.setDepthWrite(0) self.floorMat.setPos(0, -0.025000000000000001, 0) self.floorMat.setScale(0.45000000000000001 * xScale)
def __setupNametag(self): if self.nametag: self.clearNametag() if self.name == '': houseName = '' else: houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(self.name) self.nametag = NametagGroup() self.nametag.setNametag3d(None) self.nametag.setFont(ToontownGlobals.getBuildingNametagFont()) if TTLocalizer.BuildingNametagShadow: self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow) self.nametag.hideChat() self.nametag.hideThought() nametagColor = NametagGlobals.NametagColors[NametagGlobals.CCToonBuilding] self.nametag.setNametagColor(nametagColor) self.nametag.setActive(False) self.nametag.setAvatar(self.house) self.nametag.setText(houseName) self.nametag.manage(base.marginManager) self.nametag.updateAll()
def generateAchievementInfo(self): acievementInfo = TTLocalizer.getAchievementInfo(self.achievementId) title = TextNode('title') title.setText(acievementInfo[0]) title.setFont(ToontownGlobals.getSignFont()) title.setTextColor(1, 1, 1, 1) title.setAlign(TextNode.ACenter) titleNode = self.attachNewNode(title) titleNode.setScale(0.2) titleNode.setZ(0.2) description = TextNode('description') description.setText(acievementInfo[1]) description.setFont(ToontownGlobals.getSignFont()) description.setTextColor(1, 1, 1, 1) description.setAlign(TextNode.ACenter) descriptionNode = self.attachNewNode(description) descriptionNode.setScale(0.15) descriptionNode.setZ(-0.14)
def __handleItemPlantingDone(self, willPlant = 0, recipeStr = '', selectedSpecial = -1): self.ignore(self.plantingGuiDoneEvent) self.ignore('stoppedAsleep') self.plantingGui.destroy() self.plantingGui = None base.localAvatar.showGardeningGui() base.localAvatar.removeShovelRelatedDoId(self.doId) gardenSpecials = base.localAvatar.getGardenSpecials() special = -1 if selectedSpecial >= 0: special = gardenSpecials[selectedSpecial][0] successPlanting = False successToonStatue = False if willPlant: recipeKey = GardenGlobals.getRecipeKey(recipeStr, special) if recipeKey >= 0: species, variety = GardenGlobals.getSpeciesVarietyGivenRecipe(recipeKey) if species >= 0 and variety >= 0: if GardenGlobals.PlantAttributes[species]['plantType'] == GardenGlobals.STATUARY_TYPE: successPlanting = True if species >= 205 and species <= 208: successToonStatue = True else: self.sendUpdate('plantStatuary', [species]) else: self.notify.debug('%s %d is not a valid recipe' % (recipeStr, special)) burntBeans = len(recipeStr) self.sendUpdate('plantNothing', [burntBeans]) if successPlanting: itemName = GardenGlobals.PlantAttributes[species]['name'] stringToShow = TTLocalizer.getResultPlantedSomethingSentence(itemName) elif willPlant: self.resultDialog = TTDialog.TTDialog(style=TTDialog.Acknowledge, text=TTLocalizer.ResultPlantedNothing, command=self.popupItemPlantingGuiAgain) else: self.finishInteraction() if successToonStatue: self.popupToonStatueSelectionGui(species) return
def createNewPetFromSeed(self, avId, seed, nameIndex, gender, safeZoneId): av = self.air.doId2do[avId] name = TTLocalizer.getPetName(nameIndex) _, dna, traitSeed = PetUtil.getPetInfoFromSeed(seed, safeZoneId) head, ears, nose, tail, body, color, cs, eye, _ = dna numGenders = len(PetDNA.PetGenders) gender %= numGenders fields = {'setOwnerId' : avId, 'setPetName' : name, 'setTraitSeed' : traitSeed, 'setSafeZone' : safeZoneId, 'setHead' : head, 'setEars' : ears, 'setNose' : nose, 'setTail' : tail, 'setBodyTexture' : body, 'setColor' : color, 'setColorScale' : cs, 'setEyeColor' : eye, 'setGender' : gender} def response(doId): if not doId: self.air.notify.warning("Cannot create pet for %s!" % avId) return self.air.writeServerEvent('bought-pet', avId, doId) av.b_setPetId(doId) self.air.dbInterface.createObject(self.air.dbId, self.air.dclassesByName['DistributedPetAI'], {k: (v,) for k,v in fields.items()}, response)
def __handleFlowerPlantingDone(self, willPlant=0, recipeStr='', special=-1): self.ignore(self.plantingGuiDoneEvent) self.ignore('stoppedAsleep') self.plantingGui.destroy() self.plantingGui = None base.localAvatar.showGardeningGui() base.localAvatar.removeShovelRelatedDoId(self.doId) successPlanting = False if willPlant: recipeKey = GardenGlobals.getRecipeKey(recipeStr, special) if recipeKey >= 0: species, variety = GardenGlobals.getSpeciesVarietyGivenRecipe( recipeKey) if species >= 0 and variety >= 0: self.sendUpdate('plantFlower', [species, variety]) successPlanting = True else: self.notify.debug('%s %d is not a valid recipe' % (recipeStr, special)) burntBeans = len(recipeStr) self.sendUpdate('plantNothing', [burntBeans]) if successPlanting: flowerName = GardenGlobals.getFlowerVarietyName(species, variety) stringToShow = TTLocalizer.getResultPlantedSomethingSentence( flowerName) else: if willPlant: self.resultDialog = TTDialog.TTDialog( style=TTDialog.Acknowledge, text=TTLocalizer.ResultPlantedNothing, command=self.popupFlowerPlantingGuiAgain) else: self.finishInteraction() return
def __init__(self, doneEvent, petSeed, petNameIndex): zoneId = ZoneUtil.getCanonicalSafeZoneId( base.localAvatar.getZoneId()) name, dna, traitSeed = PetUtil.getPetInfoFromSeed(petSeed, zoneId) name = TTLocalizer.getPetName(petNameIndex) cost = PetUtil.getPetCostFromSeed(petSeed, zoneId) model = loader.loadModel('phase_4/models/gui/AdoptPet') modelPos = (0, 0, -0.3) modelScale = 0.055 DirectFrame.__init__(self, relief=None, state='normal', geom=model, geom_color=ToontownGlobals.GlobalDialogColor, geom_scale=modelScale, frameSize=(-1, 1, -1, 1), pos=modelPos, text=TTLocalizer.PetshopAdoptConfirm % (name, cost), text_wordwrap=12, text_scale=0.05, text_pos=(0, 0.55), text_fg=text0Color) self.initialiseoptions(PetshopGUI.AdoptPetDlg) self.petView = self.attachNewNode('petView') self.petView.setPos(-0.13, 0, 0.8) self.petModel = Pet.Pet(forGui=1) self.petModel.setDNA(dna) self.petModel.fitAndCenterHead(0.395, forGui=1) self.petModel.reparentTo(self.petView) self.petModel.setH(130) self.petModel.setScale(0.125) self.petModel.enterNeutralHappy() self.moneyDisplay = DirectLabel( parent=self, relief=None, text=str(base.localAvatar.getTotalMoney()), text_scale=0.075, text_fg=(0.95, 0.95, 0, 1), text_shadow=(0, 0, 0, 1), text_pos=(0.225, 0.33), text_font=ToontownGlobals.getSignFont()) self.accept(localAvatar.uniqueName('moneyChange'), self.__moneyChange) self.accept(localAvatar.uniqueName('bankMoneyChange'), self.__moneyChange) okImageList = (model.find('**/CheckButtonUp'), model.find('**/CheckButtonDown'), model.find('**/CheckButtonRollover')) cancelImageList = (model.find('**/CancelButtonUp'), model.find('**/CancelButtonDown'), model.find('**/CancelRollover')) cancelIcon = model.find('**/CancelIcon') checkIcon = model.find('**/CheckIcon') self.cancelButton = DirectButton( parent=self, relief=None, image=cancelImageList, geom=cancelIcon, scale=modelScale, text=('', TTLocalizer.PetshopGoBack), text_pos=(-5.8, 4.4), text_scale=0.7, pressEffect=False, command=lambda: messenger.send(doneEvent, [0])) self.okButton = DirectButton( parent=self, relief=None, image=okImageList, geom=checkIcon, scale=modelScale, text=('', TTLocalizer.PetshopAdopt), text_pos=(5.8, 4.4), text_scale=0.7, pressEffect=False, command=lambda: messenger.send(doneEvent, [1])) model.removeNode() return
def __init__(self, doneEvent, petSeed, gender): zoneId = ZoneUtil.getCanonicalSafeZoneId( base.localAvatar.getZoneId()) name, dna, traitSeed = PetUtil.getPetInfoFromSeed(petSeed, zoneId) self.gui = loader.loadModel('phase_4/models/gui/PetNamePanel') self.guiScale = 0.09 DirectFrame.__init__(self, relief=None, geom=self.gui, geom_scale=self.guiScale, state='normal', frameSize=(-1, 1, -1, 1)) self.initialiseoptions(PetshopGUI.NamePicker) self.petView = self.attachNewNode('petView') self.petView.setPos(-0.21, 0, -0.04) self.petModel = Pet.Pet(forGui=1) self.petModel.setDNA(dna) self.petModel.fitAndCenterHead(0.435, forGui=1) self.petModel.reparentTo(self.petView) self.petModel.setH(225) self.petModel.setScale(0.125) self.petModel.enterNeutralHappy() self.allNames = TTLocalizer.NeutralPetNames if gender == 0: self.allNames += TTLocalizer.BoyPetNames else: self.allNames += TTLocalizer.GirlPetNames self.allNames.sort() self.letters = [] for name in self.allNames: if name[0:TTLocalizer.PGUIcharLength] not in self.letters: self.letters.append(name[0:TTLocalizer.PGUIcharLength]) self.curLetter = self.letters[0] self.curNames = [] self.curName = '' self.alphabetList = self.makeScrollList( self.gui, (-0.012, 0, -0.075), (1, 0.8, 0.8, 1), self.letters, self.makeLabel, [TextNode.ACenter, 'alphabet'], 6) self.nameList = None self.rebuildNameList() self.randomButton = DirectButton( parent=self, relief=None, image=(self.gui.find('**/RandomUpButton'), self.gui.find('**/RandomDownButton'), self.gui.find('**/RandomRolloverButton')), scale=self.guiScale, text=TTLocalizer.RandomButton, text_pos=(-0.8, -5.7), text_scale=0.8, text_fg=text2Color, pressEffect=False, command=self.randomName) self.nameResult = DirectLabel(parent=self, relief=None, scale=self.guiScale, text='', text_align=TextNode.ACenter, text_pos=(-1.85, 2.6), text_fg=text0Color, text_scale=0.6, text_wordwrap=8) self.submitButton = DirectButton( parent=self, relief=None, image=(self.gui.find('**/SubmitUpButton'), self.gui.find('**/SubmitDownButton'), self.gui.find('**/SubmitRolloverButton')), scale=self.guiScale, text=TTLocalizer.PetshopAdopt, text_pos=(3.3, -5.7), text_scale=TTLocalizer.PGUIsubmitButton, text_fg=text0Color, pressEffect=False, command=lambda: messenger.send( doneEvent, [TTLocalizer.getPetNameId(self.curName)])) model = loader.loadModel('phase_4/models/gui/PetShopInterface') modelScale = 0.1 cancelImageList = (model.find('**/CancelButtonUp'), model.find('**/CancelButtonDown'), model.find('**/CancelButtonRollover')) cancelIcon = model.find('**/CancelIcon') self.cancelButton = DirectButton( parent=self, relief=None, pos=(-0.04, 0, -0.47), image=cancelImageList, geom=cancelIcon, scale=modelScale, pressEffect=False, command=lambda: messenger.send(doneEvent, [-1])) self.randomName() return
def getName(self): return TTLocalizer.getHouseNameById(self.houseType)
def doResultDialog(self): self.startInteraction() itemName = GardenGlobals.PlantAttributes[self.typeIndex]['name'] stringToShow = TTLocalizer.getResultPlantedSomethingSentence(itemName) self.resultDialog = TTDialog.TTDialog(style=TTDialog.Acknowledge, text=stringToShow, command=self.resultsCallback)
def getCardName(value): if value == Unknown: return TTLocalizer.PlayingCardUnknown rank = value % MaxRank suit = value / MaxRank return TTLocalizer.getPlayingCardName(suit, rank)
def doResultDialog(self): self.startInteraction() itemName = GardenGlobals.PlantAttributes[self.typeIndex]['name'] stringToShow = TTLocalizer.getResultPlantedSomethingSentence(itemName) self.resultDialog = TTDialog.TTDialog(style = TTDialog.Acknowledge, text = stringToShow, command = self.resultsCallback)
def __handleItemPlantingDone(self, willPlant=0, recipeStr="", selectedSpecial=-1): assert self.notify.debugStateCall(self) self.ignore(self.plantingGuiDoneEvent) self.ignore('stoppedAsleep') # Ask the AI to complete the sale #self.sendUpdate("completeFlowerSale", [sell]) self.plantingGui.destroy() self.plantingGui = None base.localAvatar.showGardeningGui() base.localAvatar.removeShovelRelatedDoId(self.doId) gardenSpecials = base.localAvatar.getGardenSpecials() special = -1 if selectedSpecial >= 0: special = gardenSpecials[selectedSpecial][0] successPlanting = False successToonStatue = False if willPlant: recipeKey = GardenGlobals.getRecipeKey(recipeStr, special) if recipeKey >= 0: species, variety = GardenGlobals.getSpeciesVarietyGivenRecipe( recipeKey) if species >= 0 and variety >= 0: #make sure it is a statuary and not a flower if GardenGlobals.PlantAttributes[species][ 'plantType'] == GardenGlobals.STATUARY_TYPE: successPlanting = True # Handle ToonStatues separately because another screen has to be added if species >= 205 and species <= 208: successToonStatue = True else: self.sendUpdate('plantStatuary', [species]) else: self.notify.debug("%s %d is not a valid recipe" % (recipeStr, special)) burntBeans = len(recipeStr) self.sendUpdate('plantNothing', [burntBeans]) if successPlanting: itemName = GardenGlobals.PlantAttributes[species]['name'] stringToShow = TTLocalizer.getResultPlantedSomethingSentence( itemName) # self.resultDialog = TTDialog.TTDialog( # style = TTDialog.Acknowledge, # text = stringToShow, # command = self.resultsCallback # ) elif willPlant: self.resultDialog = TTDialog.TTDialog( style=TTDialog.Acknowledge, text=TTLocalizer.ResultPlantedNothing, command=self.popupItemPlantingGuiAgain) else: #base.cr.playGame.getPlace().detectedGardenPlotDone() self.finishInteraction() if successToonStatue: self.popupToonStatueSelectionGui(species)
def enter(self): ShtikerPage.ShtikerPage.enter(self) # Get the current street name try: zone = base.cr.playGame.getPlace().getZoneId() except: zone = 0 # if we are going to an HQ, change the button if base.localAvatar.lastHood >= ToontownGlobals.BossbotHQ: self.safeZoneButton['text'] = TTLocalizer.MapPageBackToCogHQ else: self.safeZoneButton['text'] = TTLocalizer.MapPageBackToPlayground if ((zone and ZoneUtil.isPlayground(zone)) or self.book.safeMode): self.safeZoneButton.hide() else: self.safeZoneButton.show() if ((base.cr.playGame.getPlaceId() == ToontownGlobals.MyEstate and base.cr.playGame.hood.loader.atMyEstate()) or self.book.safeMode): self.goHomeButton.hide() elif base.housingEnabled: self.goHomeButton.show() if base.cr.playGame.getPlaceId() == ToontownGlobals.MyEstate: if base.cr.playGame.hood.loader.atMyEstate(): self.hoodLabel['text'] = (TTLocalizer.MapPageYouAreAtHome) self.hoodLabel.show() else: avatar = base.cr.identifyAvatar( base.cr.playGame.hood.loader.estateOwnerId) if avatar: avName = avatar.getName() self.hoodLabel['text'] = ( TTLocalizer.MapPageYouAreAtSomeonesHome % (TTLocalizer.GetPossesive(avName))) self.hoodLabel.show() elif zone: hoodName = ToontownGlobals.hoodNameMap.get( ZoneUtil.getCanonicalHoodId(zone), ("", ))[-1] streetName = ToontownGlobals.StreetNames.get( ZoneUtil.getCanonicalBranchZone(zone), ("", ))[-1] # Make sure we have a hoodName to report # It is ok if we do not have a street name, it will just be empty if hoodName: self.hoodLabel['text'] = (TTLocalizer.MapPageYouAreHere % (hoodName, streetName)) self.hoodLabel.show() else: self.hoodLabel.hide() else: self.hoodLabel.hide() safeZonesVisited = base.localAvatar.hoodsVisited hoodsAvailable = base.cr.hoodMgr.getAvailableZones() #print("### hoods visited = ", safeZonesVisited) #print("### hoods avail = ", hoodsAvailable) # The hoods that we can see is the intersection of the zones we have # visited and the hoods that are available hoodVisibleList = PythonUtil.intersection(safeZonesVisited, hoodsAvailable) #print("### hoods viz = ", hoodVisibleList) # The hoods that we can teleport to is the intersection of the hoods # we can see and the hoods the local toon has teleport access to hoodTeleportList = base.localAvatar.getTeleportAccess() for hood in self.allZones: label = self.labels[self.allZones.index(hood)] clouds = self.clouds[self.allZones.index(hood)] # If we can see that hood, show the button, hide the clouds if ((not self.book.safeMode) and (hood in hoodVisibleList)): label.show() for cloud in clouds: cloud.hide() fullname = base.cr.hoodMgr.getFullnameFromId(hood) if hood in hoodTeleportList: text = (TTLocalizer.MapPageGoTo % fullname) label['text'] = ("", text, text) else: label['text'] = ("", fullname, fullname) # If we cannot see that hood, hide the button, show the clouds else: label.hide() for cloud in clouds: cloud.show() return
def enter(self): ShtikerPage.ShtikerPage.enter(self) try: zone = base.cr.playGame.getPlace().getZoneId() except: zone = 0 if base.localAvatar.lastHood >= ToontownGlobals.BossbotHQ: self.safeZoneButton['text'] = TTLocalizer.MapPageBackToCogHQ else: self.safeZoneButton['text'] = TTLocalizer.MapPageBackToPlayground if zone and ZoneUtil.isPlayground(zone) or self.book.safeMode: self.safeZoneButton.hide() else: self.safeZoneButton.show() if base.cr.playGame.getPlaceId( ) == ToontownGlobals.MyEstate and base.cr.playGame.hood.loader.atMyEstate( ) or self.book.safeMode: self.goHomeButton.hide() elif base.housingEnabled: self.goHomeButton.show() if base.cr.playGame.getPlaceId() == ToontownGlobals.MyEstate: if base.cr.playGame.hood.loader.atMyEstate(): self.hoodLabel['text'] = TTLocalizer.MapPageYouAreAtHome self.hoodLabel.show() else: avatar = base.cr.identifyAvatar( base.cr.playGame.hood.loader.estateOwnerId) if avatar: avName = avatar.getName() self.hoodLabel[ 'text'] = TTLocalizer.MapPageYouAreAtSomeonesHome % TTLocalizer.GetPossesive( avName) self.hoodLabel.show() elif zone: hoodName = ToontownGlobals.hoodNameMap.get( ZoneUtil.getCanonicalHoodId(zone), ('', ))[-1] streetName = ToontownGlobals.StreetNames.get( ZoneUtil.getCanonicalBranchZone(zone), ('', ))[-1] if hoodName: self.hoodLabel['text'] = TTLocalizer.MapPageYouAreHere % ( hoodName, streetName) self.hoodLabel.show() else: self.hoodLabel.hide() else: self.hoodLabel.hide() safeZonesVisited = base.localAvatar.hoodsVisited hoodsAvailable = base.cr.hoodMgr.getAvailableZones() hoodVisibleList = PythonUtil.intersection(safeZonesVisited, hoodsAvailable) hoodTeleportList = base.localAvatar.getTeleportAccess() for hood in self.allZones: label = self.labels[self.allZones.index(hood)] clouds = self.clouds[self.allZones.index(hood)] if not self.book.safeMode and hood in hoodVisibleList: label['text_fg'] = (0, 0, 0, 1) label.show() for cloud in clouds: cloud.hide() fullname = base.cr.hoodMgr.getFullnameFromId(hood) if hood in hoodTeleportList: text = TTLocalizer.MapPageGoTo % fullname label['text'] = ('', text, text) else: label['text'] = ('', fullname, fullname) else: label['text_fg'] = (0, 0, 0, 0.65) label.show() for cloud in clouds: cloud.show()
def doResultDialog(self): self.startInteraction() flowerName = GardenGlobals.getFlowerVarietyName(self.species, self.variety) stringToShow = TTLocalizer.getResultPlantedSomethingSentence(flowerName) self.resultDialog = TTDialog.TTDialog(style=TTDialog.Acknowledge, text=stringToShow, command=self.resultsCallback)
def __init__(self, doneEvent, petSeed, gender): zoneId = ZoneUtil.getCanonicalSafeZoneId(base.localAvatar.getZoneId()) name, dna, traitSeed = PetUtil.getPetInfoFromSeed(petSeed, zoneId) self.gui = loader.loadModel('phase_4/models/gui/PetNamePanel') self.guiScale = 0.09 DirectFrame.__init__(self, relief=None, geom=self.gui, geom_scale=self.guiScale, state='normal', frameSize=(-1, 1, -1, 1)) self.initialiseoptions(PetshopGUI.NamePicker) self.petView = self.attachNewNode('petView') self.petView.setPos(-0.21, 0, -0.04) self.petModel = Pet.Pet(forGui=1) self.petModel.setDNA(dna) self.petModel.fitAndCenterHead(0.435, forGui=1) self.petModel.reparentTo(self.petView) self.petModel.setH(225) self.petModel.setScale(0.125) self.petModel.enterNeutralHappy() self.allNames = TTLocalizer.NeutralPetNames if gender == 0: self.allNames += TTLocalizer.BoyPetNames else: self.allNames += TTLocalizer.GirlPetNames self.allNames.sort() self.letters = [] for name in self.allNames: if name[0:TTLocalizer.PGUIcharLength] not in self.letters: self.letters.append(name[0:TTLocalizer.PGUIcharLength]) self.curLetter = self.letters[0] self.curNames = [] self.curName = '' self.alphabetList = self.makeScrollList(self.gui, (-0.012, 0, -0.075), (1, 0.8, 0.8, 1), self.letters, self.makeLabel, [TextNode.ACenter, 'alphabet'], 6) self.nameList = None self.rebuildNameList() self.randomButton = DirectButton(parent=self, relief=None, image=(self.gui.find('**/RandomUpButton'), self.gui.find('**/RandomDownButton'), self.gui.find('**/RandomRolloverButton')), scale=self.guiScale, text=TTLocalizer.RandomButton, text_pos=(-0.8, -5.7), text_scale=0.8, text_fg=text2Color, pressEffect=False, command=self.randomName) self.nameResult = DirectLabel(parent=self, relief=None, scale=self.guiScale, text='', text_align=TextNode.ACenter, text_pos=(-1.85, 2.6), text_fg=text0Color, text_scale=0.6, text_wordwrap=8) self.submitButton = DirectButton(parent=self, relief=None, image=(self.gui.find('**/SubmitUpButton'), self.gui.find('**/SubmitDownButton'), self.gui.find('**/SubmitRolloverButton')), scale=self.guiScale, text=TTLocalizer.PetshopAdopt, text_pos=(3.3, -5.7), text_scale=TTLocalizer.PGUIsubmitButton, text_fg=text0Color, pressEffect=False, command=lambda : messenger.send(doneEvent, [TTLocalizer.getPetNameId(self.curName)])) model = loader.loadModel('phase_4/models/gui/PetShopInterface') modelScale = 0.1 cancelImageList = (model.find('**/CancelButtonUp'), model.find('**/CancelButtonDown'), model.find('**/CancelButtonRollover')) cancelIcon = model.find('**/CancelIcon') self.cancelButton = DirectButton(parent=self, relief=None, pos=(-0.04, 0, -0.47), image=cancelImageList, geom=cancelIcon, scale=modelScale, pressEffect=False, command=lambda : messenger.send(doneEvent, [-1])) self.randomName() return
def spawnTitleText(self): if not self.hostName: return partyText = TTLocalizer.PartyTitleText % TTLocalizer.GetPossesive(self.hostName) self.doSpawnTitleText(partyText)
from toontown.toonbase import TTLocalizer language = TTLocalizer.getLanguage() # Log config logFatal = True logError = True logWarning = True logLog = True logInfo = True logDebug = False logChat = True logSecurity = True logMaxLinesInMemory = 100 # DB config ttDbHost = "localhost" ttDbPort = 3306 if language == 'castillian': ttDbName = "es_toontownTopDb" elif language == "japanese": ttDbName = "jp_toontownTopDb" elif language == "portuguese": ttDbName = "br_toontownTopDb" elif language == "french": ttDbName = "french_toontownTopDb" else: ttDbName = "toontownTopDb"