def __init__(self, radarGui):
     FSM.__init__(self, 'RadarZoom')
     self.radarGui = radarGui
     self.zoomOutSfx = loadSfx(SoundGlobals.SFX_GUI_ZOOM_OUT)
     self.zoomInSfx = loadSfx(SoundGlobals.SFX_GUI_ZOOM_IN)
     self.levels = self.DEFAULT_LEVELS
     self.level = 0
 def __init__(self, air, parent, activityTuple):
     DistributedPartyActivityAI.__init__(self, air, parent, activityTuple)
     FSM.__init__(self, 'DistributedPartyTrampolineActivityAI')
     self.currentAv = 0
     self.record = 0
     self.jellybeans = []
     self.collected = 0
Exemplo n.º 3
0
    def __init__(self, name):
        FSM.__init__(self, name)
        PandaNode.__init__(self, name)
        DirectObject.__init__(self)

        self.active = True

        self.lastClickState = PGButton.SReady
        self.clickState = PGButton.SReady

        self.__hovering = False

        self.clickEvent = ''
        self.clickExtraArgs = []

        self.contents = NodePath.anyPath(self).attachNewNode('contents')

        # Create a MouseWatcherRegion:
        self.regionName = self.getUniqueName() + '-region'
        self.region = MouseWatcherRegion(self.regionName, 0, 0, 0, 0)
        base.mouseWatcherNode.addRegion(self.region)

        # Accept the mouse events:
        enterPattern = base.mouseWatcherNode.getEnterPattern()
        leavePattern = base.mouseWatcherNode.getLeavePattern()
        buttonDownPattern = base.mouseWatcherNode.getButtonDownPattern()
        buttonUpPattern = base.mouseWatcherNode.getButtonUpPattern()
        self.accept(enterPattern.replace('%r', self.regionName), self.__handleMouseEnter)
        self.accept(leavePattern.replace('%r', self.regionName), self.__handleMouseLeave)
        self.accept(buttonDownPattern.replace('%r', self.regionName), self.__handleMouseDown)
        self.accept(buttonUpPattern.replace('%r', self.regionName), self.__handleMouseUp)
 def __init__(self):
   FSM.__init__(self,'mouseControllerClass')
   
   self.cameraPosPivot = render.attachNewNode( 'cameraPivot' )
   self.cameraRotPivot = self.cameraPosPivot.attachNewNode( 'cameraPivot' )
   self.cameraRotPivot.setHpr( STARTUP_CAMERA_HPR )
   # show a point at the cameraPosPivot
   self.posPivotModel = loader.loadModel( CAMERACONTROLLER_PIVOT_MODEL )
   self.posPivotModel.reparentTo( self.cameraPosPivot )
   self.posPivotModel.setScale( 0.1 )
   
   self.pressedKeys = dict()
   moveSpeed = 25
   self.moveVec = Vec3(0)
   self.moveActions = {'w': Vec3(0,moveSpeed,0),
                       's': Vec3(0,-moveSpeed,0),
                       'a': Vec3(-moveSpeed,0,0),
                       'd': Vec3(moveSpeed,0,0),
                       'e': Vec3(0,0,moveSpeed),
                       'q': Vec3(0,0,-moveSpeed)}
   taskMgr.add(self.movePivotTask, 'movePivotTask')
   
   self.cameraHprResets = {'shift-1': Vec3(90,0,0),
                           'shift-2': Vec3(180,0,0),
                           'shift-3': Vec3(0,-90,0),
                           'shift-4': Vec3(-90,0,0),
                           'shift-5': Vec3(0,0,0),
                           'shift-6': Vec3(0,90,0),}
   
   self.backupSettings()
   
   self.request('Disabled')
   
   self.accept('shift-0', self.toggleLens)
 def __init__(self, cr):
     DistributedObject.__init__(self, cr)
     FSM.__init__(self, 'ToonfestBalloonFSM')
     self.avId = 0
     self.flightPathIndex = 0
     self.balloon = loader.loadModel('phase_6/models/events/tf_balloon')
     self.balloon.reparentTo(base.render)
     self.balloon.setPos(*ToonfestBalloonGlobals.BalloonBasePosition)
     self.balloon.setH(250)
     self.balloon.setScale(ToonfestBalloonGlobals.BalloonScale)
     self.cr.parentMgr.registerParent(ToontownGlobals.SPToonfestBalloon, self.balloon)
     cs = CollisionSphere(0, 0, 0, 9)
     cs.setTangible(False)
     self.collisionNP = self.balloon.find('**/basket_wall_collision')
     self.collisionNP.node().addSolid(cs)
     self.alec = NPCToons.createLocalNPC(91915)
     self.alec.setPos(0.7, 0.7, 0.4)
     self.alec.setH(150)
     self.alec.setScale(1 / ToonfestBalloonGlobals.BalloonScale)
     self.alec.initializeBodyCollisions('toon')
     self.alec.setPickable(0)
     self.alec.addActive()
     self.alec.startBlink()
     self.alec.loop('neutral')
     self.flightPaths = ToonfestBalloonGlobals.generateFlightPaths(self)
     self.toonFlightPaths = ToonfestBalloonGlobals.generateToonFlightPaths(self)
     self.speechSequence = ToonfestBalloonGlobals.generateSpeechSequence(self)
