Beispiel #1
0
    def OnNotify(self, state, id, events):
        PtDebugPrint("tldSlavePrisonDoors.OnNotify:", level=kDebugDumpLevel)
        # make sure its one of the activators we know about
        if id in activatorToResp:
            for event in events:
                print "event = ", event
            # evaluate plates to paddles and set doors accordingly
            self.IEvalPlateAndPaddles(activator=id)
            ageSDL = PtGetAgeSDL()
            # NOTE:
            # setting the SDL for the plates is ONLY for evaluation at ServerInit and for people who come in second
            #
            for event in events:
                if event[0] == 1 and event[1] == 1:
                    activatorToResp[id].run(self.key, state="State 1")
                    ageSDL[activatorToSDL[id]] = (1, )
                elif event[0] == 1 and event[1] == 0:
                    activatorToResp[id].run(self.key, state="State 2")
                    ageSDL[activatorToSDL[id]] = (0, )

        else:
            self.IEvalPlateAndPaddles()

        # RAWA's Huevo
        if id == actPlate5.id:
            for event in events:
                if event[0] == 1 and event[1] == 1:
                    avatar = PtFindAvatar(events)
                    if avatar == PtGetLocalAvatar():
                        xSndLogTracks.LogTrack("27", "94")
Beispiel #2
0
    def OnSDLNotify(self, VARname, SDLname, playerID, tag):
        global visionplaying
        global statesN
        global statesS
        global statesE
        global statesW
        global speechKilled

        self.ageSDL = PtGetAgeSDL()

        if VARname == stringSDLVarLocked.value:
            windmillLocked = self.ageSDL[stringSDLVarLocked.value][0]
            if windmillLocked and visionplaying:
                PtAtTimeCallback(self.key, 3, kLostPowerID)
                #~ speechKilled = 1
                #~ self.StopVision()
                #~ imagerBrokenBtn.disableActivator()
                #~ imagerLockN.disableActivator()
                #~ imagerLockS.disableActivator()
                #~ imagerLockW.disableActivator()
                #~ imagerLockE.disableActivator()

        # checks if one of the Imager panel/symbol SDL vars has changed,
        # sets new state of any changed panels and runs corresponding responder
        if VARname == stringSDLVarPanelN.value:
            intPanelN = self.ageSDL[stringSDLVarPanelN.value][0]
            panelN = statesN[intPanelN]
            imagerRespN.run(self.key, state="%s" % (panelN))
        if VARname == stringSDLVarPanelS.value:
            intPanelS = self.ageSDL[stringSDLVarPanelS.value][0]
            panelS = statesS[intPanelS]
            imagerRespS.run(self.key, state="%s" % (panelS))
        if VARname == stringSDLVarPanelE.value:
            intPanelE = self.ageSDL[stringSDLVarPanelE.value][0]
            panelE = statesE[intPanelE]
            imagerRespE.run(self.key, state="%s" % (panelE))
        if VARname == stringSDLVarPanelW.value:
            intPanelW = self.ageSDL[stringSDLVarPanelW.value][0]
            panelW = statesW[intPanelW]
            imagerRespW.run(self.key, state="%s" % (panelW))

        intPanelN = self.ageSDL[stringSDLVarPanelN.value][0]
        intPanelS = self.ageSDL[stringSDLVarPanelS.value][0]
        intPanelE = self.ageSDL[stringSDLVarPanelE.value][0]
        intPanelW = self.ageSDL[stringSDLVarPanelW.value][0]
        if intPanelN == 0 and intPanelS == 0 and intPanelW == 0 and intPanelE == 0:
            import xSndLogTracks
            if xSndLogTracks.LogTrack("421", "15"):
                xSndLogTracks.SetLogMode()
    def OnSDLNotify(self, VARname, SDLname, playerID, tag):

        # is it a var we care about?
        if VARname != stringVarName.value:
            return

        ageSDL = PtGetAgeSDL()
        PtDebugPrint(
            "DEBUG: giraAgeSDLBoolRespondLightpost.OnSDLNotify():\t VARname:%s, SDLname:%s, tag:%s, value:%d"
            % (VARname, SDLname, tag, ageSDL[stringVarName.value][0]))
        solved = ageSDL[stringVarSolved.value][0]
        if not solved:
            return
        PtDebugPrint("cave puzzle solved ", stringVarSolved.value)
        # is state change from player or vault manager?
        if playerID:  # non-zero means it's a player
            objAvatar = ptSceneobject(PtGetAvatarKeyFromClientID(playerID),
                                      self.key)
            fastforward = 0
        else:  # invalid player aka Vault Manager
            objAvatar = None
            fastforward = boolVltMgrFastForward.value  # we need to skip any one-shots
        PtDebugPrint(
            "DEBUG: giraAgeSDLBoolRespondLightpost.OnSDLNotify():\tnotification from playerID: %d"
            % (playerID))

        # run the appropriate responder!
        if ageSDL[stringVarName.value][0]:
            PtDebugPrint(
                "DEBUG: giraAgeSDLBoolRespondLightpost.OnSDLNotify:\tRunning true responder on %s, fastforward=%d"
                % (self.sceneobject.getName(), fastforward))
            respBoolTrue.run(self.key,
                             avatar=objAvatar,
                             fastforward=fastforward)
        else:
            PtDebugPrint(
                "DEBUG: giraAgeSDLBoolRespondLightpost.OnSDLNotify:\tRunning false responder on %s, fastforward=%d"
                % (self.sceneobject.getName(), fastforward))
            respBoolFalse.run(self.key,
                              avatar=objAvatar,
                              fastforward=fastforward)
            if stringVarName.value == "giraLightswitch03On":
                import xSndLogTracks
                xSndLogTracks.LogTrack("143", "277")
