Exemplo n.º 1
0
 def __init__(self, doneEvent, petSeed, petNameIndex):
     zoneId = ZoneUtil.getCanonicalSafeZoneId(base.localAvatar.getZoneId())
     name, dna, traitSeed = PetUtil.getPetInfoFromSeed(petSeed, zoneId)
     name = PetNameGenerator.PetNameGenerator().getName(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.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
Exemplo n.º 2
0
def getPetInfoFromSeed(seed, safezoneId):
    S = random.getstate()
    random.seed(seed)
    dnaArray = PetDNA.getRandomPetDNA(safezoneId)
    gender = PetDNA.getGender(dnaArray)
    nameString = PetNameGenerator.PetNameGenerator().randomName(gender=gender, seed=seed + safezoneId)
    traitSeed = PythonUtil.randUint31()
    random.setstate(S)
    return (nameString, dnaArray, traitSeed)
Exemplo n.º 3
0
        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.enterNeutralHappy()
            self.ng = PetNameGenerator.PetNameGenerator()
            if gender == 1:
                self.allNames = self.ng.boyFirsts
            else:
                self.allNames = self.ng.girlFirsts
            self.allNames += self.ng.neutralFirsts
            self.allNames.sort()
            self.checkNames()
            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, [self.ng.returnUniqueID(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
Exemplo n.º 4
0
 def createPet(self):
     self.nameGen = PetNameGenerator.PetNameGenerator()
     self.name = self.nameGen.getName(self.nameIndex)
     print 'TRAIT SEED IS: %s' % (self.traitSeed)
     self.air.dbInterface.createObject(
         self.air.dbId,
         self.air.dclassesByName['DistributedPetAI'],
         {
             'setOwnerId': [self.avId],
             'setPetName': [self.name],
             'setTraitSeed': [self.traitSeed],
             'setSafeZone': [self.zoneId],
             'setForgetfulness': [0],
             'setBoredomThreshold': [0],  # TODO
             'setRestlessnessThreshold': [0],  # TODO
             'setPlayfulnessThreshold': [0],  # TODO
             'setLonelinessThreshold': [0],  # TODO
             'setSadnessThreshold': [0],  # TODO
             'setFatigueThreshold': [0],  # TODO
             'setHungerThreshold': [0],  # TODO
             'setExcitementThreshold': [0],  # TODO
             'setAngerThreshold': [0],  # TODO
             'setSurpriseThreshold': [0],  # TODO
             'setAffectionThreshold': [0],  # TODO
             'setHead': [self.dna[0]],
             'setEars': [self.dna[1]],
             'setNose': [self.dna[2]],
             'setTail': [self.dna[3]],
             'setBodyTexture': [self.dna[4]],
             'setColor': [self.dna[5]],
             'setColorScale': [self.dna[6]],
             'setEyeColor': [self.dna[7]],
             'setGender': [self.dna[8]],
             'setLastSeenTimestamp': [0],
             'setExcitement': [0],
             'setBoredom': [0],
             'setRestlessness': [0],
             'setPlayfulness': [0],
             'setLoneliness': [0],
             'setSadness': [0],
             'setAffection': [0],
             'setHunger': [0],
             'setAnger': [0],
             'setTrickAptitudes': [[0, 0, 0, 0, 0, 0, 0]]
         },
         self._handleCreate)
Exemplo n.º 5
0
 def __init__(self, air):
     self.air = air
     self.cacheFile = '%spets_%d.json' % (self.cachePath,
                                          self.air.districtId)
     if not os.path.exists(self.cachePath):
         os.makedirs(self.cachePath)
     if os.path.isfile(self.cacheFile):
         with open(self.cacheFile, 'rb') as (f):
             data = f.read()
         self.seeds = json.loads(data)
         if self.seeds.get('day', -1) != getDayId() or len(
                 self.seeds.get(ToontownGlobals.ToontownCentral,
                                [])) != self.NUM_DAILY_PETS:
             self.generateSeeds()
     else:
         self.generateSeeds()
     self.nameGen = PetNameGenerator.PetNameGenerator()
Exemplo n.º 6
0
 def handlePetGenerated(success, pet):
     if success:
         name, dna, traitSeed = PetUtil.getPetInfoFromSeed(
             seed, safeZoneId)
         if gender != -1:
             #make sure the size of the dna array hasn't changed
             assert (len(dna) == 9)
             dna[8] = gender
         if nameIndex != -1:
             name = PetNameGenerator.PetNameGenerator().getName(
                 nameIndex)
         pet._initDBVals(toonId, name, traitSeed, dna,
                         safeZoneId)
         self.assignPetToToon(petId, toonId)
         message = '%s|%s|%s|%s|%s' % (
             petId, name, pet.getSafeZone(), dna,
             pet.traits.getValueList())
         self.air.writeServerEvent('adoptPet', toonId, message)
         pet.requestDelete()
     else:
         self.notify.warning('error summoning pet %s' % petId)