Exemplo n.º 6
0
 def __init__(self, name):
     FSM.__init__(self, name + "-FSM")
     self.objects = set()
     self.observing = 0
     self.sentry = None
     self.radarAxis = base.options.getLandMapRadarAxis()
     self.myUpdateTask = None
 def __init__(self, doneEvent = None):
     FSM.__init__(self, 'PartyPlannerFSM')
     DirectFrame.__init__(self)
     self.doneEvent = doneEvent
     self.stateArray = ['Off',
      'Welcome',
      'PartyEditor',
      'Guests',
      'Date',
      'Time',
      'Invitation',
      'Farewell']
     self.partyTime = base.cr.toontownTimeManager.getCurServerDateTime()
     self.partyNowTime = base.cr.toontownTimeManager.getCurServerDateTime()
     minutesToNextFifteen = 15 - self.partyTime.minute % 15
     self.cleanPartyTime = self.partyTime + timedelta(minutes=minutesToNextFifteen, seconds=-self.partyTime.second)
     self.partyTime = self.cleanPartyTime
     self.guests = []
     self.isPrivate = False
     self.selectedCalendarGuiDay = None
     self.gui = loader.loadModel('phase_4/models/parties/partyPlannerGUI')
     self.partyDuration = timedelta(hours=PartyGlobals.DefaultPartyDuration)
     self.timeTypeToMaxValue = {'hour': 23,
      'minute': 59}
     self.timeTypeToChangeAmount = {'hour': (1, -1),
      'minute': (15, -15),
      'ampm': (1, -1)}
     self.partyInfo = None
     self.asapMinuteRounding = base.config.GetInt('party-asap-minute-rounding', PartyGlobals.PartyPlannerAsapMinuteRounding)
     self.load()
     self.request('Welcome')
     return
    def __init__(self, brain, toonId):
        FSM.__init__(self, 'AttackFSM')
        self.brain = brain
        self.toonId = toonId

        self._walkingTo = None
        self._walkTask = None
 def __init__(self, air, parent, activityTuple):
     DistributedPartyActivityAI.__init__(self, air, parent, activityTuple)
     FSM.__init__(self, 'DistributedPartyActivityAI')
     self.state = 'Idle'
     self.parent = parent
     self.eventId = PartyGlobals.FireworkShows.Summer
     self.showStyle = random.randint(0, len(FireworkShows.shows[PartyGlobals.FireworkShows.Summer]) - 1)
 def __init__(self, cr):
     DistributedObject.DistributedObject.__init__(self, cr)
     FSM.__init__(self, 'Elevator_%s_FSM' % self.id)
     self.bldgRequest = None
     self.toonRequests = {}
     self.deferredSlots = []
     self.localToonOnBoard = 0
     self.boardedAvIds = {}
     self.openSfx = base.loadSfx('phase_5/audio/sfx/elevator_door_open.mp3')
     self.finalOpenSfx = None
     self.closeSfx = base.loadSfx('phase_5/audio/sfx/elevator_door_close.mp3')
     self.elevatorFSM = None
     self.finalCloseSfx = None
     self.elevatorPoints = ElevatorPoints
     self.type = ELEVATOR_NORMAL
     self.countdownTime = ElevatorData[self.type]['countdown']
     self.isSetup = 0
     self.__preSetupState = None
     self.bigElevator = 0
     self.offTrack = [None,
      None,
      None,
      None]
     self.boardingParty = None
     return
    def __init__(self):
        TelevisionScene.__init__(self, 'SellbotScene')
        FSM.__init__(self, 'SellbotScene')

        self.background = loader.loadModel('phase_9/models/cogHQ/SellbotHQLobby.bam')
        self.background.reparentTo(self)

        self.boss = BossCog()
        dna = SuitDNA()
        dna.newBossCog('s')
        self.boss.setDNA(dna)
        self.boss.reparentTo(self)
        self.boss.setPosHpr(6.36, 34.23, 0, 169.7, 0, 0)
        self.boss.loop('Bb_neutral')

        self.subordinates = []
        for name, (x, y, z, h, p, r) in (('mh', (-2.76, 16.68, 11.63, 195.95, 0, 0)),
                                         ('ms', (7.18, 14.98, 12.57, 153.43, 0, 0)),
                                         ('tf', (-1.55, 62.22, 15.27, 180, 0, 0))):
            subordinate = Suit.Suit()
            dna = SuitDNA()
            dna.newSuit(name)
            subordinate.setDNA(dna)
            subordinate.nametag.setNametag2d(None)
            subordinate.nametag.setNametag3d(None)
            subordinate.reparentTo(hidden)
            subordinate.setPosHpr(x, y, z, h, p, r)
            self.subordinates.append(subordinate)
    def __init__(self):
        NodePath.__init__(self, 'ExperimentTelevision')
        FSM.__init__(self, 'ExperimentTelevision')

        self.model = loader.loadModel('phase_4/models/events/blimp_tv.bam')
        self.model.reparentTo(self)

        self.staticTex = loader.loadTexture('phase_4/maps/blimp_tv_map_01.png')
        self.staticTex.setMinfilter(Texture.FTLinearMipmapLinear)
        self.staticTex.setMagfilter(Texture.FTLinear)

        self.chairmanTex = loader.loadTexture('phase_4/maps/blimp_tv_map_CM.png')
        self.chairmanTex.setMinfilter(Texture.FTLinearMipmapLinear)
        self.chairmanTex.setMagfilter(Texture.FTLinear)

        self.bossbotScene = BossbotScene()
        self.lawbotScene = LawbotScene()
        self.cashbotScene = CashbotScene()
        self.sellbotScene = SellbotScene()

        self.buffer = base.win.makeTextureBuffer('television', 960, 540)
        self.buffer.setSort(-1)

        self.camera = base.makeCamera(self.buffer)

        self.track = None
 def __init__(self, mgr, estate, toon, callback):
     FSM.__init__(self, 'LoadPetFSM')
     self.mgr = mgr
     self.estate = estate
     self.toon = toon
     self.callback = callback
     self.done = False
    def __init__(self):
        TelevisionScene.__init__(self, 'CashbotScene')
        FSM.__init__(self, 'CashbotScene')

        self.background = loader.loadModel('phase_10/models/cogHQ/EndVault.bam')
        self.background.reparentTo(self)

        self.boss = BossCog()
        dna = SuitDNA()
        dna.newBossCog('m')
        self.boss.setDNA(dna)
        self.boss.reparentTo(self)
        self.boss.setPosHpr(21.66, -117.47, 2.92, 228.01, 0, 0)
        self.boss.loop('Bb_neutral')

        self.subordinates = []
        for name, (x, y, z, h, p, r) in (('rb', (33.41, -135.55, 14.68, 251.57, 0, 0)),
                                         ('mb', (38.75, -126.4, 14.68, 210.96, 0, 0))):
            subordinate = Suit.Suit()
            dna = SuitDNA()
            dna.newSuit(name)
            subordinate.setDNA(dna)
            subordinate.nametag.setNametag2d(None)
            subordinate.nametag.setNametag3d(None)
            subordinate.reparentTo(hidden)
            subordinate.setPosHpr(x, y, z, h, p, r)
            self.subordinates.append(subordinate)
    def __init__(self, camera, parent):
        """Arguments:
        camera -- Camera to be used
        parent -- Aeroplane which the camera should follow
        """

        self.notifier = DirectNotify().newCategory("azure-camera")
        self.camera = camera
        self.parent = parent
        # This gets replaced by a NodePath with all available cameras as
        # children and plane node as parent in createCamNodes()
        self.cameras = None

        #if parent.__class__.__name__ is not "Aeroplane":
        if not isinstance(self.parent, Aeroplane):
            raise ParamError, "Parent must be an Aeroplane instance, " + \
                              "but is %s" % type(self.parent)

        FSM.__init__(self, "PlaneCamera: %s" % self.parent.name)
        DirectObject.__init__(self)

        self.cameras = self.parent.node.find("cameras")
        if self.cameras.isEmpty():
            self.createCamNodes()
        self.updateCamArray()

        self.sideview_direction = 0

        # Set up the default camera
        self.setView("ThirdPerson")
 def __init__(
         self,
         air,
         lawOfficeId,
         bldg,
         avIds,
         markerId=None,
         numSeats=4,
         antiShuffle=0,
         minLaff=0):
     DistributedElevatorFSMAI.DistributedElevatorFSMAI.__init__(
         self, air, bldg, numSeats, antiShuffle=antiShuffle, minLaff=minLaff)
     FSM.__init__(self, 'ElevatorFloor_%s_FSM' % self.id)
     self.type = ELEVATOR_STAGE
     self.countdownTime = ElevatorData[self.type]['countdown']
     self.lawOfficeId = lawOfficeId
     self.anyToonsBailed = 0
     self.avIds = avIds
     self.isEntering = 0
     self.isLocked = 0
     self.setLocked(0)
     self.wantState = None
     self.latchRoom = None
     self.setLatch(markerId)
     self.zoneId = bldg.zoneId
     return
Exemplo n.º 17
0
	def __init__(self, filename):
		FSM.__init__(self, 'Game')
		
		self.savedGame = PlayerFileParser("save.xml")
		self.playerData = self.savedGame.playerData
		self.playerData.setShip(shipDb[self.playerData.ship.name])
		
		self.crosshair = MouseCursor()
		self.crosshair.setMode(1)
		
		self.mainMenu = MainMenu()
		self.mainMenu.hide()
		self.mainMenu.buttons[0]["command"] = self.request
		self.mainMenu.buttons[0]["extraArgs"] = ["Space"]
		
		self.mainMenu.buttons[1]["command"] = self.request
		self.mainMenu.buttons[1]["extraArgs"] = ["Ground"]
		
		self.mainMenu.buttons[3]["command"] = self.quit
		self.mainMenu.buttons[3]["extraArgs"] = [0]
		
		
		#self.groundGui = GroundGui(self.playerData)
		#self.groundWorldManager = GroundManager(self)
		
		#self.spaceWorldManager = SpaceOdeWorldManager(self)
		
		self.prevState = None
		
		self.trans = Transitions(loader)
		
		self.request("IntroMainMenu")