Beispiel #4
0
 def OnSDLNotify(self, VARname, SDLname, playerID, tag):
     global visionplaying
     global statesN
     global statesS
     global statesE
     global statesW
     self.ageSDL = PtGetAgeSDL()
     if (VARname == stringSDLVarLocked.value):
         windmillLocked = self.ageSDL[stringSDLVarLocked.value][0]
         if (windmillLocked and visionplaying):
             PtAtTimeCallback(self.key, 3, kLostPowerID)
     if (VARname == stringSDLVarPanelN.value):
         intPanelN = self.ageSDL[stringSDLVarPanelN.value][0]
         panelN = statesN[intPanelN]
         imagerRespN.run(self.key, state=('%s' % panelN))
     if (VARname == stringSDLVarPanelS.value):
         intPanelS = self.ageSDL[stringSDLVarPanelS.value][0]
         panelS = statesS[intPanelS]
         imagerRespS.run(self.key, state=('%s' % panelS))
     if (VARname == stringSDLVarPanelE.value):
         intPanelE = self.ageSDL[stringSDLVarPanelE.value][0]
         panelE = statesE[intPanelE]
         imagerRespE.run(self.key, state=('%s' % panelE))
     if (VARname == stringSDLVarPanelW.value):
         intPanelW = self.ageSDL[stringSDLVarPanelW.value][0]
         panelW = statesW[intPanelW]
         imagerRespW.run(self.key, state=('%s' % panelW))
     intPanelN = self.ageSDL[stringSDLVarPanelN.value][0]
     intPanelS = self.ageSDL[stringSDLVarPanelS.value][0]
     intPanelE = self.ageSDL[stringSDLVarPanelE.value][0]
     intPanelW = self.ageSDL[stringSDLVarPanelW.value][0]
     if ((intPanelN == 0) and ((intPanelS == 0) and ((intPanelW == 0) and
                                                     (intPanelE == 0)))):
         import xSndLogTracks
         if xSndLogTracks.LogTrack('421', '15'):
             xSndLogTracks.SetLogMode()
Beispiel #5
0
    def OnNotify(self, state, id, events):
        global numJumps
        global localInTunnel
        global running

        triggerer = PtFindAvatar(events)
        avatar = PtGetLocalAvatar()
        if (avatar != triggerer):
            print "GardenBugs.OnNotify():\tWrong avatar, notifies run locally"
            return

        self.bugCount = PtGetNumParticles(avatar.getKey())

        if (id == bugRgn.id):
            print "GardenBugs.OnNotify():\tEntered bug cloud region"

            if (self.bugCount > 19):
                return
            self.ageSDL = PtGetAgeSDL()
            rain = self.ageSDL[raining.value][0]
            if (rain):
                print "gardenBugs.OnNotify()-->\tnope, it's raining"
                return
            if running:
                print "gardenBugs.OnNotify()-->\tcan't add bugs as we're still running"
                return
            if PtLocalAvatarRunKeyDown() and PtLocalAvatarIsMoving():
                print "gardenBugs.OnNotify()-->\tcan't add bugs as we're still running (but our running flag is false?)"
                return

            print "gardenBugs.OnNotify()-->\ttansferring Bugs!"
            avatar = PtFindAvatar(events)
            PtTransferParticlesToObject(bugEmitter.value.getKey(),
                                        avatar.getKey(), 10)
            PtSetParticleDissentPoint(0, 0, 10000, avatar.getKey())
            print "gardenBugs.OnNotify()-->\tset bugs at 10"
            PtAtTimeCallback(self.key, 0.1, kCheckForBugs)
            numJumps = 0
            self.bugCount = self.bugCount + 10
            self.ISaveBugCount(self.bugCount)

        if (id == rainStart.id):
            print "gardenBugs.OnNotify()-->\tstart rain timer"
            PtAtTimeCallback(self.key, 30.0, kRainStarting)
            return

        if (id == rainEnd.id):
            print "gardenBugs.OnNotify()-->\train stopping"
            self.ageSDL = PtGetAgeSDL()
            self.ageSDL[raining.value] = (0, )
            PtSetParticleOffset(0, 0, 4, bugEmitter.value.getKey())

        if (id == bharoCave.id and self.bugCount > 0):
            PtSetParticleDissentPoint(0, 0, 100, avatar.getKey())
            PtKillParticles(3.0, 1, avatar.getKey())
            PtSetLightAnimStart(avatar.getKey(), bugLightObjectName, false)
            print "gardenBugs.OnNotify()-->\tbharo cave too scary for bugs!"
            self.bugCount = 0
            self.ISaveBugCount(self.bugCount)
            import xSndLogTracks
            xSndLogTracks.LogTrack("277", "421")
            return

        if (id == tunnel1.id) or (id == tunnel2.id) or (id == tunnel3.id) or (
                id == gazebo1.id) or (id == gazebo2.id):
            for event in events:
                if event[0] == 1 and event[1] == 1:
                    localInTunnel = true
                    print "gardenBugs.OnNotify()-->\tlocal in tunnel"
                    return
                elif event[0] == 1 and event[1] == 0:
                    localInTunnel = false
                    print "gardenBugs.OnNotify()-->\tlocal exit tunnel"
                    self.ageSDL = PtGetAgeSDL()
                    rain = self.ageSDL[raining.value][0]
                    if (rain):
                        PtSetParticleDissentPoint(0, 0, 10000, avatar.getKey())
                        PtKillParticles(3.0, 1, avatar.getKey())
                        PtSetLightAnimStart(avatar.getKey(),
                                            bugLightObjectName, false)
                        self.bugCount = 0
                        self.ISaveBugCount(self.bugCount)
                    return
