def setGameReady(self):
     self.notify.debug('setGameReady')
     if DistributedMinigame.setGameReady(self):
         return
     for avId in self.remoteAvIdList:
         toon = self.getAvatar(avId)
         if toon:
             toon.reparentTo(render)
             self.__placeToon(avId)
             toonSD = CatchGameToonSD.CatchGameToonSD(avId, self)
             self.toonSDs[avId] = toonSD
             toonSD.load()
             toonSD.enter()
             toonSD.fsm.request('normal')
             toon.startSmooth()
示例#2
0
 def setGameReady(self):
     if not self.hasLocalToon:
         return
     self.notify.debug('setGameReady')
     if DistributedMinigame.setGameReady(self):
         return
     headCollNP = base.localAvatar.find('**/catchHeadCollNode')
     if headCollNP and not headCollNP.isEmpty():
         headCollNP.hide()
     for avId in self.remoteAvIdList:
         toon = self.getAvatar(avId)
         if toon:
             toon.reparentTo(render)
             self.__placeToon(avId)
             toonSD = CatchGameToonSD.CatchGameToonSD(avId, self)
             self.toonSDs[avId] = toonSD
             toonSD.load()
             toonSD.enter()
             toonSD.fsm.request('normal')
             toon.startSmooth()
示例#3
0
    def load(self):
        self.notify.debug('load')
        DistributedMinigame.load(self)
        self.defineConstants()
        groundModels = [
            'phase_4/models/minigames/treehouse_2players',
            'phase_4/models/minigames/treehouse_2players',
            'phase_4/models/minigames/treehouse_3players',
            'phase_4/models/minigames/treehouse_4players'
        ]
        index = self.getNumPlayers() - 1
        self.ground = loader.loadModel(groundModels[index])
        self.ground.setHpr(180, -90, 0)
        self.dropShadow = loader.loadModel('phase_3/models/props/drop_shadow')
        self.dropObjModels = {}
        for objType in DropObjectTypes:
            if objType.name not in ['anvil', self.fruitName]:
                continue
            model = loader.loadModel(objType.modelPath)
            self.dropObjModels[objType.name] = model
            modelScales = {
                'apple': 0.7,
                'orange': 0.7,
                'pear': 0.5,
                'coconut': 0.7,
                'watermelon': 0.6,
                'pineapple': 0.45
            }
            if objType.name in modelScales:
                model.setScale(modelScales[objType.name])
            if objType == Name2DropObjectType['pear']:
                model.setZ(-.6)
            if objType == Name2DropObjectType['coconut']:
                model.setP(180)
            if objType == Name2DropObjectType['watermelon']:
                model.setH(135)
                model.setZ(-.5)
            if objType == Name2DropObjectType['pineapple']:
                model.setZ(-1.7)
            if objType == Name2DropObjectType['anvil']:
                model.setZ(-self.ObjRadius)
            model.flattenMedium()

        self.music = base.loadMusic('phase_4/audio/bgm/MG_toontag.ogg')
        self.sndGoodCatch = base.loadSfx(
            'phase_4/audio/sfx/SZ_DD_treasure.ogg')
        self.sndOof = base.loadSfx('phase_4/audio/sfx/MG_cannon_hit_dirt.ogg')
        self.sndAnvilLand = base.loadSfx(
            'phase_4/audio/sfx/AA_drop_anvil_miss.ogg')
        self.sndPerfect = base.loadSfx('phase_4/audio/sfx/ring_perfect.ogg')
        self.toonSDs = {}
        avId = self.localAvId
        toonSD = CatchGameToonSD.CatchGameToonSD(avId, self)
        self.toonSDs[avId] = toonSD
        toonSD.load()
        if self.WantSuits:
            suitTypes = ['f', 'tm', 'pp', 'dt']
            self.suits = []
            for type in suitTypes:
                suit = Suit.Suit()
                d = SuitDNA.SuitDNA()
                d.newSuit(type)
                suit.setDNA(d)
                suit.nametag3d.stash()
                suit.nametag.destroy()
                suit.pose('walk', 0)
                self.suits.append(suit)

        self.__textGen = TextNode('ringGame')
        self.__textGen.setFont(ToontownGlobals.getSignFont())
        self.__textGen.setAlign(TextNode.ACenter)
        self.introMovie = self.getIntroMovie()