Exemplo n.º 18
0
 def __init__(self, withinTTH=False):
     FSM.__init__(self, "FNAFBase")
     
     self.withinTTH = withinTTH
     
     if not self.withinTTH:
         base.cogFont = loader.loadFont('data/vtRemingtonPortable.ttf')
         base.accept("escape", self.handleEsc)
         base.accept("f9", self.screenshot)
         
     else:
         from toontown.toonbase import ToontownGlobals
         base.cogFont = ToontownGlobals.getSuitFont()
     
     base.level = Level()            
     base.timer = Timer()
     base.camControls = CameraControls()
     
     if not self.withinTTH:
         self.handleGotPhases()
     
     self.ray = CollisionRay()
     cNode = CollisionNode('mousePicker')
     cNode.addSolid(self.ray)
     cNode.setCollideMask(BitMask32(8))
     self.cnp = base.cam.attachNewNode(cNode)
     
     self.handler = CollisionHandlerQueue()
     self.clickTrav = CollisionTraverser('cTrav')
     self.clickTrav.addCollider(self.cnp, self.handler)
     base.accept('mouse1', self.__handleClick)
     
     self.night = 1
    def __init__(self):
        TelevisionScene.__init__(self, 'LawbotScene')
        FSM.__init__(self, 'LawbotScene')

        self.background = loader.loadModel('phase_11/models/lawbotHQ/LawbotCourtroom3.bam')
        self.background.reparentTo(self)

        self.boss = BossCog()
        dna = SuitDNA()
        dna.newBossCog('l')
        self.boss.setDNA(dna)
        self.boss.reparentTo(self)
        self.boss.setPosHpr(-3.7, 0, 71.24, 180, 0, 0)
        self.boss.loop('Bb_neutral')

        self.chairs = []
        chairModel = loader.loadModel('phase_11/models/lawbotHQ/LB_chairA.bam')
        for x, y, z, h, p, r in ((-16.5, 3.73, 81.58, 23.2, 0, 0),
                                 (8.5, 3.73, 81.58, 336.8, 0, 0)):
            chair = chairModel.copyTo(self)
            chair.setPosHpr(x, y, z, h, p, r)
            self.chairs.append(chair)
        chairModel.removeNode()

        self.couches = []
        couchModel = loader.loadModel('phase_11/models/lawbotHQ/LB_couchA.bam')
        for x, y, z, h, p, r in ((-16.28, 19.88, 81.58, 23.2, 0, 0),
                                 (8.55, 19.42, 81.58, 333.43, 0, 0)):
            couch = couchModel.copyTo(self)
            couch.setPosHpr(x, y, z, h, p, r)
            self.couches.append(couch)
        couchModel.removeNode()
    def __init__(self, name, zoneRadii, questStep):
        zoneRadii += [
            1000000]
        NodePath.__init__(self, name)
        FSM.__init__(self, '%sFSM' % name)
        ZoneLOD.__init__(self, self._QuestIndicatorNode__uniqueName, zoneRadii)
        self.questStep = questStep
        self.pendingOriginObj = None
        self.muted = False
        self.farEffect = None
        self.wantBottomEffect = True
        self.minimapObject = None
        self.minimap = None
        
        def originObjHere(originObj):
            self.pendingOriginObj = None
            self.setZoneRadii(zoneRadii)
            self.placeInWorld()

        self._selfRefreshTask = None
        self._refreshTargetInfo = None
        if self.questStep.getOriginDoId():
            self.pendingOriginObj = base.cr.relatedObjectMgr.requestObjects([
                self.questStep.getOriginDoId()], eachCallback = originObjHere)
        else:
            originObjHere(None)
Exemplo n.º 21
0
 def __init__(self, start="Menu"):
     FSM.__init__(self, "Core Game Control")
     # Optional, but prevents a warning message
     base.taskMgr.setupTaskChain("world", frameBudget=-1)
     self.defaultTransitions = {"Menu": ["World"],
                                "World": ["Menu"]}
     self.demand(start)
Exemplo n.º 22
0
    def __init__(self, mainRef, attributes):
        print("Enemy instantiated")
        Unit.__init__(self)
        FSM.__init__(self, 'playerFSM')

        self._mainRef = mainRef
        self._playerRef = mainRef.player
        self._AIworldRef = mainRef.AIworld
        self._enemyListRef = mainRef.enemyList
        self._ddaHandlerRef = mainRef.DDAHandler
        self._stateHandlerRef = mainRef.stateHandler
        self._scenarioHandlerRef = mainRef.scenarioHandler

        #self.topEnemyNode = mainRef.mainNode.attachNewNode('topEnemyNode')
        self.initEnemyNode(mainRef.mainNode)

        utils.enemyDictionary[self.enemyNode.getName()] = self

        self.loadEnemyModel(attributes.modelName)
        self.initAttributes(attributes)
        self.initEnemyAi()

        self.initEnemyDDA()

        self.initEnemyCollisionHandlers()
        self.initEnemyCollisionSolids()

        #self.request('Idle')
        self.request('Disabled')

        # Start enemy updater task
        self.enemyUpdaterTask = taskMgr.add(self.enemyUpdater, 'enemyUpdaterTask')
    def __init__(self, zoneId, golfCourse, holeId):
        FSM.__init__(self, 'Golf_%s_FSM' % self.id)
        DistributedPhysicsWorldAI.DistributedPhysicsWorldAI.__init__(self, simbase.air)
        GolfHoleBase.GolfHoleBase.__init__(self)
        self.zoneId = zoneId
        self.golfCourse = golfCourse
        self.holeId = holeId
        self.avIdList = golfCourse.avIdList[:]
        self.watched = [0,
         0,
         0,
         0]
        self.barrierPlayback = None
        self.trustedPlayerId = None
        self.activeGolferIndex = None
        self.activeGolferId = None
        self.holeInfo = GolfGlobals.HoleInfo[self.holeId]
        self.teeChosen = {}
        for avId in self.avIdList:
            self.teeChosen[avId] = -1

        self.ballPos = {}
        for avId in self.avIdList:
            self.ballPos[avId] = Vec3(0, 0, 0)

        self.playStarted = False
        return
 def __init__(self, cr):
     DistributedObject.DistributedObject.__init__(self, base.cr)
     FSM.__init__(self, "Golf_%s_FSM" % self.id)
     self.waitingStartLabel = DirectLabel(
         text=TTLocalizer.MinigameWaitingForOtherToons,
         text_fg=VBase4(1, 1, 1, 1),
         relief=None,
         pos=(-0.6, 0, -0.75),
         scale=0.075,
     )
     self.waitingStartLabel.hide()
     self.avIdList = []
     self.remoteAvIdList = []
     self.exitedAvIdList = []
     self.toonPanels = []
     self.exitedPanels = []
     self.exitedToonsWithPanels = []
     self.localAvId = base.localAvatar.doId
     self.hasLocalToon = 0
     self.modelCount = 500
     self.cleanupActions = []
     self.courseId = None
     self.scores = {}
     self.curHoleIndex = 0
     self.golfRewardDialog = None
     self.rewardIval = None
     self.scoreBoard = None
     self.exit = False
     self.drivingToons = []
     return
    def __init__(self, cr):
        DistributedObject.__init__(self, cr)
        FSM.__init__(self, 'FlippyStandFSM')
        self.flippyStand = Actor.Actor('phase_4/models/events/election_flippyStand-mod', {'idle': 'phase_4/models/events/election_flippyStand-idle'})
        self.flippyStand.reparentTo(render)
        self.flippyStand.setScale(0.55)
        self.flippyStand.setHpr(315, 0, 349.7)
        self.flippyStand.setPos(180, -250, 9.58)
        self.flippyStand.exposeJoint(None, 'modelRoot', 'LInnerShoulder')
        flippyTable = self.flippyStand.find('**/LInnerShoulder')
        self.flippyStand.exposeJoint(None, 'modelRoot', 'Box_Joint')
        wheelbarrowJoint = self.flippyStand.find('**/Box_Joint').attachNewNode('Pie_Joint')
        wheelbarrow = self.flippyStand.find('**/Box')
        wheelbarrow.setPosHprScale(-2.39, 0.0, 1.77, 0.0, 0.0, 6.0, 1.14, 1.54, 0.93)
        pie = loader.loadModel('phase_3.5/models/props/tart')
        pieS = pie.copyTo(flippyTable)
        pieS.setPosHprScale(-2.61, -0.37, -1.99, 355.6, 90.0, 4.09, 1.6, 1.6, 1.6)
        for pieSettings in ElectionGlobals.FlippyWheelbarrowPies:
            pieModel = pie.copyTo(wheelbarrowJoint)
            pieModel.setPosHprScale(*pieSettings)

        wheelbarrowJoint.setPosHprScale(3.94, 0.0, 1.06, 270.0, 344.74, 0.0, 1.43, 1.12, 1.0)
        self.restockSfx = loader.loadSfx('phase_9/audio/sfx/CHQ_SOS_pies_restock.ogg')
        cs = CollisionBox(Point3(7, 0, 0), 12, 5, 18)
        self.pieCollision = self.flippyStand.attachNewNode(CollisionNode('wheelbarrow_collision'))
        self.pieCollision.node().addSolid(cs)
        self.accept('enter' + self.pieCollision.node().getName(), self.handleWheelbarrowCollisionSphereEnter)
        self.flippyStand.loop('idle')
    def __init__(self, air, av):
        FSM.__init__(self, self.__class__.__name__)

        self.air = air
        self.av = av

        self.callback = None
 def __init__(self, gameDO):
     FSM.__init__(self, 'CannonDefenseFSM')
     self._resultScreen = None
     self._gameOverScreen = None
     self._victoryScreen = None
     self._countDownUI = None
     self._gameDO = gameDO
     self._CannonDefenseFSM__lblwaitingFor = None
     self.defaultTransitions = {
         'WaitingForPlayers': [
             'Tutorial'],
         'Tutorial': [
             'WaitingForPlayers',
             'Wave'],
         'Wave': [
             'ResultScreen',
             'WaitingForPlayers',
             'Defeat',
             'Victory'],
         'ResultScreen': [
             'WaitingForPlayers',
             'Wave'],
         'Defeat': [
             'WaitingForPlayers',
             'Wave'],
         'Victory': [
             'WaitingForPlayers',
             'Wave'] }
 def __init__(self, waveNumber, bonusRound, maxWaves, roundComplete):
     FSM.__init__(self, 'CannonDefenseScoreBoardFSM')
     DirectFrame.__init__(self, frameSize = (0, 2.4060000000000001, 0, 1.5), pos = (-1.2, 0, -0.69999999999999996), sortOrder = 0)
     
     try:
         binOrder = 0
         if roundComplete:
             binOrder = 10
         
         self.setBin('gui-cannonDefense', binOrder)
         self.loadBackGround()
         actualWaveNumber = waveNumber + bonusRound * maxWaves
         self.panel1 = CannonDefenseEndOfWavePanel(actualWaveNumber, roundComplete, 1, 2, parent = self, frameColor = (0, 0, 0, 0), frameSize = (0, 2.4060000000000001, 0, 1.5))
         if roundComplete:
             self.panel1.nextButton['command'] = self.request
             self.panel1.nextButton['extraArgs'] = [
                 'Panel3']
             self.panel3 = CannonDefenseGameStatsPanel(roundComplete, 2, 2, parent = self, frameColor = (0, 0, 0, 0), frameSize = (0, 2.4060000000000001, 0, 1.5))
             self.panel3.prevButton['command'] = self.request
             self.panel3.prevButton['extraArgs'] = [
                 'Panel1']
         
         self.request('Panel1')
     except:
         self.destroy()
         raise 
