def getPicture(self, avatar): PetDNA = PetDNA Pet = Pet import toontown.pets pet = Pet.Pet(forGui=1) dna = avatar.petDNA if dna == None: dna = PetDNA.getRandomPetDNA() pet.setDNA(dna) pet.setH(180) (model, ival) = self.makeFrameModel(pet, 0) pet.setScale(2.0) pet.setP(-40) track = PetTricks.getTrickIval(pet, self.trickId) name = 'petTrick-item-%s' % self.sequenceNumber CatalogPetTrickItem.sequenceNumber += 1 if track != None: track = Sequence(Sequence(track), ActorInterval(pet, 'neutral', duration=2), name=name) else: pet.animFSM.request('neutral') track = Sequence(Wait(4), name=name) self.petPicture = pet self.hasPicture = True return (model, track)
def getPicture(self, avatar): from toontown.pets import PetDNA, Pet pet = Pet.Pet(forGui=1) dna = PetDNA.getRandomPetDNA() pet.setDNA(dna) pet.setH(180) model, ival = self.makeFrameModel(pet, 0) pet.setScale(2.0) pet.setP(-40) track = PetTricks.getTrickIval(pet, self.trickId) name = 'petTrick-item-%s' % self.sequenceNumber CatalogPetTrickItem.sequenceNumber += 1 if track is not None: track = Sequence( Sequence(track), ActorInterval( pet, 'neutral', duration=2), name=name) else: pet.animFSM.request('neutral') track = Sequence(Wait(4), name=name) self.petPicture = pet self.hasPicture = True return model, track
def __healJuggle(heal): """ __healJuggle(heal) """ petProxyId = heal['petId'] pet = Pet.Pet() gender = 0 if base.cr.doId2do.has_key(petProxyId): petProxy = base.cr.doId2do[petProxyId] if (petProxy == None): return pet.setDNA(petProxy.style) pet.setName(petProxy.petName) gender = petProxy.gender else: pet.setDNA([-1, 0, 0, -1, 2, 0, 4, 0, 1]) pet.setName('Smiley') targets = heal['target'] ineffective = heal['sidestep'] level = heal['level'] # Make a 'sandwich' around the track specific interval track = Sequence(__teleportIn(heal, pet)) # Do the trick (or not) if ineffective: trickTrack = Parallel(Wait(1.0), Func(pet.loop, 'neutralSad'), Func(pet.showMood, 'confusion') ) else: trickTrack = PetTricks.getTrickIval(pet, level) track.append(trickTrack) delay = 4.0 first = 1 targetTrack = Sequence() for target in targets: targetToon = target['toon'] hp = target['hp'] callerToonId = heal['toonId'] reactIval = Func(__healToon, targetToon, hp, gender, callerToonId, ineffective) if (first == 1): #targetTrack.append(Wait(delay)) first = 0 targetTrack.append(reactIval) mtrack = Parallel(Wait(2.0), targetTrack) track.append(mtrack) track.append(Sequence(Func(pet.clearMood))) track.append(__teleportOut(heal, pet)) for target in targets: targetToon = target['toon'] track.append(Func(targetToon.clearChat)) track.append(Func(pet.delete)) return track
def __healJuggle(heal): petProxyId = heal['petId'] pet = Pet.Pet() gender = 0 if base.cr.doId2do.has_key(petProxyId): petProxy = base.cr.doId2do[petProxyId] if petProxy == None: return None pet.setDNA(petProxy.style) pet.setName(petProxy.petName) gender = petProxy.gender else: pet.setDNA([ -1, 0, 0, -1, 2, 0, 4, 0, 1]) pet.setName('Smiley') targets = heal['target'] ineffective = heal['sidestep'] level = heal['level'] track = Sequence(__teleportIn(heal, pet)) if ineffective: trickTrack = Parallel(Wait(1.0), Func(pet.loop, 'neutralSad'), Func(pet.showMood, 'confusion')) else: trickTrack = PetTricks.getTrickIval(pet, level) track.append(trickTrack) delay = 4.0 first = 1 targetTrack = Sequence() for target in targets: targetToon = target['toon'] hp = target['hp'] callerToonId = heal['toonId'] reactIval = Func(__healToon, targetToon, hp, gender, callerToonId, ineffective) if first == 1: first = 0 targetTrack.append(reactIval) mtrack = Parallel(Wait(2.0), targetTrack) track.append(mtrack) track.append(Sequence(Func(pet.clearMood))) track.append(__teleportOut(heal, pet)) for target in targets: targetToon = target['toon'] track.append(Func(targetToon.clearChat)) track.append(Func(pet.delete)) return track
def doTrick(self, trickId, timestamp): if not self.isLockedDown(): if self.trickIval is not None and self.trickIval.isPlaying(): self.trickIval.finish() self.trickIval = PetTricks.getTrickIval(self, trickId) if trickId == PetTricks.Tricks.BALK: mood = self.getDominantMood() self.trickIval = Parallel(self.trickIval, Sequence(Func(self.handleMoodChange, 'confusion'), Wait(1.0), Func(self.handleMoodChange, mood))) self.trickIval.start(globalClockDelta.localElapsedTime(timestamp)) return
def doTrick(self, trickId, timestamp): if not self.isLockedDown(): if self.trickIval is not None and self.trickIval.isPlaying(): self.trickIval.finish() self.trickIval = PetTricks.getTrickIval(self, trickId) if trickId == PetTricks.Tricks.BALK: mood = self.getDominantMood() self.trickIval = Parallel( self.trickIval, Sequence(Func(self.handleMoodChange, 'confusion'), Wait(1.0), Func(self.handleMoodChange, mood))) self.trickIval.start(globalClockDelta.localElapsedTime(timestamp))
def __doPetSOS(heal): petProxyId = heal['petId'] pet = Pet.Pet() gender = 0 if petProxyId in base.cr.doId2do: petProxy = base.cr.doId2do[petProxyId] if petProxy == None: return pet.setDNA(petProxy.style) pet.setName(petProxy.petName) gender = petProxy.gender else: pet.setDNA([-1, 0, 0, -1, 2, 0, 4, 0, 1]) pet.setName(TTLocalizer.DefaultDoodleName) targets = heal['target'] ineffective = heal['sidestep'] level = heal['level'] track = Sequence(__teleportIn(heal, pet)) if ineffective: trickTrack = Parallel(Wait(1.0), Func(pet.loop, 'neutralSad'), Func(pet.showMood, 'confusion')) else: trickTrack = PetTricks.getTrickIval(pet, level) track.append(trickTrack) delay = 4.0 first = 1 targetTrack = Sequence() for target in targets: targetToon = target['toon'] hp = target['hp'] callerToonId = heal['toonId'] reactIval = Func(__healToon, targetToon, hp, gender, callerToonId, ineffective) if first == 1: first = 0 targetTrack.append(reactIval) mtrack = Parallel(Wait(2.0), targetTrack) track.append(mtrack) track.append(Sequence(Func(pet.clearMood))) track.append(__teleportOut(heal, pet)) for target in targets: targetToon = target['toon'] track.append(Func(targetToon.clearChat)) track.append(Func(pet.delete)) return track
def getPicture(self, avatar): # Returns a (DirectWidget, Interval) pair to draw and animate a # little representation of the item, or (None, None) if the # item has no representation. This method is only called on # the client. # Don't import this at the top of the file, since this code # must run on the AI. from toontown.pets import PetDNA, Pet pet = Pet.Pet(forGui = 1) # We use the avatar's own pet if he/she has a pet (and we know # its DNA), otherwise use a random pet. dna = avatar.petDNA if dna == None: dna = PetDNA.getRandomPetDNA() pet.setDNA(dna) pet.setH(180) model, ival = self.makeFrameModel(pet, 0) pet.setScale(2.0) pet.setP(-40) # Discard the ival from makeFrameModel, since we don't want to # spin. track = PetTricks.getTrickIval(pet, self.trickId) name = "petTrick-item-%s" % (self.sequenceNumber) CatalogPetTrickItem.sequenceNumber += 1 if track != None: track = Sequence(Sequence(track), ActorInterval(pet, 'neutral', duration = 2), name = name) else: pet.animFSM.request('neutral') track = Sequence(Wait(4), name = name) self.petPicture = pet assert (not self.hasPicture) self.hasPicture=True return (model, track)