def hitByDrop(self):
     if self.equippedGag is not None and not self.hints['squashed']:
         self._guiMgr.setMessageTemporary(TTLocalizer.CogdoMazeSquashHint, Globals.HintTimeout)
         self.hints['squashed'] = True
     self._hitByDropSfx.play()
     CogdoMazePlayer.hitByDrop(self)
     return
 def __init__(self, id, toon, game, guiMgr):
     CogdoMazePlayer.__init__(self, id, toon)
     self.disableGagCollision()
     self.game = game
     self.maze = self.game.maze
     self._guiMgr = guiMgr
     self.cameraMgr = CogdoMazeCameraManager(self.toon, self.maze, camera, render)
     self._proximityRadius = self.maze.cellWidth * Globals.CameraRemoteToonRadius
     orthoDrive = OrthoDrive(Globals.ToonRunSpeed, maxFrameMove=self.maze.cellWidth / 2, customCollisionCallback=self.maze.doOrthoCollisions, wantSound=True)
     self.orthoWalk = OrthoWalk(orthoDrive)
     self._audioMgr = base.cogdoGameAudioMgr
     self._getMemoSfx = self._audioMgr.createSfx('getMemo', source=self.toon)
     self._waterCoolerFillSfx = self._audioMgr.createSfx('waterCoolerFill', source=self.toon)
     self._hitByDropSfx = self._audioMgr.createSfx('toonHitByDrop', source=self.toon)
     self._winSfx = self._audioMgr.createSfx('win')
     self._loseSfx = self._audioMgr.createSfx('lose')
     self.enabled = False
     self.pickupCount = 0
     self.numEntered = 0
     self.throwPending = False
     self.coolDownAfterHitInterval = Sequence(Wait(Globals.HitCooldownTime), Func(self.setInvulnerable, False), name='coolDownAfterHitInterval-%i' % self.toon.doId)
     self.invulnerable = False
     self.gagHandler = CollisionHandlerEvent()
     self.gagHandler.addInPattern('%fn-into-%in')
     self.exited = False
     self.hints = {'find': False,
      'throw': False,
      'squashed': False,
      'boss': False,
      'minion': False}
     self.accept('control', self.controlKeyPressed)
 def equipGag(self):
     CogdoMazePlayer.equipGag(self)
     self._waterCoolerFillSfx.play()
     messenger.send(Globals.WaterCoolerHideEventName, [])
     if not self.hints['throw']:
         self._guiMgr.setMessage(TTLocalizer.CogdoMazeThrowHint)
         self.hints['throw'] = True
 def enterDone(self):
     CogdoMazePlayer.enterDone(self)
     self._guiMgr.hideQuestArrow()
     self.ignore('control')
     self._guiMgr.setMessage('')
     if self.exited == False:
         self.lostMemos()
 def removeGag(self):
     if self.equippedGag is None:
         return
     CogdoMazePlayer.removeGag(self)
     self.throwPending = False
     messenger.send(Globals.WaterCoolerShowEventName, [])
     return
 def equipGag(self):
     CogdoMazePlayer.equipGag(self)
     self._waterCoolerFillSfx.play()
     messenger.send(Globals.WaterCoolerHideEventName, [])
     if not self.hints['throw']:
         self._guiMgr.setMessage(TTLocalizer.CogdoMazeThrowHint)
         self.hints['throw'] = True
 def removeGag(self):
     if self.equippedGag is None:
         return
     CogdoMazePlayer.removeGag(self)
     self.throwPending = False
     messenger.send(Globals.WaterCoolerShowEventName, [])
     return
 def enterDone(self):
     CogdoMazePlayer.enterDone(self)
     self._guiMgr.hideQuestArrow()
     self.ignore('control')
     self._guiMgr.setMessage('')
     if self.exited == False:
         self.lostMemos()
 def __init__(self, id, toon, game, guiMgr):
     CogdoMazePlayer.__init__(self, id, toon)
     self.disableGagCollision()
     self.game = game
     self.maze = self.game.maze
     self._guiMgr = guiMgr
     self.cameraMgr = CogdoMazeCameraManager(self.toon, self.maze, camera, render)
     self._proximityRadius = self.maze.cellWidth * Globals.CameraRemoteToonRadius
     orthoDrive = OrthoDrive(Globals.ToonRunSpeed, maxFrameMove=self.maze.cellWidth / 2, customCollisionCallback=self.maze.doOrthoCollisions, wantSound=True)
     self.orthoWalk = OrthoWalk(orthoDrive)
     self._audioMgr = base.cogdoGameAudioMgr
     self._getMemoSfx = self._audioMgr.createSfx('getMemo', source=self.toon)
     self._waterCoolerFillSfx = self._audioMgr.createSfx('waterCoolerFill', source=self.toon)
     self._hitByDropSfx = self._audioMgr.createSfx('toonHitByDrop', source=self.toon)
     self._winSfx = self._audioMgr.createSfx('win')
     self._loseSfx = self._audioMgr.createSfx('lose')
     self.enabled = False
     self.pickupCount = 0
     self.numEntered = 0
     self.throwPending = False
     self.coolDownAfterHitInterval = Sequence(Wait(Globals.HitCooldownTime), Func(self.setInvulnerable, False), name='coolDownAfterHitInterval-%i' % self.toon.doId)
     self.invulnerable = False
     self.gagHandler = CollisionHandlerEvent()
     self.gagHandler.addInPattern('%fn-into-%in')
     self.exited = False
     self.hints = {'find': False,
      'throw': False,
      'squashed': False,
      'boss': False,
      'minion': False}
     self.accept('control', self.controlKeyPressed)
 def hitByDrop(self):
     if self.equippedGag is not None and not self.hints['squashed']:
         self._guiMgr.setMessageTemporary(TTLocalizer.CogdoMazeSquashHint,
                                          Globals.HintTimeout)
         self.hints['squashed'] = True
     self._hitByDropSfx.play()
     CogdoMazePlayer.hitByDrop(self)
     return
 def destroy(self):
     self.toon.showName()
     self.ignoreAll()
     self.coolDownAfterHitInterval.clearToInitial()
     del self.coolDownAfterHitInterval
     del self._getMemoSfx
     del self._waterCoolerFillSfx
     del self._hitByDropSfx
     del self._winSfx
     self.orthoWalk.stop()
     self.orthoWalk.destroy()
     del self.orthoWalk
     CogdoMazePlayer.destroy(self)
 def destroy(self):
     self.toon.showName()
     self.ignoreAll()
     self.coolDownAfterHitInterval.clearToInitial()
     del self.coolDownAfterHitInterval
     del self._getMemoSfx
     del self._waterCoolerFillSfx
     del self._hitByDropSfx
     del self._winSfx
     self.orthoWalk.stop()
     self.orthoWalk.destroy()
     del self.orthoWalk
     CogdoMazePlayer.destroy(self)