Exemplo n.º 29
0
    def __init__(self, parent):
        """Arguments:
        parent -- Aeroplane which the camera should follow
        """

        # Used for debugging. Verbosity is set in config file.
        # Usually this is called self.notify, but in this case it would
        # override FSM's own.
        self.notifier = DirectNotify().newCategory("azure-camera")
        self.parent = parent
        # Replaced by a NodePath with all available cameras as children and
        # plane node as parent.
        self.__cameras = None

        #if parent.__class__.__name__ is not "Aeroplane":
        if not isinstance(self.parent, Aeroplane):
            raise ParamError, "Parent must be an Aeroplane instance, but is %s" % type(self.parent)

        FSM.__init__(self, "PlaneCamera: %s" % self.parent.name)

        try:
            self.camera = base.camera
        except:
            raise BaseMissing

        self.__cameras = self.parent.node.find("cameras")
        if self.__cameras.isEmpty():
            self.createCamNodes()
        self.updateCamArray()

        self.sideview_direction = 0

        # Set up the default camera
        self.setCameraMode("ThirdPerson")
Exemplo n.º 30
0
    def __init__(self, cr):
        FSM.__init__(self, 'robot')
        self.cr = cr

        # Allow a lot of time for other processes.
        base.setSleep(0.1)
        
        self.mouse = VirtualMouse('vmouse')
        self.mouse.setWindowSize(*self.WindowSize)
        
        np = base.dataRoot.attachNewNode(self.mouse)

        if base.mouseWatcher:
            base.mouseWatcher.reparentTo(np)
        else:
            base.mouseWatcher = np.attachNewNode(MouseWatcher('watcher'))
            base.mouseWatcherNode = base.mouseWatcher.node()
            bt = base.mouseWatcher.attachNewNode(ButtonThrower('buttons'))
            base.camera = NodePath('camera')
            base.cam = base.camera.attachNewNode(Camera('cam'))
            base.camNode = base.cam.node()

        self.task = None

        self.accept(self.cr.uniqueName('gameOver'), self.gameOver)
        self.request('Idle')
    def __init__(self, air, bldg, numSeats = 4, antiShuffle = 0, minLaff = 0):
        DistributedObjectAI.DistributedObjectAI.__init__(self, air)
        FSM.__init__(self, 'Elevator_%s_FSM' % self.id)
        self.type = ELEVATOR_NORMAL
        self.countdownTime = ElevatorData[self.type]['countdown']
        self.bldg = bldg
        self.bldgDoId = bldg.getDoId()
        self.seats = []
        for seat in xrange(numSeats):
            self.seats.append(None)

        self.accepting = 0
        self.setAntiShuffle(antiShuffle)
        self.setMinLaff(minLaff)
        if self.antiShuffle:
            if not hasattr(simbase.air, 'elevatorTripId'):
                simbase.air.elevatorTripId = 1
            self.elevatorTripId = simbase.air.elevatorTripId
            simbase.air.elevatorTripId += 1
        else:
            self.elevatorTripId = 0
Exemplo n.º 32
0
 def __init__(self, cr):
     DistributedObject.DistributedObject.__init__(self, cr)
     FSM.__init__(self, 'staringBlock_%s_FSM' % DistributedStartingBlock.id)
     self.avId = 0
     self.av = None
     self.lastAvId = 0
     self.avatar = None
     self.kartPad = None
     self.collNode = None
     self.movieNode = None
     self.movieTrack = None
     self.collSphere = None
     self.collNodePath = None
     self.localToonKarting = 0
     self.kartNode = None
     self.kart = None
     self.holeActor = None
     self.exitRequested = False
     self.id = DistributedStartingBlock.id
     DistributedStartingBlock.id += 1
     return
