Ejemplo n.º 1
0
 def showPosts(self):
     self.hidePosts()
     self.posts = [Toon.Toon(), Toon.Toon(), Toon.Toon(), Toon.Toon()]
     for i in xrange(len(self.posts)):
         tree = self.posts[i]
         tree.reparentTo(render)
         x = self.StageHalfWidth
         y = self.StageHalfHeight
         if i > 1:
             x = -x
         if i % 2:
             y = -y
         tree.setPos(x + self.x, y + self.y, 0)
 def load(self):
     Toon.loadMinigameAnims()
     self.defaultSignModel = loader.loadModel('phase_13/models/parties/eventSign')
     self.activityIconsModel = loader.loadModel('phase_4/models/parties/eventSignIcons')
     model = loader.loadModel('phase_4/models/parties/partyStickerbook')
     self.partyHat = model.find('**/Stickerbook_PartyIcon')
     self.partyHat.setPos(0.0, 0.1, 2.5)
     self.partyHat.setHpr(0.0, 0.0, -50.0)
     self.partyHat.setScale(4.0)
     self.partyHat.setBillboardAxis()
     self.partyHat.reparentTo(hidden)
     model.removeNode()
     self.defaultLeverModel = loader.loadModel('phase_13/models/parties/partyLeverBase')
     self.defaultStickModel = loader.loadModel('phase_13/models/parties/partyLeverStick')
Ejemplo n.º 3
0
 def showPosts(self):
     self.hidePosts()
     self.posts = [Toon.Toon(), Toon.Toon(), Toon.Toon(), Toon.Toon()]
     for i in xrange(len(self.posts)):
         toon = self.posts[i]
         toon.setDNA(base.localAvatar.getStyle())
         toon.reparentTo(render)
         x = self.StageHalfWidth
         y = self.StageHalfHeight
         if i > 1:
             x = -x
         if i % 2:
             y = -y
         toon.setPos(x, y, 0)
    def getPicture(self, avatar):
        from src.toontown.toon import Toon
        self.hasPicture = True
        dna = ToonDNA.ToonDNA(type='t', dna=avatar.style)
        str = ClothingTypes[self.clothingType][CTString]
        if self.isShirt():
            defn = ToonDNA.ShirtStyles[str]
            dna.topTex = defn[0]
            dna.topTexColor = defn[2][self.colorIndex][0]
            dna.sleeveTex = defn[1]
            dna.sleeveTexColor = defn[2][self.colorIndex][1]
            pieceNames = ('**/1000/**/torso-top', '**/1000/**/sleeves')
        else:
            defn = ToonDNA.BottomStyles[str]
            dna.botTex = defn[0]
            dna.botTexColor = defn[1][self.colorIndex]
            pieceNames = ('**/1000/**/torso-bot',)
        toon = Toon.Toon()
        toon.setDNA(dna)
        model = NodePath('clothing')
        for name in pieceNames:
            for piece in toon.findAllMatches(name):
                piece.wrtReparentTo(model)

        model.setH(180)
        toon.delete()
        return self.makeFrameModel(model)
Ejemplo n.º 5
0
 def getPicture(self, avatar):
     from src.toontown.toon import Toon
     from src.toontown.toon import ToonHead
     from src.toontown.toon import TTEmote
     from src.otp.avatar import Emote
     self.hasPicture = True
     if self.emoteIndex in Emote.globalEmote.getHeadEmotes():
         toon = ToonHead.ToonHead()
         toon.setupHead(avatar.style, forGui=1)
     else:
         toon = Toon.Toon()
         toon.setDNA(avatar.style)
         toon.loop('neutral')
     toon.setH(180)
     model, ival = self.makeFrameModel(toon, 0)
     track, duration = Emote.globalEmote.doEmote(toon, self.emoteIndex, volume=self.volume)
     if duration == None:
         duration = 0
     name = 'emote-item-%s' % self.sequenceNumber
     CatalogEmoteItem.sequenceNumber += 1
     if track != None:
         track = Sequence(Sequence(track, duration=0), Wait(duration + 2), name=name)
     else:
         track = Sequence(Func(Emote.globalEmote.doEmote, toon, self.emoteIndex), Wait(duration + 4), name=name)
     self.pictureToon = toon
     return (model, track)
Ejemplo n.º 6
0
    def __makeResistanceToon(self):
        if self.resistanceToon:
            return
        npc = Toon.Toon()
        npc.setName(TTLocalizer.ResistanceToonName)
        npc.setPickable(0)
        npc.setPlayerType(NametagGroup.CCNonPlayer)
        dna = ToonDNA.ToonDNA()
        dna.newToonRandom(11237, 'f', 1)
        dna.head = 'pls'
        npc.setDNAString(dna.makeNetString())
        npc.animFSM.request('neutral')
        self.resistanceToon = npc
        self.resistanceToon.setPosHpr(*ToontownGlobals.CashbotRTBattleOneStartPosHpr)
        state = random.getstate()
        random.seed(self.doId)
        self.resistanceToon.suitType = SuitDNA.getRandomSuitByDept('m')
        random.setstate(state)
        self.fakeGoons = []
        for i in xrange(self.numFakeGoons):
            goon = DistributedCashbotBossGoon.DistributedCashbotBossGoon(base.cr)
            goon.doId = -1 - i
            goon.setBossCogId(self.doId)
            goon.generate()
            goon.announceGenerate()
            self.fakeGoons.append(goon)

        self.__hideFakeGoons()
 def copyLocalAvatarToon(self):
     self.toon = Toon.Toon()
     self.toon.reparentTo(render)
     self.toon.setDNA(base.localAvatar.style)
     self.toon.setPos(base.localAvatar, 0, 0, 0)
     self.toon.pose('victory', 30)
     self.toon.setH(180)
     self.speciesType = self.toon.style.getAnimal()
     self.gender = self.toon.style.gender
    def unload(self):
        if hasattr(self, 'decorationsList') and self.decorationsList:
            for decor in self.decorationsList:
                decor.unload()

            del self.decorationsList
        self.stopPartyClock()
        self.grassRoot.removeNode()
        del self.grassRoot
        if hasattr(self, 'testGrid'):
            self.testGrid.removeNode()
            del self.testGrid
        self.ignoreAll()
        Toon.unloadMinigameAnims()
        self.partyHat.removeNode()
        del self.partyHat
        if hasattr(base, 'partyHasJukebox'):
            del base.partyHasJukebox