Beispiel #6
0
    def OnNotify(self, state, id, events):
        global generatorPrimed
        global scaleEngaged
        global weightDirection
        global weightNearUpEnd
        global weightNearDownEnd
        global weightSoundLoopingDown
        global gearStopping
        global gearStartingDown
        global weightEngageDisabled

        if (state == 0):
            return

        print "id ", id
        ageSDL = PtGetAgeSDL()

        mainOn = false
        try:
            mainOn = ageSDL[mainSwitchSDL.value][0]
        except:
            mainOn = false

        gearOn = false
        try:
            gearOn = ageSDL[gearSwitchSDL.value][0]
        except:
            gearOn = false

        upElevOn = false
        try:
            upElevOn = ageSDL[upElevSwitchSDL.value][0]
        except:
            upElevOn = false

        dnElevOn = false
        try:
            dnElevOn = ageSDL[dnElevSwitchSDL.value][0]
        except:
            dnElevOn = false

        brake01On = false
        try:
            brake01On = ageSDL[gearBrake01SDL.value][0]
        except:
            brake01On = false

        brake02On = false
        try:
            brake02On = ageSDL[gearBrake02SDL.value][0]
        except:
            brake02On = false

        triggerer = PtFindAvatar(events)

        if (id == weightTrigger.id):
            scaleEngaged = true
            print "weight activator"
            if (gearOn):
                print "gear on"
                import xSndLogTracks
                xSndLogTracks.LogTrack("15", "27")
                weightEngageDisabled = true
                return
            print "set weight forward"
            reverser.run(self.key, state='Forward', avatar=triggerer)
            weightControlResponder.run(self.key,
                                       state='High',
                                       avatar=triggerer)
            weightDirection = kUp
            if (weightNearDownEnd):
                print "weight sound looping down"
                weightStartSoundResp.run(self.key,
                                         state='Loop',
                                         avatar=triggerer)
                weightNearDownEnd = false
                weightSoundLoopingDown = true

            if (generatorPrimed == false):
                generatorPrimed = true
                flashingLightsResponder.run(self.key,
                                            state='Blink',
                                            avatar=PtGetLocalAvatar())
                print "generator primed"
                if (mainOn):
                    switchGlowResponder.run(self.key,
                                            state='On',
                                            avatar=triggerer)

        if (id == weightUnTrigger.id and generatorPrimed):
            if (weightEngageDisabled):
                return
            scaleEngaged = false
            if (gearOn == false):
                generatorPrimed = true
                flashingLightsResponder.run(self.key,
                                            state='Blink',
                                            avatar=PtGetLocalAvatar())
                print "generator primed"
                if (mainOn):
                    switchGlowResponder.run(self.key,
                                            state='On',
                                            avatar=triggerer)
            print "set weight reverse"
            reverser.run(self.key, state='Reverse', avatar=triggerer)
            weightControlResponder.run(self.key,
                                       state='High',
                                       avatar=triggerer)
            weightDirection = kDown
            if (weightNearUpEnd):
                weightStartSoundResp.run(self.key,
                                         state='Loop',
                                         avatar=triggerer)
                weightNearUpEnd = false
            return

        if (id == weightStartSoundTrigger.id):
            if (weightDirection == kUp):
                weightStartSoundResp.run(self.key,
                                         state='Start',
                                         avatar=triggerer)
                weightSoundLoopingDown = true
            elif (weightDirection == kDown):
                if (weightSoundLoopingDown):
                    print "stop all at bottom"
                    weightSoundLoopingDown = false
                    weightStartSoundResp.run(self.key,
                                             state='StopAll',
                                             avatar=triggerer)
                else:
                    print "let weight stop sound play out"
            return

        if (id == weightStopSoundTrigger.id):
            if (weightDirection == kUp):
                weightStartSoundResp.run(self.key,
                                         state='Stop',
                                         avatar=triggerer)
                weightNearUpEnd = true
            elif (weightDirection == kDown):
                weightNearUpEnd = false
            return

        if (id == weightAtTopTrigger.id):
            if (weightDirection == kDown):
                weightStartSoundResp.run(self.key,
                                         state='Loop',
                                         avatar=triggerer)
                weightNearUpEnd = false
            elif (weightDirection == kUp):
                weightStartSoundResp.run(self.key,
                                         state='StopAll',
                                         avatar=triggerer)
            return

        if (id == weightStopDownSoundTrigger.id):
            if (weightDirection == kDown):
                weightStartSoundResp.run(self.key,
                                         state='Stop',
                                         avatar=triggerer)
                weightNearDownEnd = true
                print "weight near down end"
            elif (weightDirection == kUp):
                weightNearDownEnd = false
                weightSoundLoopingDown = false
            return

            #weightLevel=0
            #if (brake01On == false):
            #    weightLevel = weightLevel + 1
            #if (brake02On == false):
            #    weightLevel = weightLevel + 1
            #if (mainOn):
            #    weightLevel = weightLevel + 1
            #print"weight level ",weightLevel
            #if (weightLevel == 0):
            #    weightControlResponder.run(self.key,state='High',avatar=triggerer)
            #elif (weightLevel == 1):
            #    weightControlResponder.run(self.key,state='Medium',avatar=triggerer)
            #elif (weightLevel == 2):
            #    weightControlResponder.run(self.key,state='Low',avatar=triggerer)
            #else:
            #    weightControlResponder.run(self.key,state='Lowest',avatar=triggerer)

        if (id == weightHighUp.id):
            #            or \
            #            id == weightLowDown.id or \
            #            id == weightMedDown.id or \
            #            id == weightLowestDown.id):
            print "weight down"
            weightEngageDisabled = false
            if (scaleEngaged):
                return
            generatorPrimed = false
            if (gearOn):
                return
            flashingLightsResponder.run(self.key,
                                        state='Off',
                                        avatar=PtGetLocalAvatar())
            if (mainOn):
                ageSDL[mainSwitchSDL.value] = (0, )
                mainSwitchResp.run(self.key,
                                   state='PrimerExpired',
                                   avatar=triggerer)
                switchGlowResponder.run(self.key,
                                        state='Off',
                                        avatar=triggerer)
            if (brake01On == false):
                gearBrake01Resp.run(self.key,
                                    state='AutoReturn',
                                    avatar=triggerer)
                ageSDL[gearBrake01SDL.value] = (1, )
            if (brake02On == false):
                gearBrake02Resp.run(self.key,
                                    state='AutoReturn',
                                    avatar=triggerer)
                ageSDL[gearBrake02SDL.value] = (1, )
            return

        if (id == gearBrake01Resp.id):
            #lock just finished unlocking, check to see that power didn't go off while it was in motion,
            if (generatorPrimed == false):
                gearBrake01Resp.run(self.key,
                                    state='AutoReturn',
                                    avatar=triggerer)
                ageSDL[gearBrake01SDL.value] = (1, )

        if (id == gearBrake02Resp.id):
            #lock just finished unlocking, check to see that power didn't go off while it was in motion,
            if (generatorPrimed == false):
                gearBrake02Resp.run(self.key,
                                    state='AutoReturn',
                                    avatar=triggerer)
                ageSDL[gearBrake02SDL.value] = (1, )

        if (id == gearStopTrigger.id):
            print "gear stop trigger"
            if (gearStopping):
                print "gear stop trigger: gear stopped, begin final descent"
                gearStopping = false
                if (gearStartingDown):
                    print "gear stop trigger: gear still in initial descent - do nothing"
                else:
                    mainPowerOffResponder.run(self.key,
                                              state='GearDown',
                                              avatar=PtGetLocalAvatar())

        if (id == mainPowerOffResponder.id):
            if (gearStartingDown):
                print "main power responder callback - gear finished initial descent"
                #gear is finished moving partway down, okay to start second half
                gearStartingDown = false
                if (gearStopping == false):
                    print "main power responder callback - gear also stopped, begin final descent"
                    mainPowerOffResponder.run(self.key,
                                              state='GearDown',
                                              avatar=PtGetLocalAvatar())
                else:
                    print "main power responder callback - gear still turning, wait for it to stop"
                return
            if (gearStopping == false and gearStartingDown == false):
                print "main power responder callback - reengage locks"
                #gear is down, reengage the locks
                if (generatorPrimed == false):
                    if (brake01On == false):
                        gearBrake01Resp.run(self.key,
                                            state='AutoReturn',
                                            avatar=triggerer)
                        ageSDL[gearBrake01SDL.value] = (1, )

                    if (brake02On == false):
                        gearBrake02Resp.run(self.key,
                                            state='AutoReturn',
                                            avatar=triggerer)
                        ageSDL[gearBrake02SDL.value] = (1, )

        if (id == mainSwitchResp.id):
            print "main switch callback"
            if (mainOn):
                print "main switch now on"
                if (generatorPrimed):
                    switchGlowResponder.run(self.key,
                                            state='On',
                                            avatar=triggerer)
            else:
                print "main switch now off"
                flashingLightsResponder.run(self.key,
                                            state='Off',
                                            avatar=PtGetLocalAvatar())
                if (upElevOn):
                    upElevSwitchResp.run(self.key,
                                         state='Break',
                                         avatar=triggerer)
                    ageSDL[upElevSwitchSDL.value] = (0, )
                    if (gearOn):
                        upElevGlowResponder.run(self.key,
                                                state='Off',
                                                avatar=triggerer)

                if (dnElevOn):
                    dnElevSwitchResp.run(self.key,
                                         state='Break',
                                         avatar=triggerer)
                    ageSDL[dnElevSwitchSDL.value] = (0, )
                    if (gearOn):
                        dnElevGlowResponder.run(self.key,
                                                state='Off',
                                                avatar=triggerer)

                if (gearOn):
                    gearSwitchResp.run(self.key,
                                       state='Break',
                                       avatar=triggerer)
                    gearGlowResponder.run(self.key,
                                          state='Off',
                                          avatar=triggerer)
                    switchGlowResponder.run(self.key,
                                            state='Off',
                                            avatar=triggerer)
                    mainPowerOffResponder.run(self.key,
                                              state='GearOff',
                                              avatar=triggerer)
                    gearStopping = true
                    gearStartingDown = true
                    ageSDL[gearSwitchSDL.value] = (0, )

                else:  # gear not on, but locks may be...
                    if (brake01On == false):
                        if (gearStartingDown):
                            return
                        gearBrake01Resp.run(self.key,
                                            state='AutoReturn',
                                            avatar=triggerer)
                        ageSDL[gearBrake01SDL.value] = (1, )

                    if (brake02On == false):
                        if (gearStartingDown):
                            return
                        gearBrake02Resp.run(self.key,
                                            state='AutoReturn',
                                            avatar=triggerer)
                        ageSDL[gearBrake02SDL.value] = (1, )

                mainBreakerResponder.run(self.key, avatar=triggerer)

        if (id == mainSwitch.id):
            print "main switch"
            if (mainOn):
                print "main going off"
                ageSDL[mainSwitchSDL.value] = (0, )
                if (gearOn):
                    gearRoomDoors.run(self.key,
                                      state='TurnOff',
                                      avatar=PtGetLocalAvatar())
                    firstFloorDoors.run(self.key,
                                        state='TurnOff',
                                        avatar=PtGetLocalAvatar())
                    secondFloorDoors.run(self.key,
                                         state='TurnOff',
                                         avatar=PtGetLocalAvatar())
                    mainSwitchResp.run(self.key,
                                       state='Break',
                                       avatar=triggerer)
                    self.DisableCamera()
                    print "break main switch"
                else:
                    mainSwitchResp.run(self.key,
                                       state='TurnOff',
                                       avatar=triggerer)
                    print "turn off main switch"
                if (generatorPrimed):
                    switchGlowResponder.run(self.key,
                                            state='Off',
                                            avatar=triggerer)

            else:
                print "main going on"
                if (generatorPrimed):
                    ageSDL[mainSwitchSDL.value] = (1, )
                    mainSwitchResp.run(self.key,
                                       state='TurnOn',
                                       avatar=triggerer)
                else:  #generator not primed, just trip
                    mainSwitchResp.run(self.key,
                                       state='Trip',
                                       avatar=triggerer)

            return

        if (id == gearSwitchResp.id):
            print "gear switch callback"
            if (gearOn):
                print "gear switch now on"
                mainPowerOnResponder.run(self.key, avatar=triggerer)
                flashingLightsResponder.run(self.key,
                                            state='On',
                                            avatar=triggerer)
                gearGlowResponder.run(self.key, state='On', avatar=triggerer)
                if (generatorPrimed == false):
                    #lights went out while firing up
                    switchGlowResponder.run(self.key,
                                            state='On',
                                            avatar=triggerer)
            else:
                print "gear switch now off"
                mainPowerOffResponder.run(self.key,
                                          state='GearOff',
                                          avatar=triggerer)
                gearStopping = true
                gearStartingDown = true
                flashingLightsResponder.run(self.key,
                                            state='Off',
                                            avatar=triggerer)
                if (mainOn):
                    switchGlowResponder.run(self.key,
                                            state='Off',
                                            avatar=triggerer)
                    gearGlowResponder.run(self.key,
                                          state='Off',
                                          avatar=triggerer)
                    ageSDL[mainSwitchSDL.value] = (0, )
                    mainSwitchResp.run(self.key,
                                       state='PrimerExpired',
                                       avatar=triggerer)

                if (upElevOn):
                    upElevSwitchResp.run(self.key,
                                         state='Break',
                                         avatar=triggerer)
                    ageSDL[upElevSwitchSDL.value] = (0, )
                    upElevGlowResponder.run(self.key,
                                            state='Off',
                                            avatar=triggerer)

                if (dnElevOn):
                    dnElevSwitchResp.run(self.key,
                                         state='Break',
                                         avatar=triggerer)
                    ageSDL[dnElevSwitchSDL.value] = (0, )
                    dnElevGlowResponder.run(self.key,
                                            state='Off',
                                            avatar=triggerer)

        if (id == gearSwitch.id):
            if (mainOn):
                if (gearOn):
                    self.DisableCamera()
                    ageSDL[gearSwitchSDL.value] = (0, )
                    gearSwitchResp.run(self.key,
                                       state='TurnOff',
                                       avatar=triggerer)
                    gearRoomDoors.run(self.key,
                                      state='TurnOff',
                                      avatar=PtGetLocalAvatar())
                    firstFloorDoors.run(self.key,
                                        state='TurnOff',
                                        avatar=PtGetLocalAvatar())
                    secondFloorDoors.run(self.key,
                                         state='TurnOff',
                                         avatar=PtGetLocalAvatar())

                else:
                    if (generatorPrimed and brake01On == false
                            and brake02On == false):
                        self.DisableCamera()
                        ageSDL[gearSwitchSDL.value] = (1, )
                        weightEngageDisabled = true
                        gearSwitchResp.run(self.key,
                                           state='TurnOn',
                                           avatar=triggerer)
                        gearRoomDoors.run(self.key,
                                          state='TurnOn',
                                          avatar=PtGetLocalAvatar())
                        firstFloorDoors.run(self.key,
                                            state='TurnOn',
                                            avatar=PtGetLocalAvatar())
                        secondFloorDoors.run(self.key,
                                             state='TurnOn',
                                             avatar=PtGetLocalAvatar())
                        ageSDL[dnElevSwitchSDL.value] = (0, )
                        ageSDL[upElevSwitchSDL.value] = (0, )
                    else:
                        gearSwitchResp.run(self.key,
                                           state='TripEngaged',
                                           avatar=triggerer)
            else:  # main off
                gearSwitchResp.run(self.key, state='Trip', avatar=triggerer)
            return

        if (id == dnElevSwitch.id):
            dnElevSwitch.disable()

            cbTime = 6
            if (mainOn):
                if (gearOn):
                    elevOn = ageSDL[dnElevSwitchSDL.value][0]
                    if (elevOn):
                        ageSDL[dnElevSwitchSDL.value] = (0, )
                        dnElevSwitchResp.run(self.key,
                                             state='TurnOff',
                                             avatar=triggerer)
                    else:
                        ageSDL[dnElevSwitchSDL.value] = (1, )
                        dnElevSwitchResp.run(self.key,
                                             state='TurnOn',
                                             avatar=triggerer)
                        cbTime = 8
                else:  #main on, gear off
                    dnElevSwitchResp.run(self.key,
                                         state='TripEngaged',
                                         avatar=triggerer)
            else:  # main off
                dnElevSwitchResp.run(self.key, state='Trip', avatar=triggerer)

            PtAtTimeCallback(self.key, cbTime, TimerID.DownElevatorSwitch)
            return

        if (id == upElevSwitch.id):
            upElevSwitch.disable()

            cbTime = 6
            if (mainOn):
                if (gearOn):
                    elevOn = ageSDL[upElevSwitchSDL.value][0]
                    if (elevOn):
                        ageSDL[upElevSwitchSDL.value] = (0, )
                        upElevSwitchResp.run(self.key,
                                             state='TurnOff',
                                             avatar=triggerer)
                    else:
                        ageSDL[upElevSwitchSDL.value] = (1, )
                        upElevSwitchResp.run(self.key,
                                             state='TurnOn',
                                             avatar=triggerer)
                        cbTime = 8
                else:  #main on, gear off
                    upElevSwitchResp.run(self.key,
                                         state='TripEngaged',
                                         avatar=triggerer)
            else:  # main off
                upElevSwitchResp.run(self.key, state='Trip', avatar=triggerer)

            PtAtTimeCallback(self.key, cbTime, TimerID.UpElevatorSwitch)
            return

        if (id == gearBrake01.id):
            print "brake01"
            if (gearOn):
                gearBrake01Resp.run(self.key, state='Trip', avatar=triggerer)
                return
            elif (mainOn == false):
                print "main off"
                gearBrake01Resp.run(self.key, state='Trip', avatar=triggerer)
            else:  #main on
                print "main on"
                if (generatorPrimed):
                    if (brake01On):
                        print "unlock"
                        gearBrake01Resp.run(self.key,
                                            state='Unlock',
                                            avatar=triggerer)
                        ageSDL[gearBrake01SDL.value] = (0, )
                    else:
                        print "lock"
                        gearBrake01Resp.run(self.key,
                                            state='Lock',
                                            avatar=triggerer)
                        ageSDL[gearBrake01SDL.value] = (1, )
                else:  #generator not primed
                    print "trip"
                    gearBrake01Resp.run(self.key,
                                        state='Trip',
                                        avatar=triggerer)
            return

        if (id == gearBrake02.id):
            print "brake02"
            if (gearOn):
                gearBrake02Resp.run(self.key, state='Trip', avatar=triggerer)
                return
            elif (mainOn == false):
                print "main off"
                gearBrake02Resp.run(self.key, state='Trip', avatar=triggerer)
            else:  #main on
                print "main on"
                if (generatorPrimed):
                    if (brake02On):
                        print "unlock"
                        gearBrake02Resp.run(self.key,
                                            state='Unlock',
                                            avatar=triggerer)
                        ageSDL[gearBrake02SDL.value] = (0, )
                    else:
                        print "lock"
                        gearBrake02Resp.run(self.key,
                                            state='Lock',
                                            avatar=triggerer)
                        ageSDL[gearBrake02SDL.value] = (1, )
                else:  #generator not primed
                    print "trip"
                    gearBrake02Resp.run(self.key,
                                        state='Trip',
                                        avatar=triggerer)
            return