Exemplo n.º 33
0
    def __init__(self, av):
        FSM.__init__(self, 'MotionFSM')
        self.av = av
        self.avHeight = 5
        self.cannotFloat = 0
        self._MotionFSM__submerged = None
        self._MotionFSM__overwater = None
        self._MotionFSM__inwater = None
        self.motionAnimFSM = MotionAnimFSM(self.av)
        if hasattr(self.av, 'getAnimInfo'):
            self.setAnimInfo(self.av.getAnimInfo('LandRoam'))

        self.lifterDelayFrames = 0
        self._MotionFSM__locked = 0
        self.movementKeys = {}
        keys = ('arrow_up', 'arrow_down', 'arrow_left', 'arrow_right', 'w',
                's', 'a', 'd', 'q', 'e')
        for key in keys:
            self.movementKeys[key] = 0
            self.accept(key, self.setMovementTrack, extraArgs=[key, 1])
            self.accept(key + '-up', self.setMovementTrack, extraArgs=[key, 0])
    def __init__(self, waveNumber, bonusRound, maxWaves, roundComplete):
        FSM.__init__(self, 'CannonDefenseScoreBoardFSM')
        DirectFrame.__init__(self,
                             frameSize=(0, 2.4060000000000001, 0, 1.5),
                             pos=(-1.2, 0, -0.69999999999999996),
                             sortOrder=0)

        try:
            binOrder = 0
            if roundComplete:
                binOrder = 10

            self.setBin('gui-cannonDefense', binOrder)
            self.loadBackGround()
            actualWaveNumber = waveNumber + bonusRound * maxWaves
            self.panel1 = CannonDefenseEndOfWavePanel(
                actualWaveNumber,
                roundComplete,
                1,
                2,
                parent=self,
                frameColor=(0, 0, 0, 0),
                frameSize=(0, 2.4060000000000001, 0, 1.5))
            if roundComplete:
                self.panel1.nextButton['command'] = self.request
                self.panel1.nextButton['extraArgs'] = ['Panel3']
                self.panel3 = CannonDefenseGameStatsPanel(
                    roundComplete,
                    2,
                    2,
                    parent=self,
                    frameColor=(0, 0, 0, 0),
                    frameSize=(0, 2.4060000000000001, 0, 1.5))
                self.panel3.prevButton['command'] = self.request
                self.panel3.prevButton['extraArgs'] = ['Panel1']

            self.request('Panel1')
        except:
            self.destroy()
            raise
Exemplo n.º 35
0
 def __init__(self, zoneId, avIds, courseId, preferredHoleId=None):
     FSM.__init__(self, 'GolfCourse_%s_FSM' % zoneId)
     DistributedObjectAI.DistributedObjectAI.__init__(self, simbase.air)
     self.notify.debug('GOLF COURSE: init')
     self.zoneId = zoneId
     self.currentHole = None
     self.avIdList = []
     self.avStateDict = {}
     self.addExpectedGolfers(avIds)
     self.courseId = courseId
     self.preferredHoleId = preferredHoleId
     self.courseInfo = GolfGlobals.CourseInfo[self.courseId]
     self.numHoles = self.courseInfo['numHoles']
     self.holeIds = self.calcHolesToUse()
     self.notify.debug('self.holeIds = %s' % self.holeIds)
     self.numHolesPlayed = 0
     self.curHoleIndex = 0
     self.trophyListLen = 0
     self.courseBestListLen = 0
     self.holeBestListLen = 0
     self.cupListLen = 0
     self.scores = {}
     self.aimTimes = {}
     self.startingHistory = {}
     self.endingHistory = {}
     self.startingHoleBest = {}
     self.endingHoleBest = {}
     self.startingCourseBest = {}
     self.endingCourseBest = {}
     self.startingCups = {}
     self.endingCups = {}
     self.initHistory()
     self.newTrophies = {}
     self.newHoleBest = {}
     self.newCourseBest = {}
     self.newCups = {}
     self.drivingToons = []
     self.__barrier = None
     self.winnerByTieBreak = 0
     return
Exemplo n.º 36
0
 def __init__(self, air, lawOfficeId,bldg, avIds, markerId = None, numSeats = 4, antiShuffle = 0, minLaff = 0):
     DistributedElevatorFSMAI.DistributedElevatorFSMAI.__init__(
         self, air, bldg, numSeats, antiShuffle = antiShuffle, minLaff = minLaff)
     FSM.__init__( self, "ElevatorFloor_%s_FSM" % ( self.id ) )
     # Do we need this?
     # self.zoneId, dummy = bldg.getExteriorAndInteriorZoneId()
     # Flag that tells if any Toon has jumped out of the elevator yet
     # (this is used to prevent the griefers who jump off at the last
     # second)
     # self.type =  ElevatorConstants.ELEVATOR_STAGE
     self.type = ElevatorConstants.ELEVATOR_COUNTRY_CLUB
     self.countdownTime = ElevatorConstants.ElevatorData[self.type]['countdown']
     self.lawOfficeId = lawOfficeId
     self.anyToonsBailed = 0
     self.avIds = avIds
     self.isEntering = 0
     self.isLocked = 0
     self.setLocked(0)
     self.wantState = None
     self.latchRoom = None
     self.setLatch(markerId)
     self.zoneId = bldg.zoneId
Exemplo n.º 37
0
    def __init__(self,
                 serialNum,
                 maze,
                 randomNumGen,
                 difficulty,
                 startTile,
                 dnaName,
                 cogdoSuitType,
                 walkAnimName=None):
        data = Globals.SuitData[cogdoSuitType]
        MazeSuit.__init__(
            self,
            serialNum,
            maze,
            randomNumGen,
            data['cellWalkPeriod'],
            difficulty,
            dnaName,
            startTile=startTile,
            walkSameDirectionProb=Globals.SuitWalkSameDirectionProb,
            walkTurnAroundProb=Globals.SuitWalkTurnAroundProb,
            uniqueRandomNumGen=False,
            walkAnimName=walkAnimName)
        FSM.__init__(self, 'CogdoMazeSuit')
        CogdoMazeSplattable.__init__(
            self, self.suit,
            '%s-%i' % (Globals.SuitCollisionName, self.serialNum), 1.5)
        if 'scale' in data:
            self.suit.setScale(data['scale'])

        self.suit.nametag3d.stash()
        self.suit.nametag.destroy()
        self.hp = data['hp']
        self.type = cogdoSuitType
        self.memos = data['memos']
        self.deathSuit = self.suit.getLoseActor()
        self.deathSuit.pose('lose', 0)
        BattleParticles.loadParticles()
        self._initSfx()
Exemplo n.º 38
0
 def __init__(self, model, **kw):
     NodePath.__init__(self, self.__class__.__name__)
     FSM.__init__(self, self.__class__.__name__)
     self.pos = kw.get('pos', (0, 0, 0))
     self.hpr = kw.get('hpr', (0, 0, 0))
     self.scale = kw.get('scale', 1)
     self.color = kw.get('color')
     
     self.setPos(self.pos)
     self.setHpr(self.hpr)
     self.setScale(self.scale)
     if self.color:
         self.setColor(self.color)
     
     if model:
         doorway = model.find('**/Doorway1')
         doorway.find('**/doortop').removeNode()
         doorway.find('**/doorbottom').removeNode()        
         doorway.reparentTo(self)
         
         self.doorLeft = doorway.find('**/doorLeft')
         self.doorRight = doorway.find('**/doorRight')