Ejemplo n.º 9
0
 def __addToonModel(self):
     toon = Toon.Toon()
     toon.setDNA(self.avatar.style)
     toon.reparentTo(self)
     toon.setPos(0.45, 0, 0.3)
     toon.setH(180)
     toon.setScale(0.11)
     toon.loop('neutral')
     toon.setDepthWrite(True)
     toon.setDepthTest(True)
Ejemplo n.º 10
0
 def getIntroToon(toonProperties, parent, pos):
     toon = Toon.Toon()
     dna = ToonDNA.ToonDNA()
     dna.newToonFromProperties(*toonProperties)
     toon.setDNA(dna)
     toon.reparentTo(parent)
     toon.setPos(*pos)
     toon.setH(180)
     toon.startBlink()
     return toon
Ejemplo n.º 11
0
 def makeToon(self):
     if not self.toon:
         self.toon = Toon.Toon()
         self.toon.setDNA(base.localAvatar.getStyle())
         self.toon.getGeomNode().setDepthWrite(1)
         self.toon.getGeomNode().setDepthTest(1)
         self.toon.useLOD(500)
         self.toon.reparentTo(self.frame)
         self.toon.setPosHprScale(0, 10, -0.25, 210, 0, 0, 0.12, 0.12, 0.12)
         self.ignore('nametagAmbientLightChanged')
    def load(self):
        self.notify.debug('load()')
        CogdoGameMovie.load(self)
        backgroundGui = loader.loadModel('phase_5/models/cogdominium/tt_m_gui_csa_flyThru')
        self.bg = backgroundGui.find('**/background')
        self.chatBubble = backgroundGui.find('**/chatBubble')
        self.chatBubble.setScale(6.5, 6.5, 7.3)
        self.chatBubble.setPos(0.32, 0, -0.78)
        self.bg.setScale(5.2)
        self.bg.setPos(0.14, 0, -0.6667)
        self.bg.reparentTo(aspect2d)
        self.chatBubble.reparentTo(aspect2d)
        self.frame = DirectFrame(geom=self.bg, relief=None, pos=(0.2, 0, -0.6667))
        self.bg.wrtReparentTo(self.frame)
        self.gameTitleText = DirectLabel(parent=self.frame, text=TTLocalizer.CogdoExecutiveSuiteTitle, scale=TTLocalizer.MRPgameTitleText * 0.8, text_align=TextNode.ACenter, text_font=getSignFont(), text_fg=(1.0, 0.33, 0.33, 1.0), pos=TTLocalizer.MRgameTitleTextPos, relief=None)
        self.chatBubble.wrtReparentTo(self.frame)
        self.frame.hide()
        backgroundGui.removeNode()
        self.toonDNA = ToonDNA.ToonDNA()
        self.toonDNA.newToonFromProperties('dss', 'ss', 'm', 'm', 2, 0, 2, 2, 1, 8, 1, 8, 1, 14, 0)
        self.toonHead = Toon.Toon()
        self.toonHead.setDNA(self.toonDNA)
        self.makeSuit('sc')
        self.toonHead.getGeomNode().setDepthWrite(1)
        self.toonHead.getGeomNode().setDepthTest(1)
        self.toonHead.loop('neutral')
        self.toonHead.setPosHprScale(-0.73, 0, -1.27, 180, 0, 0, 0.18, 0.18, 0.18)
        self.toonHead.reparentTo(hidden)
        self.toonHead.startBlink()
        self.clipPlane = self.toonHead.attachNewNode(PlaneNode('clip'))
        self.clipPlane.node().setPlane(Plane(0, 0, 1, 0))
        self.clipPlane.setPos(0, 0, 2.45)
        self._toonDialogueSfx = loader.loadSfx('phase_3.5/audio/dial/AV_dog_long.ogg')
        self._camHelperNode = NodePath('CamHelperNode')
        self._camHelperNode.reparentTo(render)
        dialogue = TTLocalizer.CogdoExecutiveSuiteIntroMessage

        def start():
            self.frame.show()
            base.setCellsAvailable(base.bottomCells + base.leftCells + base.rightCells, 0)

        def showShopOwner():
            self._setCamTarget(self._shopOwner, -10, offset=Point3(0, 0, 5))

        def end():
            self._dialogueLabel.reparentTo(hidden)
            self.toonHead.reparentTo(hidden)
            self.frame.hide()
            base.setCellsAvailable(base.bottomCells + base.leftCells + base.rightCells, 1)
            self._stopUpdateTask()

        self._ival = Sequence(Func(start), Func(self.displayLine, dialogue), Func(showShopOwner), ParallelEndTogether(camera.posInterval(self.cameraMoveDuration, Point3(8, 0, 13), blendType='easeInOut'), camera.hprInterval(0.5, self._camHelperNode.getHpr(), blendType='easeInOut')), Wait(self.introDuration), Func(end))
        self._startUpdateTask()
        return
Ejemplo n.º 13
0
 def showDropGrid(self):
     self.hideDropGrid()
     self.dropMarkers = []
     for row in xrange(self.DropRows):
         self.dropMarkers.append([])
         rowList = self.dropMarkers[row]
         for column in xrange(self.DropColumns):
             toon = Toon.Toon()
             toon.setDNA(base.localAvatar.getStyle())
             toon.reparentTo(self.root)
             toon.setScale(1.0 / 3)
             x, y = self.grid2world(column, row)
             toon.setPos(x, y, 0)
             rowList.append(toon)
 def createPreviewToon(self, dna):
     if hasattr(self, 'previewToon'):
         self.previewToon.delete()
     self.dnaSelected = dna
     self.previewToon = Toon.Toon()
     self.previewToon.setDNA(dna)
     self.previewToon.loop('neutral')
     self.previewToon.setH(180)
     self.previewToon.setPos(-0.3, 0, -0.3)
     self.previewToon.setScale(0.13)
     self.previewToon.reparentTo(self)
     self.previewToon.startBlink()
     self.previewToon.startLookAround()
     self.previewToon.getGeomNode().setDepthWrite(1)
     self.previewToon.getGeomNode().setDepthTest(1)
 def setupStoneToon(self, dna):
     self.toon = Toon.Toon()
     self.toon.setPos(0, 0, 0)
     self.toon.setDNA(dna)
     self.toon.initializeBodyCollisions('toonStatue')
     self.toon.stopBlink()
     self.toon.stopLookAround()
     self.gender = self.toon.style.gender
     self.speciesType = self.toon.style.getAnimal()
     self.headType = self.toon.style.head
     self.removeTextures()
     self.setStoneTexture()
     self.toon.dropShadow.hide()
     self.toon.setZ(70)
     self.toon.setScale(20 / 1.5, 20 / 1.5, 20)
