def __healJuggle(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('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
Exemplo n.º 2
0
def __healJuggle(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('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 getPicture(self, avatar):
     from src.toontown.pets import PetDNA, Pet
     pet = Pet.Pet(forGui=1)
     dna = avatar.getPetDNA()
     if dna == None:
         dna = PetDNA.getRandomPetDNA()
     pet.setDNA(dna)
     pet.setH(180)
     pet.setScale(1.25)
     model, ival = self.makeFrameModel(pet, 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)