Exemplo n.º 39
0
    def __init__(self, mainRef):
        print("Player instantiated")
        Unit.__init__(self)
        FSM.__init__(self, 'playerFSM')

        self._hudRef = None
        self._mainRef = mainRef
        self._enemyListRef = mainRef.enemyList
        self._ddaHandlerRef = mainRef.DDAHandler
        self._mapHandlerRef = mainRef.mapHandler
        self._stateHandlerRef = mainRef.stateHandler
        self._scenarioHandlerRef = mainRef.scenarioHandler

        self.playerNode = mainRef.mainNode.attachNewNode('playerNode')

        self.initPlayerAttributes()
        self.initPlayerModel()
        self.initPlayerCamera()
        self.initPlayerAbilities()

        self.initPlayerCollisionHandlers()
        self.initPlayerCollisionSolids()

        self.initPlayerDDA()

        # Start mouse picking and movement
        self.mouseHandler = utils.MouseHandler(self)

        # Start player update task
        playerUpdateTask = taskMgr.add(self.playerUpdate, 'playerUpdateTask')

        # Initialize player FSM state
        self.request('Idle')

        DO = DirectObject()
        DO.accept('shift-mouse1', self.onShiftDown)
        DO.accept('shift-up', self.onShiftUp)

        self._shiftButtonDown = False
 def __init__(self, cr):
     DistributedObject.DistributedObject.__init__(self, cr)
     FSM.__init__(self, 'Elevator_%s_FSM' % self.id)
     self.bldgRequest = None
     self.toonRequests = {}
     self.deferredSlots = []
     self.localToonOnBoard = 0
     self.boardedAvIds = {}
     self.openSfx = base.loadSfx('phase_5/audio/sfx/elevator_door_open.mp3')
     self.finalOpenSfx = None
     self.closeSfx = base.loadSfx(
         'phase_5/audio/sfx/elevator_door_close.mp3')
     self.elevatorFSM = None
     self.finalCloseSfx = None
     self.elevatorPoints = ElevatorPoints
     self.type = ELEVATOR_NORMAL
     self.countdownTime = ElevatorData[self.type]['countdown']
     self.isSetup = 0
     self._DistributedElevatorFSM__preSetupState = None
     self.bigElevator = 0
     self.offTrack = [None, None, None, None]
     self.boardingParty = None
Exemplo n.º 41
0
    def __init__(self, **kwargs):
        animes = {}
        for a, b, c in os.walk('models/char/animes'):
            for d in c:
                animes[d] = 'models/char/animes/%s' % (d)

        super(character, self).__init__(kwargs['char'], anims=animes)

        self.name = kwargs['name']
        FSM.__init__(self, self.name)
        self.setH(180)

        self.setupAnimes()
        self.interval_setup()
        self.setPos(0, 0, -.2)
        self.setScale(.2)
        self.lockedOnTarget = True
        self.targets = []

        self.anim_playList = []
        self.isAction = {
            'run': False,
            'jump': False,
            'hit_distance': False,
            'idle': False,
            'jumpPunch': False,
            'punch': False,
            'kick': False,
            'strifeLeft': False,
            'strifeRight': False,
            'runLeft': False,
            'runRight': False
        }
        self.animes = {
            'jump': self.jumpping,
            'run': self.running,
            'jumpPunch': self.jumpPunch
        }
        inputState.watch('run', 'player1axis1', None)
Exemplo n.º 42
0
    def __init__(self, name='map-manager'):
        FSM.__init__(self, name)
        '''
        index            关卡
        room             当前房间对象
        rooms            当前关卡的房间信息
        hero             当前的英雄信息
        masterRoomVisitedNum   当前通过的主线房间个数
        curRoomCode      当前的房间号
        '''
        self.index = 0
        self.gameNP = render.attachNewNode('game')
        self.room = None
        self.rooms = []
        self.hero = None
        self.masterRoomVisitedNum = 0
        self.preRoomCode = 0
        self._init_accept()
        self.videoDict = {}

        # 保存英雄初始信息
        self.initHeroInfo = None
Exemplo n.º 43
0
    def __init__(self):
        ShowBase.__init__(self)
        FSM.__init__(self, "FSM-Game")
        # self.win
        base.enableParticles()
        self.playerName = ""
        self.IsFullScreen = False
        self.blade_runner = player.Player(self.playerName)
        self.disableMouse()
        self.plight = PointLight("plight")
        self.plight.setColor((1, 1, 1, 1))
        self.plnp = self.render.attachNewNode(self.plight)
        self.render.setLight(self.plnp)
        self.windowProps = WindowProperties()

        self.intro = logoscreen.Logoscreen()
        self.intro.start()

        self.crawl = crawl.testCrawl()
        self.accept('1', self.crawl.start)

        self.menu = menu.Menu(self.windowProps, self)
        self.accept('2', self.menu.start)

        self.l1 = level1.Level1()
        self.accept('3', self.l1.start)

        self.l2 = level2.Level2()
        self.accept('4', self.l2.start)

        self.l3 = level3.Level3()
        self.accept('5', self.l3.start)

        self.l4 = level4.Level4()
        self.accept('6', self.l4.start)

        #ENDGAME SCREEN WITH REPORT
        self.end = endgame.Endgame()
        self.accept('7', self.end.start)
Exemplo n.º 44
0
    def __init__(self, air, zones, avId):
        FSM.__init__(self, 'TutorialFSM')
        self.air = air
        self.zones = zones
        self.avId = avId
        self.suit = None
        self.flippy = None

        tutorialTomDesc = NPCToons.NPCToonDict.get(20000)
        self.tutorialTom = NPCToons.createNPC(self.air, 20000, tutorialTomDesc, self.zones.SHOP, 0)
        self.tutorialTom.setTutorial(1)

        hqHarryDesc = (
            -1, TTLocalizer.TutorialHQOfficerName, ('dls', 'ms', 'm', 'm', 6, 0, 6, 6, 0, 10, 0, 10, 0, 9), 'm', 1,
            NPCToons.NPC_HQ)
        self.hqHarry = NPCToons.createNPC(self.air, 20002, hqHarryDesc, self.zones.HQ, 0)
        self.hqHarry.setTutorial(1)

        self.building = TutorialBuildingAI(self.air, zones.STREET, zones.SHOP, self.tutorialTom.getDoId())
        self.hq = HQBuildingAI(self.air, zones.STREET, zones.HQ, 1)

        self.forceTransition('Introduction')
 def __init__(self, id, toon):
     FSM.__init__(self, 'CogdoMazePlayer')
     CogdoMazeSplattable.__init__(
         self, toon, '%s-%i' % (Globals.PlayerCollisionName, id), 0.5)
     self.id = id
     self.toon = toon
     self.defaultTransitions = {
         'Off': ['Ready'],
         'Ready': ['Normal', 'Off'],
         'Normal': ['Hit', 'Done', 'Off'],
         'Hit': ['Normal', 'Done', 'Off'],
         'Done': ['Off']
     }
     self.toon.reparentTo(render)
     self.gagModel = CogdoUtil.loadMazeModel('waterBalloon')
     self.equippedGag = None
     self._toonHitSfx = base.cogdoGameAudioMgr.createSfx(
         'toonHit', self.toon)
     self._throwSfx = base.cogdoGameAudioMgr.createSfxIval('throw')
     self.accept(toon.getDisableEvent(), self.removed)
     self.request('Off')
     return