Ejemplo n.º 16
0
 def _createRandomToon(self, gender):
     if self.toon:
         self.toon.stopBlink()
         self.toon.stopLookAroundNow()
         self.toon.delete()
     self.dna = ToonDNA.ToonDNA()
     self.dna.newToonRandom(gender=gender, stage=1)
     self.toon = Toon.Toon()
     self.toon.setDNA(self.dna)
     self.toon.useLOD(1000)
     self.toon.setNameVisible(0)
     self.toon.startBlink()
     self.toon.startLookAround()
     self.toon.reparentTo(render)
     self.toon.setPos(self.makeAToon.toonPosition)
     self.toon.setHpr(self.makeAToon.toonHpr)
     self.toon.setScale(self.makeAToon.toonScale)
     self.toon.loop('neutral')
     self.makeAToon.setNextButtonState(DGG.NORMAL)
     self.makeAToon.setToon(self.toon)
     messenger.send('MAT-newToonCreated')
 def unloadBattleAnims(self):
     Toon.unloadBattleAnims()
 def unloadBattleAnims(self):
     Toon.unloadTutorialBattleAnims()
 def load(self):
     Place.Place.load(self)
     Toon.loadBattleAnims()
 def unload(self):
     CogHQLoader.CogHQLoader.unload(self)
     Toon.unloadCashbotHQAnims()
 def load(self, zoneId):
     CogHQLoader.CogHQLoader.load(self, zoneId)
     Toon.loadCashbotHQAnims()
Ejemplo n.º 22
0
 def loadBattleAnims(self):
     Toon.loadBattleAnims()
