def announceGenerate(self): DistributedObject.announceGenerate(self) base.transitions.fadeScreen(0.0) self.guide = Toon(base.cr) self.guide.autoClearChat = False self.guide.parseDNAStrand(NPCGlobals.NPC_DNA[self.GUIDE_NAME]) self.guide.setName(self.GUIDE_NAME) self.guide.generateToon() self.guide.startBlink() self.guide.reparentTo(render) base.localAvatar.reparentTo(render) loader.loadDNAFile(self.dnaStore, 'phase_3.5/dna/storage_tutorial.dna') node = loader.loadDNAFile(self.dnaStore, 'phase_3.5/dna/tutorial_street.dna') if node.getNumParents() == 1: self.streetGeom = NodePath(node.getParent(0)) self.streetGeom.reparentTo(hidden) else: self.streetGeom = hidden.attachNewNode(node) self.streetGeom.flattenMedium() gsg = base.win.getGsg() if gsg: self.streetGeom.prepareScene(gsg) self.streetGeom.reparentTo(render) self.streetGeom.setPos(20.5, -20, 0) self.streetGeom.setH(90) self.sky = loader.loadModel('phase_3.5/models/props/TT_sky.bam') self.skyUtil.startSky(self.sky) self.sky.reparentTo(camera) ce = CompassEffect.make(NodePath(), CompassEffect.PRot | CompassEffect.PZ) self.sky.node().setEffect(ce) self.music = base.loadMusic('phase_3.5/audio/bgm/TC_SZ.mid') base.playMusic(self.music, volume=0.8, looping=1) self.battleMusic = base.loadMusic('phase_3.5/audio/bgm/encntr_general_bg.mid') self.fsm.request('newPlayerEmerge') base.localAvatar.inTutorial = True
def announceGenerate(self): DistributedObject.announceGenerate(self) self.interior = loader.loadModel('phase_4/models/modules/ttc_library_interior.bam') self.interior.reparentTo(render) generator = random.Random() generator.seed(self.zoneId) self.replaceRandom(self.interior, generator=generator) doorOrigin = self.interior.find('**/door_origin;+s') doorOrigin.setScale(0.8) doorOrigin.setY(doorOrigin, -0.025) door = self.cr.playGame.dnaStore.findNode('door_double_round_ur') doorNodePath = door.copyTo(doorOrigin) hoodId = ZoneUtil.getCanonicalHoodId(self.zoneId) doorColor = ToonInteriorColors.colors[hoodId]['TI_door'][0] DNADoor.setupDoor( doorNodePath, self.interior, doorOrigin, self.cr.playGame.dnaStore, str(self.block), doorColor) doorFrame = doorNodePath.find('door_double_round_ur_flat') doorFrame.wrtReparentTo(self.interior) doorFrame.setColor(doorColor) for npcToon in self.cr.doFindAllInstances(DistributedNPCToonBase): npcToon.initToonState()
def announceGenerate(self): DistributedObject.announceGenerate(self) if self.ship is None and self.pirateTarget is None and self.ship.isEmpty() or self.pirateTarget.isEmpty(): self.sendUpdate('shotDown') return None self.barrelModel = loader.loadModel('models/ammunition/pir_m_gam_can_powderKeg') self.barrelModel.setScale(2.0) base.playSfx(self.launchSound, node = self.barrelModel, cutoff = 2000) self.barrelModel.reparentTo(self.ship) self.barrelModel.setPos(0, 0, 10) self.barrelModel.wrtReparentTo(self.pirateTarget) self.makeCollNode() self.barrelModel.setTag('objType', str(PiratesGlobals.COLL_FLAMING_BARREL)) self.collNode.setPythonTag('barrel', self) self.projectileInterval = Parallel(ProjectileInterval(self.barrelModel, endPos = Point3(0.0, 0.0, 4.5), duration = self.flightDuration, gravityMult = CannonDefenseGlobals.BARREL_GRAVITY), self.barrelModel.hprInterval(self.flightDuration, Vec3(720, 640, 440)), Sequence(Wait(self.flightDuration - 1.2), Func(base.playSfx, self.closeSound, node = self.barrelModel, cutoff = 2000), Wait(1.2), Func(self.hitTarget)), name = self.uniqueName('FlamingBarrelFlying')) self.collNode.reparentTo(self.barrelModel) self.projectileInterval.start() base.cTrav.addCollider(self.collNode, self.collHandler) base.cr.activeWorld.flamingBarrels.append(self) self.trailEffect = FireTrail.getEffect() if self.trailEffect: self.trailEffect.reparentTo(self.barrelModel) self.trailEffect.wantGlow = base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsMedium self.trailEffect.wantBlur = base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsHigh self.trailEffect.startLoop()
def announceGenerate(self): """ This method is called after generate(), after all of the required fields have been filled in. At the time of this call, the distributed object is ready for use. """ DistributedObject.announceGenerate(self) # Now that the object has been fully manifested, we can parent # it into the scene. print "render the model" self.model.reparentTo(render)
def generate(self): DistributedObject.announceGenerate(self) self.trolleyStation = self.cr.playGame.hood.loader.geom.find('**/prop_trolley_station_DNARoot') self.trolleyCar = self.trolleyStation.find('**/trolley_car') self.trolleyKey = self.trolleyStation.find('**/key') tn = TextNode('trolleycountdowntext') tn.setFont(CIGlobals.getMickeyFont()) tn.setTextColor(1, 0, 0, 1) self.countdownText = self.trolleyStation.attachNewNode(tn) self.countdownText.setScale(3.0) self.countdownText.setPos(14.58, 10.77, 11.17) self.acceptOnce('entertrolley_sphere', self.__handleTrolleyTrigger)
def announceGenerate(self): DistributedObject.announceGenerate(self) self.cr.allGames.append(self) nextGameId = self.cr.nextGameId if not nextGameId: nextGameId = self.cr.timeManager.suggestedGameId if nextGameId == self.doId and not self.cr.game and not self.localPlayerJoined and self.gameActive and not self.rejectedMe: # If we're waiting for this particular game, request to # join it. self.d_requestJoin()
def announceGenerate(self): DistributedObject.announceGenerate(self) self.tent = loader.loadModel('phase_4/models/events/event_tent.bam') self.tent.reparentTo(render) self.tent.setPosHpr(0, 0, 0, 270, 0, 0) self.redFlag = Actor(loader.loadModel('phase_4/models/events/event-flag-mod.bam')) self.redFlag.loadAnims({'waving': 'phase_4/models/events/event-flag-anim.bam'}) self.redFlag.reparentTo(self.tent.find('**/flag1_jnt')) self.redFlag.loop('waving') self.blueFlag = Actor(loader.loadModel('phase_4/models/events/event-flag-mod.bam')) self.blueFlag.loadAnims({'waving': 'phase_4/models/events/event-flag-anim.bam'}) self.blueFlag.reparentTo(self.tent.find('**/flag2_jnt')) self.blueFlag.loop('waving') self.tent2 = loader.loadModel('phase_4/models/events/event_tent.bam') self.tent2.reparentTo(render) self.tent2.setPosHpr(85.91, 149.76, 2.61, 327.99, 0, 0) self.balloonArchway = loader.loadModel('phase_4/models/events/balloon_archway_spiraled.bam') self.balloonArchway.reparentTo(render) self.balloonArchway.setPosHpr(-24.25, 17.24, 0, 0, 0, 0) self.balloonArchway.flattenStrong() self.balloonArchway2 = loader.loadModel('phase_4/models/events/balloon_archway_spiraled.bam') self.balloonArchway2.reparentTo(render) self.balloonArchway2.setPosHpr(-24.25, -31.03, 0, 0, 0, 0) self.balloonArchway2.flattenStrong() self.balloonArchway3 = loader.loadModel('phase_4/models/events/balloon_archway_spiraled.bam') self.balloonArchway3.reparentTo(render) self.balloonArchway3.setPosHpr(99.6, 0.65, 4, 272.39, 0, 0) self.balloonArchway3.setScale(1.21) self.balloonArchway3.flattenStrong() self.balloontowerCake = loader.loadModel('phase_4/models/events/balloon_set_cake.bam') self.balloontowerCake.reparentTo(render) self.balloontowerCake.setPosHpr(95.65, 6.75, 4, 270, 0, 0) self.balloontowerCake.flattenStrong() self.balloontowerStar = loader.loadModel('phase_4/models/events/balloon_set_star.bam') self.balloontowerStar.reparentTo(render) self.balloontowerStar.setPosHpr(95.70, -5.56, 4, 270, 0, 0) self.balloontowerStar.flattenStrong() self.barrierCircle = loader.loadModel('phase_4/models/events/barrier_circle_sf.bam') self.barrierCircle.reparentTo(render) self.barrierCircle.setPosHpr(-14.67, 51.93, 0.025, 287.10, 0, 0) self.barrierCircle.flattenStrong()
def announceGenerate(self): DistributedObject.announceGenerate(self) # Start it slowly bouncing with an interval. x, y, z = self.initialPos self.model.setPos(x, y, z + 3) i1 = self.model.posInterval(2, (x, y, z), blendType='easeInOut') i2 = self.model.posInterval(2, (x, y, z + 3), blendType='easeInOut') self.ival = Sequence(i1, i2) # How much time has elapsed since the sequence started? elapsed = globalClock.getFrameTime() - self.startTime # Start the interval looping, then skip to the appropriate # point in its cycle. self.ival.loop() self.ival.setT(elapsed % self.ival.getDuration()) self.model.reparentTo(render)
def announceGenerate(self): DistributedObject.announceGenerate(self) base.transitions.fadeScreen(0.0) self.guide = Toon(base.cr) self.guide.autoClearChat = False self.guide.parseDNAStrand(NPCGlobals.NPC_DNA[self.GUIDE_NAME]) self.guide.setName(self.GUIDE_NAME) self.guide.generateToon() self.guide.nametag.setNametagColor( NametagGlobals.NametagColors[NametagGlobals.CCNPC]) self.guide.nametag.setActive(0) self.guide.nametag.updateAll() self.guide.startBlink() self.guide.reparentTo(render) base.localAvatar.reparentTo(render) loader.loadDNAFile(self.dnaStore, 'phase_3.5/dna/storage_tutorial.pdna') node = loader.loadDNAFile(self.dnaStore, 'phase_3.5/dna/tutorial_street.pdna') if node.getNumParents() == 1: self.streetGeom = NodePath(node.getParent(0)) self.streetGeom.reparentTo(hidden) else: self.streetGeom = hidden.attachNewNode(node) self.streetGeom.flattenMedium() gsg = base.win.getGsg() if gsg: self.streetGeom.prepareScene(gsg) self.streetGeom.reparentTo(render) self.streetGeom.setPos(20.5, -20, 0) self.streetGeom.setH(90) self.sky = loader.loadModel('phase_3.5/models/props/TT_sky.bam') self.skyUtil.startSky(self.sky) self.sky.reparentTo(camera) ce = CompassEffect.make(NodePath(), CompassEffect.PRot | CompassEffect.PZ) self.sky.node().setEffect(ce) self.music = base.loadMusic('phase_3.5/audio/bgm/TC_SZ.mid') base.playMusic(self.music, volume=0.8, looping=1) self.battleMusic = base.loadMusic( 'phase_3.5/audio/bgm/encntr_general_bg.mid') self.fsm.request('newPlayerEmerge') base.localAvatar.inTutorial = True
def announceGenerate(self): DistributedObject.announceGenerate(self) # Set up our HTML text for the player list. hexcolor = '%02x%02x%02x' % (int( self.color[0] * 255), int( self.color[1] * 255), int(self.color[2] * 255)) self.htmlText = ''' <tr style="border: 1px solid black; background: #%(hexcolor)s"> <td style="padding-left: 5pt; padding-right: 5pt; text-align: left"><span class="tag">%(name)s</span></td> <td style="padding-left: 5pt; padding-right: 5pt; text-align: right">%%s</td> </tr> ''' % { 'name': self.name, 'hexcolor': hexcolor, } # Add ourselves to the player list. self.cr.playerList.addPlayer(self)
def announceGenerate(self): DistributedObject.announceGenerate(self) self.nodePath = NodePath(self.uniqueName('bankCollectable')) self.nodePath.setScale(0.9) self.bankCollectable = self.nodePath.attachNewNode('bankCollectable') collSphere = CollisionSphere(0, 0, 0, 2) collSphere.setTangible(0) collNode = CollisionNode(self.uniqueName('bankCollectableSphere')) collNode.setIntoCollideMask(OTPGlobals.WallBitmask) collNode.addSolid(collSphere) self.collNodePath = self.nodePath.attachNewNode(collNode) model = loader.loadModel('phase_5.5/models/estate/jellybeanJar.bam') model.setTransparency(TransparencyAttrib.MDual, 1) model.find('**/jellybeansinbowl').setColorScale(1, 1, 1, 0.5) model.reparentTo(self.bankCollectable) self.grabSound = loader.loadSfx('phase_4/audio/sfx/SZ_DD_treasure.ogg') self.nodePath.wrtReparentTo(render) jellybeanjar = self.bankCollectable.find('**/jellybeanjar') self.rotateTrack = LerpHprInterval(jellybeanjar, 5, Vec3(360, 0, 0)) self.rotateTrack.loop() self.floatTrack = Sequence() self.floatTrack.append(LerpPosInterval(self.nodePath, 2, Point3(-22, 27.5, 2), startPos=Point3(-22, 27.5, 1.5))) self.floatTrack.append(LerpPosInterval(self.nodePath, 2, Point3(-22, 27.5, 1.5), startPos=Point3(-22, 27.5, 2))) self.floatTrack.loop() glow = jellybeanjar.copyTo(self.bankCollectable) glow.setScale(1.1) glowTrack = Sequence() glowTrack.append(LerpColorScaleInterval(glow, 2.5, Vec4(0.6, 0.6, 0, 0.6), startColorScale=Vec4(0.4, 0.4, 0, 0.6))) glowTrack.append(LerpColorScaleInterval(glow, 2.5, Vec4(0.4, 0.4, 0, 0.6), startColorScale=Vec4(0.6, 0.6, 0, 0.6))) glowTrack.loop() self.accept(self.uniqueName('enterbankCollectableSphere'), self.__handleEnterSphere)
def announceGenerate(self): DistributedObject.announceGenerate(self) # Set up our HTML text for the player list. hexcolor = '%02x%02x%02x' % ( int(self.color[0] * 255), int(self.color[1] * 255), int(self.color[2] * 255)) self.htmlText = ''' <tr style="border: 1px solid black; background: #%(hexcolor)s"> <td style="padding-left: 5pt; padding-right: 5pt; text-align: left"><span class="tag">%(name)s</span></td> <td style="padding-left: 5pt; padding-right: 5pt; text-align: right">%%s</td> </tr> ''' % { 'name' : self.name, 'hexcolor' : hexcolor, } # Add ourselves to the player list. self.cr.playerList.addPlayer(self)
def announceGenerate(self): DistributedObject.announceGenerate(self) try: # Let's attempt to fetch our collision node. town = self.cr.playGame.hood.loader.geom searchStr = '**/KnockKnockDoorSphere*;+s' npc = town.findAllMatches('**/?b' + str(self.block) + ':*_DNARoot;+s') doorNodes = npc.findAllMatches(searchStr) for door in doorNodes: doorBlock = door.getName()[-1:] if doorBlock == str(self.block): print "Setting up door" self.__setupDoor(door) break except: self.notify.warning( 'Failure to fetch collision node for knock-knock door.') self.notify.warning( 'Knock-Knock Door with missing collision node: Exterior Zone: %d, Block: %d.' % (self.zoneId, self.block))
def announceGenerate(self): DistributedObject.announceGenerate(self) messenger.send(BandConstance.BandMembershipChange, [self, 0]) messenger.send('CrewChange')
def announceGenerate(self): DistributedObject.announceGenerate(self) self.startTodToggles()
def announceGenerate(self): DistributedObject.announceGenerate(self) self.setup()
def announceGenerate(self): DistributedObject.announceGenerate(self) messenger.send(PiratesGlobals.TradeIncomingEvent, [ self])
def announceGenerate(self): DistributedObject.announceGenerate(self) self.cr.event = self self.joinEvent()
def announceGenerate(self): DistributedObject.announceGenerate(self) self.__startWaterWatch() self.sendUpdate('requestAvatarStates', [])
def announceGenerate(self): self.cr.localRoomId = self.doId DistributedObject.announceGenerate(self) self.accept("requestMoveToField", self.d_requestMoveToField)
def announceGenerate(self): DistributedObject.announceGenerate(self) self.loadModel(self.modelPath, self.modelChildString) self.startAnimation() self.nodePath.reparentTo(render) self.accept(self.uniqueName('entertreasureSphere'), self.handleEnterSphere)
def announceGenerate(self): DistributedObject.announceGenerate(self) base.cr.playGame.suitManager = self
def announceGenerate(self): self.notify.debug('announceGenerate') DistributedObject.announceGenerate(self)
def announceGenerate(self): DistributedObject.announceGenerate(self) base.taskMgr.add(self.__pollMyBattle, '__pollMyBattle')
def announceGenerate(self): DistributedObject.announceGenerate(self) self.reparentTo(render) self._name = self.uniqueName("MinigameStation") self.__initCollisions(self._name)
def announceGenerate(self): DistributedObject.announceGenerate(self) self.notify.debug('generated')
def announceGenerate(self): DistributedObject.announceGenerate(self) self.eventRng = random.Random(self.doId) self.request('WaitForServerStart')
def announceGenerate(self): WorldNode.announceGenerate(self) DistributedObject.announceGenerate(self)
def announceGenerate(self): DistributedObject.announceGenerate(self) base.cr.blackCatMgr = self
def announceGenerate(self): DistributedObject.announceGenerate(self) self.tent = loader.loadModel('phase_4/models/events/event_tent.bam') self.tent.reparentTo(render) self.tent.setPosHpr(0, 0, 0, 270, 0, 0) self.redFlag = Actor( loader.loadModel('phase_4/models/events/event-flag-mod.bam')) self.redFlag.loadAnims( {'waving': 'phase_4/models/events/event-flag-anim.bam'}) self.redFlag.reparentTo(self.tent.find('**/flag1_jnt')) self.redFlag.loop('waving') self.blueFlag = Actor( loader.loadModel('phase_4/models/events/event-flag-mod.bam')) self.blueFlag.loadAnims( {'waving': 'phase_4/models/events/event-flag-anim.bam'}) self.blueFlag.reparentTo(self.tent.find('**/flag2_jnt')) self.blueFlag.loop('waving') self.tent2 = loader.loadModel('phase_4/models/events/event_tent.bam') self.tent2.reparentTo(render) self.tent2.setPosHpr(85.91, 149.76, 2.61, 327.99, 0, 0) self.balloonArchway = loader.loadModel( 'phase_4/models/events/balloon_archway_spiraled.bam') self.balloonArchway.reparentTo(render) self.balloonArchway.setPosHpr(-24.25, 17.24, 0, 0, 0, 0) self.balloonArchway.flattenStrong() self.balloonArchway2 = loader.loadModel( 'phase_4/models/events/balloon_archway_spiraled.bam') self.balloonArchway2.reparentTo(render) self.balloonArchway2.setPosHpr(-24.25, -31.03, 0, 0, 0, 0) self.balloonArchway2.flattenStrong() self.balloonArchway3 = loader.loadModel( 'phase_4/models/events/balloon_archway_spiraled.bam') self.balloonArchway3.reparentTo(render) self.balloonArchway3.setPosHpr(99.6, 0.65, 4, 272.39, 0, 0) self.balloonArchway3.setScale(1.21) self.balloonArchway3.flattenStrong() self.balloontowerCake = loader.loadModel( 'phase_4/models/events/balloon_set_cake.bam') self.balloontowerCake.reparentTo(render) self.balloontowerCake.setPosHpr(95.65, 6.75, 4, 270, 0, 0) self.balloontowerCake.flattenStrong() self.balloontowerStar = loader.loadModel( 'phase_4/models/events/balloon_set_star.bam') self.balloontowerStar.reparentTo(render) self.balloontowerStar.setPosHpr(95.70, -5.56, 4, 270, 0, 0) self.balloontowerStar.flattenStrong() self.barrierCircle = loader.loadModel( 'phase_4/models/events/barrier_circle_sf.bam') self.barrierCircle.reparentTo(render) self.barrierCircle.setPosHpr(-14.67, 51.93, 0.025, 287.10, 0, 0) self.barrierCircle.flattenStrong()
def announceGenerate(self): DistributedObject.announceGenerate(self) self.d_requestEventsList()
def announceGenerate(self): DistributedObject.announceGenerate(self) base.localAvatar.setMyBattle(self) self.startPlacePoll()
def announceGenerate(self): DistributedObject.announceGenerate(self) self.__handleInteriorSetup()
def announceGenerate(self): DistributedObject.announceGenerate(self) x, y, z = self.initialPos
def announceGenerate(self): DistributedObject.announceGenerate(self) self.cr.activeDistricts[self.doId] = self
def announceGenerate(self): DistributedObject.announceGenerate(self) base.cr.accountDateMgr = self taskMgr.doMethodLater(10, self.requestDate, 'request-task')
def announceGenerate(self): self.reparentTo(render) DistributedObject.announceGenerate(self) base.worldCreator.loadFileDataRecursive(self.fileName + '.py') base.worldCreator.registerFileObject(self.fileName + '.py') self.stash()
def announceGenerate(self): DistributedObject.announceGenerate(self) messenger.send(PiratesGlobals.TradeIncomingEvent, [self])
def announceGenerate(self): DistributedObject.announceGenerate(self) messenger.send(BandConstance.BandMembershipChange, [ self, 0]) messenger.send('CrewChange')
def announceGenerate(self): DistributedObject.announceGenerate(self) self.loadFSM.request('Loaded') self._requestInterior() self.notify.info('difficulty: %s, safezoneId: %s' % (self.getDifficulty(), self.getSafezoneId()))
def announceGenerate(self): DistributedObject.announceGenerate(self) self.cr.activeDistrictMap[self.doId] = self messenger.send('shardInfoUpdated')
def announceGenerate(self): DistributedObject.announceGenerate(self) self.__announced = 1
def announceGenerate(self): DistributedObject.announceGenerate(self) base.codeRedemptionMgr = self self._contextGen = SerialMaskedGen(4294967295L) self._context2callback = {}
def announceGenerate(self): # tell everyone interested, that the board DO has been generated base.messenger.send(self.cr.uniqueName("board_generated"), [self.doId]) # call the base class method DistributedObject.announceGenerate(self)
def announceGenerate(self): self.battleHandler.show() self.accept("rollInitiative", self.d_rollInitiative) self.sendUpdate("isSpectating") # call the base class method DistributedObject.announceGenerate(self)
def announceGenerate(self): DistributedObject.announceGenerate(self) self.determineEvent()
def announceGenerate(self): DistributedObject.announceGenerate(self) self.cr.roomManager = self self.d_requestRoomList() base.messenger.send(self.cr.uniqueName("roomManager_ready"))