Beispiel #13
0
 def initPlayers(self):
     for toonId in self.distGame.getToonIds():
         toon = self.distGame.getToon(toonId)
         if toon is not None:
             if toon.isLocal():
                 player = CogdoMazeLocalPlayer(len(self.players), base.localAvatar, self, self.guiMgr)
                 self.localPlayer = player
             else:
                 player = CogdoMazePlayer(len(self.players), toon)
             self._addPlayer(player)
 def createThrowGag(self, gag):
     throwGag = CogdoMazePlayer.createThrowGag(self, gag)
     collSphere = CollisionSphere(0, 0, 0, 0.5)
     collSphere.setTangible(0)
     name = Globals.GagCollisionName
     collNode = CollisionNode(name)
     collNode.setFromCollideMask(ToontownGlobals.PieBitmask)
     collNode.addSolid(collSphere)
     colNp = throwGag.attachNewNode(collNode)
     base.cTrav.addCollider(colNp, self.gagHandler)
     return throwGag
 def createThrowGag(self, gag):
     throwGag = CogdoMazePlayer.createThrowGag(self, gag)
     collSphere = CollisionSphere(0, 0, 0, 0.5)
     collSphere.setTangible(0)
     name = Globals.GagCollisionName
     collNode = CollisionNode(name)
     collNode.setFromCollideMask(ToontownGlobals.PieBitmask)
     collNode.addSolid(collSphere)
     colNp = throwGag.attachNewNode(collNode)
     base.cTrav.addCollider(colNp, self.gagHandler)
     return throwGag
 def enterHit(self, elapsedTime=0.0):
     CogdoMazePlayer.enterHit(self, elapsedTime)
     self.setInvulnerable(True)
 def exitNormal(self):
     CogdoMazePlayer.exitNormal(self)
     self.orthoWalk.stop()
 def exitHit(self):
     CogdoMazePlayer.exitHit(self)
     self.coolDownAfterHitInterval.clearToInitial()
     self.coolDownAfterHitInterval.start()
 def completeThrow(self):
     self.clearCollisions()
     CogdoMazePlayer.completeThrow(self)
 def showToonThrowingGag(self, heading, pos):
     self._guiMgr.clearMessage()
     return CogdoMazePlayer.showToonThrowingGag(self, heading, pos)
 def exitOff(self):
     CogdoMazePlayer.exitOff(self)
     self.toon.hideName()
 def exitDone(self):
     CogdoMazePlayer.exitDone(self)
 def enterNormal(self):
     CogdoMazePlayer.enterNormal(self)
     self.orthoWalk.start()
 def showToonThrowingGag(self, heading, pos):
     self._guiMgr.clearMessage()
     return CogdoMazePlayer.showToonThrowingGag(self, heading, pos)
 def exitNormal(self):
     CogdoMazePlayer.exitNormal(self)
     self.orthoWalk.stop()
 def enterHit(self, elapsedTime = 0.0):
     CogdoMazePlayer.enterHit(self, elapsedTime)
     self.setInvulnerable(True)
 def exitHit(self):
     CogdoMazePlayer.exitHit(self)
     self.coolDownAfterHitInterval.clearToInitial()
     self.coolDownAfterHitInterval.start()
 def exitReady(self):
     CogdoMazePlayer.enterReady(self)
 def enterOff(self):
     CogdoMazePlayer.enterOff(self)
 def enterReady(self):
     CogdoMazePlayer.enterReady(self)
     self.cameraMgr.enable()
 def exitOff(self):
     CogdoMazePlayer.exitOff(self)
     self.toon.hideName()
 def enterReady(self):
     CogdoMazePlayer.enterReady(self)
     self.cameraMgr.enable()
 def exitReady(self):
     CogdoMazePlayer.enterReady(self)
 def enterOff(self):
     CogdoMazePlayer.enterOff(self)
 def enterNormal(self):
     CogdoMazePlayer.enterNormal(self)
     self.orthoWalk.start()
 def completeThrow(self):
     self.clearCollisions()
     CogdoMazePlayer.completeThrow(self)
 def exitDone(self):
     CogdoMazePlayer.exitDone(self)