Ejemplo n.º 23
0
 def unloadBattleAnims(self):
     Toon.unloadBattleAnims()
 def load(self, zoneId):
     CogHQLoader.CogHQLoader.load(self, zoneId)
     Toon.loadBossbotHQAnims()
 def unload(self):
     self.notify.debug('BASE: unload')
     if hasattr(base, 'curMinigame'):
         del base.curMinigame
     Toon.unloadMinigameAnims()
    def begin(self, range, label, gui, tipCategory, zoneId):
        self.defaultTex = 'phase_3.5/maps/loading/default.jpg'
        self.defaultFont = ToontownGlobals.getInterfaceFont()
        self.defaultFontColor = (0, 0, 0.5, 1)
        self.zone2picture = {
            ToontownGlobals.GoofySpeedway: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.ToontownCentral: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.SillyStreet: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.LoopyLane: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.PunchlinePlace: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.DonaldsDock: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.BarnacleBoulevard:
            'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.SeaweedStreet: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.LighthouseLane: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.DaisyGardens: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.ElmStreet: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.MapleStreet: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.OakStreet: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.MinniesMelodyland:
            'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.AltoAvenue: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.BaritoneBoulevard:
            'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.TenorTerrace: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.TheBrrrgh: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.WalrusWay: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.SleetStreet: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.PolarPlace: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.DonaldsDreamland:
            'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.LullabyLane: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.PajamaPlace: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.OutdoorZone: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.GolfZone: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.SellbotHQ: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.SellbotFactoryExt:
            'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.SellbotFactoryInt:
            'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.SellbotMegaCorpInt:
            'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.CashbotHQ: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.LawbotHQ: 'phase_3.5/maps/loading/toon.jpg',
            ToontownGlobals.BossbotHQ: 'phase_3.5/maps/loading/toon.jpg'
        }
        self.zone2font = {
            #Toontown Central Loader Fonts
            ToontownGlobals.GoofySpeedway:
            ToontownGlobals.getSignFont(),
            ToontownGlobals.ToontownCentral:
            ToontownGlobals.getCentralFont(),
            ToontownGlobals.SillyStreet:
            ToontownGlobals.getCentralFont(),
            ToontownGlobals.LoopyLane:
            ToontownGlobals.getCentralFont(),
            ToontownGlobals.PunchlinePlace:
            ToontownGlobals.getCentralFont(),
            #Donalds Dock Loader Fonts
            ToontownGlobals.DonaldsDock:
            ToontownGlobals.getDockFont(),
            ToontownGlobals.BarnacleBoulevard:
            ToontownGlobals.getDockFont(),
            ToontownGlobals.SeaweedStreet:
            ToontownGlobals.getDockFont(),
            ToontownGlobals.LighthouseLane:
            ToontownGlobals.getDockFont(),
            #Daisys Gardens Loader Fonts
            ToontownGlobals.DaisyGardens:
            ToontownGlobals.getGardenFont(),
            ToontownGlobals.ElmStreet:
            ToontownGlobals.getGardenFont(),
            ToontownGlobals.MapleStreet:
            ToontownGlobals.getGardenFont(),
            ToontownGlobals.OakStreet:
            ToontownGlobals.getGardenFont(),
            #Minnies Melodyland Loader Fonts
            ToontownGlobals.MinniesMelodyland:
            ToontownGlobals.getMelodyFont(),
            ToontownGlobals.AltoAvenue:
            ToontownGlobals.getMelodyFont(),
            ToontownGlobals.BaritoneBoulevard:
            ToontownGlobals.getMelodyFont(),
            ToontownGlobals.TenorTerrace:
            ToontownGlobals.getMelodyFont(),
            #Brghhh Loader Fonts
            ToontownGlobals.TheBrrrgh:
            ToontownGlobals.getFrostFont(),
            ToontownGlobals.WalrusWay:
            ToontownGlobals.getFrostFont(),
            ToontownGlobals.SleetStreet:
            ToontownGlobals.getFrostFont(),
            ToontownGlobals.PolarPlace:
            ToontownGlobals.getFrostFont(),
            #Donalds Dreamland Loader Fonts
            ToontownGlobals.DonaldsDreamland:
            ToontownGlobals.getDreamFont(),
            ToontownGlobals.LullabyLane:
            ToontownGlobals.getDreamFont(),
            ToontownGlobals.PajamaPlace:
            ToontownGlobals.getDreamFont(),
            #Other Zone Fonts
            ToontownGlobals.OutdoorZone:
            ToontownGlobals.getSignFont(),
            ToontownGlobals.GolfZone:
            ToontownGlobals.getSignFont(),
            #Cog Loader Fonts (Never edit, they are good as they currently are)
            ToontownGlobals.SellbotHQ:
            ToontownGlobals.getSuitFont(),
            ToontownGlobals.SellbotFactoryExt:
            ToontownGlobals.getSuitFont(),
            ToontownGlobals.SellbotFactoryInt:
            ToontownGlobals.getSuitFont(),
            ToontownGlobals.SellbotMegaCorpInt:
            ToontownGlobals.getSuitFont(),
            ToontownGlobals.CashbotHQ:
            ToontownGlobals.getSuitFont(),
            ToontownGlobals.LawbotHQ:
            ToontownGlobals.getSuitFont(),
            ToontownGlobals.BossbotHQ:
            ToontownGlobals.getSuitFont()
        }
        self.zone2fontcolor = {
            ToontownGlobals.GoofySpeedway:
            VBase4(0.2, 0.6, 0.9, 1.0),
            ToontownGlobals.ToontownCentral:
            VBase4(0.9803921568627451, 0.8235294117647059, 0.0392156862745098,
                   1.0),
            ToontownGlobals.SillyStreet:
            VBase4(0.9803921568627451, 0.8235294117647059, 0.0392156862745098,
                   1.0),
            ToontownGlobals.LoopyLane:
            VBase4(0.9803921568627451, 0.8235294117647059, 0.0392156862745098,
                   1.0),
            ToontownGlobals.PunchlinePlace:
            VBase4(0.9803921568627451, 0.8235294117647059, 0.0392156862745098,
                   1.0),
            ToontownGlobals.DonaldsDock:
            VBase4(0.6901960784313725, 0.4274509803921569, 0.0549019607843137,
                   1.0),
            ToontownGlobals.BarnacleBoulevard:
            VBase4(0.6901960784313725, 0.4274509803921569, 0.0549019607843137,
                   1.0),
            ToontownGlobals.SeaweedStreet:
            VBase4(0.6901960784313725, 0.4274509803921569, 0.0549019607843137,
                   1.0),
            ToontownGlobals.LighthouseLane:
            VBase4(0.6901960784313725, 0.4274509803921569, 0.0549019607843137,
                   1.0),
            ToontownGlobals.DaisyGardens:
            VBase4(0.1647058823529412, 0.7490196078431373, 0.4509803921568627,
                   1.0),
            ToontownGlobals.ElmStreet:
            VBase4(0.1647058823529412, 0.7490196078431373, 0.4509803921568627,
                   1.0),
            ToontownGlobals.MapleStreet:
            VBase4(0.1647058823529412, 0.7490196078431373, 0.4509803921568627,
                   1.0),
            ToontownGlobals.OakStreet:
            VBase4(0.1647058823529412, 0.7490196078431373, 0.4509803921568627,
                   1.0),
            ToontownGlobals.MinniesMelodyland:
            VBase4(0.9294117647058824, 0.0196078431372549, 0.7333333333333333,
                   1.0),
            ToontownGlobals.AltoAvenue:
            VBase4(0.9294117647058824, 0.0196078431372549, 0.7333333333333333,
                   1.00),
            ToontownGlobals.BaritoneBoulevard:
            VBase4(0.9294117647058824, 0.0196078431372549, 0.7333333333333333,
                   1.0),
            ToontownGlobals.TenorTerrace:
            VBase4(0.9294117647058824, 0.0196078431372549, 0.7333333333333333,
                   1.0),
            ToontownGlobals.TheBrrrgh:
            VBase4(0.792156862745098, 0.8823529411764706, 1.0, 1.0),
            ToontownGlobals.WalrusWay:
            VBase4(0.792156862745098, 0.8823529411764706, 1.0, 1.0),
            ToontownGlobals.SleetStreet:
            VBase4(0.792156862745098, 0.8823529411764706, 1.0, 1.0),
            ToontownGlobals.PolarPlace:
            VBase4(0.792156862745098, 0.8823529411764706, 1.0, 1.0),
            ToontownGlobals.DonaldsDreamland:
            VBase4(0.4313725490196078, 0.196078431372549, 0.7607843137254902,
                   1.0),
            ToontownGlobals.LullabyLane:
            VBase4(0.4313725490196078, 0.196078431372549, 0.7607843137254902,
                   1.0),
            ToontownGlobals.PajamaPlace:
            VBase4(0.4313725490196078, 0.196078431372549, 0.7607843137254902,
                   1.0),
            ToontownGlobals.OutdoorZone:
            VBase4(0.4313725490196078, 0.196078431372549, 0.7607843137254902,
                   1.0),
            ToontownGlobals.GolfZone:
            VBase4(0.2, 0.6, 0.9, 1.0),
            ToontownGlobals.SellbotHQ:
            (0.0056754360035471, 0.0666666666666667, 0.9607843137254902, 1.0),
            ToontownGlobals.SellbotFactoryExt:
            (0.0056754360035471, 0.0666666666666667, 0.9607843137254902, 1.0),
            ToontownGlobals.SellbotFactoryInt:
            (0.0056754360035471, 0.0666666666666667, 0.9607843137254902, 1.0),
            ToontownGlobals.SellbotMegaCorpInt:
            ((0.0056754360035471, 0.0666666666666667, 0.9607843137254902,
              1.0)),
            ToontownGlobals.CashbotHQ: (0.2274509803921569, 0.7215686274509804,
                                        0.0509803921568627, 1.0),
            ToontownGlobals.LawbotHQ: (0.1294117647058824, 0.2549019607843137,
                                       0.8705882352941176, 1.0),
            ToontownGlobals.BossbotHQ: (0.7215686274509804, 0.5098039215686275,
                                        0.2509803921568627, 1.0)
        }

        self.waitBar['range'] = range
        self.title['text'] = label
        self.loadingScreenTex = self.zone2picture.get(
            ZoneUtil.getBranchZone(zoneId), self.defaultTex)
        self.loadingScreenFont = self.zone2font.get(
            ZoneUtil.getBranchZone(zoneId), self.defaultFont)
        self.loadingScreenFontColor = self.zone2fontcolor.get(
            ZoneUtil.getBranchZone(zoneId), self.defaultFontColor)
        self.background = loader.loadTexture(self.loadingScreenTex)
        self.__count = 0
        self.__expectedCount = range
        if gui:
            if base.localAvatarStyle:
                from src.toontown.toon import Toon
                wave = {'emote': 'wave', 'frame': 25}
                shrug = {'emote': 'shrug', 'frame': 30}
                duck = {'emote': 'duck', 'frame': 40}
                up = {'emote': 'up', 'frame': 60}
                pushup = {'emote': 'down', 'frame': 23}
                bow = {'emote': 'bow', 'frame': 45}
                bored = {'emote': 'bored', 'frame': 135}
                run = {'emote': 'run', 'frame': 7}
                victory = {'emote': 'victory', 'frame': 10}
                applause = {'emote': 'applause', 'frame': 23}
                dust = {'emote': 'sprinkle-dust', 'frame': 40}
                hypno = {'emote': 'hypnotize', 'frame': 25}
                cringe = {'emote': 'cringe', 'frame': 25}
                emotelist = [
                    wave, shrug, duck, up, pushup, bow, bored, run, victory,
                    applause, dust, hypno, cringe
                ]
                emotechosen = random.choice(emotelist)
                self.toon = Toon.Toon()
                self.toon.setDNA(base.localAvatarStyle)
                self.toon.pose(emotechosen['emote'], emotechosen['frame'])
                self.toon.getGeomNode().setDepthWrite(1)
                self.toon.getGeomNode().setDepthTest(1)
                self.toon.setHpr(205, 0, 0)
                self.toon.setScale(0.18)
                self.toon.setPos(base.a2dBottomRight.getX() / 1.25, 0, -0.034)
                self.toon.reparentTo(self.waitBar)
            self.waitBar['frameSize'] = (base.a2dLeft + (base.a2dRight / 4.95),
                                         base.a2dRight -
                                         (base.a2dRight / 4.95), -0.03, 0.03)
            self.title['text_font'] = self.loadingScreenFont
            self.title['text_fg'] = self.loadingScreenFontColor
            self.title.reparentTo(base.a2dpBottomLeft,
                                  LOADING_SCREEN_SORT_INDEX)
            self.title.setPos(base.a2dRight / 5, 0, 0.235)
            self.tip['text'] = self.getTip(tipCategory)
            self.gui.setPos(0, -0.1, 0)
            self.gui.reparentTo(aspect2d, LOADING_SCREEN_SORT_INDEX)
            self.gui.setTexture(self.background, 1)
            #if self.loadingScreenTex == self.defaultTex:
            #    self.logo.reparentTo(base.a2dpTopCenter, LOADING_SCREEN_SORT_INDEX)
            self.logo.reparentTo(base.a2dpTopCenter, LOADING_SCREEN_SORT_INDEX)
        else:
            self.title.reparentTo(base.a2dpBottomLeft,
                                  LOADING_SCREEN_SORT_INDEX)
            self.gui.reparentTo(hidden)
            self.logo.reparentTo(hidden)
        self.tip.reparentTo(base.a2dpBottomCenter, LOADING_SCREEN_SORT_INDEX)
        self.waitBar.reparentTo(base.a2dpBottomCenter,
                                LOADING_SCREEN_SORT_INDEX)
        self.waitBar.update(self.__count)
 def loadBattleAnims(self):
     Toon.loadBattleAnims()
 def load(self):
     self.notify.debug('BASE: load')
     Toon.loadMinigameAnims()
    def load(self):
        CogdoGameMovie.load(self)
        self.toonDNA = ToonDNA.ToonDNA()
        self.toonDNA.newToonFromProperties('dss', 'ss', 'm', 'm', 2, 0, 2, 2,
                                           1, 8, 1, 8, 1, 14, 0)
        self.toonHead = Toon.Toon()
        self.toonHead.setDNA(self.toonDNA)
        self.makeSuit('sc')
        self.toonHead.getGeomNode().setDepthWrite(1)
        self.toonHead.getGeomNode().setDepthTest(1)
        self.toonHead.loop('neutral')
        self.toonHead.setPosHprScale(-0.73, 0, -1.27, 180, 0, 0, 0.18, 0.18,
                                     0.18)
        self.toonHead.reparentTo(hidden)
        self.toonHead.startBlink()
        self.cogHead = Suit.Suit()
        self.cogDNA = SuitDNA.SuitDNA()
        self.cogDNA.newSuit('le')
        self.cogHead.setDNA(self.cogDNA)
        self.cogHead.getGeomNode().setDepthWrite(1)
        self.cogHead.getGeomNode().setDepthTest(1)
        self.cogHead.loop('neutral')
        self.cogHead.setPosHprScale(-0.74, 0, -1.79, 180, 0, 0, 0.12, 0.14,
                                    0.14)
        self.cogHead.reparentTo(hidden)
        self.cogHead.nametag3d.hide()
        self.clipPlane = self.toonHead.attachNewNode(PlaneNode('clip'))
        self.clipPlane.node().setPlane(Plane(0, 0, 1, 0))
        self.clipPlane.setPos(0, 0, 2.45)
        audioMgr = base.cogdoGameAudioMgr
        self._cogDialogueSfx = audioMgr.createSfx('cogDialogue')
        self._toonDialogueSfx = audioMgr.createSfx('toonDialogue')

        def start():
            camera.wrtReparentTo(render)
            self._startUpdateTask()

        def end():
            self._stopUpdateTask()

        introDuration = Globals.Gameplay.IntroDurationSeconds
        dialogue = TTLocalizer.CogdoFlyingIntroMovieDialogue
        waitDur = introDuration / len(dialogue)
        flyDur = introDuration - waitDur * 0.5
        flyThroughIval = Parallel(
            camera.posInterval(flyDur,
                               self._exit.getPos(render) + Point3(0, -22, 1),
                               blendType='easeInOut'),
            camera.hprInterval(flyDur, Point3(0, 5, 0), blendType='easeInOut'))
        self._ival = Sequence(
            Func(start),
            Parallel(
                flyThroughIval,
                Sequence(
                    Func(self.displayLine, 'cog',
                         self._getRandomLine(dialogue[0])), Wait(waitDur),
                    Func(self.displayLine, 'toon',
                         self._getRandomLine(dialogue[1])), Wait(waitDur),
                    Func(self.displayLine, 'cog',
                         self._getRandomLine(dialogue[2])), Wait(waitDur))),
            Func(end))