Beispiel #7
0
    def OnNotify(self, state, id, events):
        global baton
        global Resetting

        ageSDL = PtGetAgeSDL()

        #~ print "kdshGlowInTheDark.OnNotify:  state=%f id=%d events=" % (state,id),events

        if not state:
            return

        if id == actSwitch01.id:
            respButtonOneshot.run(self.key, events=events)
            return

        elif id == respButtonOneshot.id and OnlyOneOwner.sceneobject.isLocallyOwned(
        ):
            print "##"
            oldstate = ageSDL["RoofClosed"][0]  # 1 is closed, 0 is open

            if oldstate == 1:  # roof was previously closed
                print "kdshGlowInTheDark: The roof is now open."
                self.RecordOpenTime()

                GlowCharged = ageSDL["GlowCharged"][0]
                print "kdshGlowInTheDark: GlowCharged = ", GlowCharged
                #~ if GlowCharged:
                #~ respFloorLitFromGlow.run(self.key)
                #~ else:
                #~ respFloorLitFromDark.run(self.key)

            elif oldstate == 0:  # roof was previously open
                print "kdshGlowInTheDark: The roof is now closed."
                self.CalculateTimeOpen()
                #~ respFloorDark.run(self.key)

            else:
                print "kdshGlowInTheDark: Unexpected roof state: (%s)" % newstate

            newstate = abs(oldstate - 1)  # toggle roof state value
            ageSDL["RoofClosed"] = (newstate, )  #write new state value to SDL
            return

        elif id == respElevDown.id:
            print "kdshGlowInTheDark: The elevator has reached the bottom."
            PtAtTimeCallback(self.key, ElevatorDelay,
                             1)  # wait 10 seconds, then raise elevator again
            xRgnBottom.releaseNow(self.key)
            rgnEnterSubBtm.enable()
            return

        elif id == respElevUp.id:
            print "kdshGlowInTheDark: The elevator has reached the top."
            PtAtTimeCallback(self.key, ElevatorDelay,
                             3)  # wait 10 seconds, then lower elevator again
            xRgnTop.releaseNow(self.key)
            rgnEnterSubTop.enable()
            #~ rgnExitSubTop.enable()
            for region in objExitTop.value:
                region.physics.suppress(0)
            return

        elif id >= 6 and id <= 15:  #The 10 tiles
            self.BatonPassCheck(id, events)
            return

        elif id == 16:  # The Entire Floor Zone
            for event in events:
                if event[0] == 1 and event[1] == 1:
                    print "kdshGlowInTheDark: A second player stepped on floor."
                    baton = 0
                elif event[0] == 1:
                    print "kdshGlowInTheDark: Floor unoccupied."
            return

        elif id == actResetBtn.id:
            print "kdshGlowInTheDark Reset Button clicked."
            Resetting = 1
            respResetBtn.run(self.key, events=events)
            return

        elif id == respResetBtn.id and OnlyOneOwner.sceneobject.isLocallyOwned(
        ):
            print "kdshGlowInTheDark Reset Button Pushed. Puzzle resetting."

            ageSDL["RoofClosed"] = (1, )
            ageSDL["GlowCharged"] = (0, )
            ageSDL["TimeOpened"] = (0, )

            #Turn the looping elevator off
            ageSDL["GlowInTheDarkSolved"] = (0, )

            # huevo
            xSndLogTracks.LogTrack("94", "143")
            return

        elif id == rgnExitSubTop.id and PtWasLocallyNotified(self.key):
            print "kdshGlowInTheDark: You stepped off the elevator at the top. Removing from Subworld"
            avatarInElevator = PtFindAvatar(events)
            avatarInElevator.avatar.exitSubWorld()
            return

        elif id == rgnExitSubBtm.id and PtWasLocallyNotified(self.key):
            print "kdshGlowInTheDark: You stepped off the elevator at the btm. Removing from Subworld"
            avatarInElevator = PtFindAvatar(events)
            avatarInElevator.avatar.exitSubWorld()
            return

        elif id == rgnEnterSubTop.id and PtWasLocallyNotified(self.key):
            print "You stepped on the elevator at the top. Joining subworld."
            #~ rgnExitSubTop.disable()

            avatarInElevator = PtFindAvatar(events)
            avatarInElevator.avatar.enterSubWorld(elevatorsubworld.value)
            return

        elif id == rgnEnterSubBtm.id and PtWasLocallyNotified(self.key):
            print "You stepped on the elevator at the bottom. Joining subworld."
            rgnExitSubBtm.disable()
            avatarInElevator = PtFindAvatar(events)
            avatarInElevator.avatar.enterSubWorld(elevatorsubworld.value)
            return

        else:
            for event in events:
                if event[
                        0] == kVariableEvent:  # Did another player just get out of the bucket by hitting ESC/backspace? (An OnControlKeyEvent I wouldn't have received)
                    TimerID = int(event[3])
                    #~ print "\tTimer #", TimerID,"callback came through."

                    if TimerID == 1:
                        print "kdshGlowInTheDark: Timer 1 Callback. Raising elevator again."
                        xRgnBottom.clearNow(self.key)
                        rgnExitSubBtm.disable()

                        if not self.sceneobject.isLocallyOwned():
                            print "\tI'm not the owner, so I'll let another client netforce raise the elevator."
                            return
                        else:
                            respElevUp.run(self.key)

                    if TimerID == 2:
                        print "kdshGlowInTheDark: Timer 2 Callback. Clearing top Xrgn"
                        xRgnTop.clearNow(self.key)
                        rgnEnterSubTop.disable()

                    if TimerID == 3:
                        print "kdshGlowInTheDark: Timer 3 Callback."
                        ageSDL = PtGetAgeSDL()
                        solved = ageSDL["GlowInTheDarkSolved"][0]
                        if solved:
                            print "\t Puzzle is still solved. Lowering Elevator again."
                            PtAtTimeCallback(self.key, 1,
                                             2)  # clear Xrgn in 1 second
                            for region in objExitTop.value:
                                region.physics.suppress(1)

                            rgnExitSubBtm.enable()
                            if not self.sceneobject.isLocallyOwned():
                                print "\tI'm not the owner, so I'll let another client netforce lower the elevator."
                                return
                            else:
                                respElevDown.run(self.key)

                        else:
                            print "\t Puzzle has been reset. Leaving elevator alone at top."
                            rgnEnterSubTop.disable()
                            for region in objExitTop.value:
                                region.physics.suppress(0)
                    if TimerID == 4:
                        print "kdshGlowInTheDark: Timer 4 Callback."
                        print "\tkdshGlowInTheDark.OnTimer: Running from Lit to Dark."
                        respFloorDark.run(self.key)
                        Resetting = 0
