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")
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")
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()
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
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
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
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