Ejemplo n.º 30
0
    def load(self):
        CogdoGameMovie.load(self)
        self.toonDNA = ToonDNA.ToonDNA()
        self.toonDNA.newToonFromProperties('dss', 'ss', 'm', 'm', 2, 0, 2, 2,
                                           1, 8, 1, 8, 1, 14, 0)
        self.toonHead = Toon.Toon()
        self.toonHead.setDNA(self.toonDNA)
        self.makeSuit('sc')
        self.toonHead.getGeomNode().setDepthWrite(1)
        self.toonHead.getGeomNode().setDepthTest(1)
        self.toonHead.loop('neutral')
        self.toonHead.setPosHprScale(-0.73, 0, -1.27, 180, 0, 0, 0.18, 0.18,
                                     0.18)
        self.toonHead.reparentTo(hidden)
        self.toonHead.startBlink()
        self.cogHead = Suit.Suit()
        self.cogDNA = SuitDNA.SuitDNA()
        self.cogDNA.newSuit('ms')
        self.cogHead.setDNA(self.cogDNA)
        self.cogHead.getGeomNode().setDepthWrite(1)
        self.cogHead.getGeomNode().setDepthTest(1)
        self.cogHead.loop('neutral')
        self.cogHead.setPosHprScale(-0.73, 0, -1.46, 180, 0, 0, 0.14, 0.14,
                                    0.14)
        self.cogHead.reparentTo(hidden)
        self.cogHead.nametag3d.hide()
        self.clipPlane = self.toonHead.attachNewNode(PlaneNode('clip'))
        self.clipPlane.node().setPlane(Plane(0, 0, 1, 0))
        self.clipPlane.setPos(0, 0, 2.45)
        audioMgr = base.cogdoGameAudioMgr
        self._cogDialogueSfx = audioMgr.createSfx('cogDialogue')
        self._toonDialogueSfx = audioMgr.createSfx('toonDialogue')
        suitData = Globals.SuitData[Globals.SuitTypes.Boss]
        bossSuit = Suit.Suit()
        d = SuitDNA.SuitDNA()
        d.newSuit(suitData['dnaName'])
        bossSuit.setDNA(d)
        bossSuit.nametag3d.stash()
        bossSuit.nametag.destroy()
        bossSuit.setScale(suitData['scale'])
        bossSuit.loop('neutral')
        bossSuit.reparentTo(render)
        bossSuit.setPos(self._exit, -5, -5, 0)
        bossSuit.lookAt(self._exit)
        self._suits.append(bossSuit)
        self._camHelperNode = NodePath('CamHelperNode')
        self._camHelperNode.reparentTo(render)
        dialogue = TTLocalizer.CogdoMazeIntroMovieDialogue
        introDuration = Globals.IntroDurationSeconds
        waitDuration = introDuration / len(dialogue)

        def start():
            camera.wrtReparentTo(render)
            self._exit.open(animate=False)

        def showBoss():
            self._setCamTarget(bossSuit,
                               20,
                               offset=Point3(0, 0, 7),
                               angle=Point3(0, 15, 0))
            bossSuit.loop('victory')
            self._state = 1

        def showExit():
            self._setCamTarget(self._exit,
                               10,
                               offset=Point3(0, 0, 0),
                               angle=Point3(0, 60, 0))
            self._exit.close()
            self._state = 2

        showExitIval = Parallel(
            camera.posInterval(waitDuration * 0.5, (10, -25, 20),
                               other=self._exit,
                               blendType='easeInOut'),
            Sequence(
                Wait(waitDuration * 0.25), Func(bossSuit.play, 'effort'),
                camera.hprInterval(waitDuration * 0.25, (30, -30, 0),
                                   blendType='easeInOut'),
                Func(self._exit.close), Wait(waitDuration * 0.5)))

        def showWaterCooler():
            wc = self._maze.getWaterCoolers()[0]
            self._setCamTarget(wc, 25, angle=Point3(-30, 60, 0))
            camera.wrtReparentTo(self._camHelperNode)
            self._state = 3

        def end():
            self._stopUpdateTask()

        self._ival = Sequence(
            Func(start),
            Func(self.displayLine, 'toon', self._getRandomLine(dialogue[0])),
            showExitIval, Func(showWaterCooler),
            Func(self.displayLine, 'toon', self._getRandomLine(dialogue[1])),
            Wait(waitDuration), Func(showBoss),
            bossSuit.hprInterval(1.0,
                                 bossSuit.getHpr() + Point3(180, 0, 0),
                                 blendType='easeInOut'),
            Func(self.displayLine, 'toon', self._getRandomLine(dialogue[2])),
            Wait(waitDuration - 1.0), Func(end))
        self._startUpdateTask()