Beispiel #8
0
 def OnNotify(self, state, id, events):
     global Resetting
     global baton
     ageSDL = PtGetAgeSDL()
     if (not state):
         return
     if (id == actSwitch01.id):
         respButtonOneshot.run(self.key, events=events)
         return
     elif ((id == respButtonOneshot.id)
           and OnlyOneOwner.sceneobject.isLocallyOwned()):
         print '##'
         oldstate = ageSDL['RoofClosed'][0]
         if (oldstate == 1):
             print 'kdshGlowInTheDark: The roof is now open.'
             self.RecordOpenTime()
             GlowCharged = ageSDL['GlowCharged'][0]
             print 'kdshGlowInTheDark: GlowCharged = ',
             print GlowCharged
         elif (oldstate == 0):
             print 'kdshGlowInTheDark: The roof is now closed.'
             self.CalculateTimeOpen()
         else:
             print('kdshGlowInTheDark: Unexpected roof state: (%s)' %
                   newstate)
         newstate = abs((oldstate - 1))
         ageSDL['RoofClosed'] = (newstate, )
         return
     elif (id == respElevDown.id):
         print 'kdshGlowInTheDark: The elevator has reached the bottom.'
         PtAtTimeCallback(self.key, ElevatorDelay, 1)
         xRgnBottom.releaseNow(self.key)
         rgnEnterSubBtm.enable()
         return
     elif (id == respElevUp.id):
         print 'kdshGlowInTheDark: The elevator has reached the top.'
         PtAtTimeCallback(self.key, ElevatorDelay, 3)
         xRgnTop.releaseNow(self.key)
         rgnEnterSubTop.enable()
         for region in objExitTop.value:
             region.physics.suppress(0)
         return
     elif ((id >= 6) and (id <= 15)):
         if PtWasLocallyNotified(self.key):
             self.BatonPassCheck(id, events)
         return
     elif (id == 16):
         for event in events:
             if ((event[0] == 1) and (event[1] == 1)):
                 print 'kdshGlowInTheDark: A second player stepped on floor.'
                 baton = 0
             elif (event[0] == 1):
                 print 'kdshGlowInTheDark: Floor unoccupied.'
         return
     elif (id == actResetBtn.id):
         print 'kdshGlowInTheDark Reset Button clicked.'
         Resetting = 1
         respResetBtn.run(self.key, events=events)
         return
     elif ((id == respResetBtn.id)
           and OnlyOneOwner.sceneobject.isLocallyOwned()):
         print 'kdshGlowInTheDark Reset Button Pushed. Puzzle resetting.'
         ageSDL['RoofClosed'] = (1, )
         ageSDL['GlowCharged'] = (0, )
         ageSDL['TimeOpened'] = (0, )
         ageSDL['GlowInTheDarkSolved'] = (0, )
         xSndLogTracks.LogTrack('94', '143')
         return
     elif ((id == rgnExitSubTop.id) and PtWasLocallyNotified(self.key)):
         print 'kdshGlowInTheDark: You stepped off the elevator at the top. Removing from Subworld'
         avatarInElevator = PtFindAvatar(events)
         avatarInElevator.avatar.exitSubWorld()
         return
     elif ((id == rgnExitSubBtm.id) and PtWasLocallyNotified(self.key)):
         print 'kdshGlowInTheDark: You stepped off the elevator at the btm. Removing from Subworld'
         avatarInElevator = PtFindAvatar(events)
         avatarInElevator.avatar.exitSubWorld()
         return
     elif ((id == rgnEnterSubTop.id) and PtWasLocallyNotified(self.key)):
         print 'You stepped on the elevator at the top. Joining subworld.'
         for region in objExitTop.value:
             region.physics.suppress(1)
         avatarInElevator = PtFindAvatar(events)
         avatarInElevator.avatar.enterSubWorld(elevatorsubworld.value)
         return
     elif ((id == rgnEnterSubBtm.id) and PtWasLocallyNotified(self.key)):
         print 'You stepped on the elevator at the bottom. Joining subworld.'
         rgnExitSubBtm.disable()
         avatarInElevator = PtFindAvatar(events)
         avatarInElevator.avatar.enterSubWorld(elevatorsubworld.value)
         return
     else:
         for event in events:
             if (event[0] == kVariableEvent):
                 TimerID = int(event[3])
                 if (TimerID == 1):
                     print 'kdshGlowInTheDark: Timer 1 Callback. Raising elevator again.'
                     xRgnBottom.clearNow(self.key)
                     rgnExitSubBtm.disable()
                     if (not self.sceneobject.isLocallyOwned()):
                         print "\tI'm not the owner, so I'll let another client netforce raise the elevator."
                         return
                     else:
                         respElevUp.run(self.key)
                 if (TimerID == 2):
                     print 'kdshGlowInTheDark: Timer 2 Callback. Clearing top Xrgn'
                     xRgnTop.clearNow(self.key)
                     rgnEnterSubTop.disable()
                 if (TimerID == 3):
                     print 'kdshGlowInTheDark: Timer 3 Callback.'
                     ageSDL = PtGetAgeSDL()
                     solved = ageSDL['GlowInTheDarkSolved'][0]
                     if solved:
                         print '\t Puzzle is still solved. Lowering Elevator again.'
                         PtAtTimeCallback(self.key, 1, 2)
                         for region in objExitTop.value:
                             region.physics.suppress(1)
                         rgnExitSubBtm.enable()
                         if (not self.sceneobject.isLocallyOwned()):
                             print "\tI'm not the owner, so I'll let another client netforce lower the elevator."
                             return
                         else:
                             respElevDown.run(self.key)
                     else:
                         print '\t Puzzle has been reset. Leaving elevator alone at top.'
                         rgnEnterSubTop.disable()
                         for region in objExitTop.value:
                             region.physics.suppress(0)
                 if (TimerID == 4):
                     print 'kdshGlowInTheDark: Timer 4 Callback.'
                     print '\tkdshGlowInTheDark.OnTimer: Running from Lit to Dark.'
                     respFloorDark.run(self.key)
                     Resetting = 0