Exemplo n.º 46
0
 def __init__(self, zoneId, golfCourse, holeId):
     FSM.__init__(self, 'Golf_%s_FSM' % self.id)
     DistributedPhysicsWorldAI.DistributedPhysicsWorldAI.__init__(
         self, simbase.air)
     GolfHoleBase.GolfHoleBase.__init__(self)
     self.zoneId = zoneId
     self.golfCourse = golfCourse
     self.holeId = holeId
     self.avIdList = golfCourse.avIdList[:]
     self.watched = [0, 0, 0, 0]
     self.barrierPlayback = None
     self.trustedPlayerId = None
     self.activeGolferIndex = None
     self.activeGolferId = None
     self.holeInfo = GolfGlobals.HoleInfo[self.holeId]
     self.teeChosen = {}
     for avId in self.avIdList:
         self.teeChosen[avId] = -1
     self.ballPos = {}
     for avId in self.avIdList:
         self.ballPos[avId] = Vec3(0, 0, 0)
     self.playStarted = False
 def __init__(self, world, guardKey):
     Suit.__init__(self)
     FSM.__init__(self, 'FactorySneakGuardSuit')
     self.gameWorld = world
     self.guardKey = guardKey
     self.viewDistanceTaskName = self.VIEW_DISTANCE_TASK_NAME + "-" + str(
         id(self))
     self.diedTaskName = "GuardDied-" + str(id(self))
     self.health = 0
     self.maxHealth = 0
     self.eyeLight = None
     self.eyeLens = None
     self.eyeNode = None
     self.moveTrack = None
     self.trav = None
     self.rayNP = None
     self.queue = None
     self.currentKey = self.guardKey
     self.firstPoint = CGG.GuardPointData[self.guardKey]
     self.walkTrack = None
     self.pathQueue = []
     self.currentPathIndex = 0
 def __init__(self, air, circuitPoints=[], circuitWinnings=[]):
     DistributedObjectAI.__init__(self, air)
     FSM.__init__(self, 'DistributedRaceAI')
     self.air = air
     self.zoneId = 0
     self.trackId = 0
     self.raceType = 0
     self.circuitLoop = []
     self.avatars = []
     self.finishedAvatars = []
     self.startingPlaces = []
     self.avatarKarts = []
     self.lapCount = 1
     self.gags = {}
     self.avatarGags = {}
     self.livingGags = []
     self.currentlyAffectedByAnvil = {}
     self.avatarProgress = {}
     self.circuitPoints = circuitPoints
     self.circuitWinnings = circuitWinnings
     self.quitAvatars = []
     self.startTime = globalClockDelta.networkToLocalTime(globalClockDelta.getRealNetworkTime()) + 3
Exemplo n.º 49
0
 def __init__(self, avId, activity, h):
     FSM.__init__( self, self.__class__.__name__ )
     self.notify.debug("init : avId = %s, activity = %s " % (avId, activity))
     
     self.avId = avId
     self.activity = activity
     self.isLocal = (avId == base.localAvatar.doId)
     self.toon = self.activity.getAvatar(self.avId)
     self.toonH = h
     
     self.danceNode = None
     self.danceMoveSequence = None
     self.lastAnim = None
     
     self.defaultTransitions = {"Init" : ["Run", "DanceMove", "Cleanup"],
                                "DanceMove" : ["Run", "DanceMove", "Cleanup"],
                                "Run" : ["Run", "DanceMove", "Cleanup"],
                                "Cleanup": [],
                                }
     
     #self.unexpectedExit = False  
     self.enteredAlready = False
Exemplo n.º 50
0
 def __init__(self, doneEvent=None):
     FSM.__init__(self, 'PartyPlannerFSM')
     DirectFrame.__init__(self)
     self.doneEvent = doneEvent
     self.stateArray = [
         'Off',
         'Welcome',
         'PartyEditor',
         #'Guests',  jjkoletar: this should mean that it skips over the guests state
         'Date',
         'Time',
         'Invitation',
         'Farewell'
     ]
     self.partyTime = base.cr.toontownTimeManager.getCurServerDateTime()
     self.partyNowTime = base.cr.toontownTimeManager.getCurServerDateTime()
     minutesToNextFifteen = 15 - self.partyTime.minute % 15
     self.cleanPartyTime = self.partyTime + timedelta(
         minutes=minutesToNextFifteen, seconds=-self.partyTime.second)
     self.partyTime = self.cleanPartyTime
     self.guests = []
     self.isPrivate = False
     self.selectedCalendarGuiDay = None
     self.gui = loader.loadModel('phase_4/models/parties/partyPlannerGUI')
     self.partyDuration = timedelta(hours=PartyGlobals.DefaultPartyDuration)
     self.timeTypeToMaxValue = {'hour': 23, 'minute': 59}
     self.timeTypeToChangeAmount = {
         'hour': (1, -1),
         'minute': (15, -15),
         'ampm': (1, -1)
     }
     self.partyInfo = None
     self.asapMinuteRounding = base.config.GetInt(
         'party-asap-minute-rounding',
         PartyGlobals.PartyPlannerAsapMinuteRounding)
     self.load()
     self.request('Welcome')
     return
    def __init__(self):
        FSM.__init__(self, 'mouseControllerClass')

        self.cameraPosPivot = render.attachNewNode('cameraPivot')
        self.cameraRotPivot = self.cameraPosPivot.attachNewNode('cameraPivot')
        self.cameraRotPivot.setHpr(STARTUP_CAMERA_HPR)
        # show a point at the cameraPosPivot
        self.posPivotModel = loader.loadModel(CAMERACONTROLLER_PIVOT_MODEL)
        self.posPivotModel.reparentTo(self.cameraPosPivot)
        self.posPivotModel.setScale(0.1)

        self.pressedKeys = dict()
        moveSpeed = 25
        self.moveVec = Vec3(0)
        self.moveActions = {
            'w': Vec3(0, moveSpeed, 0),
            's': Vec3(0, -moveSpeed, 0),
            'a': Vec3(-moveSpeed, 0, 0),
            'd': Vec3(moveSpeed, 0, 0),
            'e': Vec3(0, 0, moveSpeed),
            'q': Vec3(0, 0, -moveSpeed)
        }
        taskMgr.add(self.movePivotTask, 'movePivotTask')

        self.cameraHprResets = {
            'shift-1': Vec3(90, 0, 0),
            'shift-2': Vec3(180, 0, 0),
            'shift-3': Vec3(0, -90, 0),
            'shift-4': Vec3(-90, 0, 0),
            'shift-5': Vec3(0, 0, 0),
            'shift-6': Vec3(0, 90, 0),
        }

        self.backupSettings()

        self.request('Disabled')

        self.accept('shift-0', self.toggleLens)
 def __init__(self, cr):
     DistributedObject.DistributedObject.__init__(self, base.cr)
     FSM.__init__(self, 'Golf_%s_FSM' % self.id)
     self.waitingStartLabel = DirectLabel(text = TTLocalizer.MinigameWaitingForOtherPlayers, text_fg = VBase4(1, 1, 1, 1), relief = None, pos = (-0.59999999999999998, 0, -0.75), scale = 0.074999999999999997)
     self.waitingStartLabel.hide()
     self.avIdList = []
     self.remoteAvIdList = []
     self.exitedAvIdList = []
     self.toonPanels = []
     self.exitedPanels = []
     self.exitedToonsWithPanels = []
     self.localAvId = base.localAvatar.doId
     self.hasLocalToon = 0
     self.modelCount = 500
     self.cleanupActions = []
     self.courseId = None
     self.scores = { }
     self.curHoleIndex = 0
     self.golfRewardDialog = None
     self.rewardIval = None
     self.scoreBoard = None
     self.exit = False
     self.drivingToons = []
Exemplo n.º 53
0
 def __init__(self, parent, chatMgr, whiteListEntry, *args, **kw):
     optiondefs = (('relief', None, None), ('state', DGG.DISABLED, None),
                   ('frameSize', (0, 1, 0, 0.75),
                    None), ('frameColor', (1, 0, 1, 0.2), None))
     self.defineoptions(kw, optiondefs)
     DirectFrame.__init__(self, parent, *args, **kw)
     self.initialiseoptions(ChatBar)
     FSM.__init__(self, 'ChatBar')
     self.whiteListEnabled = base.config.GetBool('whitelist-chat-enabled',
                                                 True)
     self.openChatEnabled = base.config.GetBool('open-chat-enabled', True)
     self.noChat = not (self.whiteListEnabled or self.openChatEnabled)
     self.chatTabs = None
     self.whisperTabs = None
     self.chatMgr = chatMgr
     self.slideIval = None
     self.whisperNameLabel = None
     self.whisperPrefixLabel = None
     self.percentage = 1.0
     self.iPercentage = 1.0
     self.myTextScale = PiratesGuiGlobals.TextScaleLarge * 1.1
     self.setupGui(whiteListEntry)
     self.request('Hidden')