Ejemplo n.º 31
0
 def load(self):
     Place.Place.load(self)
     Toon.loadBattleAnims()
 def loadBattleAnims(self):
     Toon.loadTutorialBattleAnims()
Ejemplo n.º 33
0
 def __doToggleTrueFriends(self):
     messenger.send("wakeup")
     settings["trueFriends"] = not settings["trueFriends"]
     Toon.reconsiderAllToonsUnderstandable()
     self.settingsChanged = 1
     self.__setTrueFriendsButton()
Ejemplo n.º 34
0
    def load(self):
        gui = loader.loadModel('phase_3/models/gui/tt_m_gui_mat_mainGui')
        gui.flattenMedium()
        guiAcceptUp = gui.find('**/tt_t_gui_mat_okUp')
        guiAcceptUp.flattenStrong()
        guiAcceptDown = gui.find('**/tt_t_gui_mat_okDown')
        guiAcceptDown.flattenStrong()
        guiCancelUp = gui.find('**/tt_t_gui_mat_closeUp')
        guiCancelUp.flattenStrong()
        guiCancelDown = gui.find('**/tt_t_gui_mat_closeDown')
        guiCancelDown.flattenStrong()
        guiNextUp = gui.find('**/tt_t_gui_mat_nextUp')
        guiNextUp.flattenStrong()
        guiNextDown = gui.find('**/tt_t_gui_mat_nextDown')
        guiNextDown.flattenStrong()
        guiNextDisabled = gui.find('**/tt_t_gui_mat_nextDisabled')
        guiNextDisabled.flattenStrong()
        skipTutorialUp = gui.find('**/tt_t_gui_mat_skipUp')
        skipTutorialUp.flattenStrong()
        skipTutorialDown = gui.find('**/tt_t_gui_mat_skipDown')
        skipTutorialDown.flattenStrong()
        rotateUp = gui.find('**/tt_t_gui_mat_arrowRotateUp')
        rotateUp.flattenStrong()
        rotateDown = gui.find('**/tt_t_gui_mat_arrowRotateDown')
        rotateDown.flattenStrong()
        self.guiTopBar = DirectFrame(relief=None,
                                     text=TTLocalizer.CreateYourToon,
                                     text_font=ToontownGlobals.getSignFont(),
                                     text_fg=(0.0, 0.65, 0.35, 1),
                                     text_scale=0.18,
                                     text_pos=(0, -0.03),
                                     pos=(0, 0, 0.86))
        self.guiTopBar.hide()
        self.guiBottomBar = DirectFrame(relief=None,
                                        image_scale=(1.25, 1, 1),
                                        pos=(0.01, 0, -0.86))
        self.guiBottomBar.hide()
        self.guiCheckButton = DirectButton(
            parent=self.guiBottomBar,
            relief=None,
            image=(guiAcceptUp, guiAcceptDown, guiAcceptUp, guiAcceptDown),
            image_scale=halfButtonScale,
            image1_scale=halfButtonHoverScale,
            image2_scale=halfButtonHoverScale,
            pos=(1.165, 0, -0.018),
            command=self.__handleNext,
            text=('', TTLocalizer.MakeAToonDone, TTLocalizer.MakeAToonDone),
            text_font=ToontownGlobals.getInterfaceFont(),
            text_scale=0.08,
            text_align=TextNode.ARight,
            text_pos=(0.075, 0.13),
            text_fg=(1, 1, 1, 1),
            text_shadow=(0, 0, 0, 1))
        self.guiCheckButton.setPos(-0.13, 0, 0.13)
        self.guiCheckButton.reparentTo(base.a2dBottomRight)
        self.guiCheckButton.hide()
        self.guiCancelButton = DirectButton(
            parent=self.guiBottomBar,
            relief=None,
            image=(guiCancelUp, guiCancelDown, guiCancelUp, guiCancelDown),
            image_scale=halfButtonScale,
            image1_scale=halfButtonHoverScale,
            image2_scale=halfButtonHoverScale,
            pos=(-1.179, 0, -0.011),
            command=self.__handleCancel,
            text=('', TTLocalizer.MakeAToonCancel,
                  TTLocalizer.MakeAToonCancel),
            text_font=ToontownGlobals.getInterfaceFont(),
            text_scale=TTLocalizer.MATguiCancelButton,
            text_pos=(0, 0.115),
            text_fg=(1, 1, 1, 1),
            text_shadow=(0, 0, 0, 1))
        self.guiCancelButton.setPos(0.13, 0, 0.13)
        self.guiCancelButton.reparentTo(base.a2dBottomLeft)
        self.guiCancelButton.hide()
        self.guiNextButton = DirectButton(
            parent=self.guiBottomBar,
            relief=None,
            image=(guiNextUp, guiNextDown, guiNextUp, guiNextDisabled),
            image_scale=(0.3, 0.3, 0.3),
            image1_scale=(0.35, 0.35, 0.35),
            image2_scale=(0.35, 0.35, 0.35),
            pos=(1.165, 0, -0.018),
            command=self.__handleNext,
            text=('', TTLocalizer.MakeAToonNext, TTLocalizer.MakeAToonNext,
                  ''),
            text_font=ToontownGlobals.getInterfaceFont(),
            text_scale=TTLocalizer.MATguiNextButton,
            text_pos=(0, 0.115),
            text_fg=(1, 1, 1, 1),
            text_shadow=(0, 0, 0, 1))
        self.guiNextButton.setPos(-0.13, 0, 0.13)
        self.guiNextButton.reparentTo(base.a2dBottomRight)
        self.guiNextButton.hide()
        self.guiLastButton = DirectButton(
            parent=self.guiBottomBar,
            relief=None,
            image=(guiNextUp, guiNextDown, guiNextUp, guiNextDown),
            image3_color=Vec4(0.5, 0.5, 0.5, 0.75),
            image_scale=(-0.3, 0.3, 0.3),
            image1_scale=(-0.35, 0.35, 0.35),
            image2_scale=(-0.35, 0.35, 0.35),
            pos=(0.825, 0, -0.018),
            command=self.__handleLast,
            text=('', TTLocalizer.MakeAToonLast, TTLocalizer.MakeAToonLast,
                  ''),
            text_font=ToontownGlobals.getInterfaceFont(),
            text_scale=0.08,
            text_pos=(0, 0.115),
            text_fg=(1, 1, 1, 1),
            text_shadow=(0, 0, 0, 1))
        self.guiLastButton.setPos(-0.37, 0, 0.13)
        self.guiLastButton.reparentTo(base.a2dBottomRight)
        self.guiLastButton.hide()
        self.rotateLeftButton = DirectButton(parent=self.guiBottomBar,
                                             relief=None,
                                             image=(rotateUp, rotateDown,
                                                    rotateUp, rotateDown),
                                             image_scale=(-0.4, 0.4, 0.4),
                                             image1_scale=(-0.5, 0.5, 0.5),
                                             image2_scale=(-0.5, 0.5, 0.5),
                                             pos=(-0.355, 0, 0.36))
        self.rotateLeftButton.flattenMedium()
        self.rotateLeftButton.reparentTo(base.a2dBottomCenter)
        self.rotateLeftButton.hide()
        self.rotateLeftButton.bind(DGG.B1PRESS, self.rotateToonLeft)
        self.rotateLeftButton.bind(DGG.B1RELEASE, self.stopToonRotateLeftTask)
        self.rotateRightButton = DirectButton(parent=self.guiBottomBar,
                                              relief=None,
                                              image=(rotateUp, rotateDown,
                                                     rotateUp, rotateDown),
                                              image_scale=(0.4, 0.4, 0.4),
                                              image1_scale=(0.5, 0.5, 0.5),
                                              image2_scale=(0.5, 0.5, 0.5),
                                              pos=(0.355, 0, 0.36))
        self.rotateRightButton.flattenStrong()
        self.rotateRightButton.reparentTo(base.a2dBottomCenter)
        self.rotateRightButton.hide()
        self.rotateRightButton.bind(DGG.B1PRESS, self.rotateToonRight)
        self.rotateRightButton.bind(DGG.B1RELEASE,
                                    self.stopToonRotateRightTask)
        gui.removeNode()
        self.roomDropActor = Actor()
        self.roomDropActor.loadModel('phase_3/models/makeatoon/roomAnim_model')
        self.roomDropActor.loadAnims(
            {'drop': 'phase_3/models/makeatoon/roomAnim_roomDrop'})
        self.roomDropActor.reparentTo(render)
        self.dropJoint = self.roomDropActor.find('**/droppingJoint')
        self.roomSquishActor = Actor()
        self.roomSquishActor.loadModel(
            'phase_3/models/makeatoon/roomAnim_model')
        self.roomSquishActor.loadAnims(
            {'squish': 'phase_3/models/makeatoon/roomAnim_roomSquish'})
        self.roomSquishActor.reparentTo(render)
        self.squishJoint = self.roomSquishActor.find('**/scalingJoint')
        self.propSquishActor = Actor()
        self.propSquishActor.loadModel(
            'phase_3/models/makeatoon/roomAnim_model')
        self.propSquishActor.loadAnims(
            {'propSquish': 'phase_3/models/makeatoon/roomAnim_propSquish'})
        self.propSquishActor.reparentTo(render)
        self.propSquishActor.pose('propSquish', 0)
        self.propJoint = self.propSquishActor.find('**/propJoint')
        self.spotlightActor = Actor()
        self.spotlightActor.loadModel(
            'phase_3/models/makeatoon/roomAnim_model')
        self.spotlightActor.loadAnims({
            'spotlightShake':
            'phase_3/models/makeatoon/roomAnim_spotlightShake'
        })
        self.spotlightActor.reparentTo(render)
        self.spotlightJoint = self.spotlightActor.find('**/spotlightJoint')
        ee = DirectFrame(pos=(-1, 1, 1),
                         frameSize=(-.01, 0.01, -.01, 0.01),
                         frameColor=(0, 0, 0, 0.05),
                         state='normal')
        ee.bind(DGG.B1PRESS, lambda x, ee=ee: self.toggleSlide())
        self.eee = ee
        self.room = loader.loadModel(
            'phase_3/models/makeatoon/tt_m_ara_mat_room')
        self.room.flattenMedium()
        self.genderWalls = self.room.find('**/genderWalls')
        self.genderWalls.flattenStrong()
        self.genderProps = self.room.find('**/genderProps')
        self.genderProps.flattenStrong()
        self.bodyWalls = self.room.find('**/bodyWalls')
        self.bodyWalls.flattenStrong()
        self.bodyProps = self.room.find('**/bodyProps')
        self.bodyProps.flattenStrong()
        self.colorWalls = self.room.find('**/colorWalls')
        self.colorWalls.flattenStrong()
        self.colorProps = self.room.find('**/colorProps')
        self.colorProps.flattenStrong()
        self.clothesWalls = self.room.find('**/clothWalls')
        self.clothesWalls.flattenMedium()
        self.clothesProps = self.room.find('**/clothProps')
        self.clothesProps.flattenMedium()
        self.nameWalls = self.room.find('**/nameWalls')
        self.nameWalls.flattenStrong()
        self.nameProps = self.room.find('**/nameProps')
        self.nameProps.flattenStrong()
        self.background = self.room.find('**/background')
        self.background.flattenStrong()
        self.background.reparentTo(render)
        self.floor = self.room.find('**/floor')
        self.floor.flattenStrong()
        self.floor.reparentTo(render)
        self.spotlight = self.room.find('**/spotlight')
        self.spotlight.reparentTo(self.spotlightJoint)
        self.spotlight.setColor(1, 1, 1, 0.3)
        self.spotlight.setPos(1.18, -1.27, 0.41)
        self.spotlight.setScale(2.6)
        self.spotlight.setHpr(0, 0, 0)
        smokeSeqNode = SequenceNode('smoke')
        smokeModel = loader.loadModel(
            'phase_3/models/makeatoon/tt_m_ara_mat_smoke')
        smokeFrameList = list(smokeModel.findAllMatches('**/smoke_*'))
        smokeFrameList.reverse()
        for smokeFrame in smokeFrameList:
            smokeSeqNode.addChild(smokeFrame.node())

        smokeSeqNode.setFrameRate(12)
        self.smoke = render.attachNewNode(smokeSeqNode)
        self.smoke.setScale(1, 1, 0.75)
        self.smoke.hide()
        if self.warp:
            self.dna = ToonDNA.ToonDNA()
            self.dna.makeFromNetString(self.namelessPotAv.dna)
            self.toon = Toon.Toon()
            self.toon.setDNA(self.dna)
            self.toon.useLOD(1000)
            self.toon.setNameVisible(0)
            self.toon.startBlink()
            self.toon.startLookAround()
        self.gs.load()
        self.bs.load()
        self.cos.load()
        self.cls.load()
        self.ns.load()
        self.music = base.loadMusic('phase_3/audio/bgm/create_a_toon.ogg')
        self.musicVolume = base.config.GetFloat('makeatoon-music-volume', 1)
        self.sfxVolume = base.config.GetFloat('makeatoon-sfx-volume', 1)
        self.soundBack = base.loadSfx(
            'phase_3/audio/sfx/GUI_create_toon_back.ogg')
        self.crashSounds = map(base.loadSfx, [
            'phase_3/audio/sfx/tt_s_ara_mat_crash_boing.ogg',
            'phase_3/audio/sfx/tt_s_ara_mat_crash_glassBoing.ogg',
            'phase_3/audio/sfx/tt_s_ara_mat_crash_wood.ogg',
            'phase_3/audio/sfx/tt_s_ara_mat_crash_woodBoing.ogg',
            'phase_3/audio/sfx/tt_s_ara_mat_crash_woodGlass.ogg'
        ])
 def loadBattleAnims(self):
     Toon.loadTutorialBattleAnims()
 def unloadBattleAnims(self):
     Toon.unloadTutorialBattleAnims()
 def unload(self):
     CogHQLoader.CogHQLoader.unload(self)
     Toon.unloadSellbotHQAnims()