def createToon(self):
        fields = {
            "ACCOUNT":
            self.accountId,
            "setDNAStrand": (str(self.choice[0]), ),
            "setName": (str(self.choice[2]), ),
            "setHealth": (100, ),
            "setMaxHealth": (100, ),
            "setMoney": (5000, ),
            "setBackpackAmmo":
            (GagGlobals.getDefaultBackpackNetString(True), ),
            "setLoadout": (GagGlobals.InitLoadout,
                           ),  # Start with cupcake and squirting flower.
            "setTrackExperience": (GagGlobals.trackExperienceToNetString(
                GagGlobals.DefaultTrackExperiences), ),
            "setAccessLevel": (AdminCommands.NoAccess, ),
            "setQuests": ("", ),
            "setQuestHistory": ([], ),
            "setTier": (13, ),
            "setFriendsList": ([], ),
            "setTutorialCompleted": (1, ),  #self.choice[3],),
            "setHoodsDiscovered": ([ZoneUtil.ToontownCentralId], ),
            "setTeleportAccess": ([], ),
            "setLastHood": (ZoneUtil.ToontownCentralId, ),
            "setDefaultShard": (0, )
        }
        self.notify.info("Creating new toon!")
        self.avList = self.accFields["AVATAR_IDS"]
        self.avList = self.avList[:6]
        self.avList += [0] * (6 - len(self.avList))

        self.air.dbInterface.createObject(
            self.air.dbId, self.air.dclassesByName['DistributedPlayerToonUD'],
            fields, self.createDone)
コード例 #2
0
 def getTrackExperience(self):
     return GagGlobals.trackExperienceToNetString(self.trackExperience)
コード例 #3
0
 def reqUnlockAllGags(self):
     if self.__requesterAuthorized():
         self.b_setTrackExperience(
             GagGlobals.trackExperienceToNetString(
                 GagGlobals.MaxedTrackExperiences))
         self.backpack.refillSupply()
コード例 #4
0
    def parseToonData(self):
        blobs = []
        for avId, data in self.avatarData.iteritems():
            avatar = base.air.doId2do.get(avId, None)
            deadCogData = data[1]
            favGagId = 0  # Make it whole cream pie by default
            favGagUses = 0
            gagUnlocked = False

            if avatar:
                rpData = RPToonData(avatar)
                trackIncrements = {}

                for track in avatar.trackExperience.keys():
                    trackIncrements[track] = 0

                for gagId, uses in data[0].iteritems():
                    gagName = self.air.attackMgr.getAttackName(gagId)
                    gagData = GagGlobals.gagData.get(gagName)
                    track = gagData['track']
                    if uses > favGagUses:
                        favGagId = gagId

                    trackGags = GagGlobals.TrackGagNamesByTrackName.get(track)

                    incr = (trackGags.index(gagName) + 1) * uses
                    if track in trackIncrements.keys():
                        incr = incr + trackIncrements[track]
                    trackIncrements[track] = incr

                rpData.favoriteGag = self.air.attackMgr.getAttackName(favGagId)

                for track, exp in avatar.trackExperience.iteritems():
                    rpDataTrack = rpData.getTrackByName(track)
                    increment = trackIncrements.get(track)
                    maxExp = GagGlobals.getMaxExperienceValue(exp, track)
                    incrMaxExp = GagGlobals.getMaxExperienceValue(
                        exp + increment, track)
                    rpDataTrack.exp = exp
                    rpDataTrack.maxExp = maxExp
                    rpDataTrack.increment = increment
                    avatar.trackExperience[track] = (exp +
                                                     rpDataTrack.increment)

                    if incrMaxExp != maxExp:
                        # We've unlocked a gag.
                        maxExpIndex = GagGlobals.TrackExperienceAmounts.get(
                            track).index(incrMaxExp)
                        newGagName = GagGlobals.TrackGagNamesByTrackName.get(
                            track)[maxExpIndex]
                        gagId = self.air.attackMgr.getAttackIDByName(
                            newGagName)
                        avatar.backpack.addGag(gagId, 1)
                        gagUnlocked = True
                avatar.b_setTrackExperience(
                    GagGlobals.trackExperienceToNetString(
                        avatar.trackExperience))

                if gagUnlocked:
                    netString = avatar.getBackpackAmmo()
                    avatar.d_setBackpackAmmo(netString)

                # Let's update quest stuff for this avatar.
                questManager = avatar.questManager

                objectiveProgresses = []

                for quest in questManager.quests.values():
                    objectiveProgress = []
                    for i, objective in enumerate(quest.accessibleObjectives):
                        objectiveProgress.append(objective.progress)
                        if objective.type == DefeatCog:
                            progress = objective.progress
                            for killData in deadCogData:
                                if not (
                                        progress == objective.goal
                                ) and objective.isNeededCogFromDeadCogData(
                                        killData):
                                    progress += 1
                                elif (progress == objective.goal):
                                    break
                            objectiveProgress[i] = progress
                        elif objective.type == DefeatCogBuilding and self.isCogOffice(
                        ) and objective.isAcceptable(self.hood, self.dept,
                                                     self.numFloors):
                            objectiveProgress[i] = objectiveProgress[i] + 1
                        elif objective.type == RecoverItem:
                            for killData in deadCogData:
                                objective.handleProgressFromDeadCogData(
                                    killData)

                    objectiveProgresses.append(objectiveProgress)
                questManager.updateQuestData(
                    objectiveProgresses=objectiveProgresses)

                blobs.append(rpData.toNetString(avId))

        return blobs