Exemplo n.º 54
0
    def __init__(self, cr):
        DistributedObject.__init__(self, cr)
        FSM.__init__(self, 'FlippyStandFSM')
        self.flippyStand = Actor.Actor(
            'phase_4/models/events/election_flippyStand-mod',
            {'idle': 'phase_4/models/events/election_flippyStand-idle'})
        self.flippyStand.reparentTo(render)
        self.flippyStand.setScale(0.55)
        self.flippyStand.setHpr(315, 0, 349.7)
        self.flippyStand.setPos(180, -250, 9.58)
        self.flippyStand.exposeJoint(None, 'modelRoot', 'LInnerShoulder')
        flippyTable = self.flippyStand.find('**/LInnerShoulder')
        self.flippyStand.exposeJoint(None, 'modelRoot', 'Box_Joint')
        wheelbarrowJoint = self.flippyStand.find('**/Box_Joint').attachNewNode(
            'Pie_Joint')
        wheelbarrow = self.flippyStand.find('**/Box')
        wheelbarrow.setPosHprScale(-2.39, 0.0, 1.77, 0.0, 0.0, 6.0, 1.14, 1.54,
                                   0.93)
        pie = loader.loadModel('phase_3.5/models/props/tart')
        pieS = pie.copyTo(flippyTable)
        pieS.setPosHprScale(-2.61, -0.37, -1.99, 355.6, 90.0, 4.09, 1.6, 1.6,
                            1.6)
        for pieSettings in ElectionGlobals.FlippyWheelbarrowPies:
            pieModel = pie.copyTo(wheelbarrowJoint)
            pieModel.setPosHprScale(*pieSettings)

        wheelbarrowJoint.setPosHprScale(3.94, 0.0, 1.06, 270.0, 344.74, 0.0,
                                        1.43, 1.12, 1.0)
        self.restockSfx = loader.loadSfx(
            'phase_9/audio/sfx/CHQ_SOS_pies_restock.ogg')
        cs = CollisionBox(Point3(7, 0, 0), 12, 5, 18)
        self.pieCollision = self.flippyStand.attachNewNode(
            CollisionNode('wheelbarrow_collision'))
        self.pieCollision.node().addSolid(cs)
        self.accept('enter' + self.pieCollision.node().getName(),
                    self.handleWheelbarrowCollisionSphereEnter)
        self.flippyStand.loop('idle')
Exemplo n.º 55
0
    def __init__(self):
        DirectFrame.__init__(self,
                             parent=aspect2d,
                             pos=(0, 0, 0.93),
                             scale=0.7)
        FSM.__init__(self, 'GagSelectionGui')
        self.setTransparency(TransparencyAttrib.MDual)
        self.tracks = []
        self.currentTrack = 0
        self.currentGag = None
        self.fwdShakeIval = None
        self.revShakeIval = None
        self.newTrackSound = None
        self.keyScrollSound = None
        self.selectSound = None
        self.selectDenySound = None
        self.lastActivityTime = 0.0
        self.activityTask = None
        self.midpoint = 0.0

        self.ammoFrame = DirectFrame(parent=self,
                                     pos=(0, 0, -0.2),
                                     image='phase_14/maps/status_bar.png',
                                     image_scale=(0.461 * 0.7, 0, 0.098),
                                     relief=None)
        self.ammoFrame.hide()
        self.ammoTitle = OnscreenText(parent=self.ammoFrame,
                                      text='SUPPLY',
                                      fg=(0, 0, 0, 0.65),
                                      align=TextNode.ALeft,
                                      pos=(-0.37 * 0.7, -0.015, 0))
        self.ammoText = OnscreenText(parent=self.ammoFrame,
                                     text='',
                                     fg=(1, 1, 1, 1),
                                     shadow=(0, 0, 0, 1),
                                     align=TextNode.ARight,
                                     pos=(0.37 * 0.7, -0.015, 0))
Exemplo n.º 56
0
    def __init__(self, game):
        FSM.__init__(self, "camera")

        self.game = game
        self.game.disableMouse()

        self.speed = 15.0
        self.intervalSpeed = 2.0
        self.playerNp = self.game.player.np
        self.playerNp.setTransparency(TransparencyAttrib.MAlpha)

        self.gameNp = NodePath("gameCam")
        self.gameNp.setPos(0, 0, 0)
        self.gameNp.reparentTo(self.game.render)

        self.gameNp2 = NodePath("gameCam2")
        self.gameNp2.setPos(0, -20, 0)
        self.gameNp2.reparentTo(self.gameNp)

        self.zoomMin = 0.0
        self.zoomMax = 30.0
        self.pMin = -89.999
        self.pMax = 89.999
        self.baseDx = 0.0
        self.baseDy = 0.0

        self.dragging = False
        self.ratio = self.game.getAspectRatio()

        self.mode = "3rd"  # 3rd person view
        self.mouse_y_inverted = False
        self.mouse_x_inverted = False
        self.sensivity = 1.0

        #self.start_3rd()
        self.request("ViewRPG")
Exemplo n.º 57
0
    def __init__(self, name):
        FSM.state = '_Off'  # Hacky bug fix for Panda3D 1.11.
        FSM.__init__(self, name)
        PandaNode.__init__(self, name)
        DirectObject.__init__(self)

        self.active = True

        self.lastClickState = PGButton.SReady
        self.clickState = PGButton.SReady

        self.__hovering = False

        self.clickEvent = ''
        self.clickExtraArgs = []

        self.contents = NodePath.anyPath(self).attachNewNode('contents')

        # Create a MouseWatcherRegion:
        self.regionName = self.getUniqueName() + '-region'
        self.region = MouseWatcherRegion(self.regionName, 0, 0, 0, 0)
        base.mouseWatcherNode.addRegion(self.region)

        # Accept the mouse events:
        enterPattern = base.mouseWatcherNode.getEnterPattern()
        leavePattern = base.mouseWatcherNode.getLeavePattern()
        buttonDownPattern = base.mouseWatcherNode.getButtonDownPattern()
        buttonUpPattern = base.mouseWatcherNode.getButtonUpPattern()
        self.accept(enterPattern.replace('%r', self.regionName),
                    self.__handleMouseEnter)
        self.accept(leavePattern.replace('%r', self.regionName),
                    self.__handleMouseLeave)
        self.accept(buttonDownPattern.replace('%r', self.regionName),
                    self.__handleMouseDown)
        self.accept(buttonUpPattern.replace('%r', self.regionName),
                    self.__handleMouseUp)
Exemplo n.º 58
0
 def __init__(self, air, bldg, numSeats=4, antiShuffle=0, minLaff=0):
     DistributedObjectAI.DistributedObjectAI.__init__(self, air)
     FSM.__init__(self, "Elevator_%s_FSM" % (self.id))
     self.type = ELEVATOR_NORMAL
     self.countdownTime = ElevatorData[self.type]['countdown']
     self.bldg = bldg
     self.bldgDoId = bldg.getDoId()
     self.seats = []
     for seat in range(numSeats):
         self.seats.append(None)
     #self.seats = [None, None, None, None]
     # Flag that tells whether the elevator is currently accepting boarders
     self.accepting = 0
     #self.setupStates()
     #self.fsm.enterInitialState()
     self.setAntiShuffle(antiShuffle)
     self.setMinLaff(minLaff)
     if self.antiShuffle:
         if not hasattr(simbase.air, "elevatorTripId"):
             simbase.air.elevatorTripId = 1
         self.elevatorTripId = simbase.air.elevatorTripId
         simbase.air.elevatorTripId += 1
     else:
         self.elevatorTripId = 0
Exemplo n.º 59
0
 def defaultFilter(self, request, args):
     if request == self.state:
         return None
     else:
         return FSM.defaultFilter(self, request, args)
     return None
Exemplo n.º 60
0
 def __init__(self, activity):
     FSM.__init__(self, self.__class__.__name__)
     self.activity = activity